class ActiveForce::Association::Association

Attributes

options[RW]
relation_name[RW]

Public Class Methods

new(parent, relation_name, options = {}) click to toggle source
# File lib/active_force/association/association.rb, line 9
def initialize parent, relation_name, options = {}
  @parent        = parent
  @relation_name = relation_name
  @options       = options
  define_relation_method
end

Public Instance Methods

foreign_key() click to toggle source
# File lib/active_force/association/association.rb, line 20
def foreign_key
  options[:foreign_key] || default_foreign_key
end
relation_model() click to toggle source
# File lib/active_force/association/association.rb, line 16
def relation_model
  options[:model] || relation_name.to_s.singularize.camelcase.constantize
end
relationship_name() click to toggle source
# File lib/active_force/association/association.rb, line 24
def relationship_name
  options[:relationship_name] || relation_model.table_name
end
represents_sfdc_table?(sfdc_table_name) click to toggle source

Does this association's relation_model represent sfdc_table_name? Examples of sfdc_table_name could be 'Quota__r' or 'Account'.

# File lib/active_force/association/association.rb, line 32
def represents_sfdc_table?(sfdc_table_name)
  name = sfdc_table_name.sub(/__r\z/, '').singularize
  relationship_name.sub(/__c\z|__r\z/, '') == name
end
sfdc_association_field() click to toggle source
# File lib/active_force/association/association.rb, line 37
def sfdc_association_field
  relationship_name.gsub /__c\z/, '__r'
end

Private Instance Methods

infer_foreign_key_from_model(model) click to toggle source
# File lib/active_force/association/association.rb, line 43
def infer_foreign_key_from_model(model)
  name = model.custom_table? ? model.name : model.table_name
  name.foreign_key.to_sym
end