patch_ruby 1.1.0 → 1.3.0

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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -1
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +18 -2
  5. data/Makefile +10 -0
  6. data/README.md +48 -9
  7. data/lib/patch_ruby.rb +2 -0
  8. data/lib/patch_ruby/api/estimates_api.rb +195 -0
  9. data/lib/patch_ruby/models/allocation.rb +10 -0
  10. data/lib/patch_ruby/models/create_mass_estimate_request.rb +47 -1
  11. data/lib/patch_ruby/models/create_order_request.rb +54 -4
  12. data/lib/patch_ruby/models/create_preference_request.rb +7 -0
  13. data/lib/patch_ruby/models/error_response.rb +9 -0
  14. data/lib/patch_ruby/models/estimate.rb +24 -1
  15. data/lib/patch_ruby/models/estimate_list_response.rb +9 -0
  16. data/lib/patch_ruby/models/estimate_response.rb +9 -0
  17. data/lib/patch_ruby/models/meta_index_object.rb +11 -0
  18. data/lib/patch_ruby/models/order.rb +58 -1
  19. data/lib/patch_ruby/models/order_list_response.rb +9 -0
  20. data/lib/patch_ruby/models/order_response.rb +9 -0
  21. data/lib/patch_ruby/models/photo.rb +237 -0
  22. data/lib/patch_ruby/models/preference.rb +10 -0
  23. data/lib/patch_ruby/models/preference_list_response.rb +9 -0
  24. data/lib/patch_ruby/models/preference_response.rb +9 -0
  25. data/lib/patch_ruby/models/project.rb +74 -4
  26. data/lib/patch_ruby/models/project_list_response.rb +9 -0
  27. data/lib/patch_ruby/models/project_response.rb +9 -0
  28. data/lib/patch_ruby/models/standard.rb +254 -0
  29. data/lib/patch_ruby/version.rb +1 -1
  30. data/spec/constants.rb +3 -0
  31. data/spec/factories/allocations.rb +7 -0
  32. data/spec/factories/create_mass_estimate_requests.rb +6 -0
  33. data/spec/factories/create_order_requests.rb +8 -0
  34. data/spec/factories/create_preference_requests.rb +5 -0
  35. data/spec/factories/error_responses.rb +7 -0
  36. data/spec/factories/estimate_list_responses.rb +8 -0
  37. data/spec/factories/estimate_responses.rb +7 -0
  38. data/spec/factories/estimates.rb +8 -0
  39. data/spec/factories/meta_index_objects.rb +6 -0
  40. data/spec/factories/order_list_responses.rb +8 -0
  41. data/spec/factories/order_responses.rb +7 -0
  42. data/spec/factories/orders.rb +12 -0
  43. data/spec/factories/preference_list_responses.rb +8 -0
  44. data/spec/factories/preference_responses.rb +7 -0
  45. data/spec/factories/preferences.rb +7 -0
  46. data/spec/factories/project_list_responses.rb +8 -0
  47. data/spec/factories/project_responses.rb +7 -0
  48. data/spec/factories/projects.rb +15 -0
  49. data/spec/integration/estimates_spec.rb +41 -9
  50. data/spec/integration/orders_spec.rb +42 -5
  51. data/spec/integration/preferences_spec.rb +7 -3
  52. data/spec/integration/projects_spec.rb +19 -1
  53. data/spec/models/allocation_spec.rb +8 -1
  54. data/spec/models/create_mass_estimate_request_spec.rb +7 -1
  55. data/spec/models/create_order_request_spec.rb +7 -1
  56. data/spec/models/create_preference_request_spec.rb +8 -1
  57. data/spec/models/error_response_spec.rb +7 -1
  58. data/spec/models/estimate_list_response_spec.rb +7 -1
  59. data/spec/models/estimate_response_spec.rb +7 -1
  60. data/spec/models/estimate_spec.rb +8 -1
  61. data/spec/models/meta_index_object_spec.rb +7 -1
  62. data/spec/models/order_list_response_spec.rb +7 -1
  63. data/spec/models/order_response_spec.rb +7 -1
  64. data/spec/models/order_spec.rb +18 -1
  65. data/spec/models/preference_list_response_spec.rb +7 -1
  66. data/spec/models/preference_response_spec.rb +7 -1
  67. data/spec/models/preference_spec.rb +7 -1
  68. data/spec/models/project_list_response_spec.rb +7 -1
  69. data/spec/models/project_response_spec.rb +7 -1
  70. data/spec/models/project_spec.rb +21 -1
  71. data/spec/spec_helper.rb +11 -0
  72. data/spec/support/shared/generated_classes.rb +13 -0
  73. metadata +60 -17
@@ -20,13 +20,19 @@ require 'date'
20
20
  describe 'OrderResponse' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::OrderResponse.new
23
+ @instance = build(:order_response)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
+ let(:nullable_properties) { Set.new(["error"]) }
34
+ end
35
+
30
36
  describe 'test an instance of OrderResponse' do
31
37
  it 'should create an instance of OrderResponse' do
32
38
  expect(@instance).to be_instance_of(Patch::OrderResponse)
@@ -20,13 +20,30 @@ require 'date'
20
20
  describe 'Order' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::Order.new
23
+ @instance = build(:order)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) {
33
+ {
34
+ id: @instance.id,
35
+ mass_g: @instance.mass_g,
36
+ production: @instance.production,
37
+ state: @instance.state,
38
+ allocation_state: @instance.allocation_state,
39
+ price_cents_usd: @instance.price_cents_usd,
40
+ patch_fee_cents_usd: @instance.patch_fee_cents_usd,
41
+ metadata: @instance.metadata
42
+ }
43
+ }
44
+ let(:nullable_properties) { Set.new(["patch_fee_cents_usd", "price_cents_usd"]) }
45
+ end
46
+
30
47
  describe 'test an instance of Order' do
31
48
  it 'should create an instance of Order' do
32
49
  expect(@instance).to be_instance_of(Patch::Order)
@@ -20,13 +20,19 @@ require 'date'
20
20
  describe 'PreferenceListResponse' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::PreferenceListResponse.new
23
+ @instance = build(:preference_list_response)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data, meta: @instance.meta } }
33
+ let(:nullable_properties) { Set.new(["error"]) }
34
+ end
35
+
30
36
  describe 'test an instance of PreferenceListResponse' do
31
37
  it 'should create an instance of PreferenceListResponse' do
32
38
  expect(@instance).to be_instance_of(Patch::PreferenceListResponse)
@@ -20,13 +20,19 @@ require 'date'
20
20
  describe 'PreferenceResponse' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::PreferenceResponse.new
23
+ @instance = build(:preference_response)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
+ let(:nullable_properties) { Set.new(["error"]) }
34
+ end
35
+
30
36
  describe 'test an instance of PreferenceResponse' do
31
37
  it 'should create an instance of PreferenceResponse' do
32
38
  expect(@instance).to be_instance_of(Patch::PreferenceResponse)
@@ -20,13 +20,19 @@ require 'date'
20
20
  describe 'Preference' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::Preference.new
23
+ @instance = build(:preference)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) { { id: @instance.id, project: @instance.project.to_hash, allocation_percentage: @instance.allocation_percentage } }
33
+ let(:nullable_properties) { Set.new }
34
+ end
35
+
30
36
  describe 'test an instance of Preference' do
31
37
  it 'should create an instance of Preference' do
32
38
  expect(@instance).to be_instance_of(Patch::Preference)
@@ -20,13 +20,19 @@ require 'date'
20
20
  describe 'ProjectListResponse' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::ProjectListResponse.new
23
+ @instance = build(:project_list_response)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data, meta: @instance.meta } }
33
+ let(:nullable_properties) { Set.new(["error"]) }
34
+ end
35
+
30
36
  describe 'test an instance of ProjectListResponse' do
31
37
  it 'should create an instance of ProjectListResponse' do
32
38
  expect(@instance).to be_instance_of(Patch::ProjectListResponse)
@@ -20,13 +20,19 @@ require 'date'
20
20
  describe 'ProjectResponse' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::ProjectResponse.new
23
+ @instance = build(:project_response)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
+ let(:nullable_properties) { Set.new(["error"]) }
34
+ end
35
+
30
36
  describe 'test an instance of ProjectResponse' do
31
37
  it 'should create an instance of ProjectResponse' do
32
38
  expect(@instance).to be_instance_of(Patch::ProjectResponse)
@@ -20,13 +20,33 @@ require 'date'
20
20
  describe 'Project' do
21
21
  before do
22
22
  # run before each test
23
- @instance = Patch::Project.new
23
+ @instance = build(:project)
24
24
  end
25
25
 
26
26
  after do
27
27
  # run after each test
28
28
  end
29
29
 
30
+ it_behaves_like "a generated class" do
31
+ let(:instance) { @instance }
32
+ let(:instance_hash) {
33
+ {
34
+ id: @instance.id,
35
+ name: @instance.name,
36
+ description: @instance.description,
37
+ production: @instance.production,
38
+ type: @instance.type,
39
+ country: @instance.country,
40
+ developer: @instance.developer,
41
+ photos: @instance.photos,
42
+ average_price_per_tonne_cents_usd: @instance.average_price_per_tonne_cents_usd,
43
+ remaining_mass_g: @instance.remaining_mass_g,
44
+ standard: @instance.standard
45
+ }
46
+ }
47
+ let(:nullable_properties) { Set.new(["photos", "standard"]) }
48
+ end
49
+
30
50
  describe 'test an instance of Project' do
31
51
  it 'should create an instance of Project' do
32
52
  expect(@instance).to be_instance_of(Patch::Project)
data/spec/spec_helper.rb CHANGED
@@ -12,6 +12,11 @@ OpenAPI Generator version: 4.3.1
12
12
 
13
13
  # load the gem
14
14
  require 'patch_ruby'
15
+ require 'constants'
16
+ require 'factory_bot'
17
+
18
+ # Require shared spec examples
19
+ Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
15
20
 
16
21
  # The following was generated by the `rspec --init` command. Conventionally, all
17
22
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
@@ -32,6 +37,12 @@ require 'patch_ruby'
32
37
  #
33
38
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
34
39
  RSpec.configure do |config|
40
+ # Use FactoryBot for test factories
41
+ config.include FactoryBot::Syntax::Methods
42
+ config.before(:suite) do
43
+ FactoryBot.find_definitions
44
+ end
45
+
35
46
  # rspec-expectations config goes here. You can use an alternate
36
47
  # assertion/expectation library such as wrong or the stdlib/minitest
37
48
  # assertions if you prefer.
@@ -0,0 +1,13 @@
1
+ RSpec.shared_examples "a generated class" do
2
+ describe '.openapi_nullable' do
3
+ it 'returns a set with nullable properties' do
4
+ expect(instance.class.openapi_nullable).to eq nullable_properties
5
+ end
6
+ end
7
+
8
+ describe '#to_hash' do
9
+ it 'returns a set with nullable properties' do
10
+ expect(@instance.to_hash).to eq(instance_hash)
11
+ end
12
+ end
13
+ 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.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patch Technology
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-20 00:00:00.000000000 Z
11
+ date: 2021-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -80,6 +80,7 @@ files:
80
80
  - CHANGELOG.md
81
81
  - Gemfile
82
82
  - Gemfile.lock
83
+ - Makefile
83
84
  - README.md
84
85
  - Rakefile
85
86
  - lib/patch_ruby.rb
@@ -102,12 +103,14 @@ files:
102
103
  - lib/patch_ruby/models/order.rb
103
104
  - lib/patch_ruby/models/order_list_response.rb
104
105
  - lib/patch_ruby/models/order_response.rb
106
+ - lib/patch_ruby/models/photo.rb
105
107
  - lib/patch_ruby/models/preference.rb
106
108
  - lib/patch_ruby/models/preference_list_response.rb
107
109
  - lib/patch_ruby/models/preference_response.rb
108
110
  - lib/patch_ruby/models/project.rb
109
111
  - lib/patch_ruby/models/project_list_response.rb
110
112
  - lib/patch_ruby/models/project_response.rb
113
+ - lib/patch_ruby/models/standard.rb
111
114
  - lib/patch_ruby/version.rb
112
115
  - patch_ruby.gemspec
113
116
  - spec/api/estimates_api_spec.rb
@@ -116,6 +119,25 @@ files:
116
119
  - spec/api/projects_api_spec.rb
117
120
  - spec/api_client_spec.rb
118
121
  - spec/configuration_spec.rb
122
+ - spec/constants.rb
123
+ - spec/factories/allocations.rb
124
+ - spec/factories/create_mass_estimate_requests.rb
125
+ - spec/factories/create_order_requests.rb
126
+ - spec/factories/create_preference_requests.rb
127
+ - spec/factories/error_responses.rb
128
+ - spec/factories/estimate_list_responses.rb
129
+ - spec/factories/estimate_responses.rb
130
+ - spec/factories/estimates.rb
131
+ - spec/factories/meta_index_objects.rb
132
+ - spec/factories/order_list_responses.rb
133
+ - spec/factories/order_responses.rb
134
+ - spec/factories/orders.rb
135
+ - spec/factories/preference_list_responses.rb
136
+ - spec/factories/preference_responses.rb
137
+ - spec/factories/preferences.rb
138
+ - spec/factories/project_list_responses.rb
139
+ - spec/factories/project_responses.rb
140
+ - spec/factories/projects.rb
119
141
  - spec/integration/estimates_spec.rb
120
142
  - spec/integration/orders_spec.rb
121
143
  - spec/integration/preferences_spec.rb
@@ -139,6 +161,7 @@ files:
139
161
  - spec/models/project_response_spec.rb
140
162
  - spec/models/project_spec.rb
141
163
  - spec/spec_helper.rb
164
+ - spec/support/shared/generated_classes.rb
142
165
  homepage: https://www.usepatch.com
143
166
  licenses:
144
167
  - MIT
@@ -163,32 +186,52 @@ signing_key:
163
186
  specification_version: 4
164
187
  summary: Ruby wrapper for the Patch API
165
188
  test_files:
166
- - spec/api/preferences_api_spec.rb
167
189
  - spec/api/orders_api_spec.rb
168
190
  - spec/api/projects_api_spec.rb
169
191
  - spec/api/estimates_api_spec.rb
192
+ - spec/api/preferences_api_spec.rb
170
193
  - spec/api_client_spec.rb
171
194
  - spec/configuration_spec.rb
172
- - spec/integration/preferences_spec.rb
173
- - spec/integration/projects_spec.rb
195
+ - spec/constants.rb
196
+ - spec/factories/project_responses.rb
197
+ - spec/factories/create_preference_requests.rb
198
+ - spec/factories/meta_index_objects.rb
199
+ - spec/factories/project_list_responses.rb
200
+ - spec/factories/orders.rb
201
+ - spec/factories/order_list_responses.rb
202
+ - spec/factories/order_responses.rb
203
+ - spec/factories/preferences.rb
204
+ - spec/factories/preference_responses.rb
205
+ - spec/factories/error_responses.rb
206
+ - spec/factories/estimates.rb
207
+ - spec/factories/estimate_list_responses.rb
208
+ - spec/factories/create_order_requests.rb
209
+ - spec/factories/allocations.rb
210
+ - spec/factories/projects.rb
211
+ - spec/factories/estimate_responses.rb
212
+ - spec/factories/preference_list_responses.rb
213
+ - spec/factories/create_mass_estimate_requests.rb
174
214
  - spec/integration/estimates_spec.rb
215
+ - spec/integration/preferences_spec.rb
175
216
  - spec/integration/orders_spec.rb
176
- - spec/models/estimate_response_spec.rb
177
- - spec/models/project_list_response_spec.rb
178
- - spec/models/create_preference_request_spec.rb
179
- - spec/models/project_response_spec.rb
217
+ - spec/integration/projects_spec.rb
218
+ - spec/models/order_list_response_spec.rb
180
219
  - spec/models/allocation_spec.rb
181
- - spec/models/estimate_spec.rb
182
- - spec/models/meta_index_object_spec.rb
220
+ - spec/models/order_response_spec.rb
221
+ - spec/models/preference_list_response_spec.rb
222
+ - spec/models/create_preference_request_spec.rb
183
223
  - spec/models/estimate_list_response_spec.rb
184
224
  - spec/models/project_spec.rb
185
- - spec/models/order_list_response_spec.rb
186
- - spec/models/create_mass_estimate_request_spec.rb
225
+ - spec/models/project_list_response_spec.rb
226
+ - spec/models/estimate_response_spec.rb
187
227
  - spec/models/preference_spec.rb
228
+ - spec/models/create_order_request_spec.rb
229
+ - spec/models/create_mass_estimate_request_spec.rb
230
+ - spec/models/project_response_spec.rb
231
+ - spec/models/order_spec.rb
188
232
  - spec/models/error_response_spec.rb
189
- - spec/models/order_response_spec.rb
233
+ - spec/models/estimate_spec.rb
234
+ - spec/models/meta_index_object_spec.rb
190
235
  - spec/models/preference_response_spec.rb
191
- - spec/models/order_spec.rb
192
- - spec/models/create_order_request_spec.rb
193
- - spec/models/preference_list_response_spec.rb
194
236
  - spec/spec_helper.rb
237
+ - spec/support/shared/generated_classes.rb