種類
- インスタンスメソッド (55)
- 文書 (22)
- モジュール関数 (22)
モジュール
- Marshal (22)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - Marshal フォーマット (11)
- dump (22)
-
marshal
_ dump (22) -
marshal
_ load (22)
検索結果
先頭5件
-
Object
# _ dump(limit) -> String (39207.0) -
Marshal.#dump において出力するオブジェクトがメソッド _dump を定義している場合には、そのメソッドの結果が書き出されます。
...がメソッド _dump
を定義している場合には、そのメソッドの結果が書き出されます。
バージョン1.8.0以降ではObject#marshal_dump, Object#marshal_loadの使用
が推奨されます。 Marshal.dump するオブジェクトが _dump と marshal_dump の両方の......ソッドを持つ場合は marshal_dump が優先されます。
メソッド _dump は引数として再帰を制限するレベル limit を受
け取り、オブジェクトを文字列化したものを返します。
インスタンスがメソッド _dump を持つクラスは必ず同じ......を文字列化したものを返すように定義すべきです。
//emlist[][ruby]{
class Foo
def initialize(arg)
@foo = arg
end
def _dump(limit)
Marshal.dump(@foo, limit)
end
def self._load(obj)
p obj
Foo.new(Marshal.load(obj))
end
end
foo = Foo.new(['foo', 'bar'])... -
Object
# marshal _ dump -> object (27274.0) -
Marshal.#dump を制御するメソッドです。
...arshal_dump を
持つ場合には、その返り値がダンプされたものが Marshal.dump(some) の返り値となります。
marshal_dump/marshal_load の仕組みは Ruby 1.8.0 から導入されました。
これから書くプログラムでは _dump/_load ではなく
marshal_dump/mars......ジェクトで marshal_load の引数に利用できます。
//emlist[][ruby]{
class Foo
def initialize(arg)
@foo = arg
end
def marshal_dump
@foo
end
def marshal_load(obj)
p obj
@foo = obj
end
end
foo = Foo.new(['foo', 'bar'])
p foo #=> #<Foo:0xbaf......定義されていてもマーシャルできるようになります
(特異メソッドの情報が自動的に dump されるようになるわけではなく、
marshal_dump/marshal_load によりそれを実現する余地があるということです)。
@see Object#marshal_load, Marshal... -
Object
# marshal _ load(obj) -> object (21143.0) -
Marshal.#load を制御するメソッドです。
...ければなりません。
このとき、marshal_dump の返り値が marshal_load の引数に利用されます。
marshal_load 時の self は、生成されたばかり(Class#allocate されたばかり) の状態です。
marshal_dump/marshal_load の仕組みは Ruby 1.8.0 から導入......されました。
これから書くプログラムでは _dump/_load ではなく
marshal_dump/marshal_load を使うべきです。
@param obj marshal_dump の返り値のコピーです。
@return 返り値は無視されます。
@see Object#marshal_dump, Marshal... -
Delegator
# marshal _ dump -> object (6202.0) -
シリアライゼーションをサポートするためにDelegator#__getobj__ が返すオブジェクトを返します。
シリアライゼーションをサポートするためにDelegator#__getobj__ が返すオブジェクトを返します。 -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (426.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...スは特異クラス自身であると定義されました
((<ruby-bugs-ja:313>))。なんだかよくわかりません(^^;
class << Object
p [self.id, self]
class << self
p [self.id, self]
end
end
=> ruby 1.6.7 (2002-03-01) [i5......537771634, Class]
[537742484, Class]
=> ruby 1.7.3 (2002-09-05) [i586-linux]
[537771634, #<Class:Object>]
[537771634, #<Class:Object>]
さらに、オブジェクトの特異クラスのスーパークラスの特異クラスと
オブジェクトの特......ror/exit_value>)) [new]
: ((<LocalJumpError#reason|LocalJumpError/reason>)) [new]
追加
=== Marshal
: ((<Marshal/Object#marshal_load>)) [new]
: ((<Marshal/Object#marshal_dump>)) [new]
追加 ((<ruby-dev:21016>))
=== MatchData
: ((<MatchData#captures|MatchData/captures>)) [new]
追加... -
Marshal フォーマット (120.0)
-
Marshal フォーマット フォーマットバージョン 4.8 を元に記述しています。
...:marshal_format#Object 参照)
//emlist[例][ruby]{
class Foo
end
p Marshal.dump(Foo.new).unpack("x2 a a c a*")
# => ["o", ":", 8, "Foo\x00"]
//}
=== 'u'
_dump、_load を定義していれば 'u' になります。
インスタンス変数は dump されなくなるので、_dump/_load で対応......| _dump の結果の長さ(Fixnum形式) | _dump が返す値 |
//}
//emlist[][ruby]{
# coding: ascii-8bit
class Foo
def self._load
end
def _dump(obj)
"hogehoge"
end
end
p Marshal.dump(Foo.new).unpack("x2 a aca3 c a*")
# => ["u", ":", 8, "Foo", 13, "hogehoge"]
//}
=== 'U'
marshal_dump......p されなくなるので、marshal_dump/marshal_load
で対応する必要があります。
//emlist{
| 'U' | クラス名(Symbol)の dump | marshal_dump メソッドの戻り値の dump |
//}
//emlist[][ruby]{
# coding: ascii-8bit
class Foo
def marshal_dump
"hogehoge"
end
def marshal... -
Delegator
# marshal _ load(obj) -> object (107.0) -
シリアライズされたオブジェクトから、Delegator#__getobj__ が返すオブジェクトを再現します。
...シリアライズされたオブジェクトから、Delegator#__getobj__ が返すオブジェクトを再現します。
@param obj Delegator#marshal_dumpの戻り値のコピー... -
Marshal
. # dump(obj , limit = -1) -> String (18.0) -
obj を指定された出力先に再帰的に出力します。
...オブジェクトをダンプしようとした場合に発生します。
@raise ArgumentError limit 段以上深くリンクしたオブジェクトをダンプしようと
した場合に発生します。
@see Object#marshal_dump, Object#marshal_load... -
Marshal
. # dump(obj , port , limit = -1) -> IO (18.0) -
obj を指定された出力先に再帰的に出力します。
...オブジェクトをダンプしようとした場合に発生します。
@raise ArgumentError limit 段以上深くリンクしたオブジェクトをダンプしようと
した場合に発生します。
@see Object#marshal_dump, Object#marshal_load...