api-model 2.1.1 → 2.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +22 -14
- data/api-model.gemspec +2 -1
- data/lib/api-model.rb +1 -0
- data/lib/api_model/response.rb +10 -0
- data/spec/api-model/response_spec.rb +18 -0
- data/spec/support/fixtures/cookies.yml +30 -0
- metadata +18 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d8d62657906fcf3a59d70190108320e85a72688d
|
|
4
|
+
data.tar.gz: c1cab41f5a240bcfc5146b088ed61f184bb87367
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ebe46b16b9585b10ab7becfd72444e3cd4ff4a936e7b1a35bc179b54421b00d9d72dfb60cbb792285a454aa31f7c5e143e2f7309ac25d70765c0bc08fc73b34
|
|
7
|
+
data.tar.gz: 33f1b1abf718a509d04e28a1ce13b770697206a670bcdfedad3ca632b6357cf4a646726c869e2bd48a176ff0c381fb31ac0b2402b623477461f0318efdd77a13
|
data/Gemfile.lock
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
api-model (2.
|
|
4
|
+
api-model (2.2.0)
|
|
5
5
|
activemodel (~> 4.1)
|
|
6
6
|
activesupport (~> 4.1)
|
|
7
7
|
hash-pipe (~> 0.0)
|
|
8
|
+
http-cookie (~> 1.0)
|
|
8
9
|
typhoeus (~> 0.6)
|
|
9
10
|
virtus (~> 1.0)
|
|
10
11
|
|
|
11
12
|
GEM
|
|
12
13
|
remote: https://rubygems.org/
|
|
13
14
|
specs:
|
|
14
|
-
activemodel (4.1.
|
|
15
|
-
activesupport (= 4.1.
|
|
15
|
+
activemodel (4.1.5)
|
|
16
|
+
activesupport (= 4.1.5)
|
|
16
17
|
builder (~> 3.1)
|
|
17
|
-
activesupport (4.1.
|
|
18
|
+
activesupport (4.1.5)
|
|
18
19
|
i18n (~> 0.6, >= 0.6.9)
|
|
19
20
|
json (~> 1.7, >= 1.7.7)
|
|
20
21
|
minitest (~> 5.1)
|
|
@@ -34,17 +35,21 @@ GEM
|
|
|
34
35
|
descendants_tracker (0.0.4)
|
|
35
36
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
36
37
|
diff-lcs (1.2.5)
|
|
38
|
+
domain_name (0.5.20)
|
|
39
|
+
unf (>= 0.0.5, < 1.0.0)
|
|
37
40
|
equalizer (0.0.9)
|
|
38
|
-
ethon (0.7.
|
|
41
|
+
ethon (0.7.1)
|
|
39
42
|
ffi (>= 1.3.0)
|
|
40
43
|
ffi (1.9.3)
|
|
41
44
|
hash-pipe (0.0.2)
|
|
42
45
|
activesupport (~> 4.1)
|
|
43
|
-
|
|
46
|
+
http-cookie (1.0.2)
|
|
47
|
+
domain_name (~> 0.5)
|
|
48
|
+
i18n (0.6.11)
|
|
44
49
|
ice_nine (0.11.0)
|
|
45
50
|
json (1.8.1)
|
|
46
51
|
method_source (0.8.2)
|
|
47
|
-
minitest (5.
|
|
52
|
+
minitest (5.4.0)
|
|
48
53
|
pry (0.9.12.2)
|
|
49
54
|
coderay (~> 1.0.5)
|
|
50
55
|
method_source (~> 0.8)
|
|
@@ -59,17 +64,20 @@ GEM
|
|
|
59
64
|
rspec-mocks (2.14.4)
|
|
60
65
|
safe_yaml (0.9.7)
|
|
61
66
|
slop (3.4.6)
|
|
62
|
-
thread_safe (0.3.
|
|
63
|
-
typhoeus (0.6.
|
|
64
|
-
ethon (>= 0.7.
|
|
65
|
-
tzinfo (1.
|
|
67
|
+
thread_safe (0.3.4)
|
|
68
|
+
typhoeus (0.6.9)
|
|
69
|
+
ethon (>= 0.7.1)
|
|
70
|
+
tzinfo (1.2.2)
|
|
66
71
|
thread_safe (~> 0.1)
|
|
72
|
+
unf (0.1.4)
|
|
73
|
+
unf_ext
|
|
74
|
+
unf_ext (0.0.6)
|
|
67
75
|
vcr (2.8.0)
|
|
68
|
-
virtus (1.0.
|
|
76
|
+
virtus (1.0.3)
|
|
69
77
|
axiom-types (~> 0.1)
|
|
70
78
|
coercible (~> 1.0)
|
|
71
|
-
descendants_tracker (~> 0.0.3)
|
|
72
|
-
equalizer (~> 0.0.9)
|
|
79
|
+
descendants_tracker (~> 0.0, >= 0.0.3)
|
|
80
|
+
equalizer (~> 0.0, >= 0.0.9)
|
|
73
81
|
webmock (1.15.0)
|
|
74
82
|
addressable (>= 2.2.7)
|
|
75
83
|
crack (>= 0.3.2)
|
data/api-model.gemspec
CHANGED
|
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = "api-model"
|
|
5
|
-
s.version = "2.
|
|
5
|
+
s.version = "2.2.0"
|
|
6
6
|
s.authors = ["Damien Timewell", "Erik Rothoff Andersson"]
|
|
7
7
|
s.email = ["mail@damientimewell.com", "erik.rothoff@gmail.com"]
|
|
8
8
|
s.licenses = ['MIT']
|
|
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
s.add_dependency 'typhoeus', '~> 0.6'
|
|
16
16
|
s.add_dependency 'virtus', '~> 1.0'
|
|
17
17
|
s.add_dependency 'hash-pipe', '~> 0.0'
|
|
18
|
+
s.add_dependency 'http-cookie', '~> 1.0'
|
|
18
19
|
|
|
19
20
|
s.add_development_dependency "rspec", '~> 2.14'
|
|
20
21
|
s.add_development_dependency "pry", '~> 0.9'
|
data/lib/api-model.rb
CHANGED
data/lib/api_model/response.rb
CHANGED
|
@@ -49,6 +49,16 @@ module ApiModel
|
|
|
49
49
|
http_response.api_call.success?
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
+
def response_cookies
|
|
53
|
+
jar = HTTP::CookieJar.new
|
|
54
|
+
|
|
55
|
+
http_response.api_call.headers_hash["Set-Cookie"].split(", ").each do |cookie|
|
|
56
|
+
jar.parse cookie, http_response.api_call.request.base_url
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
jar.cookies
|
|
60
|
+
end
|
|
61
|
+
|
|
52
62
|
# Define common methods which should never be called on this abstract class, and should always be
|
|
53
63
|
# passed down to the #objects
|
|
54
64
|
FALL_THROUGH_METHODS.each do |transparent_method|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'support/mock_models/blog_post'
|
|
3
3
|
require 'support/mock_models/user'
|
|
4
|
+
require 'support/mock_models/banana'
|
|
4
5
|
|
|
5
6
|
describe ApiModel::Response do
|
|
6
7
|
|
|
@@ -193,4 +194,21 @@ describe ApiModel::Response do
|
|
|
193
194
|
end
|
|
194
195
|
end
|
|
195
196
|
|
|
197
|
+
describe "Cookies" do
|
|
198
|
+
let(:cookie_response) do
|
|
199
|
+
VCR.use_cassette('cookies') do
|
|
200
|
+
ApiModel::HttpRequest.new(path: "http://api-model-specs.com/cookie", method: :get, builder: Banana).run
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
describe "fetching Set-Cookie headers" do
|
|
205
|
+
it 'should return an array of cookies' do
|
|
206
|
+
cookie_response.response_cookies.should be_a(Array)
|
|
207
|
+
cookie_response.response_cookies.map do |cookie|
|
|
208
|
+
cookie.should be_a(HTTP::Cookie)
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
196
214
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: http://api-model-specs.com/cookie
|
|
6
|
+
headers:
|
|
7
|
+
User-Agent:
|
|
8
|
+
- Typhoeus - https://github.com/typhoeus/typhoeus
|
|
9
|
+
response:
|
|
10
|
+
status:
|
|
11
|
+
code: 200
|
|
12
|
+
message: OK
|
|
13
|
+
headers:
|
|
14
|
+
Server:
|
|
15
|
+
- nginx/1.4.1
|
|
16
|
+
Date:
|
|
17
|
+
- Thu, 28 Nov 2013 16:02:56 GMT
|
|
18
|
+
Content-Type:
|
|
19
|
+
- text/plain; charset=utf-8
|
|
20
|
+
Content-Length:
|
|
21
|
+
- '248'
|
|
22
|
+
Connection:
|
|
23
|
+
- keep-alive
|
|
24
|
+
Set-Cookie:
|
|
25
|
+
- SESSION_ID=abc123; Path=/foo; HttpOnly, foo=bar; Path=/bar; HttpOnly
|
|
26
|
+
body:
|
|
27
|
+
encoding: UTF-8
|
|
28
|
+
string: "{}"
|
|
29
|
+
http_version:
|
|
30
|
+
recorded_at: Thu, 28 Nov 2013 16:02:20 GMT
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: api-model
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Damien Timewell
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2014-
|
|
12
|
+
date: 2014-08-28 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -81,6 +81,20 @@ dependencies:
|
|
|
81
81
|
- - "~>"
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
83
|
version: '0.0'
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: http-cookie
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '1.0'
|
|
91
|
+
type: :runtime
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - "~>"
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '1.0'
|
|
84
98
|
- !ruby/object:Gem::Dependency
|
|
85
99
|
name: rspec
|
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -173,6 +187,7 @@ files:
|
|
|
173
187
|
- spec/api-model/response_spec.rb
|
|
174
188
|
- spec/spec_helper.rb
|
|
175
189
|
- spec/support/fixtures/cars.yml
|
|
190
|
+
- spec/support/fixtures/cookies.yml
|
|
176
191
|
- spec/support/fixtures/errors.yml
|
|
177
192
|
- spec/support/fixtures/posts.yml
|
|
178
193
|
- spec/support/fixtures/users.yml
|
|
@@ -214,6 +229,7 @@ test_files:
|
|
|
214
229
|
- spec/api-model/response_spec.rb
|
|
215
230
|
- spec/spec_helper.rb
|
|
216
231
|
- spec/support/fixtures/cars.yml
|
|
232
|
+
- spec/support/fixtures/cookies.yml
|
|
217
233
|
- spec/support/fixtures/errors.yml
|
|
218
234
|
- spec/support/fixtures/posts.yml
|
|
219
235
|
- spec/support/fixtures/users.yml
|