hyperresource 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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