panda 0.6.2 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +11 -0
- data/VERSION +1 -1
- data/lib/panda/panda.rb +10 -6
- data/panda.gemspec +2 -2
- data/spec/panda_spec.rb +24 -2
- metadata +2 -2
data/README.md
CHANGED
@@ -104,6 +104,17 @@ To do this, a method `signed_params()` is supported:
|
|
104
104
|
# 'some_param' => 'some_value',
|
105
105
|
# 'timestamp' => '2010-02-26T15:04:27.039620'}
|
106
106
|
|
107
|
+
## Hash or JSON
|
108
|
+
Since Panda 0.6, PandaGem returns a Hash by default. If you want PandaGem to return JSON do the following:
|
109
|
+
|
110
|
+
Panda.connect!({
|
111
|
+
:cloud_id => 'cloud_id',
|
112
|
+
:access_key => 'access_key',
|
113
|
+
:secret_key => 'secret_key',
|
114
|
+
:format => 'json'
|
115
|
+
})
|
116
|
+
|
117
|
+
|
107
118
|
Copyright
|
108
119
|
---------
|
109
120
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.3
|
data/lib/panda/panda.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'restclient'
|
2
|
-
require 'json'
|
2
|
+
require 'json' unless defined?(ActiveSupport::JSON)
|
3
3
|
|
4
4
|
class Panda
|
5
5
|
|
@@ -56,10 +56,10 @@ class Panda
|
|
56
56
|
@format = "hash"
|
57
57
|
|
58
58
|
if auth_params.class == String
|
59
|
-
self.format = options["format"]
|
59
|
+
self.format = options[:format] || options["format"]
|
60
60
|
init_from_url(auth_params)
|
61
61
|
else
|
62
|
-
self.format = auth_params["format"]
|
62
|
+
self.format = auth_params[:format] || auth_params["format"]
|
63
63
|
init_from_hash(auth_params)
|
64
64
|
end
|
65
65
|
|
@@ -69,7 +69,7 @@ class Panda
|
|
69
69
|
def format=(ret_format)
|
70
70
|
if ret_format
|
71
71
|
raise "Format unknown" if !["json", "hash"].include?(ret_format.to_s)
|
72
|
-
@format = ret_format
|
72
|
+
@format = ret_format.to_s
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -147,7 +147,11 @@ class Panda
|
|
147
147
|
|
148
148
|
def format_to(response)
|
149
149
|
if self.format == "json"
|
150
|
-
|
150
|
+
response
|
151
|
+
|
152
|
+
elsif defined?(ActiveSupport::JSON)
|
153
|
+
ActiveSupport::JSON.decode(response)
|
154
|
+
|
151
155
|
else
|
152
156
|
JSON.parse(response)
|
153
157
|
end
|
@@ -180,4 +184,4 @@ class Panda
|
|
180
184
|
@prefix = params["prefix_url"] || "v#{@api_version}"
|
181
185
|
end
|
182
186
|
end
|
183
|
-
end
|
187
|
+
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.6.
|
8
|
+
s.version = "0.6.3"
|
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-07-01}
|
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
@@ -116,6 +116,14 @@ describe Panda do
|
|
116
116
|
it_should_behave_like "Connected"
|
117
117
|
end
|
118
118
|
|
119
|
+
describe "Panda.connect with symbols" do
|
120
|
+
before(:each) do
|
121
|
+
@panda = Panda.connect!({:access_key => "my_access_key", :secret_key => "my_secret_key", :api_host => "myapihost", :api_port => 85, :cloud_id => 'my_cloud_id', :format => "json" })
|
122
|
+
end
|
123
|
+
it_should_behave_like "Connected"
|
124
|
+
end
|
125
|
+
|
126
|
+
|
119
127
|
describe "Panda.connect with PANDASTREAM_URL" do
|
120
128
|
before(:each) do
|
121
129
|
Panda.connect!('http://my_access_key:my_secret_key@myapihost:85/my_cloud_id', "format" => "json")
|
@@ -134,8 +142,6 @@ describe Panda do
|
|
134
142
|
describe "Using hash as a return format" do
|
135
143
|
|
136
144
|
before(:each) do
|
137
|
-
puts "here"
|
138
|
-
|
139
145
|
@panda = Panda::Connection.new({"access_key" => "my_access_key", "secret_key" => "my_secret_key", "api_host" => "myapihost", "api_port" => 85, "cloud_id" => 'my_cloud_id' })
|
140
146
|
end
|
141
147
|
|
@@ -145,6 +151,22 @@ describe Panda do
|
|
145
151
|
end
|
146
152
|
|
147
153
|
end
|
154
|
+
|
155
|
+
describe "ActiveSupport::JSON parsing" do
|
156
|
+
|
157
|
+
it "should use active support if it has been defined" do
|
158
|
+
@panda = Panda::Connection.new('http://my_access_key:my_secret_key@myapihost:85/my_cloud_id')
|
159
|
+
stub_http_request(:get, "myapihost:85/v2/videos?timestamp=2009-11-04T17%3A54%3A11%2B00%3A00&signature=CxSYPM65SeeWH4CE%2FLcq7Ny2NtwxlpS8QOXG2BKe4p8%3D&access_key=my_access_key&cloud_id=my_cloud_id").to_return(:body => "abc")
|
160
|
+
|
161
|
+
|
162
|
+
module ActiveSupport
|
163
|
+
class JSON; end
|
164
|
+
end
|
165
|
+
|
166
|
+
ActiveSupport::JSON.should_receive(:decode).with("abc").and_return("blah")
|
167
|
+
@panda.get("/videos").should == "blah"
|
168
|
+
end
|
169
|
+
end
|
148
170
|
|
149
171
|
|
150
172
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: panda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- New Bamboo
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-07-01 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|