her 0.10.0 → 0.10.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/README.md +4 -6
- data/her.gemspec +2 -2
- data/lib/her/model/associations/has_many_association.rb +1 -1
- data/lib/her/model/attributes.rb +30 -22
- data/lib/her/model/introspection.rb +1 -1
- data/lib/her/model/orm.rb +56 -52
- data/lib/her/model/parse.rb +17 -4
- data/lib/her/model/relation.rb +1 -1
- data/lib/her/version.rb +1 -1
- data/spec/model/associations_spec.rb +564 -328
- data/spec/model/attributes_spec.rb +8 -8
- data/spec/model/callbacks_spec.rb +1 -1
- data/spec/model/dirty_spec.rb +41 -1
- data/spec/model/introspection_spec.rb +1 -1
- data/spec/model/orm_spec.rb +22 -4
- data/spec/model/parse_spec.rb +151 -0
- data/spec/model/relation_spec.rb +14 -2
- metadata +11 -11
@@ -204,7 +204,7 @@ describe Her::Model::Attributes do
|
|
204
204
|
|
205
205
|
spawn_model "Foo::User" do
|
206
206
|
def document
|
207
|
-
|
207
|
+
self.attributes[:document][:url]
|
208
208
|
end
|
209
209
|
end
|
210
210
|
end
|
@@ -229,7 +229,7 @@ describe Her::Model::Attributes do
|
|
229
229
|
|
230
230
|
spawn_model "Foo::User" do
|
231
231
|
def document=(document)
|
232
|
-
@
|
232
|
+
@_her_attributes[:document] = document[:url]
|
233
233
|
end
|
234
234
|
end
|
235
235
|
end
|
@@ -288,19 +288,19 @@ describe Her::Model::Attributes do
|
|
288
288
|
it { is_expected.to respond_to(:fullname?) }
|
289
289
|
end
|
290
290
|
|
291
|
-
it "defines setter that affects
|
291
|
+
it "defines setter that affects attributes" do
|
292
292
|
user = Foo::User.new
|
293
293
|
user.fullname = "Tobias Fünke"
|
294
294
|
expect(user.attributes[:fullname]).to eq("Tobias Fünke")
|
295
295
|
end
|
296
296
|
|
297
|
-
it "defines getter that reads
|
297
|
+
it "defines getter that reads attributes" do
|
298
298
|
user = Foo::User.new
|
299
299
|
user.assign_attributes(fullname: "Tobias Fünke")
|
300
300
|
expect(user.fullname).to eq("Tobias Fünke")
|
301
301
|
end
|
302
302
|
|
303
|
-
it "defines predicate that reads
|
303
|
+
it "defines predicate that reads attributes" do
|
304
304
|
user = Foo::User.new
|
305
305
|
expect(user.fullname?).to be_falsey
|
306
306
|
user.assign_attributes(fullname: "Tobias Fünke")
|
@@ -335,19 +335,19 @@ describe Her::Model::Attributes do
|
|
335
335
|
expect(Foo::User.generated_attribute_methods.instance_methods).to include(:fullname?)
|
336
336
|
end
|
337
337
|
|
338
|
-
it "defines setter that affects
|
338
|
+
it "defines setter that affects attributes" do
|
339
339
|
user = Foo::User.new
|
340
340
|
user.fullname = "Tobias Fünke"
|
341
341
|
expect(user.attributes[:fullname]).to eq("Tobias Fünke")
|
342
342
|
end
|
343
343
|
|
344
|
-
it "defines getter that reads
|
344
|
+
it "defines getter that reads attributes" do
|
345
345
|
user = Foo::User.new
|
346
346
|
user.attributes[:fullname] = "Tobias Fünke"
|
347
347
|
expect(user.fullname).to eq("Tobias Fünke")
|
348
348
|
end
|
349
349
|
|
350
|
-
it "defines predicate that reads
|
350
|
+
it "defines predicate that reads attributes" do
|
351
351
|
user = Foo::User.new
|
352
352
|
expect(user.fullname?).to be_falsey
|
353
353
|
user.attributes[:fullname] = "Tobias Fünke"
|
@@ -58,7 +58,7 @@ describe "Her::Model and ActiveModel::Callbacks" do
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
-
it "should call the server with the
|
61
|
+
it "should call the server with the changed value" do
|
62
62
|
expect(subject.name).to eq("Tobias Funke")
|
63
63
|
subject.save
|
64
64
|
expect(subject.name).to eq("Lumberjack")
|
data/spec/model/dirty_spec.rb
CHANGED
@@ -8,16 +8,24 @@ describe "Her::Model and ActiveModel::Dirty" do
|
|
8
8
|
builder.use Her::Middleware::FirstLevelParseJSON
|
9
9
|
builder.use Faraday::Request::UrlEncoded
|
10
10
|
builder.adapter :test do |stub|
|
11
|
+
stub.get("/users") { [200, {}, [{ id: 1, fullname: "Lindsay Fünke" }, { id: 2, fullname: "Maeby Fünke" }].to_json] }
|
11
12
|
stub.get("/users/1") { [200, {}, { id: 1, fullname: "Lindsay Fünke" }.to_json] }
|
12
13
|
stub.get("/users/2") { [200, {}, { id: 2, fullname: "Maeby Fünke" }.to_json] }
|
13
14
|
stub.get("/users/3") { [200, {}, { user_id: 3, fullname: "Maeby Fünke" }.to_json] }
|
14
15
|
stub.put("/users/1") { [200, {}, { id: 1, fullname: "Tobias Fünke" }.to_json] }
|
15
16
|
stub.put("/users/2") { [400, {}, { errors: ["Email cannot be blank"] }.to_json] }
|
16
17
|
stub.post("/users") { [200, {}, { id: 1, fullname: "Tobias Fünke" }.to_json] }
|
18
|
+
stub.get("/users/1/posts") { [200, {}, [{ id: 1, user_id: 1, body: "Hello" }].to_json] }
|
19
|
+
stub.get("/users/1/posts/1") { [200, {}, { id: 1, user_id: 1, body: "Hello" }.to_json] }
|
17
20
|
end
|
18
21
|
end
|
19
22
|
|
23
|
+
spawn_model "Foo::Post" do
|
24
|
+
belongs_to :user
|
25
|
+
attributes :body
|
26
|
+
end
|
20
27
|
spawn_model "Foo::User" do
|
28
|
+
has_many :posts
|
21
29
|
attributes :fullname, :email
|
22
30
|
end
|
23
31
|
spawn_model "Dynamic::User" do
|
@@ -74,6 +82,32 @@ describe "Her::Model and ActiveModel::Dirty" do
|
|
74
82
|
end
|
75
83
|
end
|
76
84
|
|
85
|
+
context "for an existing resource from an association" do
|
86
|
+
let(:post) { Foo::User.find(1).posts.find(1) }
|
87
|
+
it "has no changes" do
|
88
|
+
expect(post.changes).to be_empty
|
89
|
+
expect(post).to_not be_changed
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context "for an existing resource from an association collection" do
|
94
|
+
let(:post) { Foo::User.find(1).posts.first }
|
95
|
+
it "has no changes" do
|
96
|
+
expect(post.changes).to be_empty
|
97
|
+
expect(post).to_not be_changed
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
context "for resources from a collection" do
|
102
|
+
let(:users) { Foo::User.all.fetch }
|
103
|
+
it "has no changes" do
|
104
|
+
users.each do |user|
|
105
|
+
expect(user.changes).to be_empty
|
106
|
+
expect(user).to_not be_changed
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
77
111
|
context "for new resource" do
|
78
112
|
let(:user) { Foo::User.new(fullname: "Lindsay Fünke") }
|
79
113
|
it "has changes" do
|
@@ -87,6 +121,12 @@ describe "Her::Model and ActiveModel::Dirty" do
|
|
87
121
|
expect(user).not_to be_changed
|
88
122
|
end
|
89
123
|
end
|
124
|
+
|
125
|
+
context "for a new resource from an association" do
|
126
|
+
let(:post) { Foo::User.find(1).posts.build }
|
127
|
+
it "has changes" do
|
128
|
+
expect(post).to be_changed
|
129
|
+
end
|
130
|
+
end
|
90
131
|
end
|
91
132
|
end
|
92
|
-
#
|
@@ -73,7 +73,7 @@ describe Her::Model::Introspection do
|
|
73
73
|
expect(Foo::User.her_nearby_class("AccessRecord")).to eq(Foo::AccessRecord)
|
74
74
|
expect(AccessRecord.her_nearby_class("Log")).to eq(Log)
|
75
75
|
expect(Foo::User.her_nearby_class("Log")).to eq(Log)
|
76
|
-
expect
|
76
|
+
expect{Foo::User.her_nearby_class("X")}.to raise_error(NameError)
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
data/spec/model/orm_spec.rb
CHANGED
@@ -172,11 +172,11 @@ describe Her::Model::ORM do
|
|
172
172
|
|
173
173
|
def friends=(val)
|
174
174
|
val = val.delete("\r").split("\n").map { |friend| friend.gsub(/^\s*\*\s*/, "") } if val && val.is_a?(String)
|
175
|
-
@
|
175
|
+
@_her_attributes[:friends] = val
|
176
176
|
end
|
177
177
|
|
178
178
|
def friends
|
179
|
-
@
|
179
|
+
@_her_attributes[:friends].map { |friend| "* #{friend}" }.join("\n")
|
180
180
|
end
|
181
181
|
end
|
182
182
|
end
|
@@ -185,7 +185,7 @@ describe Her::Model::ORM do
|
|
185
185
|
@user = User.find(1)
|
186
186
|
expect(@user.friends).to eq("* Maeby\n* GOB\n* Anne")
|
187
187
|
@user.instance_eval do
|
188
|
-
@
|
188
|
+
@_her_attributes[:friends] = %w(Maeby GOB Anne)
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
@@ -194,7 +194,7 @@ describe Her::Model::ORM do
|
|
194
194
|
@user.friends = "* George\n* Oscar\n* Lucille"
|
195
195
|
expect(@user.friends).to eq("* George\n* Oscar\n* Lucille")
|
196
196
|
@user.instance_eval do
|
197
|
-
@
|
197
|
+
@_her_attributes[:friends] = %w(George Oscar Lucille)
|
198
198
|
end
|
199
199
|
end
|
200
200
|
end
|
@@ -491,12 +491,30 @@ describe Her::Model::ORM do
|
|
491
491
|
builder.adapter :test do |stub|
|
492
492
|
stub.get("/users/1") { [200, {}, { id: 1, fullname: "Tobias Fünke", active: true }.to_json] }
|
493
493
|
stub.delete("/users/1") { [status, {}, { id: 1, fullname: "Lindsay Fünke", active: false }.to_json] }
|
494
|
+
|
495
|
+
stub.get("/child_users") { [200, {}, { data: [{ id: 1, name: "Tobias Fünke" }, { id: 2, name: "Lindsay Fünke" }], metadata: { total_pages: 10, next_page: 2 }, errors: %w(Oh My God) }.to_json] }
|
496
|
+
stub.get("/child_users") { |env| [200, {}, { :data => [{ :id => 1, :name => "Tobias Fünke" }, { :id => 2, :name => "Lindsay Fünke" }], :metadata => { :total_pages => 10, :next_page => 2 }, :errors => ["Oh", "My", "God"] }.to_json] }
|
497
|
+
stub.post("/child_users") { |env| [200, {}, { :data => { :name => "George Michael Bluth" }, :metadata => { :foo => "bar" }, :errors => ["Yes", "Sir"] }.to_json] }
|
498
|
+
stub.delete("/child_users/1") { |env| [200, {}, { :data => { :id => 1 }, :metadata => { :foo => "bar" }, :errors => ["Yes", "Sir"] }.to_json] }
|
494
499
|
end
|
495
500
|
end
|
496
501
|
|
497
502
|
spawn_model "Foo::User"
|
498
503
|
end
|
499
504
|
|
505
|
+
it "handles proper resource deletion on a child model class" do
|
506
|
+
child_user_klass = Class.new(Foo::User) do
|
507
|
+
def self.name
|
508
|
+
"ChildUser"
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
child_user_klass.destroy_existing(1)
|
513
|
+
@child_user = child_user_klass.create(name: "George Michael Bluth")
|
514
|
+
|
515
|
+
expect { @child_user.save! }.to raise_error(Her::Errors::ResourceInvalid)
|
516
|
+
end
|
517
|
+
|
500
518
|
it "handle resource deletion through the .destroy class method" do
|
501
519
|
@user = Foo::User.destroy_existing(1)
|
502
520
|
expect(@user.active).to be_falsey
|
data/spec/model/parse_spec.rb
CHANGED
@@ -24,6 +24,21 @@ describe Her::Model::Parse do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
it "inherits attributes from parent class" do
|
28
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
29
|
+
end
|
30
|
+
|
31
|
+
expect(Foo::ChildUser).to be_include_root_in_json
|
32
|
+
end
|
33
|
+
|
34
|
+
it "allows `include_root_in_json` to be set to `false` on a child model" do
|
35
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
36
|
+
include_root_in_json false
|
37
|
+
end
|
38
|
+
|
39
|
+
expect(Foo::ChildUser).to_not be_include_root_in_json
|
40
|
+
end
|
41
|
+
|
27
42
|
it "wraps params in the element name in `to_params`" do
|
28
43
|
@new_user = Foo::User.new(fullname: "Tobias Fünke")
|
29
44
|
expect(@new_user.to_params).to eq(user: { fullname: "Tobias Fünke" })
|
@@ -35,6 +50,29 @@ describe Her::Model::Parse do
|
|
35
50
|
end
|
36
51
|
end
|
37
52
|
|
53
|
+
context "to false" do
|
54
|
+
before do
|
55
|
+
spawn_model "Foo::User" do
|
56
|
+
include_root_in_json false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "inherits attributes from parent class" do
|
61
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
62
|
+
end
|
63
|
+
|
64
|
+
expect(Foo::ChildUser).to_not be_include_root_in_json
|
65
|
+
end
|
66
|
+
|
67
|
+
it "allows `include_root_in_json` to be set to `true` on a child model" do
|
68
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
69
|
+
include_root_in_json true
|
70
|
+
end
|
71
|
+
|
72
|
+
expect(Foo::ChildUser).to be_include_root_in_json
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
38
76
|
context "to a symbol" do
|
39
77
|
before do
|
40
78
|
spawn_model "Foo::User" do
|
@@ -64,6 +102,54 @@ describe Her::Model::Parse do
|
|
64
102
|
end
|
65
103
|
end
|
66
104
|
|
105
|
+
context "when `request_new_object_on_build` is set" do
|
106
|
+
context "to true" do
|
107
|
+
before do
|
108
|
+
spawn_model "Foo::User" do
|
109
|
+
request_new_object_on_build true
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
it "inherits attributes from parent class" do
|
114
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
115
|
+
end
|
116
|
+
|
117
|
+
expect(Foo::ChildUser).to be_request_new_object_on_build
|
118
|
+
end
|
119
|
+
|
120
|
+
it "allows `request_new_object_on_build` to be set to `false` on a child model" do
|
121
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
122
|
+
request_new_object_on_build false
|
123
|
+
end
|
124
|
+
|
125
|
+
expect(Foo::ChildUser).to_not be_request_new_object_on_build
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context "to false" do
|
130
|
+
before do
|
131
|
+
spawn_model "Foo::User" do
|
132
|
+
request_new_object_on_build false
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
it "inherits attributes from parent class" do
|
137
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
138
|
+
end
|
139
|
+
|
140
|
+
expect(Foo::ChildUser).to_not be_request_new_object_on_build
|
141
|
+
end
|
142
|
+
|
143
|
+
it "allows `request_new_object_on_build` to be set to `true` on a child model" do
|
144
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
145
|
+
request_new_object_on_build true
|
146
|
+
end
|
147
|
+
|
148
|
+
expect(Foo::ChildUser).to be_request_new_object_on_build
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
67
153
|
context "when parse_root_in_json is set" do
|
68
154
|
before do
|
69
155
|
Her::API.setup url: "https://api.example.com" do |builder|
|
@@ -88,6 +174,21 @@ describe Her::Model::Parse do
|
|
88
174
|
end
|
89
175
|
end
|
90
176
|
|
177
|
+
it "inherits attributes from parent class" do
|
178
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
179
|
+
end
|
180
|
+
|
181
|
+
expect(Foo::ChildUser).to be_parse_root_in_json
|
182
|
+
end
|
183
|
+
|
184
|
+
it "allows `parse_root_in_json` to be set to `false` on a child model" do
|
185
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
186
|
+
parse_root_in_json false
|
187
|
+
end
|
188
|
+
|
189
|
+
expect(Foo::ChildUser).to_not be_parse_root_in_json
|
190
|
+
end
|
191
|
+
|
91
192
|
it "parse the data from the JSON root element after .create" do
|
92
193
|
@new_user = Foo::User.create(fullname: "Lindsay Fünke")
|
93
194
|
expect(@new_user.fullname).to eq("Lindsay Fünke")
|
@@ -116,6 +217,29 @@ describe Her::Model::Parse do
|
|
116
217
|
end
|
117
218
|
end
|
118
219
|
|
220
|
+
context "to false" do
|
221
|
+
before do
|
222
|
+
spawn_model "Foo::User" do
|
223
|
+
parse_root_in_json false
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
it "inherits attributes from parent class" do
|
228
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
229
|
+
end
|
230
|
+
|
231
|
+
expect(Foo::ChildUser).to_not be_parse_root_in_json
|
232
|
+
end
|
233
|
+
|
234
|
+
it "allows `parse_root_in_json` to be set to `true` on a child model" do
|
235
|
+
spawn_model "Foo::ChildUser", super_class: Foo::User do
|
236
|
+
parse_root_in_json true
|
237
|
+
end
|
238
|
+
|
239
|
+
expect(Foo::ChildUser).to be_parse_root_in_json
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
119
243
|
context "to a symbol" do
|
120
244
|
before do
|
121
245
|
Her::API.default_api.connection.adapter :test do |stub|
|
@@ -342,4 +466,31 @@ describe Her::Model::Parse do
|
|
342
466
|
expect(user.to_params).to eql(user: { first_name: "Someone" })
|
343
467
|
end
|
344
468
|
end
|
469
|
+
|
470
|
+
context 'when passed a non-Her ActiveModel instance' do
|
471
|
+
before do
|
472
|
+
klass = Class.new do
|
473
|
+
include ActiveModel::Serialization
|
474
|
+
|
475
|
+
def attributes
|
476
|
+
{ 'name' => nil }
|
477
|
+
end
|
478
|
+
|
479
|
+
def name
|
480
|
+
'foo'
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
@model = klass.new
|
485
|
+
|
486
|
+
Her::API.setup
|
487
|
+
spawn_model 'Foo::User'
|
488
|
+
end
|
489
|
+
|
490
|
+
it 'serializes the instance in `to_params`' do
|
491
|
+
attributes = { model: @model }
|
492
|
+
user = Foo::User.new(attributes)
|
493
|
+
expect(user.to_params).to eq(model: { name: 'foo' })
|
494
|
+
end
|
495
|
+
end
|
345
496
|
end
|
data/spec/model/relation_spec.rb
CHANGED
@@ -79,8 +79,8 @@ describe Her::Model::Relation do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "propagates the scopes through its children" do
|
82
|
-
|
83
|
-
expect(
|
82
|
+
expect(User.page(2).length).to eq(2)
|
83
|
+
expect(User.scoped.page(2).length).to eq(2)
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
@@ -135,6 +135,7 @@ describe Her::Model::Relation do
|
|
135
135
|
stub.get("/users?what=4&where=3") { ok! [{ id: 3, fullname: "Maeby Fünke" }] }
|
136
136
|
stub.get("/users?what=2") { ok! [{ id: 2, fullname: "Lindsay Fünke" }] }
|
137
137
|
stub.get("/users?where=6") { ok! [{ id: 4, fullname: "Tobias Fünke" }] }
|
138
|
+
stub.get('/bar/users') { ok! [] }
|
138
139
|
end
|
139
140
|
end
|
140
141
|
|
@@ -143,6 +144,11 @@ describe Her::Model::Relation do
|
|
143
144
|
scope :bar, ->(v) { where(where: v) }
|
144
145
|
scope :baz, -> { bar(6) }
|
145
146
|
end
|
147
|
+
|
148
|
+
spawn_model "Bar::User" do
|
149
|
+
collection_path '/bar/users'
|
150
|
+
scope :baz, -> { where(where: 7) }
|
151
|
+
end
|
146
152
|
end
|
147
153
|
|
148
154
|
it "passes query parameters" do
|
@@ -159,6 +165,12 @@ describe Her::Model::Relation do
|
|
159
165
|
@user = Foo::User.baz.first
|
160
166
|
expect(@user.id).to eq(4)
|
161
167
|
end
|
168
|
+
|
169
|
+
it "does not share scope with other models" do
|
170
|
+
expect(Bar::User.scoped).not_to respond_to(:foo, :bar)
|
171
|
+
expect(Foo::User.scoped.baz.params[:where]).to eq(6)
|
172
|
+
expect(Bar::User.scoped.baz.params[:where]).to eq(7)
|
173
|
+
end
|
162
174
|
end
|
163
175
|
|
164
176
|
describe :default_scope do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: her
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rémi Prévost
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -59,9 +59,9 @@ dependencies:
|
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 3.0.0
|
62
|
-
- - "
|
62
|
+
- - "<"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
64
|
+
version: 5.2.0
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,9 +69,9 @@ dependencies:
|
|
69
69
|
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: 3.0.0
|
72
|
-
- - "
|
72
|
+
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
74
|
+
version: 5.2.0
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: activesupport
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,9 +79,9 @@ dependencies:
|
|
79
79
|
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: 3.0.0
|
82
|
-
- - "
|
82
|
+
- - "<"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
84
|
+
version: 5.2.0
|
85
85
|
type: :runtime
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -89,9 +89,9 @@ dependencies:
|
|
89
89
|
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: 3.0.0
|
92
|
-
- - "
|
92
|
+
- - "<"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
94
|
+
version: 5.2.0
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: faraday
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
225
225
|
version: '0'
|
226
226
|
requirements: []
|
227
227
|
rubyforge_project:
|
228
|
-
rubygems_version: 2.5.1
|
228
|
+
rubygems_version: 2.4.5.1
|
229
229
|
signing_key:
|
230
230
|
specification_version: 4
|
231
231
|
summary: A simple Representational State Transfer-based Hypertext Transfer Protocol-powered
|