module Mapable::Mapping
Defines what fields to map
Public Class Methods
create(base_module, name, options = {}, &block)
click to toggle source
# File lib/mapable/mapping.rb, line 50 def self.create(base_module, name, options = {}, &block) options[:class_name] ||= ::Mapable::Utils.classify_name(name.to_s) + 'Mapping' kls = Class.new(options[:base_class] || Object) kls = base_module.const_set(options[:class_name], kls) kls.send(:include, ::Mapable::Mapping) kls.class_eval(&block) if block kls end
default_mapping_options(src, dest)
click to toggle source
# File lib/mapable/mapping.rb, line 11 def self.default_mapping_options(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)
click to toggle source
# File lib/mapable/mapping.rb, line 6 def self.included(base) base.extend InheritanceHelper::Methods base.extend ClassMethods end
Public Instance Methods
map(src_model, dest_model)
click to toggle source
# 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