module DataMapper::Constraints::Adapters::Extension
Public Instance Methods
include_constraint_api(const_name)
click to toggle source
Include the corresponding Constraints module into a adapter class
@param [Symbol] const_name
demodulized name of the adapter class to include corresponding constraints module into
TODO: come up with a better way to include modules into all currently loaded and subsequently loaded Adapters
@api private
# File lib/data_mapper/constraints/adapters/extension.rb, line 15 def include_constraint_api(const_name) require constraint_extensions(const_name) if Constraints::Adapters.const_defined?(const_name) adapter = const_get(const_name) constraint_module = Constraints::Adapters.const_get(const_name) adapter.class_eval { include constraint_module } end rescue LoadError # Silently ignore the fact that no adapter extensions could be required # This means that the adapter in use doesn't support constraints end
Private Instance Methods
const_added(const_name)
click to toggle source
@api private
Calls superclass method
# File lib/data_mapper/constraints/adapters/extension.rb, line 38 def const_added(const_name) include_constraint_api(const_name) super end
constraint_extensions(const_name)
click to toggle source
@api private
# File lib/data_mapper/constraints/adapters/extension.rb, line 31 def constraint_extensions(const_name) name = adapter_name(const_name) name = 'do' if name == 'dataobjects' "data_mapper/constraints/adapters/#{name}_adapter" end