Class: VersionOne::RelationMultiValue
- Inherits:
-
Object
- Object
- VersionOne::RelationMultiValue
show all
- Defined in:
- lib/version-one/relation_multi_value.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of RelationMultiValue.
6
7
8
9
10
|
# File 'lib/version-one/relation_multi_value.rb', line 6
def initialize(val = nil)
@assets = {}
@original_assets = {}
set(val)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
49
50
51
|
# File 'lib/version-one/relation_multi_value.rb', line 49
def method_missing(method_name, *args, &block)
@assets.values.send(method_name, *args, &block)
end
|
Instance Method Details
#<<(val) ⇒ Object
12
13
14
15
|
# File 'lib/version-one/relation_multi_value.rb', line 12
def <<(val)
val = AssetRef.for(val)
@assets[val.id] = val
end
|
#added ⇒ Object
29
30
31
|
# File 'lib/version-one/relation_multi_value.rb', line 29
def added
@assets.values.select{|v| !@original_assets.key?(v.id) }
end
|
#empty? ⇒ Boolean
45
46
47
|
# File 'lib/version-one/relation_multi_value.rb', line 45
def empty?
@assets.empty?
end
|
#get_all(fields = nil) ⇒ Object
41
42
43
|
# File 'lib/version-one/relation_multi_value.rb', line 41
def get_all(fields=nil)
each { |ref| ref.get(fields) }
end
|
#removed ⇒ Object
33
34
35
|
# File 'lib/version-one/relation_multi_value.rb', line 33
def removed
@original_assets.values.select{|v| !@assets.key?(v.id) }
end
|
#set(val) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/version-one/relation_multi_value.rb', line 17
def set(val)
val ||= []
val = [val] unless val.is_a?(Array)
@assets = {}
val.each do |v|
v = AssetRef.for(v)
@assets[v.id] = v
end
@original_assets ||= @assets.dup
self
end
|
#unchanged! ⇒ Object
37
38
39
|
# File 'lib/version-one/relation_multi_value.rb', line 37
def unchanged!
@original_assets = @assets.dup
end
|