class ActiveForce::Mapping
Constants
- STRINGLIKE_TYPES
Public Class Methods
new(model)
click to toggle source
# File lib/active_force/mapping.rb, line 17 def initialize model @model = model end
Public Instance Methods
field(name, options)
click to toggle source
# File lib/active_force/mapping.rb, line 29 def field name, options fields.merge!({ name => ActiveForce::Attribute.new(name, options) }) end
mappings()
click to toggle source
# File lib/active_force/mapping.rb, line 21 def mappings Hash[fields.map { |field, attr| [field, attr.sfdc_name] }] end
sfdc_names()
click to toggle source
# File lib/active_force/mapping.rb, line 25 def sfdc_names mappings.values end
table()
click to toggle source
# File lib/active_force/mapping.rb, line 33 def table @table ||= ActiveForce::Table.new @model end
translate_to_sf(attributes)
click to toggle source
# File lib/active_force/mapping.rb, line 37 def translate_to_sf attributes attrs = attributes.map do |attribute, value| attr = fields[attribute.to_sym] [attr.sfdc_name, attr.value_for_hash(value)] end Hash[attrs] end
translate_value(value, field_name)
click to toggle source
# File lib/active_force/mapping.rb, line 45 def translate_value value, field_name return value unless !!field_name typecast_value value, fields[field_name].as end
Private Instance Methods
fields()
click to toggle source
# File lib/active_force/mapping.rb, line 53 def fields @fields ||= {} end
typecast_value(value, type)
click to toggle source
Handles Salesforce FieldTypes as described here: www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_describesobjects_describesobjectresult.htm#i1427700
# File lib/active_force/mapping.rb, line 59 def typecast_value value, type case type when *STRINGLIKE_TYPES value.to_s when :boolean !['false','0','f'].include? value.to_s.downcase when :int value.to_i when :double, :percent value.to_f when :date Date.parse value when :datetime DateTime.parse value else value end end