grid_rest 0.0.3 → 0.0.4

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/CHANGELOG.rdoc CHANGED
@@ -1,4 +1,8 @@
1
1
  = CHANGELOG
2
+ == v0.0.4
3
+ * Better error message control
4
+ * Initialize some testing
5
+
2
6
  == v0.0.3
3
7
  * Transform empty RestClient false to empty string
4
8
  * Serialize parameters for delete request
data/Gemfile CHANGED
@@ -2,14 +2,18 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem "activesupport", ">= 3.0.7"
5
+ gem "activesupport", ">= 3.0.9"
6
6
  gem "rest-client"
7
+ gem "i18n"
7
8
 
8
9
  # Add dependencies to develop your gem here.
9
10
  # Include everything needed to run rake, tests, features, etc.
10
11
  group :development do
11
- gem "shoulda", ">= 0"
12
12
  gem "bundler", "~> 1.0.0"
13
13
  gem "jeweler", "~> 1.6.0"
14
14
  gem "rcov", ">= 0"
15
15
  end
16
+ group :test do
17
+ gem 'rspec'
18
+ gem 'capybara'
19
+ end
@@ -0,0 +1,101 @@
1
+ en:
2
+ grid_rest:
3
+ error:
4
+ for response type: There was a problem with the request (%{type})
5
+ for response code: There was a problem with the request (%{code})
6
+ message:
7
+ ECONNREFUSED: The connection to the server could not be established
8
+ RequestTimeout: De server timed out
9
+ ServerBrokeConnection: The server has disconnected
10
+
11
+ Continue: Continue
12
+ SwitchProtocol: SwitchProtocol
13
+ Processing: Processing (WebDAV)
14
+
15
+ OK: OK
16
+ Created: Created
17
+ Accepted: Accepted
18
+ NonAuthoritativeInformation: NonAuthoritativeInformation
19
+ NoContent: NoContent
20
+ ResetContent: ResetContent
21
+ PartialContent: PartialContent
22
+
23
+ MultipleChoice: MultipleChoice
24
+ MovedPermanently: MovedPermanently
25
+ Found: Found
26
+ SeeOther: SeeOther
27
+ NotModified: NotModified
28
+ UseProxy: UseProxy
29
+ TemporaryRedirect: TemporaryRedirect
30
+
31
+ BadRequest: BadRequest
32
+ Unauthorized: Unauthorized
33
+ PaymentRequired: PaymentRequired
34
+ Forbidden: Forbidden
35
+ NotFound: NotFound
36
+ MethodNotAllowed: MethodNotAllowed
37
+ NotAcceptable: NotAcceptable
38
+ ProxyAuthenticationRequired: ProxyAuthenticationRequired
39
+ RequestTimeOut: RequestTimeOut
40
+ Conflict: Conflict
41
+ Gone: Gone
42
+ LengthRequired: LengthRequired
43
+ PreconditionFailed: PreconditionFailed
44
+ RequestEntityTooLarge: RequestEntityTooLarge
45
+ RequestURITooLong: RequestURITooLong
46
+ UnsupportedMediaType: UnsupportedMediaType
47
+ RequestedRangeNotSatisfiable: RequestedRangeNotSatisfiable
48
+ ExpectationFailed: ExpectationFailed
49
+
50
+ InternalServerError: InternalServerError
51
+ NotImplemented: NotImplemented
52
+ BadGateway: BadGateway
53
+ ServiceUnavailable: ServiceUnavailable
54
+ GatewayTimeOut: GatewayTimeOut
55
+ VersionNotSupported: VersionNotSupported
56
+ code:
57
+ 100: Continue
58
+ 101: SwitchProtocol
59
+ 102: Processing
60
+
61
+ 200: OK
62
+ 201: Created
63
+ 202: Accepted
64
+ 203: NonAuthoritativeInformation
65
+ 204: NoContent
66
+ 205: ResetContent
67
+ 206: PartialContent
68
+
69
+ 300: MultipleChoice
70
+ 301: MovedPermanently
71
+ 302: Found
72
+ 303: SeeOther
73
+ 304: NotModified
74
+ 305: UseProxy
75
+ 307: TemporaryRedirect
76
+
77
+ 400: BadRequest
78
+ 401: Unauthorized
79
+ 402: PaymentRequired
80
+ 403: Forbidden
81
+ 404: NotFound
82
+ 405: MethodNotAllowed
83
+ 406: NotAcceptable
84
+ 407: ProxyAuthenticationRequired
85
+ 408: RequestTimeOut
86
+ 409: Conflict
87
+ 410: Gone
88
+ 411: LengthRequired
89
+ 412: PreconditionFailed
90
+ 413: RequestEntityTooLarge
91
+ 414: RequestURITooLong
92
+ 415: UnsupportedMediaType
93
+ 416: RequestedRangeNotSatisfiable
94
+ 417: ExpectationFailed
95
+
96
+ 500: InternalServerError
97
+ 501: NotImplemented
98
+ 502: BadGateway
99
+ 503: ServiceUnavailable
100
+ 504: GatewayTimeOut
101
+ 505: VersionNotSupported
data/grid_rest.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{grid_rest}
8
- s.version = "0.0.3"
8
+ s.version = "0.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Benjamin ter Kuile"]
@@ -29,7 +29,8 @@ Gem::Specification.new do |s|
29
29
  "lib/grid_rest.rb",
30
30
  "lib/grid_rest/engine.rb",
31
31
  "test/helper.rb",
32
- "test/test_grid_rest.rb"
32
+ "test/test_grid_rest.rb",
33
+ "config/locales/grid_rest.en.yml"
33
34
  ]
34
35
  s.homepage = %q{http://github.com/bterkuile/grid_rest}
35
36
  s.licenses = ["MIT"]
data/lib/grid_rest.rb CHANGED
@@ -224,13 +224,13 @@ module GridRest
224
224
  true
225
225
  end
226
226
  rescue RestClient::ResourceNotFound => e
227
- r = Error.new('resource not found', :url => rest_url, :code => e.http_code, :method => method)
227
+ r = Error.new(e, :url => rest_url, :method => method)
228
228
  grid_rest_log method, rest_url, rparams, "resource not found response"
229
- rescue Errno::ECONNREFUSED
230
- r = Error.new('connection refused', :url => rest_url, :code => 404, :method => method)
229
+ rescue Errno::ECONNREFUSED => e
230
+ r = Error.new(e, :url => rest_url, :method => method)
231
231
  grid_rest_log method, rest_url, rparams, "connection refused response"
232
232
  rescue => e
233
- r = Error.new "general", :url => rest_url, :code => e.respond_to?(:http_code) ? e.http_code : 500, :method => method
233
+ r = Error.new e, :url => rest_url, :method => method
234
234
  grid_rest_log method, rest_url, rparams, "error in request"
235
235
  end
236
236
  r
@@ -283,13 +283,16 @@ module GridRest
283
283
  # with a normal request, but most importantly returns false on the
284
284
  # valid? question.
285
285
  class Error
286
- attr_reader :message, :code, :url, :request_method
287
- def initialize(message = nil, rparams = {})
288
- @message = I18n.t(message, :scope => [:grid_rest, :error])
289
- @code = rparams.delete(:code)
286
+ attr_reader :message, :code, :url, :request_method, :response, :type
287
+ def initialize(e, rparams)
288
+ @request_method = rparams.delete(:request_method) || rparams.delete(:method)
289
+ @code = e.respond_to?(:http_code) ? e.http_code : (rparams.delete(:code) || 500)
290
+ @response = e.response if e.respond_to?(:response)
291
+ @type = e.class.name.split('::').last
292
+ @message = I18n.t(@type, :scope => [:grid_rest, :message], :default => nil)
290
293
  @url = rparams.delete(:url)
291
- @request_method = rparams.delete(:request_method)
292
294
  end
295
+
293
296
  def code
294
297
  @code || 500
295
298
  end
@@ -316,12 +319,13 @@ module GridRest
316
319
  end
317
320
 
318
321
  class ErrorArray < Array
319
- attr_reader :message, :code, :url, :request_method
322
+ attr_reader :message, :code, :url, :request_method, :response
320
323
  def initialize(e)
321
324
  @message = e.message
322
325
  @code = e.code
323
326
  @url = e.url
324
327
  @request_method = e.request_method
328
+ @response = e.response
325
329
  end
326
330
  def to_s
327
331
  ''
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Benjamin ter Kuile
@@ -18,7 +18,9 @@ date: 2011-06-15 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ name: activesupport
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
22
24
  requirements:
23
25
  - - ">="
24
26
  - !ruby/object:Gem::Version
@@ -27,36 +29,36 @@ dependencies:
27
29
  - 0
28
30
  - 7
29
31
  version: 3.0.7
30
- requirement: *id001
31
- prerelease: false
32
32
  type: :runtime
33
- name: activesupport
33
+ version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
35
+ name: rest-client
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
36
38
  requirements:
37
39
  - - ">="
38
40
  - !ruby/object:Gem::Version
39
41
  segments:
40
42
  - 0
41
43
  version: "0"
42
- requirement: *id002
43
- prerelease: false
44
44
  type: :runtime
45
- name: rest-client
45
+ version_requirements: *id002
46
46
  - !ruby/object:Gem::Dependency
47
- version_requirements: &id003 !ruby/object:Gem::Requirement
47
+ name: shoulda
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
48
50
  requirements:
49
51
  - - ">="
50
52
  - !ruby/object:Gem::Version
51
53
  segments:
52
54
  - 0
53
55
  version: "0"
54
- requirement: *id003
55
- prerelease: false
56
56
  type: :development
57
- name: shoulda
57
+ version_requirements: *id003
58
58
  - !ruby/object:Gem::Dependency
59
- version_requirements: &id004 !ruby/object:Gem::Requirement
59
+ name: bundler
60
+ prerelease: false
61
+ requirement: &id004 !ruby/object:Gem::Requirement
60
62
  requirements:
61
63
  - - ~>
62
64
  - !ruby/object:Gem::Version
@@ -65,12 +67,12 @@ dependencies:
65
67
  - 0
66
68
  - 0
67
69
  version: 1.0.0
68
- requirement: *id004
69
- prerelease: false
70
70
  type: :development
71
- name: bundler
71
+ version_requirements: *id004
72
72
  - !ruby/object:Gem::Dependency
73
- version_requirements: &id005 !ruby/object:Gem::Requirement
73
+ name: jeweler
74
+ prerelease: false
75
+ requirement: &id005 !ruby/object:Gem::Requirement
74
76
  requirements:
75
77
  - - ~>
76
78
  - !ruby/object:Gem::Version
@@ -79,22 +81,20 @@ dependencies:
79
81
  - 6
80
82
  - 0
81
83
  version: 1.6.0
82
- requirement: *id005
83
- prerelease: false
84
84
  type: :development
85
- name: jeweler
85
+ version_requirements: *id005
86
86
  - !ruby/object:Gem::Dependency
87
- version_requirements: &id006 !ruby/object:Gem::Requirement
87
+ name: rcov
88
+ prerelease: false
89
+ requirement: &id006 !ruby/object:Gem::Requirement
88
90
  requirements:
89
91
  - - ">="
90
92
  - !ruby/object:Gem::Version
91
93
  segments:
92
94
  - 0
93
95
  version: "0"
94
- requirement: *id006
95
- prerelease: false
96
96
  type: :development
97
- name: rcov
97
+ version_requirements: *id006
98
98
  description: |-
99
99
  grid_rest is a gem that makes your rails application interact with other backends through a REST interface. It is build in a situation where one rails application was talking to 2 java backends.
100
100
  The main development focus is JSON communication, but XML should be just as easy
@@ -119,6 +119,7 @@ files:
119
119
  - lib/grid_rest/engine.rb
120
120
  - test/helper.rb
121
121
  - test/test_grid_rest.rb
122
+ - config/locales/grid_rest.en.yml
122
123
  has_rdoc: true
123
124
  homepage: http://github.com/bterkuile/grid_rest
124
125
  licenses: