Module: Mapable::Mapping
- Defined in:
- lib/mapable/mapping.rb
Overview
Defines what fields to map
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
- .create(base_module, name, options = {}, &block) ⇒ Object
- .default_mapping_options(src, dest) ⇒ Object
- .included(base) ⇒ Object
Instance Method Summary collapse
Class Method Details
.create(base_module, name, options = {}, &block) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/mapable/mapping.rb', line 50 def self.create(base_module, name, = {}, &block) [:class_name] ||= ::Mapable::Utils.classify_name(name.to_s) + 'Mapping' kls = Class.new([:base_class] || Object) kls = base_module.const_set([:class_name], kls) kls.send(:include, ::Mapable::Mapping) kls.class_eval(&block) if block kls end |
.default_mapping_options(src, dest) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/mapable/mapping.rb', line 11 def self.(src, dest) { src: src.to_sym, src_getter: src.to_s.freeze, src_setter: "#{src}=", dest: dest.to_sym, dest_getter: dest.to_s.freeze, dest_setter: "#{dest}=" } end |
.included(base) ⇒ Object
6 7 8 9 |
# File 'lib/mapable/mapping.rb', line 6 def self.included(base) base.extend InheritanceHelper::Methods base.extend ClassMethods end |
Instance Method Details
#map(src_model, dest_model) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/mapable/mapping.rb', line 43 def map(src_model, dest_model) self.class.mappings.each do |_, info| dest_model.public_send(info[:dest_setter], src_model.public_send(info[:src_getter])) end dest_model end |