Class: Calculator::Shipping::Correios::Base
- Inherits:
-
ShippingCalculator
- Object
- ShippingCalculator
- Calculator::Shipping::Correios::Base
- Defined in:
- app/models/spree/calculator/shipping/correios/base.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.description ⇒ Object
18 19 20 |
# File 'app/models/spree/calculator/shipping/correios/base.rb', line 18 def self.description raise StandardError, "Subclass must implement description" end |
.service_code ⇒ Object
22 23 24 |
# File 'app/models/spree/calculator/shipping/correios/base.rb', line 22 def self.service_code raise StandardError, "Subclass must implement service code" end |
Instance Method Details
#available?(package) ⇒ Boolean
10 11 12 13 14 15 16 |
# File 'app/models/spree/calculator/shipping/correios/base.rb', line 10 def available?(package) is_package_shippable?(package) !compute(package).nil? rescue Spree::ShippingError false end |
#compute_package(package) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/models/spree/calculator/shipping/correios/base.rb', line 26 def compute_package(package) service_code = self.class.service_code retrieve_correios_response(package) return nil if @rates_result.kind_of?(Spree::ShippingError) return nil if @rates_result.empty? return nil unless @rates_result.is_a?(Hash) rate = @rates_result[service_code][:price] return nil unless rate return nil if rate.to_f == 0.0 return rate end |
#timing_info(package) ⇒ Object
42 43 44 45 46 |
# File 'app/models/spree/calculator/shipping/correios/base.rb', line 42 def timing_info(package) @rates_result ||= retrieve_correios_response(package) service_code = self.class.service_code @rates_result[service_code][:timing_info] end |