Sha256: 7b4c63e2c0078675e81d8618f9de05bf72040383d52faa6bdce1e03455bdf02d
Contents?: true
Size: 974 Bytes
Versions: 13
Compression:
Stored size: 974 Bytes
Contents
require 'active_force/field' require 'active_force/table' require 'forwardable' module ActiveForce class Mapping extend Forwardable def_delegators :table, :custom_table?, :table_name def initialize model @model = model end def mappings @mappings ||= Hash[fields.map { |field, attr| [field, attr.sfdc_name] }] end def sfdc_names mappings.values end def field name, options fields.merge!({ name => ActiveForce::Field.new(name, options) }) end def table @table ||= ActiveForce::Table.new @model end def translate_to_sf attributes attrs = attributes.map do |attribute, value| field = fields[attribute.to_sym] [field.sfdc_name, field.value_for_hash(value)] end Hash[attrs] end def translate_value value, field_name return value unless !!field_name value end private def fields @fields ||= {} end end end
Version data entries
13 entries across 13 versions & 1 rubygems