fluidinfo 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.6.0
data/fluidinfo.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "fluidinfo"
8
- s.version = "0.5.1"
8
+ s.version = "0.6.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Eric Seidel"]
@@ -59,6 +59,8 @@ module Fluidinfo
59
59
  url = build_url path, options
60
60
  headers = options[:headers] || {}
61
61
  Response.new(@client[url].get headers)
62
+ rescue RestClient::Exception => e
63
+ Response.new e.response
62
64
  end
63
65
 
64
66
  ##
@@ -73,6 +75,8 @@ module Fluidinfo
73
75
  url = build_url path, options
74
76
  headers = options[:headers] || {}
75
77
  Response.new(@client[url].head headers)
78
+ rescue RestClient::Exception => e
79
+ Response.new e.response
76
80
  end
77
81
 
78
82
  ##
@@ -94,6 +98,8 @@ module Fluidinfo
94
98
  headers.merge! :content_type => "application/json"
95
99
  end
96
100
  Response.new(@client[url].post body, headers)
101
+ rescue RestClient::Exception => e
102
+ Response.new e.response
97
103
  end
98
104
 
99
105
  ##
@@ -111,6 +117,8 @@ module Fluidinfo
111
117
  body, mime = build_payload options
112
118
  headers = (options[:headers] || {}).merge :content_type => mime
113
119
  Response.new(@client[url].put body, headers)
120
+ rescue RestClient::Exception => e
121
+ Response.new e.response
114
122
  end
115
123
 
116
124
  ##
@@ -128,6 +136,8 @@ module Fluidinfo
128
136
  headers = options[:headers] || {}
129
137
  # nothing returned in response body for DELETE
130
138
  Response.new(@client[url].delete headers)
139
+ rescue RestClient::Exception => e
140
+ Response.new e.response
131
141
  end
132
142
 
133
143
  private
@@ -15,10 +15,13 @@ module Fluidinfo
15
15
  attr_reader :content
16
16
  # [Hash, String] The parsed response if the +Content-Type+ was one of {Fluidinfo::JSON_TYPES}, otherwise equivalent to {#content}.
17
17
  attr_reader :value
18
+ # [String] The error, if any, returned by Fluidinfo
19
+ attr_reader :error
18
20
 
19
21
  def initialize(response)
20
22
  @status = response.code
21
23
  @headers = response.headers
24
+ @error = @headers[:x_fluiddb_error_class]
22
25
  @content = response.body
23
26
  @value = if JSON_TYPES.include? @headers[:content_type]
24
27
  Yajl.load @content
@@ -1,5 +1,5 @@
1
- require 'fluidinfo'
2
- require 'uuidtools'
1
+ require "fluidinfo"
2
+ require "uuidtools"
3
3
 
4
4
  describe Fluidinfo do
5
5
  describe "GET" do
@@ -10,7 +10,7 @@ describe Fluidinfo do
10
10
  it "should return a Fluidinfo::Response" do
11
11
  r = @fluid.get("/about/fluidinfo")
12
12
  r.should be_a(Fluidinfo::Response)
13
- r.should respond_to(:status, :content, :headers, :value)
13
+ r.should respond_to(:status, :content, :headers, :value, :error)
14
14
  end
15
15
 
16
16
  describe "/objects" do
@@ -46,10 +46,10 @@ describe Fluidinfo do
46
46
  @fluid.get("/objects/#{uid}").value.should eq(expected)
47
47
  end
48
48
 
49
- it "should raise 404 errors on bad request" do
50
- uid = "1"
51
- tag = "gridaphobe/given-name"
52
- expect{@fluid.get "/objects/#{uid}/#{tag}"}.to raise_error(RestClient::ResourceNotFound)
49
+ it "should contain an error message for failed requests" do
50
+ r = @fluid.get "/about/1/gridaphobe/given-name"
51
+ r.status.should eq(404)
52
+ r.error.should eq("TNoInstanceOnObject")
53
53
  end
54
54
  end
55
55
 
@@ -107,7 +107,7 @@ describe Fluidinfo do
107
107
  it "should return a Fluidinfo::Response" do
108
108
  r = @fluid.post("/objects")
109
109
  r.should be_a(Fluidinfo::Response)
110
- r.should respond_to(:status, :content, :headers, :value)
110
+ r.should respond_to(:status, :content, :headers, :value, :error)
111
111
  end
112
112
 
113
113
  describe "/namespaces" do
@@ -135,7 +135,7 @@ describe Fluidinfo do
135
135
  it "should return a Fluidinfo::Response" do
136
136
  r = @fluid.put("/about/fluidinfo/test/tag", :body => nil)
137
137
  r.should be_a(Fluidinfo::Response)
138
- r.should respond_to(:status, :content, :headers, :value)
138
+ r.should respond_to(:status, :content, :headers, :value, :error)
139
139
  @fluid.delete("/about/fluidinfo/test/tag")
140
140
  end
141
141
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluidinfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &70240390467800 !ruby/object:Gem::Requirement
16
+ requirement: &70356298260880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70240390467800
24
+ version_requirements: *70356298260880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yajl-ruby
27
- requirement: &70240390467260 !ruby/object:Gem::Requirement
27
+ requirement: &70356298260400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70240390467260
35
+ version_requirements: *70356298260400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70240390466660 !ruby/object:Gem::Requirement
38
+ requirement: &70356298259920 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.9.2
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70240390466660
46
+ version_requirements: *70356298259920
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70240390466120 !ruby/object:Gem::Requirement
49
+ requirement: &70356298259380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.6.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70240390466120
57
+ version_requirements: *70356298259380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70240390465540 !ruby/object:Gem::Requirement
60
+ requirement: &70356298258840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.0.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70240390465540
68
+ version_requirements: *70356298258840
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &70240390464960 !ruby/object:Gem::Requirement
71
+ requirement: &70356298258320 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.6.4
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70240390464960
79
+ version_requirements: *70356298258320
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: uuidtools
82
- requirement: &70240390464380 !ruby/object:Gem::Requirement
82
+ requirement: &70356298257820 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 2.1.2
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70240390464380
90
+ version_requirements: *70356298257820
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: yard
93
- requirement: &70240390463800 !ruby/object:Gem::Requirement
93
+ requirement: &70356298257340 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: 0.7.2
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70240390463800
101
+ version_requirements: *70356298257340
102
102
  description: This gem provides a simple interface to fluidinfo, built on top of the
103
103
  rest-client gem.
104
104
  email: gridaphobe@gmail.com
@@ -137,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
137
  version: '0'
138
138
  segments:
139
139
  - 0
140
- hash: -1150775427864763998
140
+ hash: 3931394328916850819
141
141
  required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  none: false
143
143
  requirements: