class Ooz::Common::BaseModel

Attributes

doc[R]

Public Class Methods

build(doc = {}) click to toggle source
# File lib/ooz/common/base_model.rb, line 11
def self.build(doc = {})
  new(doc).tap do |instance|
    instance.instance_variable_set("@original_doc", {})
  end
end
new(doc = {}) click to toggle source
# File lib/ooz/common/base_model.rb, line 5
def initialize(doc = {})
  @doc          = doc
  @original_doc = JSON.parse(doc.to_json)
  @last_change  = {}
end

Public Instance Methods

as_json() click to toggle source
# File lib/ooz/common/base_model.rb, line 22
def as_json
  doc
end
as_update() click to toggle source
# File lib/ooz/common/base_model.rb, line 38
def as_update
  new_doc = as_json
  Common::HashDiff.diff(new_doc, @original_doc)
end
changed?() click to toggle source
# File lib/ooz/common/base_model.rb, line 43
def changed?
  !as_update.empty?
end
consolidate!() click to toggle source
# File lib/ooz/common/base_model.rb, line 30
def consolidate!
  @original_doc = JSON.parse(@doc.to_json)
end
new_change?() click to toggle source
# File lib/ooz/common/base_model.rb, line 47
def new_change?
  !Common::HashDiff.diff(as_update, @last_change).empty?
end
print() click to toggle source
to_json(*args) click to toggle source
# File lib/ooz/common/base_model.rb, line 26
def to_json(*args)
  doc.to_json(*args)
end
undo!() click to toggle source
# File lib/ooz/common/base_model.rb, line 34
def undo!
  @doc = JSON.parse(@original_doc.to_json)
end
update_last_change!() click to toggle source
# File lib/ooz/common/base_model.rb, line 51
def update_last_change!
  last_chg = @last_change
  @last_change = as_update
  last_chg
end