transloadit 2.0.1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +23 -0
- data/.standard.yml +0 -0
- data/CHANGELOG.md +68 -57
- data/Gemfile +1 -1
- data/README.md +162 -86
- data/Rakefile +12 -17
- data/examples/README.md +94 -55
- data/examples/basic/audio-concat-transcoder.rb +29 -19
- data/examples/basic/audio-transcoder.rb +32 -22
- data/examples/basic/image-transcoder.rb +22 -17
- data/examples/basic/main.rb +31 -37
- data/examples/basic/media-transcoder.rb +2 -7
- data/lib/transloadit/api_model.rb +13 -13
- data/lib/transloadit/assembly.rb +27 -24
- data/lib/transloadit/exception.rb +2 -4
- data/lib/transloadit/request.rb +58 -52
- data/lib/transloadit/response/assembly.rb +14 -13
- data/lib/transloadit/response.rb +10 -10
- data/lib/transloadit/step.rb +13 -13
- data/lib/transloadit/template.rb +5 -5
- data/lib/transloadit/version.rb +1 -1
- data/lib/transloadit.rb +24 -24
- data/test/fixtures/cassettes/cancel_assembly.yml +3 -3
- data/test/fixtures/cassettes/create_template.yml +1 -1
- data/test/fixtures/cassettes/delete_template.yml +1 -1
- data/test/fixtures/cassettes/fetch_assemblies.yml +1 -1
- data/test/fixtures/cassettes/fetch_assembly_aborted.yml +3 -3
- data/test/fixtures/cassettes/fetch_assembly_errors.yml +3 -3
- data/test/fixtures/cassettes/fetch_assembly_executing.yml +3 -3
- data/test/fixtures/cassettes/fetch_assembly_notifications.yml +1 -1
- data/test/fixtures/cassettes/fetch_assembly_ok.yml +6 -6
- data/test/fixtures/cassettes/fetch_assembly_uploading.yml +3 -3
- data/test/fixtures/cassettes/fetch_billing.yml +1 -1
- data/test/fixtures/cassettes/fetch_root.yml +3 -3
- data/test/fixtures/cassettes/fetch_template.yml +1 -1
- data/test/fixtures/cassettes/fetch_templates.yml +1 -1
- data/test/fixtures/cassettes/post_assembly.yml +2 -2
- data/test/fixtures/cassettes/rate_limit_fail.yml +3 -3
- data/test/fixtures/cassettes/rate_limit_succeed.yml +4 -4
- data/test/fixtures/cassettes/replay_assembly.yml +2 -2
- data/test/fixtures/cassettes/replay_assembly_notification.yml +1 -1
- data/test/fixtures/cassettes/submit_assembly.yml +3 -3
- data/test/fixtures/cassettes/update_template.yml +1 -1
- data/test/test_helper.rb +10 -10
- data/test/unit/test_transloadit.rb +66 -66
- data/test/unit/transloadit/test_api.rb +35 -33
- data/test/unit/transloadit/test_assembly.rb +148 -112
- data/test/unit/transloadit/test_request.rb +41 -42
- data/test/unit/transloadit/test_response.rb +76 -76
- data/test/unit/transloadit/test_step.rb +52 -52
- data/test/unit/transloadit/test_template.rb +49 -54
- data/transloadit.gemspec +25 -26
- metadata +25 -41
- data/.travis.yml +0 -13
@@ -1,170 +1,170 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
describe Transloadit::Response do
|
4
|
-
|
4
|
+
request_uri = "https://api2.jane.transloadit.com/assemblies/76fe5df1c93a0a530f3e583805cf98b4"
|
5
5
|
|
6
|
-
it
|
7
|
-
response = Transloadit::Response.new(
|
8
|
-
response.class.must_equal Transloadit::Response
|
6
|
+
it "must allow delegate initialization" do
|
7
|
+
response = Transloadit::Response.new("test")
|
8
|
+
_(response.class).must_equal Transloadit::Response
|
9
9
|
end
|
10
10
|
|
11
|
-
describe
|
11
|
+
describe "when initialized" do
|
12
12
|
before do
|
13
|
-
VCR.use_cassette
|
13
|
+
VCR.use_cassette "fetch_assembly_ok" do
|
14
14
|
@response = Transloadit::Response.new(
|
15
|
-
RestClient::Resource.new(
|
15
|
+
RestClient::Resource.new(request_uri).get
|
16
16
|
)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
it
|
21
|
-
@response.body.must_be_kind_of Hash
|
20
|
+
it "must parse the body" do
|
21
|
+
_(@response.body).must_be_kind_of Hash
|
22
22
|
end
|
23
23
|
|
24
|
-
it
|
25
|
-
%w
|
26
|
-
@response[attribute].must_equal @response.body[attribute]
|
24
|
+
it "must allow access to body attributes" do
|
25
|
+
%w[ok message assembly_id assembly_ssl_url].each do |attribute|
|
26
|
+
_(@response[attribute]).must_equal @response.body[attribute]
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
it
|
31
|
-
[:ok, :message, :assembly_id, :
|
32
|
-
@response[attribute].must_equal @response.body[attribute.to_s]
|
30
|
+
it "must allow access to body attributes as symbols" do
|
31
|
+
[:ok, :message, :assembly_id, :assembly_ssl_url].each do |attribute|
|
32
|
+
_(@response[attribute]).must_equal @response.body[attribute.to_s]
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
it
|
37
|
-
@response.inspect.must_equal @response.body.inspect
|
36
|
+
it "must inspect as the body" do
|
37
|
+
_(@response.inspect).must_equal @response.body.inspect
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
describe
|
41
|
+
describe "when extended as an assembly" do
|
42
42
|
before do
|
43
|
-
VCR.use_cassette
|
43
|
+
VCR.use_cassette "fetch_assembly_ok" do
|
44
44
|
@response = Transloadit::Response.new(
|
45
|
-
RestClient::Resource.new(
|
45
|
+
RestClient::Resource.new(request_uri).get
|
46
46
|
).extend!(Transloadit::Response::Assembly)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
it
|
51
|
-
@response.completed
|
52
|
-
@response.finished
|
53
|
-
@response.error
|
50
|
+
it "must allow checking for completion" do
|
51
|
+
_(@response.completed?).must_equal true
|
52
|
+
_(@response.finished?).must_equal true
|
53
|
+
_(@response.error?).must_equal false
|
54
54
|
end
|
55
55
|
|
56
56
|
# TODO: can this be tested better?
|
57
|
-
it
|
58
|
-
VCR.use_cassette
|
59
|
-
@response.send(:__getobj__)
|
60
|
-
wont_be_same_as @response.reload!.send(:__getobj__)
|
57
|
+
it "must allow reloading the assembly" do
|
58
|
+
VCR.use_cassette "fetch_assembly_ok", allow_playback_repeats: true do
|
59
|
+
_(@response.send(:__getobj__))
|
60
|
+
.wont_be_same_as @response.reload!.send(:__getobj__)
|
61
61
|
|
62
|
-
@response.object_id
|
63
|
-
must_equal @response.reload!.object_id
|
62
|
+
_(@response.object_id)
|
63
|
+
.must_equal @response.reload!.object_id
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
it
|
68
|
-
VCR.use_cassette
|
67
|
+
it "must allow canceling" do
|
68
|
+
VCR.use_cassette "cancel_assembly" do
|
69
69
|
@response.cancel!
|
70
70
|
|
71
|
-
@response.completed
|
72
|
-
@response[
|
73
|
-
@response.canceled
|
74
|
-
@response.finished
|
71
|
+
_(@response.completed?).must_equal false
|
72
|
+
_(@response["ok"]).must_equal "ASSEMBLY_CANCELED"
|
73
|
+
_(@response.canceled?).must_equal true
|
74
|
+
_(@response.finished?).must_equal true
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
-
describe
|
79
|
+
describe "long-running assembly" do
|
80
80
|
before do
|
81
|
-
VCR.use_cassette
|
81
|
+
VCR.use_cassette "fetch_assembly_executing" do
|
82
82
|
@response = Transloadit::Response.new(
|
83
|
-
RestClient::Resource.new(
|
83
|
+
RestClient::Resource.new(request_uri).get
|
84
84
|
).extend!(Transloadit::Response::Assembly)
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
-
it
|
89
|
-
@response.finished
|
88
|
+
it "must allow reloading until finished" do
|
89
|
+
_(@response.finished?).must_equal false
|
90
90
|
|
91
|
-
VCR.use_cassette
|
92
|
-
VCR.use_cassette
|
91
|
+
VCR.use_cassette "fetch_assembly_ok" do
|
92
|
+
VCR.use_cassette "fetch_assembly_executing" do
|
93
93
|
@response.reload_until_finished!
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
-
@response.finished
|
97
|
+
_(@response.finished?).must_equal true
|
98
98
|
end
|
99
99
|
|
100
|
-
it
|
100
|
+
it "must raise exception if reload until finished tries exceeded" do
|
101
101
|
assert_raises Transloadit::Exception::ReloadLimitReached do
|
102
|
-
VCR.use_cassette
|
102
|
+
VCR.use_cassette "fetch_assembly_executing", allow_playback_repeats: true do
|
103
103
|
@response.reload_until_finished! tries: 1
|
104
104
|
end
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
|
-
describe
|
110
|
-
it
|
111
|
-
VCR.use_cassette
|
109
|
+
describe "statuses" do
|
110
|
+
it "must allow checking for upload" do
|
111
|
+
VCR.use_cassette "fetch_assembly_uploading" do
|
112
112
|
@response = Transloadit::Response.new(
|
113
|
-
RestClient::Resource.new(
|
113
|
+
RestClient::Resource.new(request_uri).get
|
114
114
|
).extend!(Transloadit::Response::Assembly)
|
115
115
|
end
|
116
116
|
|
117
|
-
@response.finished
|
118
|
-
@response.uploading
|
119
|
-
@response.error
|
117
|
+
_(@response.finished?).must_equal false
|
118
|
+
_(@response.uploading?).must_equal true
|
119
|
+
_(@response.error?).must_equal false
|
120
120
|
end
|
121
121
|
|
122
|
-
it
|
123
|
-
VCR.use_cassette
|
122
|
+
it "must allow to check for executing" do
|
123
|
+
VCR.use_cassette "fetch_assembly_executing" do
|
124
124
|
@response = Transloadit::Response.new(
|
125
|
-
RestClient::Resource.new(
|
125
|
+
RestClient::Resource.new(request_uri).get
|
126
126
|
).extend!(Transloadit::Response::Assembly)
|
127
127
|
end
|
128
128
|
|
129
|
-
@response.finished
|
130
|
-
@response.executing
|
131
|
-
@response.error
|
129
|
+
_(@response.finished?).must_equal false
|
130
|
+
_(@response.executing?).must_equal true
|
131
|
+
_(@response.error?).must_equal false
|
132
132
|
end
|
133
133
|
|
134
|
-
it
|
135
|
-
VCR.use_cassette
|
134
|
+
it "must allow to check for replaying" do
|
135
|
+
VCR.use_cassette "replay_assembly" do
|
136
136
|
@response = Transloadit::Response.new(
|
137
137
|
RestClient::Resource.new(
|
138
|
-
|
138
|
+
"https://api2.transloadit.com/assemblies/55c965a063a311e6ba2d379ef10b28f7/replay"
|
139
139
|
).post({})
|
140
140
|
).extend!(Transloadit::Response::Assembly)
|
141
141
|
end
|
142
142
|
|
143
|
-
@response.finished
|
144
|
-
@response.replaying
|
145
|
-
@response.error
|
143
|
+
_(@response.finished?).must_equal false
|
144
|
+
_(@response.replaying?).must_equal true
|
145
|
+
_(@response.error?).must_equal false
|
146
146
|
end
|
147
147
|
|
148
|
-
it
|
149
|
-
VCR.use_cassette
|
148
|
+
it "must allow to check for aborted" do
|
149
|
+
VCR.use_cassette "fetch_assembly_aborted" do
|
150
150
|
@response = Transloadit::Response.new(
|
151
|
-
RestClient::Resource.new(
|
151
|
+
RestClient::Resource.new(request_uri).get
|
152
152
|
).extend!(Transloadit::Response::Assembly)
|
153
153
|
end
|
154
154
|
|
155
|
-
@response.finished
|
156
|
-
@response.aborted
|
155
|
+
_(@response.finished?).must_equal true
|
156
|
+
_(@response.aborted?).must_equal true
|
157
157
|
end
|
158
158
|
|
159
|
-
it
|
160
|
-
VCR.use_cassette
|
159
|
+
it "must allow to check for errors" do
|
160
|
+
VCR.use_cassette "fetch_assembly_errors" do
|
161
161
|
@response = Transloadit::Response.new(
|
162
|
-
RestClient::Resource.new(
|
162
|
+
RestClient::Resource.new(request_uri).get
|
163
163
|
).extend!(Transloadit::Response::Assembly)
|
164
164
|
end
|
165
165
|
|
166
|
-
@response.error
|
167
|
-
@response.finished
|
166
|
+
_(@response.error?).must_equal true
|
167
|
+
_(@response.finished?).must_equal true
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
@@ -1,97 +1,97 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
describe Transloadit::Step do
|
4
|
-
it
|
5
|
-
Transloadit::Step.new(
|
6
|
-
must_be_kind_of Transloadit::Step
|
4
|
+
it "must allow initialization" do
|
5
|
+
_(Transloadit::Step.new("store", "/s3/store"))
|
6
|
+
.must_be_kind_of Transloadit::Step
|
7
7
|
end
|
8
8
|
|
9
|
-
describe
|
9
|
+
describe "when initialized" do
|
10
10
|
before do
|
11
|
-
@name
|
12
|
-
@robot
|
13
|
-
@key
|
14
|
-
@secret =
|
15
|
-
@bucket =
|
11
|
+
@name = "store"
|
12
|
+
@robot = "/s3/store"
|
13
|
+
@key = "aws-access-key-id"
|
14
|
+
@secret = "aws-secret-access-key"
|
15
|
+
@bucket = "s3-bucket-name"
|
16
16
|
|
17
17
|
@step = Transloadit::Step.new @name, @robot,
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
18
|
+
key: @key,
|
19
|
+
secret: @secret,
|
20
|
+
bucket: @bucket
|
21
21
|
end
|
22
22
|
|
23
|
-
it
|
24
|
-
@step.name.must_equal @name
|
23
|
+
it "should use the name given" do
|
24
|
+
_(@step.name).must_equal @name
|
25
25
|
end
|
26
26
|
|
27
|
-
it
|
28
|
-
@step.robot.must_equal @robot
|
27
|
+
it "must remember the type" do
|
28
|
+
_(@step.robot).must_equal @robot
|
29
29
|
end
|
30
30
|
|
31
|
-
it
|
32
|
-
@step.options.must_equal(
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
31
|
+
it "must remember the parameters" do
|
32
|
+
_(@step.options).must_equal(
|
33
|
+
key: @key,
|
34
|
+
secret: @secret,
|
35
|
+
bucket: @bucket
|
36
36
|
)
|
37
37
|
end
|
38
38
|
|
39
|
-
it
|
40
|
-
@step.inspect.must_equal @step.to_hash[@step.name].inspect
|
39
|
+
it "must inspect like a hash" do
|
40
|
+
_(@step.inspect).must_equal @step.to_hash[@step.name].inspect
|
41
41
|
end
|
42
42
|
|
43
|
-
it
|
44
|
-
@step.to_hash.must_equal(
|
43
|
+
it "must produce Transloadit-compatible hash output" do
|
44
|
+
_(@step.to_hash).must_equal(
|
45
45
|
@step.name => {
|
46
|
-
:
|
47
|
-
:
|
48
|
-
:
|
49
|
-
:
|
46
|
+
robot: @robot,
|
47
|
+
key: @key,
|
48
|
+
secret: @secret,
|
49
|
+
bucket: @bucket
|
50
50
|
}
|
51
51
|
)
|
52
52
|
end
|
53
53
|
|
54
|
-
it
|
55
|
-
@step.to_json.must_equal MultiJson.dump(@step.to_hash)
|
54
|
+
it "must produce Transloadit-compatible JSON output" do
|
55
|
+
_(@step.to_json).must_equal MultiJson.dump(@step.to_hash)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
describe
|
59
|
+
describe "when using alternative inputs" do
|
60
60
|
before do
|
61
|
-
@step = Transloadit::Step.new
|
61
|
+
@step = Transloadit::Step.new "resize", "/image/resize"
|
62
62
|
end
|
63
63
|
|
64
|
-
it
|
65
|
-
@step.use(:original).must_equal
|
66
|
-
@step.options[:use]
|
64
|
+
it "must allow using the original file as input" do
|
65
|
+
_(@step.use(:original)).must_equal ":original"
|
66
|
+
_(@step.options[:use]).must_equal ":original"
|
67
67
|
end
|
68
68
|
|
69
|
-
it
|
70
|
-
input = Transloadit::Step.new
|
69
|
+
it "must allow using another step" do
|
70
|
+
input = Transloadit::Step.new "thumbnail", "/video/thumbnail"
|
71
71
|
|
72
|
-
@step.use(input).
|
73
|
-
@step.options[:use].must_equal [
|
72
|
+
_(@step.use(input)).must_equal [input.name]
|
73
|
+
_(@step.options[:use]).must_equal [input.name]
|
74
74
|
end
|
75
75
|
|
76
|
-
it
|
76
|
+
it "must allow using multiple steps" do
|
77
77
|
inputs = [
|
78
|
-
Transloadit::Step.new(
|
79
|
-
Transloadit::Step.new(
|
78
|
+
Transloadit::Step.new("thumbnail", "/video/thumbnail"),
|
79
|
+
Transloadit::Step.new("resize", "/image/resize")
|
80
80
|
]
|
81
81
|
|
82
|
-
@step.use(inputs).
|
83
|
-
@step.options[:use].must_equal
|
82
|
+
_(@step.use(inputs)).must_equal(inputs.map { |i| i.name })
|
83
|
+
_(@step.options[:use]).must_equal(inputs.map { |i| i.name })
|
84
84
|
end
|
85
85
|
|
86
|
-
it
|
86
|
+
it "must allow using nothing" do
|
87
87
|
@step.use :original
|
88
|
-
@step.use(nil)
|
89
|
-
@step.options.keys.wont_include(:use)
|
88
|
+
assert_nil @step.use(nil)
|
89
|
+
_(@step.options.keys).wont_include(:use)
|
90
90
|
end
|
91
91
|
|
92
|
-
it
|
93
|
-
@step.use(:original).
|
94
|
-
@step.to_hash[@step.name][:use].must_equal
|
92
|
+
it "must include the used steps in the hash output" do
|
93
|
+
_(@step.use(:original)).must_equal ":original"
|
94
|
+
_(@step.to_hash[@step.name][:use]).must_equal ":original"
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
@@ -1,116 +1,111 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
describe Transloadit::Template do
|
4
|
-
|
5
|
-
|
6
|
-
(Transloadit::Template < Transloadit::ApiModel).must_equal true
|
4
|
+
it "must inherit from Transloadit::ApiModel class" do
|
5
|
+
_(Transloadit::Template < Transloadit::ApiModel).must_equal true
|
7
6
|
end
|
8
7
|
|
9
|
-
describe
|
8
|
+
describe "using template API methods" do
|
10
9
|
include WebMock::API
|
11
10
|
|
12
11
|
before do
|
13
12
|
WebMock.reset!
|
14
|
-
@transloadit = Transloadit.new(:
|
13
|
+
@transloadit = Transloadit.new(key: "")
|
15
14
|
@template = Transloadit::Template.new @transloadit
|
16
15
|
end
|
17
16
|
|
18
|
-
it
|
19
|
-
VCR.use_cassette
|
17
|
+
it "must allow to create new template" do
|
18
|
+
VCR.use_cassette "create_template" do
|
20
19
|
response = @template.create(
|
21
20
|
{
|
22
|
-
:
|
23
|
-
:
|
21
|
+
name: "foo",
|
22
|
+
template: {"key" => "value"}
|
24
23
|
}
|
25
24
|
)
|
26
|
-
response[
|
27
|
-
response[
|
28
|
-
response[
|
25
|
+
_(response["ok"]).must_equal "TEMPLATE_CREATED"
|
26
|
+
_(response["template_name"]).must_equal "foo"
|
27
|
+
_(response["template_content"]["key"]).must_equal "value"
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
|
-
describe
|
33
|
-
|
34
|
-
|
35
|
-
stub = stub_request(:get, 'api2.transloadit.com/templates?params=%7B%22auth%22:%7B%22key%22:%22%22%7D%7D')
|
31
|
+
describe "when fetching all templates" do
|
32
|
+
it "must perform GET request to /templates" do
|
33
|
+
stub = stub_request(:get, "https://api2.transloadit.com/templates?params=%7B%22auth%22:%7B%22key%22:%22%22%7D%7D")
|
36
34
|
@template.list
|
37
35
|
|
38
36
|
assert_requested(stub)
|
39
37
|
end
|
40
38
|
|
41
|
-
it
|
42
|
-
VCR.use_cassette
|
39
|
+
it "must return a list of items" do
|
40
|
+
VCR.use_cassette "fetch_templates" do
|
43
41
|
response = @template.list
|
44
42
|
|
45
|
-
response[
|
46
|
-
response[
|
43
|
+
_(response["items"]).must_equal []
|
44
|
+
_(response["count"]).must_equal 0
|
47
45
|
end
|
48
46
|
end
|
49
47
|
end
|
50
48
|
|
51
|
-
describe
|
52
|
-
|
53
|
-
it 'must perform GET request to /templates/[id]' do
|
49
|
+
describe "when fetching single template" do
|
50
|
+
it "must perform GET request to /templates/[id]" do
|
54
51
|
stub = stub_request(
|
55
52
|
:get,
|
56
|
-
|
53
|
+
"https://api2.transloadit.com/templates/76fe5df1c93a0a530f3e583805cf98b4?params=%7B%22auth%22:%7B%22key%22:%22%22%7D%7D"
|
57
54
|
)
|
58
|
-
@template.get
|
55
|
+
@template.get "76fe5df1c93a0a530f3e583805cf98b4"
|
59
56
|
|
60
57
|
assert_requested(stub)
|
61
58
|
end
|
62
59
|
|
63
|
-
it
|
64
|
-
VCR.use_cassette
|
65
|
-
response = @template.get
|
66
|
-
response[
|
67
|
-
response[
|
60
|
+
it "must get template with specified id" do
|
61
|
+
VCR.use_cassette "fetch_template" do
|
62
|
+
response = @template.get "76fe5df1c93a0a530f3e583805cf98b4"
|
63
|
+
_(response["ok"]).must_equal "TEMPLATE_FOUND"
|
64
|
+
_(response["template_id"]).must_equal "76fe5df1c93a0a530f3e583805cf98b4"
|
68
65
|
end
|
69
66
|
end
|
70
67
|
end
|
71
68
|
|
72
|
-
describe
|
73
|
-
|
74
|
-
|
75
|
-
url = 'api2.transloadit.com/templates/76fe5df1c93a0a530f3e583805cf98b4'
|
69
|
+
describe "when updating template" do
|
70
|
+
it "must perform PUT request to templates/[id]" do
|
71
|
+
url = "https://api2.transloadit.com/templates/76fe5df1c93a0a530f3e583805cf98b4"
|
76
72
|
stub_request(:put, url)
|
77
73
|
@template.update(
|
78
|
-
|
79
|
-
{:
|
74
|
+
"76fe5df1c93a0a530f3e583805cf98b4",
|
75
|
+
{name: "foo", template: {key: "value"}}
|
80
76
|
)
|
81
77
|
|
82
78
|
assert_requested(:put, url) do |req|
|
83
79
|
values = values_from_post_body(req.body)
|
84
|
-
data = MultiJson.load(values[
|
85
|
-
data[
|
86
|
-
data[
|
80
|
+
data = MultiJson.load(values["params"])
|
81
|
+
_(data["name"]).must_equal "foo"
|
82
|
+
_(data["template"]["key"]).must_equal "value"
|
87
83
|
end
|
88
84
|
end
|
89
85
|
|
90
|
-
it
|
91
|
-
VCR.use_cassette
|
92
|
-
response = @template.update
|
86
|
+
it "must update template with specified id" do
|
87
|
+
VCR.use_cassette "update_template" do
|
88
|
+
response = @template.update "55c965a063a311e6ba2d379ef10b28f7"
|
93
89
|
|
94
|
-
response[
|
95
|
-
response[
|
90
|
+
_(response["ok"]).must_equal "TEMPLATE_UPDATED"
|
91
|
+
_(response["template_id"]).must_equal "55c965a063a311e6ba2d379ef10b28f7"
|
96
92
|
end
|
97
93
|
end
|
98
94
|
end
|
99
95
|
|
100
|
-
describe
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
@template.delete '76fe5df1c93a0a530f3e583805cf98b4'
|
96
|
+
describe "when deleting a template" do
|
97
|
+
it "must perform DELETE request to templates/[id]" do
|
98
|
+
stub = stub_request(:delete, "https://api2.transloadit.com/templates/76fe5df1c93a0a530f3e583805cf98b4")
|
99
|
+
@template.delete "76fe5df1c93a0a530f3e583805cf98b4"
|
105
100
|
|
106
101
|
assert_requested(stub)
|
107
102
|
end
|
108
103
|
|
109
|
-
it
|
110
|
-
VCR.use_cassette
|
111
|
-
response = @template.delete
|
104
|
+
it "must delete specified template templates" do
|
105
|
+
VCR.use_cassette "delete_template" do
|
106
|
+
response = @template.delete "55c965a063a311e6ba2d379ef10b28f7"
|
112
107
|
|
113
|
-
response[
|
108
|
+
_(response["ok"]).must_equal "TEMPLATE_DELETED"
|
114
109
|
end
|
115
110
|
end
|
116
111
|
end
|
data/transloadit.gemspec
CHANGED
@@ -1,39 +1,38 @@
|
|
1
|
-
$:.unshift File.expand_path(
|
1
|
+
$:.unshift File.expand_path("../lib", __FILE__)
|
2
2
|
|
3
|
-
require
|
3
|
+
require "transloadit/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
|
-
gem.name
|
7
|
-
gem.version
|
6
|
+
gem.name = "transloadit"
|
7
|
+
gem.version = Transloadit::VERSION
|
8
8
|
gem.platform = Gem::Platform::RUBY
|
9
9
|
|
10
|
-
gem.authors
|
11
|
-
gem.email
|
12
|
-
gem.homepage =
|
13
|
-
gem.license
|
10
|
+
gem.authors = ["Stephen Touset", "Robin Mehner"]
|
11
|
+
gem.email = %w[stephen@touset.org robin@coding-robin.de]
|
12
|
+
gem.homepage = "https://github.com/transloadit/ruby-sdk/"
|
13
|
+
gem.license = "MIT"
|
14
14
|
|
15
|
-
gem.summary
|
16
|
-
gem.description =
|
15
|
+
gem.summary = "Official Ruby gem for Transloadit"
|
16
|
+
gem.description = "The transloadit gem allows you to automate uploading files through the Transloadit REST API"
|
17
17
|
|
18
|
-
gem.required_rubygems_version =
|
19
|
-
gem.required_ruby_version
|
18
|
+
gem.required_rubygems_version = ">= 2.2.0"
|
19
|
+
gem.required_ruby_version = ">= 3.0.0"
|
20
20
|
|
21
|
-
gem.files
|
22
|
-
gem.
|
23
|
-
gem.require_paths = %w{ lib }
|
21
|
+
gem.files = `git ls-files`.split("\n")
|
22
|
+
gem.require_paths = %w[lib]
|
24
23
|
|
25
|
-
gem.add_dependency
|
26
|
-
gem.add_dependency
|
27
|
-
gem.add_dependency
|
24
|
+
gem.add_dependency "rest-client"
|
25
|
+
gem.add_dependency "multi_json"
|
26
|
+
gem.add_dependency "mime-types"
|
28
27
|
|
29
|
-
gem.add_development_dependency
|
30
|
-
gem.add_development_dependency
|
31
|
-
gem.add_development_dependency
|
28
|
+
gem.add_development_dependency "rake"
|
29
|
+
gem.add_development_dependency "minitest"
|
30
|
+
gem.add_development_dependency "simplecov"
|
31
|
+
gem.add_development_dependency "standard"
|
32
32
|
|
33
|
-
gem.add_development_dependency
|
34
|
-
gem.add_development_dependency
|
35
|
-
|
36
|
-
gem.add_development_dependency 'yard'
|
37
|
-
gem.add_development_dependency 'kramdown' # for YARD rdoc formatting
|
33
|
+
gem.add_development_dependency "vcr"
|
34
|
+
gem.add_development_dependency "webmock"
|
38
35
|
|
36
|
+
gem.add_development_dependency "yard"
|
37
|
+
gem.add_development_dependency "kramdown" # for YARD rdoc formatting
|
39
38
|
end
|