OK、Rubyの達人、これはこの説明のために私と一緒にタイトルに記述し、その負担するのは難しいものです:ルビー:マーシャルとアンマーシャリング変数ではなく、インスタンス
私は、文字列を渡すために探していますオブジェクトを構成するプロパティのコレクションではなく、実際の変数:ハンドルをオブジェクトに追加します。
これは、ファイルシステム、ネットワーク、またはメモリ内にあるリソースを扱っているためです。私は一貫した方法でこれらのそれぞれを扱うことができるURIハンドラを作成したいので、私は例えばのようなスキームを持つことができます。
- ファイル://
- ます。http://
- のftp://
- インメモリ://
あなたのアイデアを得ます。それは私が理解しようとしている最後のものです:Rubyでオブジェクトへの参照の文字列表現を取得し、その文字列を使用して新しい参照を作成する方法はありますか?私は実際に参照をマーシャリングすることに興味があり、オブジェクトはマーシャリングしません。理想的には、Object#object_id
のようなものがあります。これは取得するのが簡単で、同じオブジェクトを参照する別の場所で新しい変数を作成するのに使います。私はこれが本当に壊れやすく、珍しいユースケースであることを認識しています。オブジェクトがガベージコレクションされないようにする既存の変数がある限り、1つのRubyプロセス内でのみ動作しますが、 inmemory
体系私は開発中です。
私は考えることができる唯一の選択肢されています
- マーシャルオブジェクト全体とURIにそれを詰め込むが、オブジェクト内のデータが画像バッファであるため、それは動作しません - 非常に大きいです
- 後で検索するための変数を格納するグローバルまたはシングルトンの煉瓦領域を作成します。 object_idのハッシュ:変数のペア。これは少し臭いですが、うまくいくでしょう。
他の考え、StackOverflowers?
ありがとうございます。 – Matt