Class: Ooz::Common::BaseModel
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from BaseClass
overridable_const, passthrough, passthrough_arr, passthrough_cls
Constructor Details
#initialize(doc = {}) ⇒ BaseModel
Returns a new instance of BaseModel.
5
6
7
8
9
|
# File 'lib/ooz/common/base_model.rb', line 5
def initialize(doc = {})
@doc = doc
@original_doc = JSON.parse(doc.to_json)
@last_change = {}
end
|
Instance Attribute Details
#doc ⇒ Object
Returns the value of attribute doc.
4
5
6
|
# File 'lib/ooz/common/base_model.rb', line 4
def doc
@doc
end
|
Class Method Details
.build(doc = {}) ⇒ Object
11
12
13
14
15
|
# 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
|
Instance Method Details
#as_json ⇒ Object
22
23
24
|
# File 'lib/ooz/common/base_model.rb', line 22
def as_json
doc
end
|
#as_update ⇒ Object
38
39
40
41
|
# 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? ⇒ Boolean
43
44
45
|
# File 'lib/ooz/common/base_model.rb', line 43
def changed?
!as_update.empty?
end
|
#consolidate! ⇒ Object
30
31
32
|
# File 'lib/ooz/common/base_model.rb', line 30
def consolidate!
@original_doc = JSON.parse(@doc.to_json)
end
|
#new_change? ⇒ Boolean
47
48
49
|
# File 'lib/ooz/common/base_model.rb', line 47
def new_change?
!Common::HashDiff.diff(as_update, @last_change).empty?
end
|
#print ⇒ Object
17
18
19
20
|
# File 'lib/ooz/common/base_model.rb', line 17
def print
puts JSON.pretty_generate(as_json)
self
end
|
#to_json(*args) ⇒ Object
26
27
28
|
# File 'lib/ooz/common/base_model.rb', line 26
def to_json(*args)
doc.to_json(*args)
end
|
#undo! ⇒ Object
34
35
36
|
# File 'lib/ooz/common/base_model.rb', line 34
def undo!
@doc = JSON.parse(@original_doc.to_json)
end
|
#update_last_change! ⇒ Object
51
52
53
54
55
|
# File 'lib/ooz/common/base_model.rb', line 51
def update_last_change!
last_chg = @last_change
@last_change = as_update
last_chg
end
|