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