Module: Dolly::DocumentState
Instance Method Summary
collapse
#connection, #database, #property_clean_doc
Instance Method Details
#after_save(response) ⇒ Object
61
62
63
64
|
# File 'lib/dolly/document_state.rb', line 61
def after_save(response)
self.rev = response[:rev]
response[:ok]
end
|
#destroy(is_hard = true) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/dolly/document_state.rb', line 28
def destroy is_hard = true
return connection.delete(id, rev) if is_hard
doc[:_deleted] = true
save
rescue Dolly::ResourceNotFound
nil
rescue Dolly::ServerError => error
raise error unless error.message =~ /conflict/
self.rev = self.class.safe_find(id)&.rev
return unless self.rev
destroy(is_hard)
end
|
#persisted? ⇒ Boolean
48
49
50
51
|
# File 'lib/dolly/document_state.rb', line 48
def persisted?
return false unless doc[:_rev]
!doc[:_rev].empty?
end
|
#reload ⇒ Object
41
42
43
44
45
46
|
# File 'lib/dolly/document_state.rb', line 41
def reload
reloaded_doc = self.class.find(id).send(:doc)
attributes = property_clean_doc(reloaded_doc)
attributes.each(&update_attribute)
end
|
#save(options = {}) ⇒ Object
7
8
9
10
11
12
|
# File 'lib/dolly/document_state.rb', line 7
def save(options = {})
return false unless options[:validate] == false || valid?
set_type if typed? && type.nil?
write_timestamps(persisted?)
after_save(connection.put(id, doc))
end
|
#save! ⇒ Object
14
15
16
17
|
# File 'lib/dolly/document_state.rb', line 14
def save!
raise DocumentInvalidError unless valid?
save
end
|
#to_h ⇒ Object
53
54
55
|
# File 'lib/dolly/document_state.rb', line 53
def to_h
doc
end
|
#update_properties(properties) ⇒ Object
19
20
21
|
# File 'lib/dolly/document_state.rb', line 19
def update_properties(properties)
properties.each(&update_attribute)
end
|
#update_properties!(properties) ⇒ Object
23
24
25
26
|
# File 'lib/dolly/document_state.rb', line 23
def update_properties!(properties)
update_properties(properties)
save!
end
|
#valid? ⇒ Boolean
57
58
59
|
# File 'lib/dolly/document_state.rb', line 57
def valid?
true
end
|