patch_ruby 1.2.5 → 1.5.2

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.
@@ -11,5 +11,5 @@ OpenAPI Generator version: 4.3.1
11
11
  =end
12
12
 
13
13
  module Patch
14
- VERSION = '1.2.5'
14
+ VERSION = '1.5.2'
15
15
  end
data/patch_ruby.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.platform = Gem::Platform::RUBY
22
22
  s.authors = ["Patch Technology"]
23
23
  s.email = ["developers@usepatch.com"]
24
- s.homepage = "https://www.usepatch.com"
24
+ s.homepage = "https://www.patch.io"
25
25
  s.summary = "Ruby wrapper for the Patch API"
26
26
  s.description = "Ruby wrapper for the Patch API"
27
27
  s.license = 'MIT'
@@ -18,7 +18,7 @@ describe Patch::Configuration do
18
18
  before(:each) do
19
19
  # uncomment below to setup host and base_path
20
20
  # require 'URI'
21
- # uri = URI.parse("https://api.usepatch.com")
21
+ # uri = URI.parse("https://api.patch.io")
22
22
  # Patch.configure do |c|
23
23
  # c.host = uri.host
24
24
  # c.base_path = uri.path
@@ -28,14 +28,14 @@ describe Patch::Configuration do
28
28
  describe '#base_url' do
29
29
  it 'should have the default value' do
30
30
  # uncomment below to test default value of the base path
31
- # expect(config.base_url).to eq("https://api.usepatch.com")
31
+ # expect(config.base_url).to eq("https://api.patch.io")
32
32
  end
33
33
 
34
34
  it 'should remove trailing slashes' do
35
35
  [nil, '', '/', '//'].each do |base_path|
36
36
  config.base_path = base_path
37
37
  # uncomment below to test trailing slashes
38
- # expect(config.base_url).to eq("https://api.usepatch.com")
38
+ # expect(config.base_url).to eq("https://api.patch.io")
39
39
  end
40
40
  end
41
41
  end
@@ -24,4 +24,59 @@ RSpec.describe 'Estimates Integration' do
24
24
 
25
25
  expect(estimates.length).not_to be_zero
26
26
  end
27
+
28
+ it 'supports creating flight estimates' do
29
+ distance_m = 10_000_000
30
+ flight_estimate = Patch::Estimate.create_flight_estimate(
31
+ distance_m: distance_m,
32
+ create_order: false
33
+ )
34
+
35
+ expect(flight_estimate.data.type).to eq 'flight'
36
+ expect(flight_estimate.data.mass_g).to eq 1_031_697
37
+ end
38
+
39
+ it 'supports creating vehicle estimates' do
40
+ distance_m = 10_000
41
+ make = "Toyota"
42
+ model = "Corolla"
43
+ year = 2000
44
+
45
+ vehicle_estimate = Patch::Estimate.create_vehicle_estimate(
46
+ distance_m: distance_m,
47
+ make: make,
48
+ model: model,
49
+ year: year,
50
+ create_order: false
51
+ )
52
+
53
+ expect(vehicle_estimate.data.type).to eq 'vehicle'
54
+ expect(vehicle_estimate.data.mass_g).to eq 5_500
55
+ end
56
+
57
+ it 'supports creating vehicle estimates with partial information' do
58
+ distance_m = 10_000
59
+
60
+ vehicle_estimate = Patch::Estimate.create_vehicle_estimate(
61
+ distance_m: distance_m,
62
+ create_order: false
63
+ )
64
+
65
+ expect(vehicle_estimate.data.type).to eq 'vehicle'
66
+ expect(vehicle_estimate.data.mass_g).to eq 2_132
67
+ end
68
+
69
+ it 'supports creating shipping estimates' do
70
+ distance_m = 100_000_000
71
+ package_mass_g = 10_000
72
+ create_estimate_response = Patch::Estimate.create_shipping_estimate(
73
+ distance_m: distance_m,
74
+ package_mass_g: package_mass_g,
75
+ transportation_method: 'rail',
76
+ create_order: false
77
+ )
78
+
79
+ expect(create_estimate_response.data.type).to eq 'shipping'
80
+ expect(create_estimate_response.data.mass_g).to eq 12_431
81
+ end
27
82
  end
@@ -40,11 +40,12 @@ RSpec.describe 'Orders Integration' do
40
40
 
41
41
  create_order_response = Patch::Order.create_order(mass_g: order_mass_g, project_id: project_id)
42
42
 
43
+ order = create_order_response.data
43
44
  expect(create_order_response.success).to eq true
44
- expect(create_order_response.data.id).not_to be_nil
45
- expect(create_order_response.data.mass_g).to eq(order_mass_g)
46
- expect(create_order_response.data.price_cents_usd.to_i).to eq(expected_price)
47
- expect(create_order_response.data.patch_fee_cents_usd).not_to be_empty
45
+ expect(order.id).not_to be_nil
46
+ expect(order.mass_g).to eq(order_mass_g)
47
+ expect(order.price_cents_usd.to_i).to be_between(expected_price - 1, expected_price + 1)
48
+ expect(order.patch_fee_cents_usd).not_to be_empty
48
49
  end
49
50
 
50
51
  it 'supports create with a total price' do
@@ -66,7 +67,7 @@ RSpec.describe 'Orders Integration' do
66
67
 
67
68
  expect(order.id).not_to be_nil
68
69
  expect(order.mass_g).to eq(5_00_000)
69
- expect(order.price_cents_usd.to_i).to eq(500)
70
+ expect(order.price_cents_usd).not_to be_empty
70
71
  expect(order.patch_fee_cents_usd).not_to be_empty
71
72
  expect(
72
73
  order.price_cents_usd.to_i + order.patch_fee_cents_usd.to_i
@@ -10,8 +10,12 @@ RSpec.describe 'Preferences Integration' do
10
10
  expect(retrieve_projects_response.data.length).not_to be_zero
11
11
  project_id = retrieve_projects_response.data.first.id
12
12
 
13
- create_preference_response = Patch::Preference.create_preference(project_id: project_id)
14
- preference_id = create_preference_response.data.id
13
+ begin
14
+ create_preference_response = Patch::Preference.create_preference(project_id: project_id)
15
+ preference_id = create_preference_response.data.id
16
+ rescue => Patch::ApiError
17
+ preference_id = Patch::Preference.retrieve_preferences().data.first.id
18
+ end
15
19
 
16
20
  retrieve_preference_response = Patch::Preference.retrieve_preference(preference_id)
17
21
  expect(retrieve_preference_response.data.id).to eq preference_id
@@ -22,6 +22,26 @@ RSpec.describe 'Projects Integration' do
22
22
  expect(retrieve_project_response.data.id).to eq project_id
23
23
  end
24
24
 
25
+ it 'supports filtering projects' do
26
+ country = 'US'
27
+ projects = Patch::Project.retrieve_projects(country: country)
28
+ projects.data.map do |project|
29
+ expect(project.country).to eq country
30
+ end
31
+
32
+ type = 'dac'
33
+ projects = Patch::Project.retrieve_projects(type: type)
34
+ projects.data.map do |project|
35
+ expect(project.type).to eq type
36
+ end
37
+
38
+ minimum_available_mass = 100
39
+ projects = Patch::Project.retrieve_projects(minimum_available_mass: minimum_available_mass)
40
+ projects.data.map do |project|
41
+ expect(project.remaining_mass_g >= minimum_available_mass).to be true
42
+ end
43
+ end
44
+
25
45
  describe 'returned fields' do
26
46
  before do
27
47
  @project = Patch::Project.retrieve_projects(page: 1).data.first
@@ -30,7 +30,7 @@ describe 'CreateMassEstimateRequest' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { project_id: @instance.project_id, mass_g: @instance.mass_g } }
33
- let(:nullable_properties) { Set.new }
33
+ let(:nullable_properties) { Set.new(["create_order"]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of CreateMassEstimateRequest' do
@@ -44,7 +44,7 @@ describe 'Project' do
44
44
  standard: @instance.standard
45
45
  }
46
46
  }
47
- let(:nullable_properties) { Set.new(["photos", "standard"]) }
47
+ let(:nullable_properties) { Set.new(["photos", "standard", "sdgs"]) }
48
48
  end
49
49
 
50
50
  describe 'test an instance of Project' do
@@ -0,0 +1,18 @@
1
+ describe Patch do
2
+ context 'Models' do
3
+ it 'defines all models' do
4
+ constants.each do |constant|
5
+ expect { Patch.const_get(constant) }.not_to raise_error
6
+ end
7
+ end
8
+ end
9
+
10
+ def constants
11
+ # Given a file path return the constant of that path, for example:
12
+ # 'lib/patch_ruby/models/project_response.rb' -> ProjectResponse
13
+ Dir.glob("lib/patch_ruby/models/*.rb").map do |file|
14
+ parsed_filename = file.split('/').last.split('.').first
15
+ constant = parsed_filename.split('_').map(&:capitalize).join('')
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: patch_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patch Technology
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-13 00:00:00.000000000 Z
11
+ date: 2021-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -110,6 +110,7 @@ files:
110
110
  - lib/patch_ruby/models/project.rb
111
111
  - lib/patch_ruby/models/project_list_response.rb
112
112
  - lib/patch_ruby/models/project_response.rb
113
+ - lib/patch_ruby/models/sdg.rb
113
114
  - lib/patch_ruby/models/standard.rb
114
115
  - lib/patch_ruby/version.rb
115
116
  - patch_ruby.gemspec
@@ -160,9 +161,10 @@ files:
160
161
  - spec/models/project_list_response_spec.rb
161
162
  - spec/models/project_response_spec.rb
162
163
  - spec/models/project_spec.rb
164
+ - spec/patch_ruby_spec.rb
163
165
  - spec/spec_helper.rb
164
166
  - spec/support/shared/generated_classes.rb
165
- homepage: https://www.usepatch.com
167
+ homepage: https://www.patch.io
166
168
  licenses:
167
169
  - MIT
168
170
  metadata: {}
@@ -186,52 +188,53 @@ signing_key:
186
188
  specification_version: 4
187
189
  summary: Ruby wrapper for the Patch API
188
190
  test_files:
189
- - spec/api/projects_api_spec.rb
190
- - spec/api/orders_api_spec.rb
191
191
  - spec/api/preferences_api_spec.rb
192
192
  - spec/api/estimates_api_spec.rb
193
+ - spec/api/projects_api_spec.rb
194
+ - spec/api/orders_api_spec.rb
193
195
  - spec/api_client_spec.rb
194
196
  - spec/configuration_spec.rb
195
197
  - spec/constants.rb
196
- - spec/factories/estimates.rb
197
- - spec/factories/estimate_list_responses.rb
198
- - spec/factories/create_order_requests.rb
199
- - spec/factories/project_list_responses.rb
200
- - spec/factories/order_list_responses.rb
201
- - spec/factories/estimate_responses.rb
202
- - spec/factories/error_responses.rb
203
198
  - spec/factories/preference_list_responses.rb
204
- - spec/factories/preference_responses.rb
205
- - spec/factories/meta_index_objects.rb
206
199
  - spec/factories/order_responses.rb
207
- - spec/factories/preferences.rb
208
- - spec/factories/project_responses.rb
209
- - spec/factories/create_preference_requests.rb
210
- - spec/factories/orders.rb
211
200
  - spec/factories/projects.rb
201
+ - spec/factories/error_responses.rb
202
+ - spec/factories/orders.rb
203
+ - spec/factories/create_order_requests.rb
212
204
  - spec/factories/create_mass_estimate_requests.rb
205
+ - spec/factories/project_responses.rb
206
+ - spec/factories/estimate_list_responses.rb
207
+ - spec/factories/order_list_responses.rb
208
+ - spec/factories/create_preference_requests.rb
213
209
  - spec/factories/allocations.rb
214
- - spec/integration/orders_spec.rb
210
+ - spec/factories/preferences.rb
211
+ - spec/factories/project_list_responses.rb
212
+ - spec/factories/estimates.rb
213
+ - spec/factories/preference_responses.rb
214
+ - spec/factories/estimate_responses.rb
215
+ - spec/factories/meta_index_objects.rb
215
216
  - spec/integration/estimates_spec.rb
217
+ - spec/integration/orders_spec.rb
216
218
  - spec/integration/preferences_spec.rb
217
219
  - spec/integration/projects_spec.rb
220
+ - spec/models/create_order_request_spec.rb
221
+ - spec/models/create_mass_estimate_request_spec.rb
222
+ - spec/models/order_spec.rb
223
+ - spec/models/allocation_spec.rb
224
+ - spec/models/order_list_response_spec.rb
225
+ - spec/models/estimate_list_response_spec.rb
218
226
  - spec/models/error_response_spec.rb
219
- - spec/models/preference_list_response_spec.rb
227
+ - spec/models/project_list_response_spec.rb
220
228
  - spec/models/preference_spec.rb
221
- - spec/models/project_response_spec.rb
222
- - spec/models/project_spec.rb
223
- - spec/models/create_preference_request_spec.rb
224
229
  - spec/models/order_response_spec.rb
225
- - spec/models/order_list_response_spec.rb
226
- - spec/models/allocation_spec.rb
227
- - spec/models/estimate_response_spec.rb
228
- - spec/models/order_spec.rb
230
+ - spec/models/preference_list_response_spec.rb
231
+ - spec/models/create_preference_request_spec.rb
232
+ - spec/models/project_response_spec.rb
233
+ - spec/models/estimate_spec.rb
229
234
  - spec/models/meta_index_object_spec.rb
230
- - spec/models/project_list_response_spec.rb
231
235
  - spec/models/preference_response_spec.rb
232
- - spec/models/estimate_spec.rb
233
- - spec/models/create_mass_estimate_request_spec.rb
234
- - spec/models/estimate_list_response_spec.rb
235
- - spec/models/create_order_request_spec.rb
236
+ - spec/models/project_spec.rb
237
+ - spec/models/estimate_response_spec.rb
238
+ - spec/patch_ruby_spec.rb
236
239
  - spec/spec_helper.rb
237
240
  - spec/support/shared/generated_classes.rb