Class: Graphiti::Util::PublicIdSources
- Defined in:
- lib/graphiti/util/public_id_sources.rb
Instance Method Summary collapse
- #[](child_resource_class, filter_name) ⇒ Object
-
#initialize ⇒ PublicIdSources
constructor
A new instance of PublicIdSources.
- #register(child_resource_class, filter_name, parent_resource_class) ⇒ Object
Constructor Details
#initialize ⇒ PublicIdSources
Returns a new instance of PublicIdSources.
4 5 6 |
# File 'lib/graphiti/util/public_id_sources.rb', line 4 def initialize @sources = {} end |
Instance Method Details
#[](child_resource_class, filter_name) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/graphiti/util/public_id_sources.rb', line 17 def [](child_resource_class, filter_name) klass = child_resource_class while klass source = @sources[[klass.name, filter_name.to_sym]] return source if source klass = klass.superclass end end |
#register(child_resource_class, filter_name, parent_resource_class) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/graphiti/util/public_id_sources.rb', line 8 def register(child_resource_class, filter_name, parent_resource_class) key = [child_resource_class.name, filter_name.to_sym] registered = @sources[key] if registered && registered.name != parent_resource_class.name raise Errors::ConflictingPublicIdSource.new(child_resource_class, filter_name, registered, parent_resource_class) end @sources[key] = parent_resource_class end |