class VersionOne::RelationMultiValue
Public Class Methods
new(val = nil)
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 6 def initialize(val = nil) @assets = {} @original_assets = {} set(val) end
Public Instance Methods
<<(val)
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 12 def <<(val) val = AssetRef.for(val) @assets[val.id] = val end
added()
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 29 def added @assets.values.select{|v| !@original_assets.key?(v.id) } end
empty?()
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 45 def empty? @assets.empty? end
get_all(fields=nil)
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 41 def get_all(fields=nil) each { |ref| ref.get(fields) } end
method_missing(method_name, *args, &block)
click to toggle source
# 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
removed()
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 33 def removed @original_assets.values.select{|v| !@assets.key?(v.id) } end
set(val)
click to toggle source
# 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!()
click to toggle source
# File lib/version-one/relation_multi_value.rb, line 37 def unchanged! @original_assets = @assets.dup end