Sha256: 2d8abed75a269469cfc11dee96ce7bf8fdb2489950c3c9bfd53438086f676487

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

module SugarCRM; module AssociationMethods
  
  # Returns an array of the module link fields
  def associations_from_module_link_fields
    self.class._module.link_fields.keys
  end
  
  # Generates the association proxy methods for related modules
  def define_association_methods
    return if association_methods_generated?
    @associations.each do |k|
      self.class.module_eval %Q?
      def #{k}
        query_association :#{k}
      end
      def #{k}=(value)
        update_association :#{k},value
      end
      ?
    end
    self.class.association_methods_generated = true
  end
  
  #
  #  {"email_addresses"=>
  #    {"name"=>"email_addresses",
  #     "module"=>"EmailAddress",
  #     "bean_name"=>"EmailAddress",
  #     "relationship"=>"users_email_addresses",
  #     "type"=>"link"},
  #
  def query_association(association)
    klass = self.class._module.link_fields[association.to_s]["module"]
    objects = SugarCRM.connection.get_relationships(
      self.class._module.name,
      self.id,
      association.to_s
    )
  end
  
  def update_association(association, value)
    false
  end
  
end; end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sugarcrm-0.7.9 lib/sugarcrm/association_methods.rb
sugarcrm-0.7.8 lib/sugarcrm/association_methods.rb
sugarcrm-0.7.7 lib/sugarcrm/association_methods.rb
sugarcrm-0.7.2 lib/sugarcrm/association_methods.rb