module Pluggaloid::Mirage
Constants
- MIRAGE_ID_BASE_NUMBER
Public Class Methods
included(klass)
click to toggle source
# File lib/pluggaloid/mirage.rb, line 45 def self.included(klass) klass.extend(Extend) pluggaloid_mirage_classes[klass.pluggaloid_mirage_namespace] = klass end
pluggaloid_mirage_classes()
click to toggle source
# File lib/pluggaloid/mirage.rb, line 50 def self.pluggaloid_mirage_classes @pluggaloid_mirage_classes ||= {} end
unwrap(namespace:, id:)
click to toggle source
# File lib/pluggaloid/mirage.rb, line 32 def self.unwrap(namespace:, id:) klass = pluggaloid_mirage_classes[namespace] if klass result = klass.pluggaloid_mirage_repository[id] unless result&.is_a?(Pluggaloid::Mirage) # nilの場合は常にraise raise ArgumentError, "The id `#{id}' was not found." end result else raise ArgumentError, "The namespace `#{namespace}' was not found." end end
Public Instance Methods
pluggaloid_mirage_id()
click to toggle source
このClassのなかで、Pluggaloid::Mirageがインスタンスを同定するためのid(String)を返す。 このメソッドではなく、 `generate_pluggaloid_mirage_id` をoverrideすること
# File lib/pluggaloid/mirage.rb, line 56 def pluggaloid_mirage_id generate_pluggaloid_mirage_id.freeze.tap do |id| self.class.pluggaloid_mirage_repository[id] = self Mirage.pluggaloid_mirage_classes[self.class.pluggaloid_mirage_namespace] ||= self.class end end
pluggaloid_mirage_namespace()
click to toggle source
# File lib/pluggaloid/mirage.rb, line 63 def pluggaloid_mirage_namespace self.class.pluggaloid_mirage_namespace end
Private Instance Methods
generate_pluggaloid_mirage_id()
click to toggle source
このClassのなかで、Pluggaloid::Mirageがインスタンスを同定するためのid(String)を返す。 Class毎に適したコンテナを返すようにoverrideすること
# File lib/pluggaloid/mirage.rb, line 71 def generate_pluggaloid_mirage_id object_id.to_s(MIRAGE_ID_BASE_NUMBER) end