Method: ShipStation::Model#method_missing

Defined in:
lib/ship_station/api/model.rb

#method_missing(name, *args, &block) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ship_station/api/model.rb', line 40

def method_missing(name, *args, &block)
  association = self.class.associated.fetch(name)
  if association
    case association[:relationship]
    when :has_many
      foreign_key = association[:foreign_key]
      resource = name.to_s.singularize.capitalize.classify
      "ShipStation::#{resource}".constantize.where(foreign_key => self.send(foreign_key)).fetch
    when :belongs_to
      primary_key = association[:primary_key]
      resource = name.to_s.singularize.capitalize.classify
      "ShipStation::#{resource}".constantize.find(self.send(primary_key))
    else
      super
    end
  end
end