api_resource 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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
data/api_resource.gemspec CHANGED
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "api_resource"
8
- s.version = "0.2.1"
7
+ s.name = %q{api_resource}
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ethan Langevin"]
12
- s.date = "2012-01-05"
13
- s.description = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
14
- s.email = "ejl6266@gmail.com"
12
+ s.date = %q{2012-01-07}
13
+ s.description = %q{A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources}
14
+ s.email = %q{ejl6266@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.rdoc"
@@ -76,11 +76,11 @@ Gem::Specification.new do |s|
76
76
  "spec/support/requests/test_resource_requests.rb",
77
77
  "spec/support/test_resource.rb"
78
78
  ]
79
- s.homepage = "http://github.com/ejlangev/resource"
79
+ s.homepage = %q{http://github.com/ejlangev/resource}
80
80
  s.licenses = ["MIT"]
81
81
  s.require_paths = ["lib"]
82
- s.rubygems_version = "1.8.11"
83
- s.summary = "A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources"
82
+ s.rubygems_version = %q{1.6.2}
83
+ s.summary = %q{A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources}
84
84
 
85
85
  if s.respond_to? :specification_version then
86
86
  s.specification_version = 3
data/lib/api_resource.rb CHANGED
@@ -56,21 +56,14 @@ module ApiResource
56
56
  Dir["#{File.dirname(__FILE__)}/../spec/support/**/*.rb"].each {|f| require f}
57
57
  end
58
58
 
59
- def self.site=(new_site)
60
- ApiResource::Base.site = new_site
59
+ class << self
60
+ [:site, :site=, :format, :format=, :token, :token=, :timeout, :open_timeout, :reset_connection].each do |m|
61
+ define_method(m) do |*args|
62
+ ApiResource::Base.send(m, *args)
63
+ end
64
+ end
61
65
  end
62
66
 
63
- def self.format=(new_format)
64
- ApiResource::Base.format = new_format
65
- end
66
- # set token
67
- def self.token=(new_token)
68
- ApiResource::Base.token = new_token
69
- end
70
- # get token
71
- def self.token
72
- ApiResource::Base.token
73
- end
74
67
  # Run a block with a given token - useful for AroundFilters
75
68
  def self.with_token(new_token, &block)
76
69
  old_token = self.token
@@ -82,34 +75,22 @@ module ApiResource
82
75
  end
83
76
  end
84
77
 
85
- # delegated to Base
86
- def self.reset_connection
87
- ApiResource::Base.reset_connection
88
- end
89
78
 
90
79
  # set the timeout val and reset the connection
91
80
  def self.timeout=(val)
92
- @timeout = val
81
+ ApiResource::Base.timeout = val
93
82
  self.reset_connection
94
83
  val
95
84
  end
96
-
97
- # Getter for timeout
98
- def self.timeout
99
- @timeout ||= DEFAULT_TIMEOUT
100
- end
101
85
 
102
86
  # set the timeout val and reset the connection
103
87
  def self.open_timeout=(val)
104
- @open_timeout = val
88
+ ApiResource::Base.open_timeout = val
105
89
  self.reset_connection
106
90
  val
107
91
  end
108
92
 
109
- # Getter for timeout
110
- def self.open_timeout
111
- @open_timeout ||= DEFAULT_TIMEOUT
112
- end
93
+ self.timeout = self.open_timeout = DEFAULT_TIMEOUT
113
94
 
114
95
  # logger
115
96
  def self.logger
@@ -7,7 +7,7 @@ module ApiResource
7
7
 
8
8
  class Base
9
9
 
10
- class_inheritable_accessor :site, :proxy, :user, :password, :auth_type, :format, :timeout, :ssl_options, :token
10
+ class_inheritable_accessor :site, :proxy, :user, :password, :auth_type, :format, :timeout, :open_timeout, :ssl_options, :token
11
11
 
12
12
  class_inheritable_accessor :include_root_in_json; self.include_root_in_json = true
13
13
  class_inheritable_accessor :include_blank_attributes_on_create; self.include_blank_attributes_on_create = false
@@ -124,6 +124,11 @@ module ApiResource
124
124
  write_inheritable_attribute(:timeout, timeout)
125
125
  end
126
126
 
127
+ def open_timeout=(timeout)
128
+ @connection = nil
129
+ write_inheritable_attribute(:open_timeout, timeout)
130
+ end
131
+
127
132
  def connection(refresh = false)
128
133
  @connection = Connection.new(self.site, self.format) if refresh || @connection.nil?
129
134
  @connection.timeout = self.timeout
@@ -155,7 +155,7 @@ module ApiResource
155
155
  unless path =~ /\./
156
156
  path += ".#{self.format.extension}"
157
157
  end
158
- RestClient::Resource.new("#{site.scheme}://#{site.host}:#{site.port}#{path}", {:timeout => ApiResource.timeout, :open_timeout => ApiResource.open_timeout})
158
+ RestClient::Resource.new("#{site.scheme}://#{site.host}:#{site.port}#{path}", {:timeout => ApiResource::Base.timeout, :open_timeout => ApiResource::Base.open_timeout})
159
159
  end
160
160
 
161
161
  def build_request_headers(headers, verb, uri)
data/spec/spec_helper.rb CHANGED
@@ -5,10 +5,6 @@ require 'bundler'
5
5
  require 'api_resource'
6
6
  require 'simplecov'
7
7
 
8
- # Requires supporting files with custom matchers and macros, etc,
9
- # in ./support/ and its subdirectories.
10
- Bundler.require(:default, :development)
11
- Debugger.start
12
8
 
13
9
  SimpleCov.start do
14
10
  add_filter "/spec/"
@@ -18,6 +14,11 @@ SimpleCov.at_exit do
18
14
  SimpleCov.result.format!
19
15
  end
20
16
 
17
+ # Requires supporting files with custom matchers and macros, etc,
18
+ # in ./support/ and its subdirectories.
19
+ Bundler.require(:default, :development)
20
+ Debugger.start
21
+
21
22
  # Requires supporting files with custom matchers and macros, etc,
22
23
  # in ./support/ and its subdirectories.
23
24
  #ApiResource.load_mocks_and_factories
metadata CHANGED
@@ -1,247 +1,246 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: api_resource
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
4
5
  prerelease:
5
- version: 0.2.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Ethan Langevin
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-01-05 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-07 00:00:00.000000000 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70184031659720 !ruby/object:Gem::Requirement
18
18
  none: false
19
- requirements:
20
- - - "="
21
- - !ruby/object:Gem::Version
19
+ requirements:
20
+ - - =
21
+ - !ruby/object:Gem::Version
22
22
  version: 3.0.9
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *70184031659720
26
+ - !ruby/object:Gem::Dependency
27
27
  name: hash_dealer
28
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &70184031659140 !ruby/object:Gem::Requirement
29
29
  none: false
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *70184031659140
37
+ - !ruby/object:Gem::Dependency
38
38
  name: rest-client
39
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &70184031658500 !ruby/object:Gem::Requirement
40
40
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *70184031658500
48
+ - !ruby/object:Gem::Dependency
49
49
  name: log4r
50
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &70184031656140 !ruby/object:Gem::Requirement
51
51
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *70184031656140
59
+ - !ruby/object:Gem::Dependency
60
60
  name: differ
61
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &70184031655400 !ruby/object:Gem::Requirement
62
62
  none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *70184031655400
70
+ - !ruby/object:Gem::Dependency
71
71
  name: colorize
72
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ requirement: &70184031654560 !ruby/object:Gem::Requirement
73
73
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *70184031654560
81
+ - !ruby/object:Gem::Dependency
82
82
  name: rspec
83
- requirement: &id007 !ruby/object:Gem::Requirement
83
+ requirement: &70184031653900 !ruby/object:Gem::Requirement
84
84
  none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: "0"
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *id007
92
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *70184031653900
92
+ - !ruby/object:Gem::Dependency
93
93
  name: ruby-debug19
94
- requirement: &id008 !ruby/object:Gem::Requirement
94
+ requirement: &70184031653380 !ruby/object:Gem::Requirement
95
95
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *id008
103
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *70184031653380
103
+ - !ruby/object:Gem::Dependency
104
104
  name: growl
105
- requirement: &id009 !ruby/object:Gem::Requirement
105
+ requirement: &70184031652400 !ruby/object:Gem::Requirement
106
106
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *id009
114
- - !ruby/object:Gem::Dependency
113
+ version_requirements: *70184031652400
114
+ - !ruby/object:Gem::Dependency
115
115
  name: rspec-rails
116
- requirement: &id010 !ruby/object:Gem::Requirement
116
+ requirement: &70184031651600 !ruby/object:Gem::Requirement
117
117
  none: false
118
- requirements:
119
- - - ">="
120
- - !ruby/object:Gem::Version
121
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *id010
125
- - !ruby/object:Gem::Dependency
124
+ version_requirements: *70184031651600
125
+ - !ruby/object:Gem::Dependency
126
126
  name: factory_girl
127
- requirement: &id011 !ruby/object:Gem::Requirement
127
+ requirement: &70184031650840 !ruby/object:Gem::Requirement
128
128
  none: false
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: "0"
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *id011
136
- - !ruby/object:Gem::Dependency
135
+ version_requirements: *70184031650840
136
+ - !ruby/object:Gem::Dependency
137
137
  name: simplecov
138
- requirement: &id012 !ruby/object:Gem::Requirement
138
+ requirement: &70184031650220 !ruby/object:Gem::Requirement
139
139
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: "0"
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
144
  type: :development
145
145
  prerelease: false
146
- version_requirements: *id012
147
- - !ruby/object:Gem::Dependency
146
+ version_requirements: *70184031650220
147
+ - !ruby/object:Gem::Dependency
148
148
  name: faker
149
- requirement: &id013 !ruby/object:Gem::Requirement
149
+ requirement: &70184031649420 !ruby/object:Gem::Requirement
150
150
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- version: "0"
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
155
  type: :development
156
156
  prerelease: false
157
- version_requirements: *id013
158
- - !ruby/object:Gem::Dependency
157
+ version_requirements: *70184031649420
158
+ - !ruby/object:Gem::Dependency
159
159
  name: guard
160
- requirement: &id014 !ruby/object:Gem::Requirement
160
+ requirement: &70184031648740 !ruby/object:Gem::Requirement
161
161
  none: false
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: "0"
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
166
  type: :development
167
167
  prerelease: false
168
- version_requirements: *id014
169
- - !ruby/object:Gem::Dependency
168
+ version_requirements: *70184031648740
169
+ - !ruby/object:Gem::Dependency
170
170
  name: guard-rspec
171
- requirement: &id015 !ruby/object:Gem::Requirement
171
+ requirement: &70184031648080 !ruby/object:Gem::Requirement
172
172
  none: false
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: "0"
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
177
  type: :development
178
178
  prerelease: false
179
- version_requirements: *id015
180
- - !ruby/object:Gem::Dependency
179
+ version_requirements: *70184031648080
180
+ - !ruby/object:Gem::Dependency
181
181
  name: mocha
182
- requirement: &id016 !ruby/object:Gem::Requirement
182
+ requirement: &70184031638420 !ruby/object:Gem::Requirement
183
183
  none: false
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: "0"
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
- version_requirements: *id016
191
- - !ruby/object:Gem::Dependency
190
+ version_requirements: *70184031638420
191
+ - !ruby/object:Gem::Dependency
192
192
  name: bundler
193
- requirement: &id017 !ruby/object:Gem::Requirement
193
+ requirement: &70184031637880 !ruby/object:Gem::Requirement
194
194
  none: false
195
- requirements:
195
+ requirements:
196
196
  - - ~>
197
- - !ruby/object:Gem::Version
197
+ - !ruby/object:Gem::Version
198
198
  version: 1.0.0
199
199
  type: :development
200
200
  prerelease: false
201
- version_requirements: *id017
202
- - !ruby/object:Gem::Dependency
201
+ version_requirements: *70184031637880
202
+ - !ruby/object:Gem::Dependency
203
203
  name: jeweler
204
- requirement: &id018 !ruby/object:Gem::Requirement
204
+ requirement: &70184031637120 !ruby/object:Gem::Requirement
205
205
  none: false
206
- requirements:
206
+ requirements:
207
207
  - - ~>
208
- - !ruby/object:Gem::Version
208
+ - !ruby/object:Gem::Version
209
209
  version: 1.6.4
210
210
  type: :development
211
211
  prerelease: false
212
- version_requirements: *id018
213
- - !ruby/object:Gem::Dependency
212
+ version_requirements: *70184031637120
213
+ - !ruby/object:Gem::Dependency
214
214
  name: activerecord
215
- requirement: &id019 !ruby/object:Gem::Requirement
215
+ requirement: &70184031636400 !ruby/object:Gem::Requirement
216
216
  none: false
217
- requirements:
218
- - - "="
219
- - !ruby/object:Gem::Version
217
+ requirements:
218
+ - - =
219
+ - !ruby/object:Gem::Version
220
220
  version: 3.0.9
221
221
  type: :development
222
222
  prerelease: false
223
- version_requirements: *id019
224
- - !ruby/object:Gem::Dependency
223
+ version_requirements: *70184031636400
224
+ - !ruby/object:Gem::Dependency
225
225
  name: sqlite3
226
- requirement: &id020 !ruby/object:Gem::Requirement
226
+ requirement: &70184031635200 !ruby/object:Gem::Requirement
227
227
  none: false
228
- requirements:
229
- - - ">="
230
- - !ruby/object:Gem::Version
231
- version: "0"
228
+ requirements:
229
+ - - ! '>='
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
232
  type: :development
233
233
  prerelease: false
234
- version_requirements: *id020
235
- description: A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources
234
+ version_requirements: *70184031635200
235
+ description: A replacement for ActiveResource for RESTful APIs that handles associated
236
+ object and multiple data sources
236
237
  email: ejl6266@gmail.com
237
238
  executables: []
238
-
239
239
  extensions: []
240
-
241
- extra_rdoc_files:
240
+ extra_rdoc_files:
242
241
  - LICENSE.txt
243
242
  - README.rdoc
244
- files:
243
+ files:
245
244
  - .document
246
245
  - .rspec
247
246
  - Gemfile
@@ -300,35 +299,34 @@ files:
300
299
  - spec/support/requests/error_resource_requests.rb
301
300
  - spec/support/requests/test_resource_requests.rb
302
301
  - spec/support/test_resource.rb
302
+ has_rdoc: true
303
303
  homepage: http://github.com/ejlangev/resource
304
- licenses:
304
+ licenses:
305
305
  - MIT
306
306
  post_install_message:
307
307
  rdoc_options: []
308
-
309
- require_paths:
308
+ require_paths:
310
309
  - lib
311
- required_ruby_version: !ruby/object:Gem::Requirement
310
+ required_ruby_version: !ruby/object:Gem::Requirement
312
311
  none: false
313
- requirements:
314
- - - ">="
315
- - !ruby/object:Gem::Version
316
- hash: 1458540798497608710
317
- segments:
312
+ requirements:
313
+ - - ! '>='
314
+ - !ruby/object:Gem::Version
315
+ version: '0'
316
+ segments:
318
317
  - 0
319
- version: "0"
320
- required_rubygems_version: !ruby/object:Gem::Requirement
318
+ hash: -4465182740306650
319
+ required_rubygems_version: !ruby/object:Gem::Requirement
321
320
  none: false
322
- requirements:
323
- - - ">="
324
- - !ruby/object:Gem::Version
325
- version: "0"
321
+ requirements:
322
+ - - ! '>='
323
+ - !ruby/object:Gem::Version
324
+ version: '0'
326
325
  requirements: []
327
-
328
326
  rubyforge_project:
329
- rubygems_version: 1.8.11
327
+ rubygems_version: 1.6.2
330
328
  signing_key:
331
329
  specification_version: 3
332
- summary: A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources
330
+ summary: A replacement for ActiveResource for RESTful APIs that handles associated
331
+ object and multiple data sources
333
332
  test_files: []
334
-