module AdapterRegistry::Implementation::ClassMethods
Attributes
traits[RW]
Public Instance Methods
adapts(&block)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/adapter-registry/implementation.rb, line 11 def implements(*traits) self.traits = traits end
instance_for(context)
click to toggle source
# File lib/adapter-registry/implementation.rb, line 33 def instance_for(context) self.new(context) end
klass_is_a?(klass, *klasses)
click to toggle source
# File lib/adapter-registry/implementation.rb, line 37 def klass_is_a?(klass, *klasses) (klasses.map(&:to_s) & klass.ancestors.map(&:name)).any? end