Module: ActiveRecordExtension::ClassMethods

Defined in:
lib/active_record_extension.rb

Overview

add your static(class) methods here

Instance Method Summary collapse

Instance Method Details

#belongs_to_field(field) ⇒ Object



68
69
70
71
# File 'lib/active_record_extension.rb', line 68

def belongs_to_field(field)
  @belongs_to_fields ||= belongs_to_fields
  @belongs_to_fields.select{|f| f.foreign_key == field}.first
end

#belongs_to_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
66
# File 'lib/active_record_extension.rb', line 63

def belongs_to_field?(field)
  @belongs_to_fields ||= belongs_to_fields
  @belongs_to_fields.map(&:foreign_key).include?(field)
end

#belongs_to_field_by_name(name) ⇒ Object



73
74
75
76
# File 'lib/active_record_extension.rb', line 73

def belongs_to_field_by_name(name)
  @belongs_to_fields ||= belongs_to_fields
  @belongs_to_fields.select{|f| f.name.to_s == name}.first
end

#belongs_to_fieldsObject



78
79
80
81
# File 'lib/active_record_extension.rb', line 78

def belongs_to_fields
  associations = reflect_on_all_associations
  associations.select { |a| a.macro == :belongs_to }
end

#many_to_many_associated_tablesObject

OData does not allow creating an entry for a table that is used in a many to many joining table. You must associate tables together. If a table uses this field, it indicates its a joining many to many table. An array of the 2 associated tables, eg [Table1, Table2]



95
96
97
# File 'lib/active_record_extension.rb', line 95

def many_to_many_associated_tables
  @many_to_many_associated_tables
end

#many_to_many_associated_tables=(value) ⇒ Object



99
100
101
# File 'lib/active_record_extension.rb', line 99

def many_to_many_associated_tables=(value)
  @many_to_many_associated_tables = value
end

#odata_field(field, options) ⇒ Object

In some cases the odata field name is different than the database field name. This method is used for this mapping



104
105
106
107
# File 'lib/active_record_extension.rb', line 104

def odata_field(field, options)
  @odata_property_key ||= {}
  @odata_property_key[field] = options[:crm_key]
end

#odata_field_value(crm_key) ⇒ Object



109
110
111
112
# File 'lib/active_record_extension.rb', line 109

def odata_field_value(crm_key)
  @odata_property_key ||= {}
  @odata_property_key[crm_key]
end

#odata_table_referenceObject

If odata refers to table differently than table name when using associations, you can use this method



84
85
86
# File 'lib/active_record_extension.rb', line 84

def odata_table_reference
  @odata_table_reference
end

#odata_table_reference=(value) ⇒ Object



88
89
90
# File 'lib/active_record_extension.rb', line 88

def odata_table_reference=(value)
  @odata_table_reference = value
end