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: fd19a34f267866e9a5086a1c9100cbb63f958ab5
4
- data.tar.gz: 40856af8a0367f37c64e9e70996ef74f79b5424f
3
+ metadata.gz: 0351125c7599e00df4a647dc4eb96b7633a0f76a
4
+ data.tar.gz: 3c0e3dc94c9f4099bc7643d493bf5faeda0b3f38
5
5
  SHA512:
6
- metadata.gz: 01761608b3cddd8794bff9c8e58a918a4561c71cc39fe6f0946bd9cfa1a79cc2c54b1b828b57128c7a62f6382265301d567821aec14ea815546b4ba6edaa9ddd
7
- data.tar.gz: 356516ad4974076570bb2031e46423a7d397949c80f2476140cdfce6c20a22a7f061ea849ff250b8b1afde649ad6c7f00ece3ea2e8d3714808c1956d3d5496be
6
+ metadata.gz: c9ee522c76596b6f0ef95f993e0e9897f5cea5d8348d093e2a9cdfdf8387e1bcde49a3b09d26a88909642511e2cd9b2110b05449480dc69748e97b071560f7c5
7
+ data.tar.gz: 416e7d9cbdbf294bbcb47d4b8464674b47dd1f2844d9bb474eb656b27fe074b629d36bca382d9f9b8d452d4e777f172aadbdbfb62ad2a0cbe4441b4445109ccb
@@ -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 => self.root,
192
- :auth => self.auth,
193
- :headers => self.headers,
194
- :namespace => self.namespace,
195
- :href => href)
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 ## subclass of HR::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,
@@ -1,4 +1,4 @@
1
1
  class HyperResource
2
- VERSION = '0.2.1'
3
- VERSION_DATE = '2013-11-10'
2
+ VERSION = '0.2.2'
3
+ VERSION_DATE = '2014-02-21'
4
4
  end
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.1
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: 2013-11-10 00:00:00.000000000 Z
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.0.3
168
+ rubygems_version: 2.1.8
169
169
  signing_key:
170
170
  specification_version: 4
171
171
  summary: Extensible hypermedia client for Ruby