frenetic 0.0.20.alpha.6 → 1.0.0.alpha.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.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-version +1 -1
  3. data/Appraisals +9 -0
  4. data/Gemfile +1 -1
  5. data/README.md +2 -2
  6. data/frenetic.gemspec +8 -5
  7. data/gemfiles/faraday_08.gemfile +10 -0
  8. data/gemfiles/faraday_08.gemfile.lock +77 -0
  9. data/gemfiles/faraday_09.gemfile +10 -0
  10. data/gemfiles/faraday_09.gemfile.lock +77 -0
  11. data/lib/frenetic.rb +57 -30
  12. data/lib/frenetic/briefly_memoizable.rb +34 -0
  13. data/lib/frenetic/concerns/collection_rest_methods.rb +1 -1
  14. data/lib/frenetic/concerns/hal_linked.rb +5 -35
  15. data/lib/frenetic/concerns/member_rest_methods.rb +0 -2
  16. data/lib/frenetic/concerns/structured.rb +0 -5
  17. data/lib/frenetic/connection.rb +110 -0
  18. data/lib/frenetic/errors.rb +112 -0
  19. data/lib/frenetic/hypermedia_link.rb +74 -0
  20. data/lib/frenetic/hypermedia_link_set.rb +43 -0
  21. data/lib/frenetic/middleware/hal_json.rb +9 -12
  22. data/lib/frenetic/resource.rb +22 -6
  23. data/lib/frenetic/resource_collection.rb +0 -1
  24. data/lib/frenetic/resource_mockery.rb +55 -1
  25. data/lib/frenetic/version.rb +1 -1
  26. data/spec/{concerns/breifly_memoizable_spec.rb → briefly_memoizable_spec.rb} +10 -18
  27. data/spec/concerns/hal_linked_spec.rb +49 -62
  28. data/spec/concerns/member_rest_methods_spec.rb +8 -10
  29. data/spec/concerns/structured_spec.rb +70 -75
  30. data/spec/connection_spec.rb +137 -0
  31. data/spec/fixtures/test_api_requests.rb +8 -2
  32. data/spec/frenetic_spec.rb +221 -133
  33. data/spec/hypermedia_link_set_spec.rb +155 -0
  34. data/spec/hypermedia_link_spec.rb +153 -0
  35. data/spec/middleware/hal_json_spec.rb +13 -15
  36. data/spec/resource_collection_spec.rb +17 -16
  37. data/spec/resource_mockery_spec.rb +69 -0
  38. data/spec/resource_spec.rb +110 -63
  39. data/spec/support/rspec.rb +0 -1
  40. metadata +88 -75
  41. data/lib/frenetic/concerns/briefly_memoizable.rb +0 -34
  42. data/lib/frenetic/concerns/configurable.rb +0 -59
  43. data/lib/frenetic/concerns/resource_mockery.rb +0 -48
  44. data/lib/frenetic/configuration.rb +0 -88
  45. data/spec/concerns/configurable_spec.rb +0 -50
  46. data/spec/concerns/resource_mockery_spec.rb +0 -56
  47. data/spec/configuration_spec.rb +0 -134
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Frenetic::Resource do
4
4
  let(:test_cfg) { { url:'http://example.com/api' } }
5
5
 
6
- let(:my_temp_resource) do
6
+ let(:abstract_resource) do
7
7
  cfg = test_cfg
8
8
 
9
9
  Class.new(described_class) do
@@ -12,7 +12,7 @@ describe Frenetic::Resource do
12
12
  end
13
13
 
14
14
  before do
15
- stub_const 'MyNamespace::MyTempResource', my_temp_resource
15
+ stub_const 'MyNamespace::MyTempResource', abstract_resource
16
16
  end
17
17
 
18
18
  describe '.api_client' do
@@ -34,26 +34,22 @@ describe Frenetic::Resource do
34
34
  end
35
35
 
36
36
  context 'a block argument' do
37
- before do
38
- configure_with_block!
39
- end
37
+ before { configure_with_block! }
40
38
 
41
39
  subject { MyNamespace::MyTempResource.instance_variable_get '@api_client' }
42
40
 
43
- it 'should save a reference to the argument' do
44
- subject.should be_a Proc
41
+ it 'saves a reference to the argument' do
42
+ expect(subject).to be_a Proc
45
43
  end
46
44
  end
47
45
 
48
46
  context 'a Frenetic instance' do
49
- before do
50
- configure_with_instance!
51
- end
47
+ before { configure_with_instance! }
52
48
 
53
49
  subject { MyNamespace::MyTempResource.instance_variable_get '@api_client' }
54
50
 
55
- it 'should save a reference to the argument' do
56
- subject.should be_an_instance_of Frenetic
51
+ it 'saves a reference to the argument' do
52
+ expect(subject).to be_an_instance_of Frenetic
57
53
  end
58
54
  end
59
55
 
@@ -62,25 +58,24 @@ describe Frenetic::Resource do
62
58
 
63
59
  context 'and a previously stored @api_client' do
64
60
  context 'Proc' do
65
- before do
66
- configure_with_block!
67
- end
61
+ before { configure_with_block! }
68
62
 
69
- it 'should call the Proc' do
63
+ let(:api_client) do
70
64
  MyNamespace::MyTempResource.instance_variable_get('@api_client')
71
- .should_receive 'call'
65
+ end
72
66
 
67
+ it 'calls the Proc' do
68
+ allow(api_client).to receive(:call)
73
69
  subject
70
+ expect(api_client).to have_received(:call)
74
71
  end
75
72
  end
76
73
 
77
74
  context 'Frenetic instance' do
78
- before do
79
- configure_with_instance!
80
- end
75
+ before { configure_with_instance! }
81
76
 
82
- it 'should return the instance' do
83
- subject.should be_an_instance_of Frenetic
77
+ it 'returns the instance' do
78
+ expect(subject).to be_an_instance_of Frenetic
84
79
  end
85
80
  end
86
81
  end
@@ -90,11 +85,15 @@ describe Frenetic::Resource do
90
85
 
91
86
  describe '.namespace' do
92
87
  before do
93
- stub_const 'MyNamespace::MyTempResource', my_temp_resource
88
+ stub_const 'MyNamespace::MyTempResource', abstract_resource
94
89
  end
95
90
 
96
91
  subject { MyNamespace::MyTempResource.namespace }
97
92
 
93
+ let(:namespace) do
94
+ MyNamespace::MyTempResource.instance_variable_get('@namespace')
95
+ end
96
+
98
97
  context 'with an argument' do
99
98
  before do
100
99
  MyNamespace::MyTempResource.class_eval do
@@ -102,30 +101,24 @@ describe Frenetic::Resource do
102
101
  end
103
102
  end
104
103
 
105
- it 'should return that value' do
106
- subject.should == 'test_spec'
104
+ it 'returns that value' do
105
+ expect(subject).to eq 'test_spec'
107
106
  end
108
107
 
109
- it 'should internally save the value' do
108
+ it 'internally saves the value' do
110
109
  subject
111
-
112
- ns = MyNamespace::MyTempResource.instance_variable_get '@namespace'
113
-
114
- ns.should == 'test_spec'
110
+ expect(namespace).to eq 'test_spec'
115
111
  end
116
112
  end
117
113
 
118
114
  context 'with no argument' do
119
- it 'should infer the value' do
120
- subject.should == 'my_temp_resource'
115
+ it 'infers the value' do
116
+ expect(subject).to eq 'my_temp_resource'
121
117
  end
122
118
 
123
- it 'should cache the inferrence' do
119
+ it 'caches the inferrence' do
124
120
  subject
125
-
126
- ns = MyNamespace::MyTempResource.instance_variable_get '@namespace'
127
-
128
- ns.should == 'my_temp_resource'
121
+ expect(namespace).to eq 'my_temp_resource'
129
122
  end
130
123
  end
131
124
  end
@@ -136,18 +129,43 @@ describe Frenetic::Resource do
136
129
  subject { MyNamespace::MyTempResource.properties }
137
130
 
138
131
  context 'for a known resource' do
139
- it 'should return a list of properties defined by the API' do
140
- subject.should_not be_empty
132
+ it 'returns a list of properties defined by the API' do
133
+ expect(subject).to_not be_empty
141
134
  end
142
135
  end
143
136
 
144
137
  context 'for an unknown resource' do
145
138
  before do
146
- MyNamespace::MyTempResource.stub(:namespace).and_return Time.now.to_i.to_s
139
+ allow(MyNamespace::MyTempResource)
140
+ .to receive(:namespace)
141
+ .and_return(Time.now.to_i.to_s)
142
+ end
143
+
144
+ it 'raises an error' do
145
+ expect{subject}.to raise_error Frenetic::HypermediaError
146
+ end
147
+ end
148
+
149
+ context 'in test mode' do
150
+ let(:mock_abstract_resource) do
151
+ Class.new(MyNamespace::MyTempResource) do
152
+ include Frenetic::ResourceMockery
153
+
154
+ def self.default_attributes
155
+ { foo:123 }
156
+ end
157
+ end
158
+ end
159
+
160
+ before do
161
+ stub_const 'MyNamespace::MockMyTempResource', mock_abstract_resource
162
+ allow(MyNamespace::MyTempResource)
163
+ .to receive(:test_mode?)
164
+ .and_return(true)
147
165
  end
148
166
 
149
- it 'should raise an error' do
150
- expect{ subject }.to raise_error Frenetic::HypermediaError
167
+ it 'returns the default attributes of the mock' do
168
+ expect(subject).to eq(foo:123)
151
169
  end
152
170
  end
153
171
  end
@@ -157,11 +175,10 @@ describe Frenetic::Resource do
157
175
 
158
176
  before do
159
177
  stub_const 'MyNamespace::MyMockResource', Class.new(MyNamespace::MyTempResource)
160
-
161
178
  MyNamespace::MyMockResource.send :include, Frenetic::ResourceMockery
162
179
  end
163
180
 
164
- it 'should initialize the mock with the provided values' do
181
+ it 'initializes the mock with the provided values' do
165
182
  expect(subject.id).to eq 99
166
183
  end
167
184
  end
@@ -170,19 +187,18 @@ describe Frenetic::Resource do
170
187
  subject { MyNamespace::MyTempResource.mock_class }
171
188
 
172
189
  context 'without a defined Mock-class' do
173
- it 'should raise an error' do
174
- expect{subject}.to raise_error Frenetic::ClientError
190
+ it 'raises an error' do
191
+ expect{subject}.to raise_error Frenetic::UndefinedResourceMock
175
192
  end
176
193
  end
177
194
 
178
195
  context 'with a defined Mock-class' do
179
196
  before do
180
197
  stub_const 'MyNamespace::MyMockResource', Class.new(MyNamespace::MyTempResource)
181
-
182
198
  MyNamespace::MyMockResource.send :include, Frenetic::ResourceMockery
183
199
  end
184
200
 
185
- it 'should return a mock instance of the resource' do
201
+ it 'returns a mock instance of the resource' do
186
202
  expect(subject).to eq MyNamespace::MyMockResource
187
203
  end
188
204
  end
@@ -196,30 +212,58 @@ describe Frenetic::Resource do
196
212
  context 'with no arguments' do
197
213
  let(:args) {}
198
214
 
199
- it 'should have default attributes' do
200
- subject.name.should be_nil
215
+ it 'has default attributes' do
216
+ expect(subject.name).to be_nil
201
217
  end
202
218
  end
203
219
 
204
220
  context 'with known attributes' do
205
221
  let(:args) { { name:'foo' } }
206
222
 
207
- it 'should set the appropriate values' do
208
- subject.name.should == 'foo'
223
+ it 'sets the appropriate values' do
224
+ expect(subject.name).to eq 'foo'
225
+ end
226
+
227
+ context 'and an embedded resource' do
228
+ let(:args) do
229
+ super().merge({
230
+ '_embedded' => {
231
+ 'abstract_resource' => {
232
+ 'id' => 99,
233
+ 'genus' => 'canine'
234
+ }
235
+ }
236
+ })
237
+ end
238
+
239
+ context 'this is of a known type' do
240
+ before do
241
+ stub_const 'MyNamespace::AbstractResource', abstract_resource
242
+ end
243
+
244
+ it 'instantiates the embedded resource' do
245
+ expect(subject.abstract_resource).to be_an_instance_of MyNamespace::AbstractResource
246
+ end
247
+ end
248
+
249
+ context 'this is of a known type' do
250
+ it 'instantiates a shim of the embedded resource' do
251
+ expect(subject.abstract_resource).to be_an_instance_of OpenStruct
252
+ end
253
+ end
209
254
  end
210
255
  end
211
256
 
212
257
  context 'with unknown attributes' do
213
258
  let(:args) { { gender:'male' } }
214
259
 
215
- it 'should not create accessors' do
260
+ it 'does not create accessors' do
216
261
  expect{ subject.gender }.to raise_error NoMethodError
217
262
  end
218
263
 
219
- it 'should be accessible in @params' do
220
- params = subject.instance_variable_get( '@params' )
221
-
222
- params.should include 'gender' => 'male'
264
+ it 'is accessible in @params' do
265
+ params = subject.instance_variable_get('@params')
266
+ expect(params).to include 'gender' => 'male'
223
267
  end
224
268
  end
225
269
 
@@ -227,11 +271,13 @@ describe Frenetic::Resource do
227
271
  let(:args) {}
228
272
 
229
273
  before do
230
- MyNamespace::MyTempResource.stub(:namespace).and_return Time.now.to_i.to_s
274
+ allow(MyNamespace::MyTempResource)
275
+ .to receive(:namespace)
276
+ .and_return(Time.now.to_i.to_s)
231
277
  end
232
278
 
233
- it 'should raise an error' do
234
- expect{ subject }.to raise_error Frenetic::HypermediaError
279
+ it 'raises an error' do
280
+ expect{subject}.to raise_error Frenetic::HypermediaError
235
281
  end
236
282
  end
237
283
  end
@@ -239,9 +285,10 @@ describe Frenetic::Resource do
239
285
  describe '#attributes' do
240
286
  before { @stubs.api_description }
241
287
 
242
- subject { MyNamespace::MyTempResource.new(name:'me').attributes }
288
+ subject { MyNamespace::MyTempResource.new(id:54, name:'me').attributes }
243
289
 
244
- it { should == { 'name' => 'me' } }
290
+ it 'returns attributes of the resource' do
291
+ expect(subject).to eq({'id' => 54, 'name' => 'me'})
292
+ end
245
293
  end
246
-
247
294
  end
@@ -1,5 +1,4 @@
1
1
  RSpec.configure do |config|
2
2
  config.filter_run focus:true
3
3
  config.run_all_when_everything_filtered = true
4
- config.treat_symbols_as_metadata_keys_with_true_values = true
5
4
  end
metadata CHANGED
@@ -1,160 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frenetic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20.alpha.6
5
- prerelease: 7
4
+ version: 1.0.0.alpha.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Derek Lindahl
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-17 00:00:00.000000000 Z
11
+ date: 2014-09-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: faraday
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 0.8.7
19
+ version: '0.8'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 0.8.7
26
+ version: '0.8'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: faraday_middleware
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
- version: 0.9.0
33
+ version: '0.8'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
- version: 0.9.0
40
+ version: '0.8'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: activesupport
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '3'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '3'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: addressable
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
61
  version: 2.3.4
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: 2.3.4
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: awesome_print
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
- version: 2.13.0
89
+ version: 3.0.0
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
- version: 2.13.0
96
+ version: 3.0.0
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rack-cache
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ~>
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
103
  version: '1.2'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ~>
108
+ - - "~>"
124
109
  - !ruby/object:Gem::Version
125
110
  version: '1.2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday-http-cache
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.4.2
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.4.2
126
125
  - !ruby/object:Gem::Dependency
127
126
  name: webmock
128
127
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
128
  requirements:
131
- - - ~>
129
+ - - "~>"
132
130
  - !ruby/object:Gem::Version
133
- version: 1.11.0
131
+ version: 1.18.0
134
132
  type: :development
135
133
  prerelease: false
136
134
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
135
  requirements:
139
- - - ~>
136
+ - - "~>"
140
137
  - !ruby/object:Gem::Version
141
- version: 1.11.0
138
+ version: 1.18.0
142
139
  - !ruby/object:Gem::Dependency
143
140
  name: timecop
144
141
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
142
  requirements:
147
- - - ~>
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.7.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.7.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: appraisal
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
148
158
  - !ruby/object:Gem::Version
149
- version: 0.6.1
159
+ version: 1.0.2
150
160
  type: :development
151
161
  prerelease: false
152
162
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
163
  requirements:
155
- - - ~>
164
+ - - "~>"
156
165
  - !ruby/object:Gem::Version
157
- version: 0.6.1
166
+ version: 1.0.2
158
167
  description: An opinionated Ruby-based Hypermedia API client.
159
168
  email:
160
169
  - dlindahl@customink.com
@@ -162,40 +171,47 @@ executables: []
162
171
  extensions: []
163
172
  extra_rdoc_files: []
164
173
  files:
165
- - .gitignore
166
- - .irbrc
167
- - .ruby-version
168
- - .travis.yml
174
+ - ".gitignore"
175
+ - ".irbrc"
176
+ - ".ruby-version"
177
+ - ".travis.yml"
178
+ - Appraisals
169
179
  - Gemfile
170
180
  - LICENSE
171
181
  - README.md
172
182
  - Rakefile
173
183
  - frenetic.gemspec
184
+ - gemfiles/faraday_08.gemfile
185
+ - gemfiles/faraday_08.gemfile.lock
186
+ - gemfiles/faraday_09.gemfile
187
+ - gemfiles/faraday_09.gemfile.lock
174
188
  - lib/frenetic.rb
175
- - lib/frenetic/concerns/briefly_memoizable.rb
189
+ - lib/frenetic/briefly_memoizable.rb
176
190
  - lib/frenetic/concerns/collection_rest_methods.rb
177
- - lib/frenetic/concerns/configurable.rb
178
191
  - lib/frenetic/concerns/hal_linked.rb
179
192
  - lib/frenetic/concerns/member_rest_methods.rb
180
- - lib/frenetic/concerns/resource_mockery.rb
181
193
  - lib/frenetic/concerns/structured.rb
182
- - lib/frenetic/configuration.rb
194
+ - lib/frenetic/connection.rb
195
+ - lib/frenetic/errors.rb
196
+ - lib/frenetic/hypermedia_link.rb
197
+ - lib/frenetic/hypermedia_link_set.rb
183
198
  - lib/frenetic/middleware/hal_json.rb
184
199
  - lib/frenetic/resource.rb
185
200
  - lib/frenetic/resource_collection.rb
186
201
  - lib/frenetic/resource_mockery.rb
187
202
  - lib/frenetic/version.rb
188
- - spec/concerns/breifly_memoizable_spec.rb
189
- - spec/concerns/configurable_spec.rb
203
+ - spec/briefly_memoizable_spec.rb
190
204
  - spec/concerns/hal_linked_spec.rb
191
205
  - spec/concerns/member_rest_methods_spec.rb
192
- - spec/concerns/resource_mockery_spec.rb
193
206
  - spec/concerns/structured_spec.rb
194
- - spec/configuration_spec.rb
207
+ - spec/connection_spec.rb
195
208
  - spec/fixtures/test_api_requests.rb
196
209
  - spec/frenetic_spec.rb
210
+ - spec/hypermedia_link_set_spec.rb
211
+ - spec/hypermedia_link_spec.rb
197
212
  - spec/middleware/hal_json_spec.rb
198
213
  - spec/resource_collection_spec.rb
214
+ - spec/resource_mockery_spec.rb
199
215
  - spec/resource_spec.rb
200
216
  - spec/spec_helper.rb
201
217
  - spec/support/rspec.rb
@@ -203,44 +219,41 @@ files:
203
219
  - spec/support/webmock.rb
204
220
  homepage: http://dlindahl.github.com/frenetic/
205
221
  licenses: []
222
+ metadata: {}
206
223
  post_install_message:
207
224
  rdoc_options: []
208
225
  require_paths:
209
226
  - lib
210
227
  required_ruby_version: !ruby/object:Gem::Requirement
211
- none: false
212
228
  requirements:
213
- - - ! '>='
229
+ - - ">="
214
230
  - !ruby/object:Gem::Version
215
- version: '0'
216
- segments:
217
- - 0
218
- hash: -828936829114139905
231
+ version: 1.9.3
219
232
  required_rubygems_version: !ruby/object:Gem::Requirement
220
- none: false
221
233
  requirements:
222
- - - ! '>'
234
+ - - ">"
223
235
  - !ruby/object:Gem::Version
224
236
  version: 1.3.1
225
237
  requirements: []
226
238
  rubyforge_project:
227
- rubygems_version: 1.8.23
239
+ rubygems_version: 2.2.2
228
240
  signing_key:
229
- specification_version: 3
241
+ specification_version: 4
230
242
  summary: Here lies a Ruby-based Hypermedia API client that expects HAL+JSON and makes
231
243
  a lot of assumptions about your API.
232
244
  test_files:
233
- - spec/concerns/breifly_memoizable_spec.rb
234
- - spec/concerns/configurable_spec.rb
245
+ - spec/briefly_memoizable_spec.rb
235
246
  - spec/concerns/hal_linked_spec.rb
236
247
  - spec/concerns/member_rest_methods_spec.rb
237
- - spec/concerns/resource_mockery_spec.rb
238
248
  - spec/concerns/structured_spec.rb
239
- - spec/configuration_spec.rb
249
+ - spec/connection_spec.rb
240
250
  - spec/fixtures/test_api_requests.rb
241
251
  - spec/frenetic_spec.rb
252
+ - spec/hypermedia_link_set_spec.rb
253
+ - spec/hypermedia_link_spec.rb
242
254
  - spec/middleware/hal_json_spec.rb
243
255
  - spec/resource_collection_spec.rb
256
+ - spec/resource_mockery_spec.rb
244
257
  - spec/resource_spec.rb
245
258
  - spec/spec_helper.rb
246
259
  - spec/support/rspec.rb