class Mapping::Model
def self.map(*klasses, &block)
def self.map(*klasses, &block) klasses.each do |klass| method_name = self.method_for_mapping(klass) define_method(method_name, &block) end end
def self.map_identity(*klasses)
def self.map_identity(*klasses) self.map(*klasses) {|value| value} end
def self.method_for_mapping(klass)
def self.method_for_mapping(klass) PREFIX + klass.name.gsub(/::/, "_") end
def self.unmap(*klasses)
def self.unmap(*klasses) klasses.each do |klass| method_name = self.method_for_mapping(klass) undef_method(method_name) end end
def map(root, *arguments, **options)
def map(root, *arguments, **options) method_name = self.method_for_mapping(root) self.send(method_name, root, *arguments, **options) end
def method_for_mapping(object)
def method_for_mapping(object) self.class.method_for_mapping(object.class) end