Module: AdapterRegistry::Implementation::ClassMethods
- Defined in:
- lib/adapter-registry/implementation.rb
Instance Attribute Summary collapse
-
#traits ⇒ Object
Returns the value of attribute traits.
Instance Method Summary collapse
- #adapts(&block) ⇒ Object
- #adapts_class(*klasses) ⇒ Object
- #adapts_instance(*klasses) ⇒ Object
- #implements(*traits) ⇒ Object
- #instance_for(context) ⇒ Object
- #klass_is_a?(klass, *klasses) ⇒ Boolean
Instance Attribute Details
#traits ⇒ Object
Returns the value of attribute traits.
10 11 12 |
# File 'lib/adapter-registry/implementation.rb', line 10 def traits @traits end |
Instance Method Details
#adapts(&block) ⇒ Object
27 28 29 30 31 |
# File 'lib/adapter-registry/implementation.rb', line 27 def adapts(&block) self.traits.each do |trait| AdapterRegistry.register(trait, self, &block) end if (self.traits && block) end |
#adapts_class(*klasses) ⇒ Object
21 22 23 24 25 |
# File 'lib/adapter-registry/implementation.rb', line 21 def adapts_class(*klasses) adapts do |context| context.is_a?(Class) && klass_is_a?(context, *klasses) end end |
#adapts_instance(*klasses) ⇒ Object
15 16 17 18 19 |
# File 'lib/adapter-registry/implementation.rb', line 15 def adapts_instance(*klasses) adapts do |context| klasses.any? { |klass| context.is_a?(klass) } end end |
#implements(*traits) ⇒ Object
11 12 13 |
# File 'lib/adapter-registry/implementation.rb', line 11 def implements(*traits) self.traits = traits end |
#instance_for(context) ⇒ Object
33 34 35 |
# File 'lib/adapter-registry/implementation.rb', line 33 def instance_for(context) self.new(context) end |
#klass_is_a?(klass, *klasses) ⇒ Boolean
37 38 39 |
# File 'lib/adapter-registry/implementation.rb', line 37 def klass_is_a?(klass, *klasses) (klasses.map(&:to_s) & klass.ancestors.map(&:name)).any? end |