animoto 0.0.0.alpha2 → 0.0.0.alpha3
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/lib/animoto/client.rb +18 -15
- data/lib/animoto.rb +1 -1
- data/spec/animoto/client_spec.rb +17 -3
- metadata +4 -4
data/lib/animoto/client.rb
CHANGED
@@ -36,7 +36,7 @@ module Animoto
|
|
36
36
|
:post => Net::HTTP::Post
|
37
37
|
}
|
38
38
|
|
39
|
-
attr_accessor :key, :secret
|
39
|
+
attr_accessor :key, :secret, :endpoint
|
40
40
|
attr_reader :format
|
41
41
|
|
42
42
|
# Creates a new Client object which handles credentials, versioning, making requests, and
|
@@ -44,7 +44,8 @@ module Animoto
|
|
44
44
|
#
|
45
45
|
# If you have your key and secret in ~/.animotorc or /etc/.animotorc, those credentials will
|
46
46
|
# be read from those files (in that order) whenever you make a new Client if you don't specify
|
47
|
-
# them explicitly.
|
47
|
+
# them explicitly. You can also specify the endpoint (staging, sandbox, etc.) in the rc file.
|
48
|
+
# The default endpoint will be used if one isn't specified.
|
48
49
|
#
|
49
50
|
# @param [String] key the API key for your account
|
50
51
|
# @param [String] secret the secret key for your account
|
@@ -55,20 +56,22 @@ module Animoto
|
|
55
56
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
56
57
|
@key = args[0]
|
57
58
|
@secret = args[1]
|
59
|
+
@endpoint = options[:endpoint]
|
60
|
+
|
61
|
+
home_path = File.expand_path '~/.animotorc'
|
62
|
+
config = if File.exist?(home_path)
|
63
|
+
YAML.load(File.read(home_path))
|
64
|
+
elsif File.exist?('/etc/.animotorc')
|
65
|
+
YAML.load(File.read('/etc/.animotorc'))
|
66
|
+
end
|
67
|
+
@key ||= config['key']
|
68
|
+
@secret ||= config['secret']
|
69
|
+
@endpoint ||= config['endpoint']
|
58
70
|
unless @key && @secret
|
59
|
-
|
60
|
-
config = if File.exist?(home_path)
|
61
|
-
YAML.load(File.read(home_path))
|
62
|
-
elsif File.exist?('/etc/.animotorc')
|
63
|
-
YAML.load(File.read('/etc/.animotorc'))
|
64
|
-
end
|
65
|
-
if config
|
66
|
-
@key ||= config['key']
|
67
|
-
@secret ||= config['secret']
|
68
|
-
else
|
69
|
-
raise ArgumentError, "You must supply your key and secret"
|
70
|
-
end
|
71
|
+
raise ArgumentError, "You must supply your key and secret"
|
71
72
|
end
|
73
|
+
|
74
|
+
@endpoint ||= API_ENDPOINT
|
72
75
|
@format = 'json'
|
73
76
|
end
|
74
77
|
|
@@ -140,7 +143,7 @@ module Animoto
|
|
140
143
|
# @return [Hash] deserialized JSON response body
|
141
144
|
def send_manifest manifest, endpoint, options = {}
|
142
145
|
# request(:post, endpoint, manifest.to_json, { "Accept" => "application/#{format}", "Content-Type" => content_type_of(manifest) }, options)
|
143
|
-
u = URI.parse(
|
146
|
+
u = URI.parse(endpoint)
|
144
147
|
u.path = endpoint
|
145
148
|
request(:post, u, manifest.to_json, { "Accept" => "application/#{format}", "Content-Type" => content_type_of(manifest) }, options)
|
146
149
|
end
|
data/lib/animoto.rb
CHANGED
data/spec/animoto/client_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe Animoto::Client do
|
|
9
9
|
@object ||= Object.new
|
10
10
|
end
|
11
11
|
|
12
|
-
describe "supplying credentials" do
|
12
|
+
describe "supplying credentials and endpoint" do
|
13
13
|
describe "manually" do
|
14
14
|
it "should accept the key and secret as the first two parameters on initialization" do
|
15
15
|
c = Animoto::Client.new "key", "secret"
|
@@ -17,6 +17,11 @@ describe Animoto::Client do
|
|
17
17
|
c.secret.should == "secret"
|
18
18
|
end
|
19
19
|
|
20
|
+
it "should accept an endpoint as an option" do
|
21
|
+
c = Animoto::Client.new "key", "secret", :endpoint => "https://api.animoto.com/"
|
22
|
+
c.endpoint.should == "https://api.animoto.com/"
|
23
|
+
end
|
24
|
+
|
20
25
|
describe "when the secret isn't specified (i.e. only 1 parameter was passed)" do
|
21
26
|
before do
|
22
27
|
File.stubs(:exist?).returns(false) # <= to keep it from finding our .animotorc files
|
@@ -26,13 +31,20 @@ describe Animoto::Client do
|
|
26
31
|
lambda { Animoto::Client.new "key" }.should raise_error
|
27
32
|
end
|
28
33
|
end
|
34
|
+
|
35
|
+
describe "when the endpoint isn't specified" do
|
36
|
+
it "should set the endpoint to the default" do
|
37
|
+
c = Animoto::Client.new "key", "secret"
|
38
|
+
c.endpoint.should == Animoto::Client::API_ENDPOINT
|
39
|
+
end
|
40
|
+
end
|
29
41
|
end
|
30
42
|
|
31
43
|
describe "automatically" do
|
32
44
|
before do
|
33
45
|
@home_path = File.expand_path("~/.animotorc")
|
34
46
|
@etc_path = "/etc/.animotorc"
|
35
|
-
@config = "key: joe\nsecret: secret"
|
47
|
+
@config = "key: joe\nsecret: secret\nendpoint: https://api.animoto.com/"
|
36
48
|
end
|
37
49
|
|
38
50
|
describe "when ~/.animotorc exists" do
|
@@ -45,6 +57,7 @@ describe Animoto::Client do
|
|
45
57
|
c = Animoto::Client.new
|
46
58
|
c.key.should == "joe"
|
47
59
|
c.secret.should == "secret"
|
60
|
+
c.endpoint.should == "https://api.animoto.com/"
|
48
61
|
end
|
49
62
|
end
|
50
63
|
|
@@ -63,6 +76,7 @@ describe Animoto::Client do
|
|
63
76
|
c = Animoto::Client.new
|
64
77
|
c.key.should == "joe"
|
65
78
|
c.secret.should == "secret"
|
79
|
+
c.endpoint.should == "https://api.animoto.com/"
|
66
80
|
end
|
67
81
|
end
|
68
82
|
|
@@ -74,7 +88,7 @@ describe Animoto::Client do
|
|
74
88
|
end
|
75
89
|
end
|
76
90
|
end
|
77
|
-
|
91
|
+
|
78
92
|
describe "finding an instance by identifier" do
|
79
93
|
before do
|
80
94
|
@url = "https://api.animoto.com/storyboards/1"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: animoto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -1710980559
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 0.0.0.
|
10
|
+
- alpha3
|
11
|
+
version: 0.0.0.alpha3
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Animoto
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-09-07 00:00:00 -04:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|