fluidinfo 0.5.1 → 0.6.0

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.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: