Module: Shipindo::ClassMethods

Included in:
Shipindo
Defined in:
lib/shipindo/carriers.rb

Instance Method Summary collapse

Instance Method Details

#find_carrier(name) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/shipindo/carriers.rb', line 24

def find_carrier(name)
  case name.downcase
    when 'jne'
      Shipindo::Carrier::Jne
    else
      raise(NameError, "unknown carrier #{name}")
  end
end

#find_city(options) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/shipindo/carriers.rb', line 7

def find_city(options)
  options[:carrier] ||= 'jne'

  klass = find_carrier(options[:carrier])
  city = klass.new.find_city(options[:name])

  options.merge(city) if city
end

#find_rates(options) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/shipindo/carriers.rb', line 16

def find_rates(options)
  # jne is default for 99% Indonesia online shop..
  options[:carrier] ||= 'jne'

  klass = find_carrier(options[:carrier])
  klass.new.find_rates(options)
end