Module: CanTango::Rules::Adaptor
- Included in:
- UserRelation
- Defined in:
- lib/cantango/rules/adaptor.rb,
lib/cantango/rules/adaptor/generic.rb,
lib/cantango/rules/adaptor/mongoid.rb,
lib/cantango/rules/adaptor/active_record.rb
Defined Under Namespace
Modules: ActiveRecord, Generic, Mongoid
Instance Method Summary collapse
- #adaptor(orm) ⇒ Object
- #orm_map ⇒ Object
-
#use_adaptor!(base, object) ⇒ Object
include adaptor depending on which ORM the object inherits from or includes.
Instance Method Details
#adaptor(orm) ⇒ Object
19 20 21 |
# File 'lib/cantango/rules/adaptor.rb', line 19 def adaptor orm "CanTango::Rules::Adaptor::#{orm.to_s.camelize}".constantize end |
#orm_map ⇒ Object
23 24 25 26 27 28 |
# File 'lib/cantango/rules/adaptor.rb', line 23 def orm_map { :active_record => "ActiveRecord::Base", :mongoid => "Mongoid::Document" } end |
#use_adaptor!(base, object) ⇒ Object
include adaptor depending on which ORM the object inherits from or includes
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/cantango/rules/adaptor.rb', line 8 def use_adaptor! base, object orm_map.each_pair do |orm, const| begin adaptor_class = const.constantize base.class.send(:include, adaptor(orm)) if object.kind_of?(adaptor_class) rescue next end end end |