shutl_resource 1.1.1 → 1.2.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.
- data/lib/shutl/resource/rest.rb +13 -1
- data/lib/shutl/resource/version.rb +1 -1
- data/spec/rest_resource_spec.rb +46 -0
- metadata +9 -3
data/lib/shutl/resource/rest.rb
CHANGED
@@ -65,13 +65,25 @@ module Shutl::Resource
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def parsed
|
68
|
-
response.
|
68
|
+
@parsed ||= response.body.with_indifferent_access
|
69
69
|
end
|
70
70
|
|
71
71
|
def status
|
72
72
|
response.code
|
73
73
|
end
|
74
74
|
|
75
|
+
def pagination
|
76
|
+
parsed[:pagination]
|
77
|
+
end
|
78
|
+
|
79
|
+
def next_resource
|
80
|
+
pagination[:next_resource] if pagination
|
81
|
+
end
|
82
|
+
|
83
|
+
def previous_resource
|
84
|
+
pagination[:previous_resource] if pagination
|
85
|
+
end
|
86
|
+
|
75
87
|
attr_accessor :errors
|
76
88
|
|
77
89
|
def valid?
|
data/spec/rest_resource_spec.rb
CHANGED
@@ -44,6 +44,52 @@ describe Shutl::Resource::Rest do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
context 'pagination' do
|
48
|
+
let(:body) do
|
49
|
+
{
|
50
|
+
test_rest: { a: "a", b: 2 },
|
51
|
+
pagination: pagination
|
52
|
+
}.to_json
|
53
|
+
end
|
54
|
+
let(:pagination) { {previous_resource: 1, next_resource: 3} }
|
55
|
+
|
56
|
+
before do
|
57
|
+
@request = stub_request(:get, 'http://host/test_rests/a').
|
58
|
+
to_return(:status => 200, :body => body, :headers => headers)
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'both present' do
|
62
|
+
specify do
|
63
|
+
resource = TestRest.find('a', auth: "some auth")
|
64
|
+
resource.previous_resource.should == 1
|
65
|
+
resource.next_resource .should == 3
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'one present' do
|
70
|
+
let(:pagination) { {next_resource: 3} }
|
71
|
+
specify do
|
72
|
+
resource = TestRest.find('a', auth: "some auth")
|
73
|
+
resource.previous_resource.should be_nil
|
74
|
+
resource.next_resource .should == 3
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
context 'none present' do
|
79
|
+
let(:body) do
|
80
|
+
{
|
81
|
+
test_rest: { a: "a", b: 2 }
|
82
|
+
}.to_json
|
83
|
+
end
|
84
|
+
specify do
|
85
|
+
resource = TestRest.find('a', auth: "some auth")
|
86
|
+
resource.pagination .should be_nil
|
87
|
+
resource.previous_resource.should be_nil
|
88
|
+
resource.next_resource .should be_nil
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
47
93
|
context 'with no arguments' do
|
48
94
|
let(:headers_with_auth) do
|
49
95
|
headers.merge("Authorization" => "Bearer some auth")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shutl_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-08-
|
14
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
@@ -221,15 +221,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
221
221
|
- - ! '>='
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
|
+
segments:
|
225
|
+
- 0
|
226
|
+
hash: 4547288023567173599
|
224
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
228
|
none: false
|
226
229
|
requirements:
|
227
230
|
- - ! '>='
|
228
231
|
- !ruby/object:Gem::Version
|
229
232
|
version: '0'
|
233
|
+
segments:
|
234
|
+
- 0
|
235
|
+
hash: 4547288023567173599
|
230
236
|
requirements: []
|
231
237
|
rubyforge_project:
|
232
|
-
rubygems_version: 1.8.
|
238
|
+
rubygems_version: 1.8.25
|
233
239
|
signing_key:
|
234
240
|
specification_version: 3
|
235
241
|
summary: Manage Shutl Rest resource. Parse/Serialize JSON
|