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
|
# File 'lib/version-one/relation_multi_value.rb', line 6
def initialize(val = nil)
set(val)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
43
44
45
|
# File 'lib/version-one/relation_multi_value.rb', line 43
def method_missing(method_name, *args, &block)
@assets.values.send(method_name, *args, &block)
end
|
Instance Method Details
#<<(val) ⇒ Object
10
11
12
13
|
# File 'lib/version-one/relation_multi_value.rb', line 10
def <<(val)
val = AssetRef.for(val)
@assets[val.id] = val
end
|
#added ⇒ Object
23
24
25
|
# File 'lib/version-one/relation_multi_value.rb', line 23
def added
@assets.values.select{|v| !@original_assets.key?(v.id) }
end
|
#empty? ⇒ Boolean
39
40
41
|
# File 'lib/version-one/relation_multi_value.rb', line 39
def empty?
@assets.empty?
end
|
#get_all(fields = nil) ⇒ Object
35
36
37
|
# File 'lib/version-one/relation_multi_value.rb', line 35
def get_all(fields=nil)
each { |ref| ref.get(fields) }
end
|
#removed ⇒ Object
27
28
29
|
# File 'lib/version-one/relation_multi_value.rb', line 27
def removed
@original_assets.values.select{|v| !@assets.key?(v.id) }
end
|
#set(val) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/version-one/relation_multi_value.rb', line 15
def set(val)
val ||= []
val = [val] unless val.is_a?(Array)
@assets = val.map{|v| AssetRef.for(v) }.index_by(&:id)
@original_assets ||= @assets.dup
self
end
|
#unchanged! ⇒ Object
31
32
33
|
# File 'lib/version-one/relation_multi_value.rb', line 31
def unchanged!
@original_assets = @assets.dup
end
|