panda 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +19 -0
- data/VERSION +1 -1
- data/lib/panda/panda.rb +12 -4
- data/panda.gemspec +2 -2
- data/spec/panda_spec.rb +15 -0
- metadata +3 -3
data/README.md
CHANGED
@@ -85,6 +85,25 @@ Panda gem provides an interface to access the [Panda](http://pandastream.com) AP
|
|
85
85
|
|
86
86
|
panda.delete('/videos/0ee6b656-0063-11df-a433-1231390041c1.json')
|
87
87
|
|
88
|
+
## Generating signatures
|
89
|
+
|
90
|
+
All requests to your Panda cloud are signed using HMAC-SHA256, based on a timestamp and your Panda secret key. This is handled transparently. However, sometimes you will want to generate only this signature, in order to make a request by means other than this library. This is the case when using the [JavaScript panda_uploader](http://github.com/newbamboo/panda_uploader).
|
91
|
+
|
92
|
+
To do this, a method `signed_params()` is supported:
|
93
|
+
|
94
|
+
panda.signed_params('POST', '/videos.json')
|
95
|
+
# => {'access_key' => '8df50af4-074f-11df-b278-1231350015b1',
|
96
|
+
# 'cloud_id' => 'your-cloud-id',
|
97
|
+
# 'signature' => 'LejCdm0O83+jk6/Q5SfGmk14WTO1pB6Sh6Z5eA2w5C0=',
|
98
|
+
# 'timestamp' => '2010-02-26T15:01:46.221513'}
|
99
|
+
|
100
|
+
panda.signed_params('GET', '/videos.json', {'some_params' => 'some_value'})
|
101
|
+
# => {'access_key' => '8df50af4-074f-11df-b278-1231350015b1',
|
102
|
+
# 'cloud_id' => 'your-cloud-id',
|
103
|
+
# 'signature' => 'uHnGZ+kI9mT3C4vW71Iop9z2N7UKCv38v2l2dvREUIQ=',
|
104
|
+
# 'some_param' => 'some_value',
|
105
|
+
# 'timestamp' => '2010-02-26T15:04:27.039620'}
|
106
|
+
|
88
107
|
Copyright
|
89
108
|
---------
|
90
109
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/lib/panda/panda.rb
CHANGED
@@ -16,20 +16,20 @@ class Panda
|
|
16
16
|
|
17
17
|
def get(request_uri, params={})
|
18
18
|
query = signed_query("GET", request_uri, params)
|
19
|
-
@connection[request_uri + '?' + query].get
|
19
|
+
body_of @connection[request_uri + '?' + query].get
|
20
20
|
end
|
21
21
|
|
22
22
|
def post(request_uri, params)
|
23
|
-
@connection[request_uri].post(signed_params("POST", request_uri, params))
|
23
|
+
body_of @connection[request_uri].post(signed_params("POST", request_uri, params))
|
24
24
|
end
|
25
25
|
|
26
26
|
def put(request_uri, params)
|
27
|
-
@connection[request_uri].put(signed_params("PUT", request_uri, params))
|
27
|
+
body_of @connection[request_uri].put(signed_params("PUT", request_uri, params))
|
28
28
|
end
|
29
29
|
|
30
30
|
def delete(request_uri, params={})
|
31
31
|
query = signed_query("DELETE", request_uri, params)
|
32
|
-
@connection[request_uri + '?' + query].delete
|
32
|
+
body_of @connection[request_uri + '?' + query].delete
|
33
33
|
end
|
34
34
|
|
35
35
|
def authentication_params(verb, request_uri, params)
|
@@ -57,4 +57,12 @@ class Panda
|
|
57
57
|
def api_url
|
58
58
|
"http://#{@api_host}:#{@api_port}/#{@prefix}"
|
59
59
|
end
|
60
|
+
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
# API change on rest-client 1.4
|
65
|
+
def body_of(response)
|
66
|
+
response.respond_to?(:body) ? response.body : response
|
67
|
+
end
|
60
68
|
end
|
data/panda.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{panda}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["New Bamboo"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-04}
|
13
13
|
s.description = %q{Panda Client}
|
14
14
|
s.email = %q{info@pandastream.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/panda_spec.rb
CHANGED
@@ -43,4 +43,19 @@ describe Panda do
|
|
43
43
|
}
|
44
44
|
end
|
45
45
|
|
46
|
+
|
47
|
+
it "should create a signed version of the parameters and difficult characters" do
|
48
|
+
signed_params = @panda.signed_params('POST',
|
49
|
+
'/videos.json',
|
50
|
+
{"tilde" => '~', "space" => ' '}
|
51
|
+
)
|
52
|
+
signed_params.should == {
|
53
|
+
'access_key' => "my_access_key",
|
54
|
+
'timestamp' => "2009-11-04T17:54:11+00:00",
|
55
|
+
'cloud_id' => 'my_cloud_id',
|
56
|
+
'signature' => 'w5P9+xPpQpRlweTh0guFYqQOmF+ZuTKXCmaKpUP3sH0=',
|
57
|
+
'tilde' => '~',
|
58
|
+
'space' => ' '
|
59
|
+
}
|
60
|
+
end
|
46
61
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 1
|
9
|
+
version: 0.4.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- New Bamboo
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-03-04 00:00:00 +00:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|