patch_ruby 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +31 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +13 -10
- data/README.md +41 -1
- data/lib/patch_ruby/models/allocation.rb +15 -0
- data/lib/patch_ruby/models/create_mass_estimate_request.rb +13 -4
- data/lib/patch_ruby/models/create_order_request.rb +22 -4
- data/lib/patch_ruby/models/estimate.rb +15 -0
- data/lib/patch_ruby/models/order.rb +48 -4
- data/lib/patch_ruby/models/preference.rb +15 -0
- data/lib/patch_ruby/models/project.rb +73 -27
- data/lib/patch_ruby/version.rb +1 -1
- data/spec/api/estimates_api_spec.rb +6 -7
- data/spec/api/orders_api_spec.rb +10 -11
- data/spec/api/preferences_api_spec.rb +8 -9
- data/spec/api/projects_api_spec.rb +4 -5
- data/spec/integration/estimates_spec.rb +14 -2
- data/spec/integration/orders_spec.rb +22 -0
- data/spec/models/allocation_spec.rb +0 -1
- data/spec/models/create_mass_estimate_request_spec.rb +0 -1
- data/spec/models/create_order_request_spec.rb +0 -1
- data/spec/models/create_preference_request_spec.rb +0 -1
- data/spec/models/error_response_spec.rb +0 -1
- data/spec/models/estimate_list_response_spec.rb +0 -1
- data/spec/models/estimate_response_spec.rb +0 -1
- data/spec/models/estimate_spec.rb +0 -1
- data/spec/models/meta_index_object_spec.rb +0 -1
- data/spec/models/order_list_response_spec.rb +0 -1
- data/spec/models/order_response_spec.rb +0 -1
- data/spec/models/order_spec.rb +0 -1
- data/spec/models/preference_list_response_spec.rb +0 -1
- data/spec/models/preference_response_spec.rb +0 -1
- data/spec/models/preference_spec.rb +0 -1
- data/spec/models/project_list_response_spec.rb +0 -1
- data/spec/models/project_response_spec.rb +0 -1
- data/spec/models/project_spec.rb +0 -1
- metadata +21 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d57ecb3d4eed4573df5b34a2fe8b15abff918db6d50343d483a94daeb832ef0
|
4
|
+
data.tar.gz: 01ef9aced2b39b3fc83e4139682bf2ef4671cd5a1cf22c04486bb5005a8fae50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 915adff1e3f63bd96b7cf1c360914faa8f2bb4d901e8960c459c0f74134385c72906f5eb9f06d4d51cccdc023b01a618c1a438a049b8fa1f39e4373682ec711a
|
7
|
+
data.tar.gz: 3f16c440a5d2e67c4dc864605d6201b9fb10f0c6c28fd10b821b76758b36b8a319a990f124218515265621550f3db273bd75359b6a4579af3bb132b85d4b994f
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## [Unreleased]
|
9
|
+
|
10
|
+
## [1.1.0] - 2020-08-19
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- `project_id` optional field to `order` creation
|
15
|
+
- `metadata` optional field to `order` creation
|
16
|
+
- `project_id` optional field to `estimate` creation
|
17
|
+
- changelog file
|
18
|
+
|
19
|
+
## [1.0.0] - 2020-07-05
|
20
|
+
|
21
|
+
### Added
|
22
|
+
|
23
|
+
- This is the first official release of Patch's Ruby Gem.
|
24
|
+
|
25
|
+
## [1.0.0.pre] - 2020-07-02
|
26
|
+
|
27
|
+
### Added
|
28
|
+
|
29
|
+
- Pre-release of v1 Gem
|
30
|
+
- Adds support for Orders, Estimates, Projects and Preferences
|
31
|
+
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
patch_ruby (1.
|
4
|
+
patch_ruby (1.1.0)
|
5
5
|
json (~> 2.1, >= 2.1.0)
|
6
6
|
typhoeus (~> 1.0, >= 1.0.1)
|
7
7
|
|
@@ -15,7 +15,6 @@ GEM
|
|
15
15
|
ethon (0.12.0)
|
16
16
|
ffi (>= 1.3.0)
|
17
17
|
ffi (1.13.1)
|
18
|
-
jaro_winkler (1.5.4)
|
19
18
|
json (2.3.1)
|
20
19
|
method_source (1.0.0)
|
21
20
|
parallel (1.19.2)
|
@@ -27,9 +26,10 @@ GEM
|
|
27
26
|
pry-byebug (3.9.0)
|
28
27
|
byebug (~> 11.0)
|
29
28
|
pry (~> 0.13.0)
|
30
|
-
psych (3.1.0)
|
31
29
|
rainbow (3.0.0)
|
32
30
|
rake (13.0.1)
|
31
|
+
regexp_parser (1.7.1)
|
32
|
+
rexml (3.2.4)
|
33
33
|
rspec (3.9.0)
|
34
34
|
rspec-core (~> 3.9.0)
|
35
35
|
rspec-expectations (~> 3.9.0)
|
@@ -43,18 +43,21 @@ GEM
|
|
43
43
|
diff-lcs (>= 1.2.0, < 2.0)
|
44
44
|
rspec-support (~> 3.9.0)
|
45
45
|
rspec-support (3.9.3)
|
46
|
-
rubocop (0.
|
47
|
-
jaro_winkler (~> 1.5.1)
|
46
|
+
rubocop (0.88.0)
|
48
47
|
parallel (~> 1.10)
|
49
|
-
parser (>= 2.
|
50
|
-
psych (>= 3.1.0)
|
48
|
+
parser (>= 2.7.1.1)
|
51
49
|
rainbow (>= 2.2.2, < 4.0)
|
50
|
+
regexp_parser (>= 1.7)
|
51
|
+
rexml
|
52
|
+
rubocop-ast (>= 0.1.0, < 1.0)
|
52
53
|
ruby-progressbar (~> 1.7)
|
53
|
-
unicode-display_width (>= 1.4.0, <
|
54
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
55
|
+
rubocop-ast (0.3.0)
|
56
|
+
parser (>= 2.7.1.4)
|
54
57
|
ruby-progressbar (1.10.1)
|
55
58
|
typhoeus (1.4.0)
|
56
59
|
ethon (>= 0.9.0)
|
57
|
-
unicode-display_width (1.
|
60
|
+
unicode-display_width (1.7.0)
|
58
61
|
|
59
62
|
PLATFORMS
|
60
63
|
ruby
|
@@ -64,7 +67,7 @@ DEPENDENCIES
|
|
64
67
|
pry-byebug
|
65
68
|
rake (~> 13.0.1)
|
66
69
|
rspec (~> 3.6, >= 3.6.0)
|
67
|
-
rubocop
|
70
|
+
rubocop
|
68
71
|
|
69
72
|
BUNDLED WITH
|
70
73
|
2.1.4
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Patch Ruby SDK
|
2
2
|
![Test](https://github.com/patch-technology/patch-ruby/workflows/Test/badge.svg)
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/patch_ruby.svg)](https://badge.fury.io/rb/patch_ruby)
|
4
|
+
[![Discord](https://img.shields.io/discord/733029448558837792)](https://discord.gg/AU8543D)
|
4
5
|
|
5
6
|
The official Ruby gem for the [Patch API](https://www.usepatch.com)
|
6
7
|
|
@@ -52,6 +53,14 @@ In Patch, orders represent a purchase of carbon offsets or negative emissions by
|
|
52
53
|
mass = 1_000_000 # Pass in the mass in grams (i.e. 1 metric tonne)
|
53
54
|
Patch::Order.create_order(mass_g: mass)
|
54
55
|
|
56
|
+
## You can also specify a project-id field (optional) to be used instead of the preferred one
|
57
|
+
project_id = 'pro_test_1234' # Pass in the project's ID
|
58
|
+
Patch::Order.create_order(mass_g: mass, project_id: project_id)
|
59
|
+
|
60
|
+
## Orders also accept a metadata field (optional)
|
61
|
+
metadata = {user: "john doe"}
|
62
|
+
Patch::Order.create_order(mass_g: mass, metadata: metadata)
|
63
|
+
|
55
64
|
# Retrieve an order
|
56
65
|
order_id = 'ord_test_1234' # Pass in the order's id
|
57
66
|
Patch::Order.retrieve_order(order_id)
|
@@ -80,6 +89,10 @@ Estimates allow API users to get a quote for the cost of compensating a certain
|
|
80
89
|
mass = 1_000_000 # Pass in the mass in grams (i.e. 1 metric tonne)
|
81
90
|
Patch::Estimate.create_mass_estimate(mass_g: mass)
|
82
91
|
|
92
|
+
## You can also specify a project-id field (optional) to be used instead of the preferred one
|
93
|
+
project_id = 'pro_test_1234' # Pass in the project's ID
|
94
|
+
Patch::Estimate.create_mass_estimate(mass_g: mass, project_id: project_id)
|
95
|
+
|
83
96
|
# Retrieve an estimate
|
84
97
|
estimate_id = 'est_test_1234'
|
85
98
|
Patch::Estimate.retrieve_estimate(estimate_id)
|
@@ -106,7 +119,7 @@ Patch::Project.retrieve_projects(page: page)
|
|
106
119
|
```
|
107
120
|
|
108
121
|
### Preferences
|
109
|
-
Preferences are how you route your orders in Patch. If you don't have a preference, Patch will allocate your order to the least expensive option. If you do have a preference, all of your orders will be sent to that project. You can set your preferences via API, or through the [Patch Dashboard](dashboard.usepatch.com/projects).
|
122
|
+
Preferences are how you route your orders in Patch. If you don't have a preference, Patch will allocate your order to the least expensive option. If you do have a preference, all of your orders will be sent to that project. You can set your preferences via API, or through the [Patch Dashboard](https://dashboard.usepatch.com/projects).
|
110
123
|
|
111
124
|
[API Reference](https://docs.usepatch.com/docs/patch/openapi/v1/swagger.yaml/paths/~1v1~1preferences/post)
|
112
125
|
|
@@ -128,3 +141,30 @@ Patch::Preference.delete_preference(preference_id)
|
|
128
141
|
page = 1 # Pass in which page of preferences you'd like
|
129
142
|
Patch::Preference.retrieve_preferences(page: page)
|
130
143
|
```
|
144
|
+
|
145
|
+
## Development
|
146
|
+
|
147
|
+
To build the gem locally, run:
|
148
|
+
```
|
149
|
+
$ gem build patch_ruby.gemspec
|
150
|
+
```
|
151
|
+
|
152
|
+
This will create a .gem file. To install the local gem:
|
153
|
+
```
|
154
|
+
$ gem install patch_ruby-1.x.x.gem
|
155
|
+
```
|
156
|
+
|
157
|
+
Install dependencies:
|
158
|
+
```
|
159
|
+
$ bundle install
|
160
|
+
```
|
161
|
+
|
162
|
+
Set up required environment variables:
|
163
|
+
```
|
164
|
+
$ export PATCH_RUBY_API_KEY=<SANDBOX API KEY>
|
165
|
+
```
|
166
|
+
|
167
|
+
Run tests:
|
168
|
+
```
|
169
|
+
$ bundle exec rspec
|
170
|
+
```
|
@@ -81,12 +81,27 @@ module Patch
|
|
81
81
|
# @return Array for valid properties with the reasons
|
82
82
|
def list_invalid_properties
|
83
83
|
invalid_properties = Array.new
|
84
|
+
if @id.nil?
|
85
|
+
invalid_properties.push('invalid value for "id", id cannot be nil.')
|
86
|
+
end
|
87
|
+
|
88
|
+
if @production.nil?
|
89
|
+
invalid_properties.push('invalid value for "production", production cannot be nil.')
|
90
|
+
end
|
91
|
+
|
92
|
+
if @mass_g.nil?
|
93
|
+
invalid_properties.push('invalid value for "mass_g", mass_g cannot be nil.')
|
94
|
+
end
|
95
|
+
|
84
96
|
invalid_properties
|
85
97
|
end
|
86
98
|
|
87
99
|
# Check to see if the all the properties in the model are valid
|
88
100
|
# @return true if the model is valid
|
89
101
|
def valid?
|
102
|
+
return false if @id.nil?
|
103
|
+
return false if @production.nil?
|
104
|
+
return false if @mass_g.nil?
|
90
105
|
true
|
91
106
|
end
|
92
107
|
|
@@ -16,17 +16,21 @@ module Patch
|
|
16
16
|
class CreateMassEstimateRequest
|
17
17
|
attr_accessor :mass_g
|
18
18
|
|
19
|
+
attr_accessor :project_id
|
20
|
+
|
19
21
|
# Attribute mapping from ruby-style variable name to JSON key.
|
20
22
|
def self.attribute_map
|
21
23
|
{
|
22
|
-
:'mass_g' => :'mass_g'
|
24
|
+
:'mass_g' => :'mass_g',
|
25
|
+
:'project_id' => :'project_id'
|
23
26
|
}
|
24
27
|
end
|
25
28
|
|
26
29
|
# Attribute type mapping.
|
27
30
|
def self.openapi_types
|
28
31
|
{
|
29
|
-
:'mass_g' => :'Integer'
|
32
|
+
:'mass_g' => :'Integer',
|
33
|
+
:'project_id' => :'String'
|
30
34
|
}
|
31
35
|
end
|
32
36
|
|
@@ -59,6 +63,10 @@ module Patch
|
|
59
63
|
if attributes.key?(:'mass_g')
|
60
64
|
self.mass_g = attributes[:'mass_g']
|
61
65
|
end
|
66
|
+
|
67
|
+
if attributes.key?(:'project_id')
|
68
|
+
self.project_id = attributes[:'project_id']
|
69
|
+
end
|
62
70
|
end
|
63
71
|
|
64
72
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -84,7 +92,8 @@ module Patch
|
|
84
92
|
def ==(o)
|
85
93
|
return true if self.equal?(o)
|
86
94
|
self.class == o.class &&
|
87
|
-
mass_g == o.mass_g
|
95
|
+
mass_g == o.mass_g &&
|
96
|
+
project_id == o.project_id
|
88
97
|
end
|
89
98
|
|
90
99
|
# @see the `==` method
|
@@ -96,7 +105,7 @@ module Patch
|
|
96
105
|
# Calculates hash code according to all attributes.
|
97
106
|
# @return [Integer] Hash code
|
98
107
|
def hash
|
99
|
-
[mass_g].hash
|
108
|
+
[mass_g, project_id].hash
|
100
109
|
end
|
101
110
|
|
102
111
|
# Builds the object from hash
|
@@ -16,17 +16,25 @@ module Patch
|
|
16
16
|
class CreateOrderRequest
|
17
17
|
attr_accessor :mass_g
|
18
18
|
|
19
|
+
attr_accessor :project_id
|
20
|
+
|
21
|
+
attr_accessor :metadata
|
22
|
+
|
19
23
|
# Attribute mapping from ruby-style variable name to JSON key.
|
20
24
|
def self.attribute_map
|
21
25
|
{
|
22
|
-
:'mass_g' => :'mass_g'
|
26
|
+
:'mass_g' => :'mass_g',
|
27
|
+
:'project_id' => :'project_id',
|
28
|
+
:'metadata' => :'metadata'
|
23
29
|
}
|
24
30
|
end
|
25
31
|
|
26
32
|
# Attribute type mapping.
|
27
33
|
def self.openapi_types
|
28
34
|
{
|
29
|
-
:'mass_g' => :'Integer'
|
35
|
+
:'mass_g' => :'Integer',
|
36
|
+
:'project_id' => :'String',
|
37
|
+
:'metadata' => :'Object'
|
30
38
|
}
|
31
39
|
end
|
32
40
|
|
@@ -59,6 +67,14 @@ module Patch
|
|
59
67
|
if attributes.key?(:'mass_g')
|
60
68
|
self.mass_g = attributes[:'mass_g']
|
61
69
|
end
|
70
|
+
|
71
|
+
if attributes.key?(:'project_id')
|
72
|
+
self.project_id = attributes[:'project_id']
|
73
|
+
end
|
74
|
+
|
75
|
+
if attributes.key?(:'metadata')
|
76
|
+
self.metadata = attributes[:'metadata']
|
77
|
+
end
|
62
78
|
end
|
63
79
|
|
64
80
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -84,7 +100,9 @@ module Patch
|
|
84
100
|
def ==(o)
|
85
101
|
return true if self.equal?(o)
|
86
102
|
self.class == o.class &&
|
87
|
-
mass_g == o.mass_g
|
103
|
+
mass_g == o.mass_g &&
|
104
|
+
project_id == o.project_id &&
|
105
|
+
metadata == o.metadata
|
88
106
|
end
|
89
107
|
|
90
108
|
# @see the `==` method
|
@@ -96,7 +114,7 @@ module Patch
|
|
96
114
|
# Calculates hash code according to all attributes.
|
97
115
|
# @return [Integer] Hash code
|
98
116
|
def hash
|
99
|
-
[mass_g].hash
|
117
|
+
[mass_g, project_id, metadata].hash
|
100
118
|
end
|
101
119
|
|
102
120
|
# Builds the object from hash
|
@@ -89,12 +89,27 @@ module Patch
|
|
89
89
|
# @return Array for valid properties with the reasons
|
90
90
|
def list_invalid_properties
|
91
91
|
invalid_properties = Array.new
|
92
|
+
if @id.nil?
|
93
|
+
invalid_properties.push('invalid value for "id", id cannot be nil.')
|
94
|
+
end
|
95
|
+
|
96
|
+
if @production.nil?
|
97
|
+
invalid_properties.push('invalid value for "production", production cannot be nil.')
|
98
|
+
end
|
99
|
+
|
100
|
+
if @type.nil?
|
101
|
+
invalid_properties.push('invalid value for "type", type cannot be nil.')
|
102
|
+
end
|
103
|
+
|
92
104
|
invalid_properties
|
93
105
|
end
|
94
106
|
|
95
107
|
# Check to see if the all the properties in the model are valid
|
96
108
|
# @return true if the model is valid
|
97
109
|
def valid?
|
110
|
+
return false if @id.nil?
|
111
|
+
return false if @production.nil?
|
112
|
+
return false if @type.nil?
|
98
113
|
true
|
99
114
|
end
|
100
115
|
|
@@ -28,6 +28,8 @@ module Patch
|
|
28
28
|
|
29
29
|
attr_accessor :allocations
|
30
30
|
|
31
|
+
attr_accessor :metadata
|
32
|
+
|
31
33
|
class EnumAttributeValidator
|
32
34
|
attr_reader :datatype
|
33
35
|
attr_reader :allowable_values
|
@@ -59,7 +61,8 @@ module Patch
|
|
59
61
|
:'state' => :'state',
|
60
62
|
:'allocation_state' => :'allocation_state',
|
61
63
|
:'price_cents_usd' => :'price_cents_usd',
|
62
|
-
:'allocations' => :'allocations'
|
64
|
+
:'allocations' => :'allocations',
|
65
|
+
:'metadata' => :'metadata'
|
63
66
|
}
|
64
67
|
end
|
65
68
|
|
@@ -72,7 +75,8 @@ module Patch
|
|
72
75
|
:'state' => :'String',
|
73
76
|
:'allocation_state' => :'String',
|
74
77
|
:'price_cents_usd' => :'String',
|
75
|
-
:'allocations' => :'Array<Allocation>'
|
78
|
+
:'allocations' => :'Array<Allocation>',
|
79
|
+
:'metadata' => :'Object'
|
76
80
|
}
|
77
81
|
end
|
78
82
|
|
@@ -131,22 +135,61 @@ module Patch
|
|
131
135
|
self.allocations = value
|
132
136
|
end
|
133
137
|
end
|
138
|
+
|
139
|
+
if attributes.key?(:'metadata')
|
140
|
+
self.metadata = attributes[:'metadata']
|
141
|
+
end
|
134
142
|
end
|
135
143
|
|
136
144
|
# Show invalid properties with the reasons. Usually used together with valid?
|
137
145
|
# @return Array for valid properties with the reasons
|
138
146
|
def list_invalid_properties
|
139
147
|
invalid_properties = Array.new
|
148
|
+
if @id.nil?
|
149
|
+
invalid_properties.push('invalid value for "id", id cannot be nil.')
|
150
|
+
end
|
151
|
+
|
152
|
+
if @mass_g.nil?
|
153
|
+
invalid_properties.push('invalid value for "mass_g", mass_g cannot be nil.')
|
154
|
+
end
|
155
|
+
|
156
|
+
if @production.nil?
|
157
|
+
invalid_properties.push('invalid value for "production", production cannot be nil.')
|
158
|
+
end
|
159
|
+
|
160
|
+
if @state.nil?
|
161
|
+
invalid_properties.push('invalid value for "state", state cannot be nil.')
|
162
|
+
end
|
163
|
+
|
164
|
+
if @allocation_state.nil?
|
165
|
+
invalid_properties.push('invalid value for "allocation_state", allocation_state cannot be nil.')
|
166
|
+
end
|
167
|
+
|
168
|
+
if @allocations.nil?
|
169
|
+
invalid_properties.push('invalid value for "allocations", allocations cannot be nil.')
|
170
|
+
end
|
171
|
+
|
172
|
+
if @metadata.nil?
|
173
|
+
invalid_properties.push('invalid value for "metadata", metadata cannot be nil.')
|
174
|
+
end
|
175
|
+
|
140
176
|
invalid_properties
|
141
177
|
end
|
142
178
|
|
143
179
|
# Check to see if the all the properties in the model are valid
|
144
180
|
# @return true if the model is valid
|
145
181
|
def valid?
|
182
|
+
return false if @id.nil?
|
183
|
+
return false if @mass_g.nil?
|
184
|
+
return false if @production.nil?
|
185
|
+
return false if @state.nil?
|
146
186
|
state_validator = EnumAttributeValidator.new('String', ["draft", "placed", "complete", "cancelled"])
|
147
187
|
return false unless state_validator.valid?(@state)
|
188
|
+
return false if @allocation_state.nil?
|
148
189
|
allocation_state_validator = EnumAttributeValidator.new('String', ["pending", "partially_allocated", "allocated"])
|
149
190
|
return false unless allocation_state_validator.valid?(@allocation_state)
|
191
|
+
return false if @allocations.nil?
|
192
|
+
return false if @metadata.nil?
|
150
193
|
true
|
151
194
|
end
|
152
195
|
|
@@ -181,7 +224,8 @@ module Patch
|
|
181
224
|
state == o.state &&
|
182
225
|
allocation_state == o.allocation_state &&
|
183
226
|
price_cents_usd == o.price_cents_usd &&
|
184
|
-
allocations == o.allocations
|
227
|
+
allocations == o.allocations &&
|
228
|
+
metadata == o.metadata
|
185
229
|
end
|
186
230
|
|
187
231
|
# @see the `==` method
|
@@ -193,7 +237,7 @@ module Patch
|
|
193
237
|
# Calculates hash code according to all attributes.
|
194
238
|
# @return [Integer] Hash code
|
195
239
|
def hash
|
196
|
-
[id, mass_g, production, state, allocation_state, price_cents_usd, allocations].hash
|
240
|
+
[id, mass_g, production, state, allocation_state, price_cents_usd, allocations, metadata].hash
|
197
241
|
end
|
198
242
|
|
199
243
|
# Builds the object from hash
|
@@ -81,12 +81,27 @@ module Patch
|
|
81
81
|
# @return Array for valid properties with the reasons
|
82
82
|
def list_invalid_properties
|
83
83
|
invalid_properties = Array.new
|
84
|
+
if @id.nil?
|
85
|
+
invalid_properties.push('invalid value for "id", id cannot be nil.')
|
86
|
+
end
|
87
|
+
|
88
|
+
if @allocation_percentage.nil?
|
89
|
+
invalid_properties.push('invalid value for "allocation_percentage", allocation_percentage cannot be nil.')
|
90
|
+
end
|
91
|
+
|
92
|
+
if @project.nil?
|
93
|
+
invalid_properties.push('invalid value for "project", project cannot be nil.')
|
94
|
+
end
|
95
|
+
|
84
96
|
invalid_properties
|
85
97
|
end
|
86
98
|
|
87
99
|
# Check to see if the all the properties in the model are valid
|
88
100
|
# @return true if the model is valid
|
89
101
|
def valid?
|
102
|
+
return false if @id.nil?
|
103
|
+
return false if @allocation_percentage.nil?
|
104
|
+
return false if @project.nil?
|
90
105
|
true
|
91
106
|
end
|
92
107
|
|
@@ -22,15 +22,33 @@ module Patch
|
|
22
22
|
|
23
23
|
attr_accessor :description
|
24
24
|
|
25
|
-
attr_accessor :
|
25
|
+
attr_accessor :type
|
26
26
|
|
27
|
-
attr_accessor :
|
27
|
+
attr_accessor :country
|
28
28
|
|
29
|
-
attr_accessor :
|
29
|
+
attr_accessor :developer
|
30
30
|
|
31
|
-
|
31
|
+
class EnumAttributeValidator
|
32
|
+
attr_reader :datatype
|
33
|
+
attr_reader :allowable_values
|
34
|
+
|
35
|
+
def initialize(datatype, allowable_values)
|
36
|
+
@allowable_values = allowable_values.map do |value|
|
37
|
+
case datatype.to_s
|
38
|
+
when /Integer/i
|
39
|
+
value.to_i
|
40
|
+
when /Float/i
|
41
|
+
value.to_f
|
42
|
+
else
|
43
|
+
value
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
32
47
|
|
33
|
-
|
48
|
+
def valid?(value)
|
49
|
+
!value || allowable_values.include?(value)
|
50
|
+
end
|
51
|
+
end
|
34
52
|
|
35
53
|
# Attribute mapping from ruby-style variable name to JSON key.
|
36
54
|
def self.attribute_map
|
@@ -39,10 +57,8 @@ module Patch
|
|
39
57
|
:'production' => :'production',
|
40
58
|
:'name' => :'name',
|
41
59
|
:'description' => :'description',
|
60
|
+
:'type' => :'type',
|
42
61
|
:'country' => :'country',
|
43
|
-
:'longitude' => :'longitude',
|
44
|
-
:'latitude' => :'latitude',
|
45
|
-
:'verifier' => :'verifier',
|
46
62
|
:'developer' => :'developer'
|
47
63
|
}
|
48
64
|
end
|
@@ -54,10 +70,8 @@ module Patch
|
|
54
70
|
:'production' => :'Boolean',
|
55
71
|
:'name' => :'String',
|
56
72
|
:'description' => :'String',
|
73
|
+
:'type' => :'String',
|
57
74
|
:'country' => :'String',
|
58
|
-
:'longitude' => :'Float',
|
59
|
-
:'latitude' => :'Float',
|
60
|
-
:'verifier' => :'String',
|
61
75
|
:'developer' => :'String'
|
62
76
|
}
|
63
77
|
end
|
@@ -104,20 +118,12 @@ module Patch
|
|
104
118
|
self.description = attributes[:'description']
|
105
119
|
end
|
106
120
|
|
107
|
-
if attributes.key?(:'
|
108
|
-
self.
|
109
|
-
end
|
110
|
-
|
111
|
-
if attributes.key?(:'longitude')
|
112
|
-
self.longitude = attributes[:'longitude']
|
113
|
-
end
|
114
|
-
|
115
|
-
if attributes.key?(:'latitude')
|
116
|
-
self.latitude = attributes[:'latitude']
|
121
|
+
if attributes.key?(:'type')
|
122
|
+
self.type = attributes[:'type']
|
117
123
|
end
|
118
124
|
|
119
|
-
if attributes.key?(:'
|
120
|
-
self.
|
125
|
+
if attributes.key?(:'country')
|
126
|
+
self.country = attributes[:'country']
|
121
127
|
end
|
122
128
|
|
123
129
|
if attributes.key?(:'developer')
|
@@ -129,15 +135,57 @@ module Patch
|
|
129
135
|
# @return Array for valid properties with the reasons
|
130
136
|
def list_invalid_properties
|
131
137
|
invalid_properties = Array.new
|
138
|
+
if @id.nil?
|
139
|
+
invalid_properties.push('invalid value for "id", id cannot be nil.')
|
140
|
+
end
|
141
|
+
|
142
|
+
if @production.nil?
|
143
|
+
invalid_properties.push('invalid value for "production", production cannot be nil.')
|
144
|
+
end
|
145
|
+
|
146
|
+
if @name.nil?
|
147
|
+
invalid_properties.push('invalid value for "name", name cannot be nil.')
|
148
|
+
end
|
149
|
+
|
150
|
+
if @description.nil?
|
151
|
+
invalid_properties.push('invalid value for "description", description cannot be nil.')
|
152
|
+
end
|
153
|
+
|
154
|
+
if @country.nil?
|
155
|
+
invalid_properties.push('invalid value for "country", country cannot be nil.')
|
156
|
+
end
|
157
|
+
|
158
|
+
if @developer.nil?
|
159
|
+
invalid_properties.push('invalid value for "developer", developer cannot be nil.')
|
160
|
+
end
|
161
|
+
|
132
162
|
invalid_properties
|
133
163
|
end
|
134
164
|
|
135
165
|
# Check to see if the all the properties in the model are valid
|
136
166
|
# @return true if the model is valid
|
137
167
|
def valid?
|
168
|
+
return false if @id.nil?
|
169
|
+
return false if @production.nil?
|
170
|
+
return false if @name.nil?
|
171
|
+
return false if @description.nil?
|
172
|
+
type_validator = EnumAttributeValidator.new('String', ["biomass", "dac", "forestry", "mineralization", "ocean", "soil"])
|
173
|
+
return false unless type_validator.valid?(@type)
|
174
|
+
return false if @country.nil?
|
175
|
+
return false if @developer.nil?
|
138
176
|
true
|
139
177
|
end
|
140
178
|
|
179
|
+
# Custom attribute writer method checking allowed values (enum).
|
180
|
+
# @param [Object] type Object to be assigned
|
181
|
+
def type=(type)
|
182
|
+
validator = EnumAttributeValidator.new('String', ["biomass", "dac", "forestry", "mineralization", "ocean", "soil"])
|
183
|
+
unless validator.valid?(type)
|
184
|
+
fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
|
185
|
+
end
|
186
|
+
@type = type
|
187
|
+
end
|
188
|
+
|
141
189
|
# Checks equality by comparing each attribute.
|
142
190
|
# @param [Object] Object to be compared
|
143
191
|
def ==(o)
|
@@ -147,10 +195,8 @@ module Patch
|
|
147
195
|
production == o.production &&
|
148
196
|
name == o.name &&
|
149
197
|
description == o.description &&
|
198
|
+
type == o.type &&
|
150
199
|
country == o.country &&
|
151
|
-
longitude == o.longitude &&
|
152
|
-
latitude == o.latitude &&
|
153
|
-
verifier == o.verifier &&
|
154
200
|
developer == o.developer
|
155
201
|
end
|
156
202
|
|
@@ -163,7 +209,7 @@ module Patch
|
|
163
209
|
# Calculates hash code according to all attributes.
|
164
210
|
# @return [Integer] Hash code
|
165
211
|
def hash
|
166
|
-
[id, production, name, description,
|
212
|
+
[id, production, name, description, type, country, developer].hash
|
167
213
|
end
|
168
214
|
|
169
215
|
# Builds the object from hash
|
data/lib/patch_ruby/version.rb
CHANGED
@@ -34,8 +34,8 @@ describe 'EstimatesApi' do
|
|
34
34
|
|
35
35
|
# unit tests for create_mass_estimate
|
36
36
|
# Create an estimate based on mass of CO2
|
37
|
-
# Creates an estimate for the mass of CO2 to be compensated. An order in the `draft` state will also be created, linked to the estimate.
|
38
|
-
# @param create_mass_estimate_request
|
37
|
+
# Creates an estimate for the mass of CO2 to be compensated. An order in the `draft` state will also be created, linked to the estimate.
|
38
|
+
# @param create_mass_estimate_request
|
39
39
|
# @param [Hash] opts the optional parameters
|
40
40
|
# @return [EstimateResponse]
|
41
41
|
describe 'create_mass_estimate test' do
|
@@ -46,8 +46,8 @@ describe 'EstimatesApi' do
|
|
46
46
|
|
47
47
|
# unit tests for retrieve_estimate
|
48
48
|
# Retrieves an estimate
|
49
|
-
# Retrieves a given estimate and its associated order. You can only retrieve estimates associated with the organization you are querying for.
|
50
|
-
# @param id
|
49
|
+
# Retrieves a given estimate and its associated order. You can only retrieve estimates associated with the organization you are querying for.
|
50
|
+
# @param id
|
51
51
|
# @param [Hash] opts the optional parameters
|
52
52
|
# @return [EstimateResponse]
|
53
53
|
describe 'retrieve_estimate test' do
|
@@ -58,14 +58,13 @@ describe 'EstimatesApi' do
|
|
58
58
|
|
59
59
|
# unit tests for retrieve_estimates
|
60
60
|
# Retrieves a list of estimates
|
61
|
-
# Retrieves a list of estimates and their associated orders. You can only retrieve estimates associated with the organization you are querying for.
|
61
|
+
# Retrieves a list of estimates and their associated orders. You can only retrieve estimates associated with the organization you are querying for.
|
62
62
|
# @param [Hash] opts the optional parameters
|
63
|
-
# @option opts [Integer] :page
|
63
|
+
# @option opts [Integer] :page
|
64
64
|
# @return [EstimateListResponse]
|
65
65
|
describe 'retrieve_estimates test' do
|
66
66
|
it 'should work' do
|
67
67
|
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
71
70
|
end
|
data/spec/api/orders_api_spec.rb
CHANGED
@@ -34,8 +34,8 @@ describe 'OrdersApi' do
|
|
34
34
|
|
35
35
|
# unit tests for cancel_order
|
36
36
|
# Cancel an order
|
37
|
-
# Cancelling an order removes the associated offset allocation from an order. You will not be charged for cancelled orders. Only orders in the `draft` state can be cancelled.
|
38
|
-
# @param id
|
37
|
+
# Cancelling an order removes the associated offset allocation from an order. You will not be charged for cancelled orders. Only orders in the `draft` state can be cancelled.
|
38
|
+
# @param id
|
39
39
|
# @param [Hash] opts the optional parameters
|
40
40
|
# @return [OrderResponse]
|
41
41
|
describe 'cancel_order test' do
|
@@ -46,8 +46,8 @@ describe 'OrdersApi' do
|
|
46
46
|
|
47
47
|
# unit tests for create_order
|
48
48
|
# Creates an order
|
49
|
-
# Creates an order in the `placed` state. To create a `draft` order, create an estimate first.
|
50
|
-
# @param create_order_request
|
49
|
+
# Creates an order in the `placed` state. To create a `draft` order, create an estimate first.
|
50
|
+
# @param create_order_request
|
51
51
|
# @param [Hash] opts the optional parameters
|
52
52
|
# @return [OrderResponse]
|
53
53
|
describe 'create_order test' do
|
@@ -58,8 +58,8 @@ describe 'OrdersApi' do
|
|
58
58
|
|
59
59
|
# unit tests for place_order
|
60
60
|
# Place an order
|
61
|
-
# Placing an order confirms an order's allocation of offsets. Only orders that are in the `draft` state can be placed
|
62
|
-
# @param id
|
61
|
+
# Placing an order confirms an order's allocation of offsets. Only orders that are in the `draft` state can be placed
|
62
|
+
# @param id
|
63
63
|
# @param [Hash] opts the optional parameters
|
64
64
|
# @return [OrderResponse]
|
65
65
|
describe 'place_order test' do
|
@@ -70,8 +70,8 @@ describe 'OrdersApi' do
|
|
70
70
|
|
71
71
|
# unit tests for retrieve_order
|
72
72
|
# Retrieves an order
|
73
|
-
# Retrieves a given order and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
|
74
|
-
# @param id
|
73
|
+
# Retrieves a given order and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
|
74
|
+
# @param id
|
75
75
|
# @param [Hash] opts the optional parameters
|
76
76
|
# @return [OrderResponse]
|
77
77
|
describe 'retrieve_order test' do
|
@@ -82,14 +82,13 @@ describe 'OrdersApi' do
|
|
82
82
|
|
83
83
|
# unit tests for retrieve_orders
|
84
84
|
# Retrieves a list of orders
|
85
|
-
# Retrieves a list of orders and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
|
85
|
+
# Retrieves a list of orders and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
|
86
86
|
# @param [Hash] opts the optional parameters
|
87
|
-
# @option opts [Integer] :page
|
87
|
+
# @option opts [Integer] :page
|
88
88
|
# @return [OrderListResponse]
|
89
89
|
describe 'retrieve_orders test' do
|
90
90
|
it 'should work' do
|
91
91
|
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
92
92
|
end
|
93
93
|
end
|
94
|
-
|
95
94
|
end
|
@@ -34,8 +34,8 @@ describe 'PreferencesApi' do
|
|
34
34
|
|
35
35
|
# unit tests for create_preference
|
36
36
|
# creates a project preference
|
37
|
-
# Creates a project preference for the given organization. If you have a `preference` in place, all of your orders will be directed to the project the preference points to.
|
38
|
-
# @param create_preference_request
|
37
|
+
# Creates a project preference for the given organization. If you have a `preference` in place, all of your orders will be directed to the project the preference points to.
|
38
|
+
# @param create_preference_request
|
39
39
|
# @param [Hash] opts the optional parameters
|
40
40
|
# @return [PreferenceResponse]
|
41
41
|
describe 'create_preference test' do
|
@@ -46,8 +46,8 @@ describe 'PreferencesApi' do
|
|
46
46
|
|
47
47
|
# unit tests for delete_preference
|
48
48
|
# Deletes an organization's preference for a project
|
49
|
-
# Deletes the given `preference`. Once a preference is deleted, it cannot be undone. If you want to restore your previous preference, create a new one.
|
50
|
-
# @param id
|
49
|
+
# Deletes the given `preference`. Once a preference is deleted, it cannot be undone. If you want to restore your previous preference, create a new one.
|
50
|
+
# @param id
|
51
51
|
# @param [Hash] opts the optional parameters
|
52
52
|
# @return [PreferenceResponse]
|
53
53
|
describe 'delete_preference test' do
|
@@ -58,8 +58,8 @@ describe 'PreferencesApi' do
|
|
58
58
|
|
59
59
|
# unit tests for retrieve_preference
|
60
60
|
# Retrieve the preference
|
61
|
-
# Retrieve the preference and project of an organization. You can only retrieve preferences associated with your organization.
|
62
|
-
# @param id
|
61
|
+
# Retrieve the preference and project of an organization. You can only retrieve preferences associated with your organization.
|
62
|
+
# @param id
|
63
63
|
# @param [Hash] opts the optional parameters
|
64
64
|
# @return [PreferenceResponse]
|
65
65
|
describe 'retrieve_preference test' do
|
@@ -70,14 +70,13 @@ describe 'PreferencesApi' do
|
|
70
70
|
|
71
71
|
# unit tests for retrieve_preferences
|
72
72
|
# Retrieves a list of preferences
|
73
|
-
# Retrieves a list of preferences and associated projects of an organization. You can only retrieve preferences associated with your organization.
|
73
|
+
# Retrieves a list of preferences and associated projects of an organization. You can only retrieve preferences associated with your organization.
|
74
74
|
# @param [Hash] opts the optional parameters
|
75
|
-
# @option opts [Integer] :page
|
75
|
+
# @option opts [Integer] :page
|
76
76
|
# @return [PreferenceListResponse]
|
77
77
|
describe 'retrieve_preferences test' do
|
78
78
|
it 'should work' do
|
79
79
|
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
80
80
|
end
|
81
81
|
end
|
82
|
-
|
83
82
|
end
|
@@ -34,8 +34,8 @@ describe 'ProjectsApi' do
|
|
34
34
|
|
35
35
|
# unit tests for retrieve_project
|
36
36
|
# Retrieves a project
|
37
|
-
# Retrieves a project available on Patch's platform.
|
38
|
-
# @param id
|
37
|
+
# Retrieves a project available on Patch's platform.
|
38
|
+
# @param id
|
39
39
|
# @param [Hash] opts the optional parameters
|
40
40
|
# @return [ProjectResponse]
|
41
41
|
describe 'retrieve_project test' do
|
@@ -46,14 +46,13 @@ describe 'ProjectsApi' do
|
|
46
46
|
|
47
47
|
# unit tests for retrieve_projects
|
48
48
|
# Retrieves a list of projects
|
49
|
-
# Retrieves a list of projects available for purchase on Patch's platform.
|
49
|
+
# Retrieves a list of projects available for purchase on Patch's platform.
|
50
50
|
# @param [Hash] opts the optional parameters
|
51
|
-
# @option opts [Integer] :page
|
51
|
+
# @option opts [Integer] :page
|
52
52
|
# @return [ProjectListResponse]
|
53
53
|
describe 'retrieve_projects test' do
|
54
54
|
it 'should work' do
|
55
55
|
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
56
56
|
end
|
57
57
|
end
|
58
|
-
|
59
58
|
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
RSpec.describe 'Estimates Integration' do
|
2
|
-
|
3
|
-
# Configure the Patch gem
|
2
|
+
before do
|
4
3
|
Patch.configure do |config|
|
5
4
|
config.access_token = ENV['PATCH_RUBY_API_KEY']
|
6
5
|
end
|
6
|
+
end
|
7
7
|
|
8
|
+
it 'supports create, retrieve and list' do
|
8
9
|
create_estimate_response = Patch::Estimate.create_mass_estimate(mass_g: 100)
|
9
10
|
estimate_id = create_estimate_response.data.id
|
10
11
|
|
@@ -23,4 +24,15 @@ RSpec.describe 'Estimates Integration' do
|
|
23
24
|
|
24
25
|
expect(estimates.length).not_to be_zero
|
25
26
|
end
|
27
|
+
|
28
|
+
it 'supports create with a project-id' do
|
29
|
+
retrieve_projects_response = Patch::Project.retrieve_projects(page: 1)
|
30
|
+
project_id = retrieve_projects_response.data.first.id
|
31
|
+
create_estimate_response = Patch::Estimate.create_mass_estimate(mass_g: 100, project_id: project_id)
|
32
|
+
estimate_id = create_estimate_response.data.id
|
33
|
+
|
34
|
+
expect(create_estimate_response.success).to eq true
|
35
|
+
expect(create_estimate_response.data.order.id).not_to be_nil
|
36
|
+
expect(create_estimate_response.data.order.mass_g).to eq(100)
|
37
|
+
end
|
26
38
|
end
|
@@ -25,6 +25,28 @@ RSpec.describe 'Orders Integration' do
|
|
25
25
|
expect(orders.length).not_to be_zero
|
26
26
|
end
|
27
27
|
|
28
|
+
it 'supports create with a project-id' do
|
29
|
+
retrieve_projects_response = Patch::Project.retrieve_projects(page: 1)
|
30
|
+
project_id = retrieve_projects_response.data.first.id
|
31
|
+
|
32
|
+
create_order_response = Patch::Order.create_order(mass_g: 100, project_id: project_id)
|
33
|
+
|
34
|
+
expect(create_order_response.success).to eq true
|
35
|
+
expect(create_order_response.data.id).not_to be_nil
|
36
|
+
expect(create_order_response.data.mass_g).to eq(100)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'supports create with metadata' do
|
40
|
+
metadata = { user: 'john doe' }
|
41
|
+
|
42
|
+
create_order_response = Patch::Order.create_order(mass_g: 100, metadata: metadata)
|
43
|
+
|
44
|
+
expect(create_order_response.success).to eq true
|
45
|
+
expect(create_order_response.data.id).not_to be_nil
|
46
|
+
expect(create_order_response.data.mass_g).to eq(100)
|
47
|
+
expect(create_order_response.data.metadata).to eq(metadata)
|
48
|
+
end
|
49
|
+
|
28
50
|
it 'supports place and cancel for orders created via an estimate' do
|
29
51
|
create_estimate_to_place_response = Patch::Estimate.create_mass_estimate(mass_g: 100)
|
30
52
|
order_to_place_id = create_estimate_to_place_response.data.order.id
|
data/spec/models/order_spec.rb
CHANGED
data/spec/models/project_spec.rb
CHANGED
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.
|
4
|
+
version: 1.1.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-
|
11
|
+
date: 2020-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -77,6 +77,7 @@ executables: []
|
|
77
77
|
extensions: []
|
78
78
|
extra_rdoc_files: []
|
79
79
|
files:
|
80
|
+
- CHANGELOG.md
|
80
81
|
- Gemfile
|
81
82
|
- Gemfile.lock
|
82
83
|
- README.md
|
@@ -162,32 +163,32 @@ signing_key:
|
|
162
163
|
specification_version: 4
|
163
164
|
summary: Ruby wrapper for the Patch API
|
164
165
|
test_files:
|
166
|
+
- spec/api/preferences_api_spec.rb
|
165
167
|
- spec/api/orders_api_spec.rb
|
166
|
-
- spec/api/estimates_api_spec.rb
|
167
168
|
- spec/api/projects_api_spec.rb
|
168
|
-
- spec/api/
|
169
|
+
- spec/api/estimates_api_spec.rb
|
169
170
|
- spec/api_client_spec.rb
|
170
171
|
- spec/configuration_spec.rb
|
171
|
-
- spec/integration/orders_spec.rb
|
172
172
|
- spec/integration/preferences_spec.rb
|
173
|
-
- spec/integration/estimates_spec.rb
|
174
173
|
- spec/integration/projects_spec.rb
|
175
|
-
- spec/
|
176
|
-
- spec/
|
177
|
-
- spec/models/
|
178
|
-
- spec/models/order_spec.rb
|
179
|
-
- spec/models/create_preference_request_spec.rb
|
180
|
-
- spec/models/error_response_spec.rb
|
181
|
-
- spec/models/preference_spec.rb
|
182
|
-
- spec/models/preference_list_response_spec.rb
|
174
|
+
- spec/integration/estimates_spec.rb
|
175
|
+
- spec/integration/orders_spec.rb
|
176
|
+
- spec/models/estimate_response_spec.rb
|
183
177
|
- spec/models/project_list_response_spec.rb
|
184
|
-
- spec/models/
|
178
|
+
- spec/models/create_preference_request_spec.rb
|
179
|
+
- spec/models/project_response_spec.rb
|
180
|
+
- spec/models/allocation_spec.rb
|
181
|
+
- spec/models/estimate_spec.rb
|
185
182
|
- spec/models/meta_index_object_spec.rb
|
186
183
|
- spec/models/estimate_list_response_spec.rb
|
187
|
-
- spec/models/preference_response_spec.rb
|
188
|
-
- spec/models/estimate_spec.rb
|
189
|
-
- spec/models/estimate_response_spec.rb
|
190
|
-
- spec/models/project_response_spec.rb
|
191
184
|
- spec/models/project_spec.rb
|
192
|
-
- spec/models/
|
185
|
+
- spec/models/order_list_response_spec.rb
|
186
|
+
- spec/models/create_mass_estimate_request_spec.rb
|
187
|
+
- spec/models/preference_spec.rb
|
188
|
+
- spec/models/error_response_spec.rb
|
189
|
+
- spec/models/order_response_spec.rb
|
190
|
+
- 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
|
193
194
|
- spec/spec_helper.rb
|