frenetic 1.0.0 → 2.0.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.
@@ -67,7 +67,7 @@ describe Frenetic::Middleware::HalJson do
67
67
  end
68
68
  end
69
69
 
70
- context 'cause by the client' do
70
+ context 'caused by an unknown resource' do
71
71
  let(:status) { 404 }
72
72
  let(:error) do
73
73
  { 'status' => status.to_s, error:'404 Not Found' }.to_json
@@ -11,6 +11,8 @@ describe Frenetic::ResourceMockery do
11
11
  Class.new(my_temp_resource) do
12
12
  def self.default_attributes
13
13
  {
14
+ id: 1,
15
+ price: 0.0,
14
16
  qux: 'qux',
15
17
  _embedded: {
16
18
  embedded_resource: {
@@ -24,7 +26,9 @@ describe Frenetic::ResourceMockery do
24
26
 
25
27
  let(:params) do
26
28
  {
27
- foo: 1,
29
+ id: '1',
30
+ foo: 'bar',
31
+ price: '0.0',
28
32
  bar: 'baz',
29
33
  _embedded: {
30
34
  embedded_resource: {
@@ -52,7 +56,10 @@ describe Frenetic::ResourceMockery do
52
56
  subject { super().properties }
53
57
 
54
58
  it 'returns a hash of available properties' do
55
- expect(subject).to include 'foo' => 'fixnum'
59
+ expect(subject).to include 'id' => 'fixnum'
60
+ expect(subject).to include 'price' => 'float'
61
+ expect(subject).to include 'foo' => 'string'
62
+ expect(subject).to include 'foo' => 'string'
56
63
  expect(subject).to include 'bar' => 'string'
57
64
  end
58
65
  end
@@ -60,8 +67,10 @@ describe Frenetic::ResourceMockery do
60
67
  describe '#attributes' do
61
68
  subject { super().attributes }
62
69
 
63
- it 'returns a hash of the resources attributes' do
64
- expect(subject).to include 'foo' => 1
70
+ it 'returns a hash of the resources type-casted attributes' do
71
+ expect(subject).to include 'id' => 1
72
+ expect(subject).to include 'price' => 0.0
73
+ expect(subject).to include 'foo' => 'bar'
65
74
  expect(subject).to include 'bar' => 'baz'
66
75
  expect(subject).to include 'qux' => 'qux'
67
76
  expect(subject['_embedded']['embedded_resource']).to include 'plugh' => 'xyzzy'
@@ -0,0 +1,7 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new
4
+
5
+ RSpec::Core::RakeTask.new(:rcov) do |task|
6
+ task.rcov = true
7
+ end
@@ -0,0 +1,2 @@
1
+ require 'rubocop/rake_task'
2
+ RuboCop::RakeTask.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frenetic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Lindahl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-27 00:00:00.000000000 Z
11
+ date: 2015-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 1.0.2
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.29.1
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.29.1
167
181
  description: An opinionated Ruby-based Hypermedia API client.
168
182
  email:
169
183
  - dlindahl@customink.com
@@ -188,10 +202,13 @@ files:
188
202
  - gemfiles/faraday_09.gemfile
189
203
  - gemfiles/faraday_09.gemfile.lock
190
204
  - lib/frenetic.rb
205
+ - lib/frenetic/behaviors.rb
206
+ - lib/frenetic/behaviors/alternate_string_identifier.rb
191
207
  - lib/frenetic/briefly_memoizable.rb
192
208
  - lib/frenetic/concerns/collection_rest_methods.rb
193
209
  - lib/frenetic/concerns/hal_linked.rb
194
210
  - lib/frenetic/concerns/member_rest_methods.rb
211
+ - lib/frenetic/concerns/persistence.rb
195
212
  - lib/frenetic/concerns/structured.rb
196
213
  - lib/frenetic/connection.rb
197
214
  - lib/frenetic/errors.rb
@@ -202,9 +219,11 @@ files:
202
219
  - lib/frenetic/resource_collection.rb
203
220
  - lib/frenetic/resource_mockery.rb
204
221
  - lib/frenetic/version.rb
222
+ - spec/behaviors/alternate_string_identifier_spec.rb
205
223
  - spec/briefly_memoizable_spec.rb
206
224
  - spec/concerns/hal_linked_spec.rb
207
225
  - spec/concerns/member_rest_methods_spec.rb
226
+ - spec/concerns/persistence_spec.rb
208
227
  - spec/concerns/structured_spec.rb
209
228
  - spec/connection_spec.rb
210
229
  - spec/fixtures/test_api_requests.rb
@@ -220,6 +239,8 @@ files:
220
239
  - spec/support/rspec.rb
221
240
  - spec/support/timecop.rb
222
241
  - spec/support/webmock.rb
242
+ - tasks/rspec.rake
243
+ - tasks/rubocop.rake
223
244
  homepage: http://dlindahl.github.com/frenetic/
224
245
  licenses: []
225
246
  metadata: {}
@@ -245,9 +266,11 @@ specification_version: 4
245
266
  summary: Here lies a Ruby-based Hypermedia API client that expects HAL+JSON and makes
246
267
  a lot of assumptions about your API.
247
268
  test_files:
269
+ - spec/behaviors/alternate_string_identifier_spec.rb
248
270
  - spec/briefly_memoizable_spec.rb
249
271
  - spec/concerns/hal_linked_spec.rb
250
272
  - spec/concerns/member_rest_methods_spec.rb
273
+ - spec/concerns/persistence_spec.rb
251
274
  - spec/concerns/structured_spec.rb
252
275
  - spec/connection_spec.rb
253
276
  - spec/fixtures/test_api_requests.rb