class ReactiveShipping::BenchmarkCarrier

Public Instance Methods

find_rates(origin, destination, packages, options = {}) click to toggle source
# File lib/reactive_shipping/carriers/benchmark_carrier.rb, line 10
def find_rates(origin, destination, packages, options = {})
  origin = Location.from(origin)
  destination = Location.from(destination)
  packages = Array(packages)

  delay_time = generate_simulated_lag

  bogus_estimate = RateEstimate.new(
    origin, destination, @@name,
    "Free Benchmark Shipping", :total_price => 0, :currency => 'USD',
                               :packages => packages, :delivery_range => [Time.now.utc.strftime("%Y-%d-%m"), Time.now.utc.strftime("%Y-%d-%m")]
    )
  RateResponse.new(true, "Success (delayed #{delay_time} seconds)", {:rate => 'free'}, :rates => [bogus_estimate], :xml => "<rate>free</rate>")
end

Private Instance Methods

generate_simulated_lag(max_delay = 30) click to toggle source
# File lib/reactive_shipping/carriers/benchmark_carrier.rb, line 27
def generate_simulated_lag(max_delay = 30)
  sleep Random.rand * max_delay
end