Class: CouchRest::Model::CastedHash
- Inherits:
-
Hash
- Object
- Hash
- CouchRest::Model::CastedHash
show all
- Includes:
- CastedBy, Dirty
- Defined in:
- lib/couchrest/model/casted_hash.rb
Instance Attribute Summary (collapse)
Class Method Summary
(collapse)
Instance Method Summary
(collapse)
Methods included from Dirty
#couchrest_attribute_will_change!, #couchrest_parent_will_change!, #use_dirty?
Methods included from CastedBy
#base_doc, #base_doc?
Methods inherited from Hash
===
Instance Attribute Details
- (Object) casted_by_property
Returns the value of attribute casted_by_property
8
9
10
|
# File 'lib/couchrest/model/casted_hash.rb', line 8
def casted_by_property
@casted_by_property
end
|
Class Method Details
+ (Object) [](hash, property, parent = nil)
10
11
12
13
14
15
|
# File 'lib/couchrest/model/casted_hash.rb', line 10
def self.[](hash, property, parent = nil)
obj = super(hash)
obj.casted_by_property = property
obj.casted_by = parent unless parent.nil?
obj
end
|
Instance Method Details
- (Object) []=(key, obj)
22
23
24
25
|
# File 'lib/couchrest/model/casted_hash.rb', line 22
def []= key, obj
couchrest_attribute_will_change!(key) if use_dirty? && obj != self[key]
super(key, obj)
end
|
- (Object) attributes
18
19
20
|
# File 'lib/couchrest/model/casted_hash.rb', line 18
def attributes
self
end
|
- (Object) clear
59
60
61
62
|
# File 'lib/couchrest/model/casted_hash.rb', line 59
def clear
self.keys.each { |key| couchrest_attribute_will_change!(key) } if use_dirty?
super
end
|
- (Object) delete(key)
27
28
29
30
|
# File 'lib/couchrest/model/casted_hash.rb', line 27
def delete(key)
couchrest_attribute_will_change!(key) if use_dirty? && include?(key)
super(key)
end
|
- (Object) delete_if
64
65
66
67
68
69
70
71
|
# File 'lib/couchrest/model/casted_hash.rb', line 64
def delete_if
if use_dirty? && block_given?
self.keys.each do |key|
couchrest_attribute_will_change!(key) if yield key, self[key]
end
end
super
end
|
- (Object) keep_if
74
75
76
77
78
79
80
81
|
# File 'lib/couchrest/model/casted_hash.rb', line 74
def keep_if
if use_dirty? && block_given?
self.keys.each do |key|
couchrest_attribute_will_change!(key) if !yield key, self[key]
end
end
super
end
|
- (Object) merge!(other_hash)
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/couchrest/model/casted_hash.rb', line 32
def merge!(other_hash)
if use_dirty? && other_hash && other_hash.kind_of?(Hash)
other_hash.keys.each do |key|
if self[key] != other_hash[key] || !include?(key)
couchrest_attribute_will_change!(key)
end
end
end
super(other_hash)
end
|
- (Object) replace(other_hash)
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/couchrest/model/casted_hash.rb', line 43
def replace(other_hash)
if use_dirty? && other_hash && other_hash.kind_of?(Hash)
other_hash.keys.each do |key|
if self[key] != other_hash[key] || !include?(key)
couchrest_attribute_will_change!(key)
end
end
old_keys = self.keys.reject { |key| other_hash.include?(key) }
old_keys.each { |key| couchrest_attribute_will_change!(key) }
end
super(other_hash)
end
|