spree_temando 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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