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