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
# File lib/ooz/common/base_model.rb, line 17 def print puts JSON.pretty_generate(as_json) self end
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