spree_temando 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -4,9 +4,37 @@ begin
4
4
  rescue LoadError
5
5
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
6
  end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'SpreeTemando'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
7
25
 
8
- require 'rspec/core/rake_task'
9
26
 
10
- RSpec::Core::RakeTask.new('spec')
11
27
 
12
- task :default => :spec
28
+ Bundler::GemHelper.install_tasks
29
+
30
+ require 'rake/testtask'
31
+
32
+ Rake::TestTask.new(:test) do |t|
33
+ t.libs << 'lib'
34
+ t.libs << 'test'
35
+ t.pattern = 'test/**/*_test.rb'
36
+ t.verbose = false
37
+ end
38
+
39
+
40
+ task :default => :test
@@ -18,15 +18,25 @@ module Spree
18
18
 
19
19
  def cheapest(destination, line_items)
20
20
  quotes = find_quotes(destination, line_items)
21
+ return nil if quotes.nil?
21
22
  cheapest = quotes.sort_by { |q| q.total_price }.first
22
- { :price => cheapest.total_price, :minimum_eta => cheapest.minimum_eta, :maximum_eta => cheapest.maximum_eta, :quote => cheapest }
23
+ if cheapest then
24
+ { :price => cheapest.total_price, :minimum_eta => cheapest.minimum_eta, :maximum_eta => cheapest.maximum_eta, :quote => cheapest }
25
+ else
26
+ nil
27
+ end
23
28
  end
24
29
 
25
30
  def fastest(destination, line_items)
26
31
  quotes = find_quotes(destination, line_items)
32
+ return nil if quotes.nil?
27
33
  fastest_eta = quotes.collect(&:maximum_eta).min
28
34
  cheapest = quotes.reject { |q| q.maximum_eta > fastest_eta }.sort_by { |q| q.total_price }.first
29
- { :price => cheapest.total_price, :minimum_eta => cheapest.minimum_eta, :maximum_eta => cheapest.maximum_eta, :quote => cheapest }
35
+ if cheapest then
36
+ { :price => cheapest.total_price, :minimum_eta => cheapest.minimum_eta, :maximum_eta => cheapest.maximum_eta, :quote => cheapest }
37
+ else
38
+ nil
39
+ end
30
40
  end
31
41
 
32
42
  def temando_origin
@@ -57,6 +67,8 @@ module Spree
57
67
  data = cheapest(destination.to_temando_location, object.line_items)
58
68
  end
59
69
 
70
+ return if data.nil?
71
+
60
72
  quote = Spree::TemandoQuote.new_or_update_from_quote(self, object, data[:quote], destination)
61
73
 
62
74
  # Store the Quote data against the Order and these LineItems if they are persisted
@@ -77,12 +89,16 @@ private
77
89
  def find_quotes(destination, line_items)
78
90
  delivery = Temando::Delivery::DoorToDoor.new(self.temando_origin, destination)
79
91
 
80
- request = Temando::Request.new
81
- line_items.reject { |i| i.quantity < 1 }.each do |item|
82
- request.items << item.to_temando_item
83
- end
92
+ begin
93
+ request = Temando::Request.new
94
+ line_items.reject { |i| i.quantity < 1 }.each do |item|
95
+ request.items << item.to_temando_item
96
+ end
84
97
 
85
- request.quotes_for(delivery)
98
+ request.quotes_for(delivery)
99
+ rescue Temando::Api::Exceptions::SoapError
100
+ return nil
101
+ end
86
102
  end
87
103
  end
88
104
  end
@@ -1,6 +1,3 @@
1
- require 'spree_core'
2
- require 'temando'
3
-
4
1
  module SpreeTemando
5
2
  class Engine < ::Rails::Engine
6
3
  isolate_namespace SpreeTemando
@@ -12,7 +9,7 @@ module SpreeTemando
12
9
  Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
13
10
  Rails.configuration.cache_classes ? require(c) : load(c)
14
11
  end
15
- ::Temando::Api::Base.logger = Rails.logger
12
+ Temando::Api::Base.logger = Rails.logger
16
13
  end
17
14
 
18
15
  initializer "spree_temando.register.shipping_calculators" do |app|
@@ -1,3 +1,3 @@
1
1
  module SpreeTemando
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_temando
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -60,13 +60,13 @@ dependencies:
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.1.3
62
62
  - !ruby/object:Gem::Dependency
63
- name: combustion
63
+ name: rspec
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 0.3.1
69
+ version: 2.11.0
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,23 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 0.3.1
78
- - !ruby/object:Gem::Dependency
79
- name: rspec-rails
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
77
+ version: 2.11.0
94
78
  - !ruby/object:Gem::Dependency
95
79
  name: faker
96
80
  requirement: !ruby/object:Gem::Requirement
@@ -139,22 +123,6 @@ dependencies:
139
123
  - - ! '>='
140
124
  - !ruby/object:Gem::Version
141
125
  version: '0'
142
- - !ruby/object:Gem::Dependency
143
- name: sqlite3
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
158
126
  description: Adds temando shipping support to Spree
159
127
  email:
160
128
  - jason@reinteractive.net