module Moneta::Api::DataMapper::ClassMethods
Public Instance Methods
build(data)
click to toggle source
# File lib/moneta/api/data_mapper.rb, line 21 def build(data) self.new.tap { |object| object.fill(data) } end
property(name, type: nil, read_only: false)
click to toggle source
# File lib/moneta/api/data_mapper.rb, line 9 def property(name, type: nil, read_only: false) generate_accessors(name, read_only) # Сохраняем свойста и перезаписываем instance метод current_properties = instance_variable_get('@properties') || {} properties = instance_variable_set('@properties', current_properties.merge(parents_properties).merge(name => type) ) send(:define_method, :properties) { properties } end
Private Instance Methods
generate_accessors(name, read_only)
click to toggle source
# File lib/moneta/api/data_mapper.rb, line 37 def generate_accessors(name, read_only) attr_reader(name) attr_writer(name) unless read_only end
parents_properties()
click to toggle source
# File lib/moneta/api/data_mapper.rb, line 27 def parents_properties instance_variable_get('@parents_properties') || instance_variable_set('@parents_properties', ancestors.each_with_object({}) do |klass, hash| if klass.name.match(/Moneta::Api::(Types|Requests|Responses)/) hash.merge!(klass.instance_variable_get('@properties') || {}) end end ) end