Sha256: 9c3d038edb143fcebe6b5045b651392e959e6fe207583208b9a7ee7932a4afbd
Contents?: true
Size: 832 Bytes
Versions: 2
Compression:
Stored size: 832 Bytes
Contents
module Ecoportal module API module Common class BaseModel attr_reader :doc def initialize(doc = {}) @doc = doc @original_doc = JSON.parse(doc.to_json) end def print puts JSON.pretty_generate(as_json) self end def as_json doc end def as_update new_doc = as_json Common::HashDiff.diff(new_doc, @original_doc) end def self.passthrough(*methods, to:) methods.each do |method| method = method.to_s define_method method do send(to)[method] end define_method "#{method}=" do |value| send(to)[method] = value end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ecoportal-api-0.1.1 | lib/ecoportal/api/common/base_model.rb |
ecoportal-api-0.1.0 | lib/ecoportal/api/common/base_model.rb |