module Pluggaloid::Mirage::Extend

Public Instance Methods

inherited(klass) click to toggle source
# File lib/pluggaloid/mirage.rb, line 27
def inherited(klass)
  Mirage.pluggaloid_mirage_classes[klass.pluggaloid_mirage_namespace] = klass
end
pluggaloid_mirage_namespace() click to toggle source

`Pluggaloid::Mirage` をincludeしたClassのnamespaceを返す。 namespaceはStringで、 `Pluggaloid::Mirage` をincludeしたほかのClassと 重複しない。 同じClassであれば、別のPluggaloid host(Pluggaloid::VMやプロセス)でも 同じ値を返す。

# File lib/pluggaloid/mirage.rb, line 23
def pluggaloid_mirage_namespace
  -to_s
end
pluggaloid_mirage_repository() click to toggle source

`Pluggaloid::Mirage` をincludeしたClassのうち、`pluggaloid_mirage_identity` メソッドを呼ばれたインスタンスを記録するオブジェクトを返す。 戻り値は、以下のメソッドに応答すること。

  • `repository#[](String id)` idに対応するオブジェクトを返す

  • `repository#[]=(String id, self obj)` objを記録する

Class毎に適したコンテナを返すようにoverrideすること

# File lib/pluggaloid/mirage.rb, line 14
def pluggaloid_mirage_repository
  @pluggaloid_mirage_repository ||= {}
end