class IngramMicro::BaseElement
Attributes
element[RW]
Public Class Methods
format(field, formatter)
click to toggle source
# File lib/ingram_micro/base_element.rb, line 21 def self.format(field, formatter) @formatters ||= {} @formatters[field] = formatter end
new(options={})
click to toggle source
# File lib/ingram_micro/base_element.rb, line 4 def initialize(options={}) @element = {} self.defaults.each do |field, default| value = (options[field] ? options[field] : default) @element[field] = value end @element[:customer_id] ||= IngramMicro.configuration.customer_id end
Private Class Methods
formatter_for(field)
click to toggle source
# File lib/ingram_micro/base_element.rb, line 28 def self.formatter_for(field) if @formatters && @formatters[field] @formatters[field] else IngramMicro::NullFormatter.new end end
Public Instance Methods
build(builder)
click to toggle source
# File lib/ingram_micro/base_element.rb, line 13 def build(builder) self.defaults.keys.each do |field| element_name = field.to_s.gsub('_', '-') element_value = formatted_value_of(field) builder.send(element_name, element_value) end end
Private Instance Methods
formatted_value_of(field)
click to toggle source
# File lib/ingram_micro/base_element.rb, line 36 def formatted_value_of(field) self.class.formatter_for(field).format(@element[field]) end
integer?(string)
click to toggle source
# File lib/ingram_micro/base_element.rb, line 40 def integer?(string) Integer(string) != nil rescue false end