Sha256: 576840de06665ff26d517537432cb8e220e795d5a460374bf4cf47769b6ff769
Contents?: true
Size: 1.08 KB
Versions: 49
Compression:
Stored size: 1.08 KB
Contents
module Fog module Associations # = Fog Multiple Association # # This class handles multiple association between the models. # It expects the provider to return a collection of ids. # The association models will be loaded based on the collection of ids. class ManyIdentities < Default def create_setter model.class_eval <<-EOS, __FILE__, __LINE__ def #{name}=(new_#{name}) associations[:#{name}] = Array(new_#{name}).map do |association| association.respond_to?(:identity) ? association.identity : association end end EOS end def create_getter model.class_eval <<-EOS, __FILE__, __LINE__ def #{name} return [] if associations[:#{name}].nil? data = Array(associations[:#{name}]).map do |association| service.send(self.class.associations[:#{name}]).get(association) end #{association_class}.new(data) end EOS end end end end
Version data entries
49 entries across 46 versions & 3 rubygems