tessa 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/lib/tessa/asset.rb +8 -0
- data/lib/tessa/upload.rb +1 -10
- data/lib/tessa/version.rb +1 -1
- data/spec/spec_helper.rb +4 -0
- data/spec/support/remote_call_macro.rb +42 -0
- data/spec/tessa/asset_spec.rb +13 -2
- data/spec/tessa/upload_spec.rb +4 -64
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa71b4d8f37b7ec9bd2f7f3aeff6c216e5ecc7d3
|
4
|
+
data.tar.gz: 40ed20d8dff97b804bc008f1e5040a2e718c2e41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b496921808084403c16b79f967692a5d72a79a1fd92cdb5c5daa31169e39766d34e7883ddd245af7142c2e36a2319ff38184580b4d5502b490c9a3a88d5c4dff
|
7
|
+
data.tar.gz: cdc99adff6059964428e89280843ac338166f8dd6036f1a040fac9a5f73376d50916d027d892d20f1e3173104b78641e6b1e5f485426b44e8c74f3f9252deb93
|
data/lib/tessa/asset.rb
CHANGED
@@ -11,6 +11,14 @@ module Tessa
|
|
11
11
|
attribute :private_url, String
|
12
12
|
attribute :delete_url, String
|
13
13
|
|
14
|
+
def complete!(connection: Tessa.config.connection)
|
15
|
+
Asset.new_from_response connection.patch("/assets/#{id}/completed")
|
16
|
+
end
|
17
|
+
|
18
|
+
def cancel!(connection: Tessa.config.connection)
|
19
|
+
Asset.new_from_response connection.patch("/assets/#{id}/cancelled")
|
20
|
+
end
|
21
|
+
|
14
22
|
def self.find(*ids,
|
15
23
|
connection: Tessa.config.connection)
|
16
24
|
new_from_response connection.get("/assets/#{ids.join(",")}")
|
data/lib/tessa/upload.rb
CHANGED
@@ -3,19 +3,10 @@ module Tessa
|
|
3
3
|
include Virtus.model
|
4
4
|
extend ResponseFactory
|
5
5
|
|
6
|
-
attribute :
|
7
|
-
attribute :cancel_url, String
|
6
|
+
attribute :asset_id, Integer
|
8
7
|
attribute :upload_url, String
|
9
8
|
attribute :upload_method, String
|
10
9
|
|
11
|
-
def complete!(connection: Tessa.config.connection)
|
12
|
-
Asset.new_from_response connection.patch(success_url)
|
13
|
-
end
|
14
|
-
|
15
|
-
def cancel!(connection: Tessa.config.connection)
|
16
|
-
Asset.new_from_response connection.patch(cancel_url)
|
17
|
-
end
|
18
|
-
|
19
10
|
def self.create(connection: Tessa.config.connection,
|
20
11
|
strategy: Tessa.config.strategy,
|
21
12
|
**options)
|
data/lib/tessa/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
RSpec.shared_examples_for "remote call macro" do |method, path, return_type|
|
2
|
+
let(:remote_response) { {} }
|
3
|
+
let(:faraday_stubs) {
|
4
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
5
|
+
stub.send(method, path) { |env| [200, {}, remote_response.to_json] }
|
6
|
+
end
|
7
|
+
}
|
8
|
+
let(:connection) { Faraday.new { |f| f.adapter :test, faraday_stubs } }
|
9
|
+
let(:call_args) { { connection: connection } }
|
10
|
+
|
11
|
+
it "calls #{method} method with #{path}" do
|
12
|
+
expect(connection).to receive(method).with(path, any_args).and_call_original
|
13
|
+
call
|
14
|
+
end
|
15
|
+
|
16
|
+
context "with no connection passed" do
|
17
|
+
let(:call_args) { {} }
|
18
|
+
|
19
|
+
it "defaults connection to Tessa.config.connection" do
|
20
|
+
expect(Tessa.config).to receive(:connection).and_return(connection)
|
21
|
+
expect(connection).to receive(method).and_call_original
|
22
|
+
call
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "when response is not successful" do
|
27
|
+
let(:faraday_stubs) {
|
28
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
29
|
+
stub.send(method, path) { |env| [422, {}, { "error" => "error" }.to_json] }
|
30
|
+
end
|
31
|
+
}
|
32
|
+
|
33
|
+
it "raises Tessa::RequestFailed" do
|
34
|
+
expect{ call }.to raise_error(Tessa::RequestFailed)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns an instance of #{return_type}" do
|
39
|
+
expect(call).to be_a(return_type)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
data/spec/tessa/asset_spec.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe Tessa::Asset do
|
4
|
+
subject(:asset) { described_class.new(args) }
|
4
5
|
let(:args) {
|
5
6
|
{
|
6
7
|
id: 123,
|
@@ -15,8 +16,6 @@ RSpec.describe Tessa::Asset do
|
|
15
16
|
|
16
17
|
describe "#initialize" do
|
17
18
|
context "with all arguments" do
|
18
|
-
subject(:asset) { described_class.new(args) }
|
19
|
-
|
20
19
|
it "sets id to attribute" do
|
21
20
|
expect(asset.id).to eq(args[:id])
|
22
21
|
end
|
@@ -48,6 +47,18 @@ RSpec.describe Tessa::Asset do
|
|
48
47
|
end
|
49
48
|
end
|
50
49
|
|
50
|
+
describe "#complete!" do
|
51
|
+
subject(:call) { asset.complete!(call_args) }
|
52
|
+
|
53
|
+
include_examples "remote call macro", :patch, "/assets/123/completed", Tessa::Asset
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#cancel!" do
|
57
|
+
subject(:call) { asset.cancel!(call_args) }
|
58
|
+
|
59
|
+
include_examples "remote call macro", :patch, "/assets/123/cancelled", Tessa::Asset
|
60
|
+
end
|
61
|
+
|
51
62
|
describe "#find" do
|
52
63
|
let(:faraday_stubs) {
|
53
64
|
Faraday::Adapter::Test::Stubs.new do |stub|
|
data/spec/tessa/upload_spec.rb
CHANGED
@@ -4,23 +4,14 @@ RSpec.describe Tessa::Upload do
|
|
4
4
|
subject(:upload) { described_class.new(args) }
|
5
5
|
let(:args) {
|
6
6
|
{
|
7
|
-
success_url: "/success",
|
8
|
-
cancel_url: "/cancel",
|
9
7
|
upload_url: "/upload",
|
10
8
|
upload_method: "put",
|
9
|
+
asset_id: 123,
|
11
10
|
}
|
12
11
|
}
|
13
12
|
|
14
13
|
describe "#initialize" do
|
15
14
|
context "with all arguments" do
|
16
|
-
it "sets success_url to attribute" do
|
17
|
-
expect(upload.success_url).to eq(args[:success_url])
|
18
|
-
end
|
19
|
-
|
20
|
-
it "sets cancel_url to attribute" do
|
21
|
-
expect(upload.cancel_url).to eq(args[:cancel_url])
|
22
|
-
end
|
23
|
-
|
24
15
|
it "sets upload_url to attribute" do
|
25
16
|
expect(upload.upload_url).to eq(args[:upload_url])
|
26
17
|
end
|
@@ -28,61 +19,11 @@ RSpec.describe Tessa::Upload do
|
|
28
19
|
it "sets upload_method to attribute" do
|
29
20
|
expect(upload.upload_method).to eq(args[:upload_method])
|
30
21
|
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
shared_examples_for "remote call macro" do |method, path, return_type|
|
35
|
-
let(:remote_response) { {} }
|
36
|
-
let(:faraday_stubs) {
|
37
|
-
Faraday::Adapter::Test::Stubs.new do |stub|
|
38
|
-
stub.send(method, path) { |env| [200, {}, remote_response.to_json] }
|
39
|
-
end
|
40
|
-
}
|
41
|
-
let(:connection) { Faraday.new { |f| f.adapter :test, faraday_stubs } }
|
42
|
-
let(:call_args) { { connection: connection } }
|
43
|
-
|
44
|
-
it "calls #{method} method with #{path}" do
|
45
|
-
expect(connection).to receive(method).with(path, any_args).and_call_original
|
46
|
-
call
|
47
|
-
end
|
48
|
-
|
49
|
-
context "with no connection passed" do
|
50
|
-
let(:call_args) { {} }
|
51
|
-
|
52
|
-
it "defaults connection to Tessa.config.connection" do
|
53
|
-
expect(Tessa.config).to receive(:connection).and_return(connection)
|
54
|
-
expect(connection).to receive(method).and_call_original
|
55
|
-
call
|
56
|
-
end
|
57
|
-
end
|
58
22
|
|
59
|
-
|
60
|
-
|
61
|
-
Faraday::Adapter::Test::Stubs.new do |stub|
|
62
|
-
stub.send(method, path) { |env| [422, {}, { "error" => "error" }.to_json] }
|
63
|
-
end
|
64
|
-
}
|
65
|
-
|
66
|
-
it "raises Tessa::RequestFailed" do
|
67
|
-
expect{ call }.to raise_error(Tessa::RequestFailed)
|
23
|
+
it "sets asset_id to attribute" do
|
24
|
+
expect(upload.asset_id).to eq(args[:asset_id])
|
68
25
|
end
|
69
26
|
end
|
70
|
-
|
71
|
-
it "returns an instance of #{return_type}" do
|
72
|
-
expect(call).to be_a(return_type)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
describe "#complete!" do
|
77
|
-
subject(:call) { upload.complete!(call_args) }
|
78
|
-
|
79
|
-
include_examples "remote call macro", :patch, "/success", Tessa::Asset
|
80
|
-
end
|
81
|
-
|
82
|
-
describe "#cancel!" do
|
83
|
-
subject(:call) { upload.cancel!(call_args) }
|
84
|
-
|
85
|
-
include_examples "remote call macro", :patch, "/cancel", Tessa::Asset
|
86
27
|
end
|
87
28
|
|
88
29
|
describe "::create" do
|
@@ -95,8 +36,7 @@ RSpec.describe Tessa::Upload do
|
|
95
36
|
|
96
37
|
it "returns a new object initialized with the response" do
|
97
38
|
upload = described_class.create(connection: connection)
|
98
|
-
expect(upload.
|
99
|
-
expect(upload.cancel_url).to eq(args[:cancel_url])
|
39
|
+
expect(upload.asset_id).to eq(args[:asset_id])
|
100
40
|
expect(upload.upload_url).to eq(args[:upload_url])
|
101
41
|
expect(upload.upload_method).to eq(args[:upload_method])
|
102
42
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tessa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Powell
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
12
|
+
date: 2015-03-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- lib/tessa/upload.rb
|
119
119
|
- lib/tessa/version.rb
|
120
120
|
- spec/spec_helper.rb
|
121
|
+
- spec/support/remote_call_macro.rb
|
121
122
|
- spec/tessa/asset_spec.rb
|
122
123
|
- spec/tessa/config_spec.rb
|
123
124
|
- spec/tessa/upload_spec.rb
|
@@ -148,6 +149,7 @@ specification_version: 4
|
|
148
149
|
summary: Manage your assets.
|
149
150
|
test_files:
|
150
151
|
- spec/spec_helper.rb
|
152
|
+
- spec/support/remote_call_macro.rb
|
151
153
|
- spec/tessa/asset_spec.rb
|
152
154
|
- spec/tessa/config_spec.rb
|
153
155
|
- spec/tessa/upload_spec.rb
|