hyperresource 0.2.1 → 0.2.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0351125c7599e00df4a647dc4eb96b7633a0f76a
|
4
|
+
data.tar.gz: 3c0e3dc94c9f4099bc7643d493bf5faeda0b3f38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9ee522c76596b6f0ef95f993e0e9897f5cea5d8348d093e2a9cdfdf8387e1bcde49a3b09d26a88909642511e2cd9b2110b05449480dc69748e97b071560f7c5
|
7
|
+
data.tar.gz: 416e7d9cbdbf294bbcb47d4b8464674b47dd1f2844d9bb474eb656b27fe074b629d36bca382d9f9b8d452d4e777f172aadbdbfb62ad2a0cbe4441b4445109ccb
|
data/lib/hyper_resource.rb
CHANGED
@@ -44,6 +44,10 @@ public
|
|
44
44
|
##
|
45
45
|
## [headers] Headers to send along with requests for this resource (as
|
46
46
|
## well as its eventual child resources, if any).
|
47
|
+
##
|
48
|
+
## [faraday_options] Configuration passed to +Faraday::Connection.initialize+,
|
49
|
+
## such as +{request: {timeout: 30}}+.
|
50
|
+
##
|
47
51
|
def initialize(opts={})
|
48
52
|
return init_from_resource(opts) if opts.kind_of?(HyperResource)
|
49
53
|
|
@@ -53,6 +57,8 @@ public
|
|
53
57
|
self.namespace = opts[:namespace] || self.class.namespace
|
54
58
|
self.headers = DEFAULT_HEADERS.merge(self.class.headers || {}).
|
55
59
|
merge(opts[:headers] || {})
|
60
|
+
self.faraday_options = opts[:faraday_options] ||
|
61
|
+
self.class.faraday_options || {}
|
56
62
|
|
57
63
|
## There's a little acrobatics in getting Attributes, Links, and Objects
|
58
64
|
## into the correct subclass.
|
@@ -135,7 +141,7 @@ public
|
|
135
141
|
|
136
142
|
#### Magic
|
137
143
|
|
138
|
-
## method_missing will load this resource if not yet loaded, then
|
144
|
+
## method_missing will load this resource if not yet loaded, then
|
139
145
|
## attempt to delegate to +attributes+, then +objects+, then +links+.
|
140
146
|
## Override with care.
|
141
147
|
def method_missing(method, *args)
|
@@ -188,11 +194,12 @@ public
|
|
188
194
|
|
189
195
|
## Return a new HyperResource based on this object and a given href.
|
190
196
|
def _hr_new_from_link(href) # @private
|
191
|
-
self.class.new(:root
|
192
|
-
:auth
|
193
|
-
:headers
|
194
|
-
:namespace
|
195
|
-
:
|
197
|
+
self.class.new(:root => self.root,
|
198
|
+
:auth => self.auth,
|
199
|
+
:headers => self.headers,
|
200
|
+
:namespace => self.namespace,
|
201
|
+
:faraday_options => self.faraday_options,
|
202
|
+
:href => href)
|
196
203
|
end
|
197
204
|
|
198
205
|
|
@@ -70,7 +70,7 @@ class HyperResource
|
|
70
70
|
key = "faraday_connection_#{url}"
|
71
71
|
return Thread.current[key] if Thread.current[key]
|
72
72
|
|
73
|
-
fc = Faraday.new(:url => url)
|
73
|
+
fc = Faraday.new(self.faraday_options.merge(:url => url))
|
74
74
|
fc.headers.merge!('User-Agent' => "HyperResource #{HyperResource::VERSION}")
|
75
75
|
fc.headers.merge!(self.headers || {})
|
76
76
|
if ba=self.auth[:basic]
|
@@ -25,7 +25,8 @@ module HyperResource::Modules
|
|
25
25
|
:auth, ## e.g. {:basic => ['username', 'password']}
|
26
26
|
:headers, ## e.g. {'Accept' => 'application/vnd.example+json'}
|
27
27
|
:namespace, ## e.g. 'ExampleAPI', or the class ExampleAPI itself
|
28
|
-
:adapter
|
28
|
+
:adapter, ## subclass of HR::Adapter
|
29
|
+
:faraday_options ## e.g. {:request => {:timeout => 30}}
|
29
30
|
]
|
30
31
|
end
|
31
32
|
|
@@ -36,6 +37,7 @@ module HyperResource::Modules
|
|
36
37
|
:headers,
|
37
38
|
:namespace,
|
38
39
|
:adapter,
|
40
|
+
:faraday_options,
|
39
41
|
|
40
42
|
:request,
|
41
43
|
:response,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperresource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Gamache
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uri_template
|
@@ -165,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
165
|
version: '0'
|
166
166
|
requirements: []
|
167
167
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.
|
168
|
+
rubygems_version: 2.1.8
|
169
169
|
signing_key:
|
170
170
|
specification_version: 4
|
171
171
|
summary: Extensible hypermedia client for Ruby
|