pebblebed 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,6 +14,10 @@ module Pebblebed
14
14
  perform(:post, *args, &block)
15
15
  end
16
16
 
17
+ def put(*args, &block)
18
+ perform(:post, *args, &block)
19
+ end
20
+
17
21
  def delete(*args, &block)
18
22
  perform(:delete, *args, &block)
19
23
  end
@@ -50,6 +50,11 @@ module Pebblebed
50
50
  handle_curl_response(Curl::Easy.http_post(url, *(QueryParams.encode(params).split('&'))))
51
51
  end
52
52
 
53
+ def self.put(url, params, &block)
54
+ url, params = url_and_params_from_args(url, params, &block)
55
+ handle_curl_response(Curl::Easy.http_put(url, *(QueryParams.encode(params).split('&'))))
56
+ end
57
+
53
58
  def self.delete(url, params, &block)
54
59
  url, params = url_and_params_from_args(url, params, &block)
55
60
  handle_curl_response(Curl::Easy.http_delete(url_with_params(url, params)))
@@ -71,12 +76,13 @@ module Pebblebed
71
76
  handle_http_errors(CurlResult.new(curl_response))
72
77
  end
73
78
 
74
- def self.url_with_params(url, params)
79
+ def self.url_with_params(url, params)
75
80
  url.query = QueryParams.encode(params || {})
76
81
  url.to_s
77
82
  end
78
83
 
79
84
  def self.url_and_params_from_args(url, params = nil, &block)
85
+ url = URI.parse(url) unless url.is_a?(URI)
80
86
  if block_given?
81
87
  pathbuilder = PathBuilder.new.send(:instance_eval, &block)
82
88
  url = url.dup
@@ -1,3 +1,3 @@
1
1
  module Pebblebed
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/spec/http_spec.rb CHANGED
@@ -13,6 +13,14 @@ describe Pebblebed::Http do
13
13
  url.to_s.should eq "http://example.org/api/foo/bar"
14
14
  end
15
15
 
16
+ it "handles urls as strings" do
17
+ url, params = Pebblebed::Http.send(:url_and_params_from_args, "http://example.org/api", {a:1}) do
18
+ foo.bar(:b => 2)
19
+ end
20
+ params.should eq(:a => 1, :b => 2)
21
+ url.to_s.should eq "http://example.org/api/foo/bar"
22
+ end
23
+
16
24
  it "raises an exception if there is a http-error" do
17
25
  -> { Pebblebed::Http.send(:handle_http_errors, DeepStruct.wrap(status:400, url:"/foobar", body:"Oh noes")) }.should raise_error Pebblebed::HttpError
18
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pebblebed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-12-18 00:00:00.000000000Z
13
+ date: 2011-12-19 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &70362516223620 !ruby/object:Gem::Requirement
17
+ requirement: &70234270906160 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70362516223620
25
+ version_requirements: *70234270906160
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &70362516220480 !ruby/object:Gem::Requirement
28
+ requirement: &70234270905160 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70362516220480
36
+ version_requirements: *70234270905160
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: simplecov
39
- requirement: &70362516217900 !ruby/object:Gem::Requirement
39
+ requirement: &70234270903780 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70362516217900
47
+ version_requirements: *70234270903780
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: deepstruct
50
- requirement: &70362516215200 !ruby/object:Gem::Requirement
50
+ requirement: &70234270902360 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70362516215200
58
+ version_requirements: *70234270902360
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: curb
61
- requirement: &70362516213740 !ruby/object:Gem::Requirement
61
+ requirement: &70234270901600 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70362516213740
69
+ version_requirements: *70234270901600
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: yajl-ruby
72
- requirement: &70362516211060 !ruby/object:Gem::Requirement
72
+ requirement: &70234270900460 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *70362516211060
80
+ version_requirements: *70234270900460
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: queryparams
83
- requirement: &70362516207240 !ruby/object:Gem::Requirement
83
+ requirement: &70234270802400 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *70362516207240
91
+ version_requirements: *70234270802400
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: futurevalue
94
- requirement: &70362516206260 !ruby/object:Gem::Requirement
94
+ requirement: &70234270792180 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *70362516206260
102
+ version_requirements: *70234270792180
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: pathbuilder
105
- requirement: &70362516175980 !ruby/object:Gem::Requirement
105
+ requirement: &70234270791360 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :runtime
112
112
  prerelease: false
113
- version_requirements: *70362516175980
113
+ version_requirements: *70234270791360
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: nokogiri
116
- requirement: &70362516172200 !ruby/object:Gem::Requirement
116
+ requirement: &70234270789400 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :runtime
123
123
  prerelease: false
124
- version_requirements: *70362516172200
124
+ version_requirements: *70234270789400
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: i18n
127
- requirement: &70362516170520 !ruby/object:Gem::Requirement
127
+ requirement: &70234270787820 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :runtime
134
134
  prerelease: false
135
- version_requirements: *70362516170520
135
+ version_requirements: *70234270787820
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: activesupport
138
- requirement: &70362516163800 !ruby/object:Gem::Requirement
138
+ requirement: &70234270786200 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,7 +143,7 @@ dependencies:
143
143
  version: '0'
144
144
  type: :runtime
145
145
  prerelease: false
146
- version_requirements: *70362516163800
146
+ version_requirements: *70234270786200
147
147
  description: Development tools for working with Pebblebed
148
148
  email:
149
149
  - katrina@bengler.no