helix 0.0.3.9.pre → 0.0.4.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/helix/config.rb +7 -5
- data/lib/helix/uploadable.rb +18 -7
- data/spec/_integration_spec.rb +20 -7
- data/spec/base_spec.rb +5 -5
- data/spec/config_spec.rb +11 -10
- data/spec/document_spec.rb +44 -11
- data/spec/durationed_spec.rb +1 -1
- data/spec/media_spec.rb +7 -7
- data/spec/statistics_spec.rb +1 -1
- data/spec/tag_spec.rb +1 -1
- data/spec/track_spec.rb +43 -11
- data/spec/video_spec.rb +48 -16
- metadata +81 -73
data/lib/helix/config.rb
CHANGED
@@ -154,7 +154,8 @@ module Helix
|
|
154
154
|
|
155
155
|
lk = license_key
|
156
156
|
@signature_expiration_for[lk][sig_type] = Time.now + TIME_OFFSET
|
157
|
-
|
157
|
+
new_sig_url = url_for(sig_type, opts)
|
158
|
+
@signature_for[lk][sig_type] = RestClient.get(new_sig_url)
|
158
159
|
end
|
159
160
|
|
160
161
|
def proxy
|
@@ -226,11 +227,12 @@ module Helix
|
|
226
227
|
end
|
227
228
|
|
228
229
|
def url_for(sig_type, opts={})
|
229
|
-
contributor, library_id = [:contributor, :library_id].map { |key| opts[key] }
|
230
|
-
contributor ||= credentials[:contributor]
|
230
|
+
contributor, library_id, company_id = [:contributor, :library_id, :company_id].map { |key| opts[key] }
|
231
|
+
contributor ||= (credentials[:contributor] || 'helix_default_contributor')
|
231
232
|
url = "#{credentials[:site]}/api/#{sig_type}_key?licenseKey=#{credentials[:license_key]}&duration=#{SIG_DURATION}"
|
232
|
-
url += "&contributor=#{contributor}"
|
233
|
-
url += "&library_id=#{library_id}"
|
233
|
+
url += "&contributor=#{contributor}" if sig_type == :ingest
|
234
|
+
url += "&library_id=#{library_id}" if library_id
|
235
|
+
url += "&company_id=#{company_id}" if company_id
|
234
236
|
url
|
235
237
|
end
|
236
238
|
|
data/lib/helix/uploadable.rb
CHANGED
@@ -7,14 +7,15 @@ module Helix
|
|
7
7
|
module ClassMethods
|
8
8
|
|
9
9
|
def upload(file_name)
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
url = upload_server_name
|
11
|
+
payload = { file: File.new(file_name.to_s, "rb") }
|
12
|
+
headers = { multipart: true }
|
13
|
+
RestClient.post(url, payload, headers)
|
13
14
|
http_close
|
14
15
|
end
|
15
16
|
|
16
17
|
def upload_server_name
|
17
|
-
upload_get(:http_open)
|
18
|
+
upload_get(:http_open, ingest_opts)
|
18
19
|
end
|
19
20
|
|
20
21
|
def http_open
|
@@ -35,9 +36,19 @@ module Helix
|
|
35
36
|
|
36
37
|
private
|
37
38
|
|
38
|
-
def
|
39
|
-
|
40
|
-
|
39
|
+
def ingest_opts
|
40
|
+
cc = config.credentials
|
41
|
+
ingest_opts = {
|
42
|
+
contributor: cc[:contributor],
|
43
|
+
company_id: cc[:company],
|
44
|
+
library_id: cc[:library],
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
def upload_get(action, opts={})
|
49
|
+
guid = config.signature(:ingest, opts)
|
50
|
+
url = config.build_url(resource_label: "upload_sessions",
|
51
|
+
guid: guid,
|
41
52
|
action: action,
|
42
53
|
content_type: "" )
|
43
54
|
RestClient.get(url)
|
data/spec/_integration_spec.rb
CHANGED
@@ -10,16 +10,20 @@ elsif %w(1 t true).include?(ENV['SKIP_INTEGRATION'])
|
|
10
10
|
puts "Skipping integration specs due to user request"
|
11
11
|
else
|
12
12
|
|
13
|
-
|
13
|
+
default_query_proc = lambda { |h,k| h[k] = 'rest-client' }
|
14
|
+
query_by_guid_key = Hash.new(&default_query_proc).merge(tag_id: '8143')
|
15
|
+
|
16
|
+
resource_by_id = {
|
14
17
|
album_id: Helix::Album,
|
15
18
|
document_id: Helix::Document,
|
16
19
|
image_id: Helix::Image,
|
17
20
|
playlist_id: Helix::Playlist,
|
21
|
+
tag_id: Helix::Tag,
|
18
22
|
track_id: Helix::Track,
|
19
23
|
video_id: Helix::Video
|
20
24
|
}
|
21
25
|
|
22
|
-
|
26
|
+
resource_by_id.each do |guid_key,klass|
|
23
27
|
|
24
28
|
describe "Integration Specs for #{klass.to_s}" do
|
25
29
|
|
@@ -28,9 +32,18 @@ else
|
|
28
32
|
it { should_not be_empty }
|
29
33
|
end
|
30
34
|
|
31
|
-
|
35
|
+
query = query_by_guid_key[guid_key]
|
36
|
+
describe ".where(query: '#{query}')" do
|
32
37
|
it "should not raise an exception" do
|
33
|
-
lambda { klass.where(query:
|
38
|
+
lambda { klass.where(query: query) }.should_not raise_error
|
39
|
+
end
|
40
|
+
if guid_key == :tag_id
|
41
|
+
subject { klass.where(query: query).first }
|
42
|
+
it { should be_a Helix::Tag }
|
43
|
+
its(:name) { should be_a String }
|
44
|
+
its(:name) { should eq '8143' }
|
45
|
+
its(:count) { should be_a Integer }
|
46
|
+
its(:count) { should eq 2 }
|
34
47
|
end
|
35
48
|
end
|
36
49
|
|
@@ -51,7 +64,7 @@ else
|
|
51
64
|
end
|
52
65
|
|
53
66
|
shared_examples_for "found #{klass}" do
|
54
|
-
it { should_not
|
67
|
+
it { should_not be_nil }
|
55
68
|
if klass == Helix::Playlist
|
56
69
|
# Playlist Metadata is just a wrapper for an Array of media items: no guid
|
57
70
|
its(guid_key) { should eq(nil) }
|
@@ -66,7 +79,7 @@ else
|
|
66
79
|
"width" => 1280,
|
67
80
|
"height" => 720,
|
68
81
|
"size" => 260548,
|
69
|
-
"url" => "http://
|
82
|
+
"url" => "http://service-staging.twistage.com:80/videos/ece0d3fd03bf0/screenshots/original.jpg"
|
70
83
|
}
|
71
84
|
subject { item.screenshots.first }
|
72
85
|
it { should eq(expected_ss) }
|
@@ -87,7 +100,7 @@ else
|
|
87
100
|
end
|
88
101
|
end
|
89
102
|
|
90
|
-
unless
|
103
|
+
unless [:document_id, :playlist_id, :tag_id].include?(guid_key) # no stats for these yet
|
91
104
|
describe "Stats" do
|
92
105
|
media_type = guid_key.to_s.split(/_/).first
|
93
106
|
helix_stats = Helix::Statistics
|
data/spec/base_spec.rb
CHANGED
@@ -38,7 +38,7 @@ describe Helix::Base do
|
|
38
38
|
context "when there is a config instance" do
|
39
39
|
let(:mock_config) do
|
40
40
|
dss = (0..2).map { |x| :"attrs_#{x}" }
|
41
|
-
|
41
|
+
double(Helix::Config, build_url: :built_url, get_aggregated_data_sets: dss)
|
42
42
|
end
|
43
43
|
before(:each) do Helix::Config.stub(:instance) { mock_config } end
|
44
44
|
context "and NOT given an opts Hash" do
|
@@ -68,7 +68,7 @@ describe Helix::Base do
|
|
68
68
|
context "when there is a config instance" do
|
69
69
|
let(:mock_config) do
|
70
70
|
dss = (0..2).map { |x| :"attrs_#{x}" }
|
71
|
-
|
71
|
+
double(Helix::Config, build_url: :built_url, get_aggregated_data_sets: dss)
|
72
72
|
end
|
73
73
|
before(:each) do Helix::Config.stub(:instance) { mock_config } end
|
74
74
|
context "and NOT given an opts Hash" do
|
@@ -221,7 +221,7 @@ describe Helix::Base do
|
|
221
221
|
describe "#guid" do
|
222
222
|
let(:meth) { :guid }
|
223
223
|
it "should return @attributes[guid_name]" do
|
224
|
-
mock_attributes =
|
224
|
+
mock_attributes = double(Object)
|
225
225
|
obj.instance_variable_set(:@attributes, mock_attributes)
|
226
226
|
obj.should_receive(:guid_name) { :the_guid_name }
|
227
227
|
mock_attributes.should_receive(:[]).with(:the_guid_name) { :expected }
|
@@ -239,7 +239,7 @@ describe Helix::Base do
|
|
239
239
|
|
240
240
|
describe "#load" do
|
241
241
|
let(:meth) { :load }
|
242
|
-
let(:mock_config) {
|
242
|
+
let(:mock_config) { double(Helix::Config) }
|
243
243
|
subject { obj.method(meth) }
|
244
244
|
its(:arity) { should eq(-1) }
|
245
245
|
before(:each) do
|
@@ -307,7 +307,7 @@ describe Helix::Base do
|
|
307
307
|
its(:arity) { should eq(1) }
|
308
308
|
context "when given method_sym" do
|
309
309
|
let(:method_sym) { :method_sym }
|
310
|
-
let(:mock_attributes) {
|
310
|
+
let(:mock_attributes) { double(Object) }
|
311
311
|
before(:each) do obj.instance_variable_set(:@attributes, mock_attributes) end
|
312
312
|
context "and @attributes[method_sym.to_s] raises an exception" do
|
313
313
|
before(:each) do mock_attributes.should_receive(:[]).with(method_sym.to_s).and_raise("some exception") end
|
data/spec/config_spec.rb
CHANGED
@@ -51,8 +51,8 @@ describe Helix::Config do
|
|
51
51
|
|
52
52
|
describe ".load" do
|
53
53
|
let(:meth) { :load }
|
54
|
-
let(:mock_obj) {
|
55
|
-
let(:mock_file) {
|
54
|
+
let(:mock_obj) { double(klass, proxy: :stubbed_proxy) }
|
55
|
+
let(:mock_file) { double(File) }
|
56
56
|
let(:mock_cred) { {key1: 'value1', 'key2' => 'value2'} }
|
57
57
|
let(:symbolized_cred) { {key1: 'value1', key2: 'value2'} }
|
58
58
|
before(:each) do
|
@@ -335,8 +335,8 @@ describe Helix::Config do
|
|
335
335
|
opts1 = {params: base_opts.merge(page: 1)}
|
336
336
|
opts2 = {params: base_opts.merge(page: 2)}
|
337
337
|
opts3 = {params: base_opts.merge(page: 3)}
|
338
|
-
non_final_response =
|
339
|
-
final_response =
|
338
|
+
non_final_response = double(String, headers: {is_last_page: 'false'})
|
339
|
+
final_response = double(String, headers: {is_last_page: 'true'})
|
340
340
|
RestClient.should_receive(:get).with(:a_url, opts1) { non_final_response }
|
341
341
|
RestClient.should_receive(:get).with(:a_url, opts2) { non_final_response }
|
342
342
|
RestClient.should_receive(:get).with(:a_url, opts3) { final_response }
|
@@ -433,7 +433,7 @@ describe Helix::Config do
|
|
433
433
|
it { should be false }
|
434
434
|
end
|
435
435
|
context "when there is a @response" do
|
436
|
-
let(:mock_response) {
|
436
|
+
let(:mock_response) { double(String) }
|
437
437
|
before(:each) { obj.instance_variable_set(:@response, mock_response) }
|
438
438
|
context "and there is no @response.headers" do
|
439
439
|
before(:each) { mock_response.stub(:headers) { nil } }
|
@@ -532,7 +532,7 @@ describe Helix::Config do
|
|
532
532
|
obj.stub(:prepare_signature_memoization)
|
533
533
|
end
|
534
534
|
|
535
|
-
let(:mock_response) {
|
535
|
+
let(:mock_response) { double(Object) }
|
536
536
|
context "when given :some_invalid_sig_type" do
|
537
537
|
let(:sig_type) { :some_invalid_sig_type }
|
538
538
|
it "should raise an ArgumentError" do
|
@@ -551,12 +551,13 @@ describe Helix::Config do
|
|
551
551
|
end
|
552
552
|
it "should call RestClient.get(#{url})" do
|
553
553
|
set_stubs(obj)
|
554
|
-
url
|
554
|
+
url = "#{obj.credentials[:site]}/api/#{sig_type}_key?licenseKey=#{license_key}&duration=1200"
|
555
|
+
url += "&contributor=helix_default_contributor" if sig_type == :ingest
|
555
556
|
RestClient.should_receive(:get).with(url) { :fresh_sig }
|
556
557
|
expect(obj.send(meth, sig_type)).to be(:fresh_sig)
|
557
558
|
end
|
558
559
|
it "sets a new sig expiration time" do
|
559
|
-
mock_time =
|
560
|
+
mock_time = double(Time)
|
560
561
|
Time.should_receive(:now) { mock_time }
|
561
562
|
mock_time.should_receive(:+).with(klass::TIME_OFFSET) { :new_time }
|
562
563
|
obj.send(meth, sig_type)
|
@@ -596,8 +597,8 @@ describe Helix::Config do
|
|
596
597
|
|
597
598
|
context "when given a sig_type" do
|
598
599
|
let(:sig_type) { :a_sig_type }
|
599
|
-
let(:mock_expired) {
|
600
|
-
let(:mock_now) {
|
600
|
+
let(:mock_expired) { double(Time) }
|
601
|
+
let(:mock_now) { double(Time) }
|
601
602
|
subject { obj.send(meth, sig_type) }
|
602
603
|
context "when @signature_expiration_for[license_key][sig_type] is nil" do
|
603
604
|
before(:each) do obj.instance_variable_set(:@signature_expiration_for, {license_key => {sig_type => nil}}) end
|
data/spec/document_spec.rb
CHANGED
@@ -29,9 +29,41 @@ describe Helix::Document do
|
|
29
29
|
|
30
30
|
### CLASS METHODS
|
31
31
|
|
32
|
+
describe ".ingest_opts" do
|
33
|
+
let(:meth) { :ingest_opts }
|
34
|
+
let(:mock_config) { double(Helix::Config, credentials: {}) }
|
35
|
+
subject { klass.method(meth) }
|
36
|
+
its(:arity) { should eq(0) }
|
37
|
+
it "should be private" do expect(klass.private_methods).to include(meth) end
|
38
|
+
context "when called" do
|
39
|
+
subject { klass.send(meth) }
|
40
|
+
before(:each) do klass.stub(:config) { mock_config } end
|
41
|
+
it "should be a Hash" do expect(klass.send(meth)).to be_a(Hash) end
|
42
|
+
its(:keys) { should match_array([:contributor, :company_id, :library_id]) }
|
43
|
+
context "the value for :contributor" do
|
44
|
+
it "should be config.credentials[:contributor]" do
|
45
|
+
mock_config.should_receive(:credentials) { {contributor: :expected_contributor} }
|
46
|
+
expect(klass.send(meth)[:contributor]).to be(:expected_contributor)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
context "the value for :company_id" do
|
50
|
+
it "should be config.credentials[:company]" do
|
51
|
+
mock_config.should_receive(:credentials) { {company: :expected_company} }
|
52
|
+
expect(klass.send(meth)[:company_id]).to be(:expected_company)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
context "the value for :library_id" do
|
56
|
+
it "should be config.credentials[:library]" do
|
57
|
+
mock_config.should_receive(:credentials) { {library: :expected_library} }
|
58
|
+
expect(klass.send(meth)[:library_id]).to be(:expected_library)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
32
64
|
describe ".upload" do
|
33
65
|
let(:meth) { :upload }
|
34
|
-
let(:mock_config) {
|
66
|
+
let(:mock_config) { double(Helix::Config) }
|
35
67
|
subject { klass.method(meth) }
|
36
68
|
its(:arity) { should eq(1) }
|
37
69
|
let(:file_hash) { { file: :some_file } }
|
@@ -49,7 +81,7 @@ describe Helix::Document do
|
|
49
81
|
|
50
82
|
describe ".upload_server_name" do
|
51
83
|
let(:meth) { :upload_server_name }
|
52
|
-
let(:mock_config) {
|
84
|
+
let(:mock_config) { double(Helix::Config) }
|
53
85
|
subject { klass.method(meth) }
|
54
86
|
its(:arity) { should eq(0) }
|
55
87
|
let(:url_opts) { { resource_label: "upload_sessions",
|
@@ -58,8 +90,9 @@ describe Helix::Document do
|
|
58
90
|
content_type: "" } }
|
59
91
|
before { Helix::Config.stub(:instance) { mock_config } }
|
60
92
|
it "should call RestClient.get with correct url building" do
|
93
|
+
klass.should_receive(:ingest_opts) { :ingest_opts }
|
61
94
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
62
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
95
|
+
mock_config.should_receive(:signature).with(:ingest, :ingest_opts) { :some_sig }
|
63
96
|
RestClient.should_receive(:get).with(:url)
|
64
97
|
klass.send(meth)
|
65
98
|
end
|
@@ -67,7 +100,7 @@ describe Helix::Document do
|
|
67
100
|
|
68
101
|
describe ".http_close" do
|
69
102
|
let(:meth) { :http_close }
|
70
|
-
let(:mock_config) {
|
103
|
+
let(:mock_config) { double(Helix::Config) }
|
71
104
|
subject { klass.method(meth) }
|
72
105
|
its(:arity) { should eq(0) }
|
73
106
|
let(:url_opts) { { resource_label: "upload_sessions",
|
@@ -77,7 +110,7 @@ describe Helix::Document do
|
|
77
110
|
before { Helix::Config.stub(:instance) { mock_config } }
|
78
111
|
it "should call RestClient.get with correct url building" do
|
79
112
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
80
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
113
|
+
mock_config.should_receive(:signature).with(:ingest, {}) { :some_sig }
|
81
114
|
RestClient.should_receive(:get).with(:url)
|
82
115
|
klass.send(meth)
|
83
116
|
end
|
@@ -85,9 +118,9 @@ describe Helix::Document do
|
|
85
118
|
|
86
119
|
describe ".upload_get" do
|
87
120
|
let(:meth) { :upload_get }
|
88
|
-
let(:mock_config) {
|
121
|
+
let(:mock_config) { double(Helix::Config) }
|
89
122
|
subject { klass.method(meth) }
|
90
|
-
its(:arity) { should eq(
|
123
|
+
its(:arity) { should eq(-2) }
|
91
124
|
let(:url_opts) { { resource_label: "upload_sessions",
|
92
125
|
guid: :some_sig,
|
93
126
|
action: :upload_get,
|
@@ -95,7 +128,7 @@ describe Helix::Document do
|
|
95
128
|
before { Helix::Config.stub(:instance) { mock_config } }
|
96
129
|
it "should call RestClient.get with correct url building" do
|
97
130
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
98
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
131
|
+
mock_config.should_receive(:signature).with(:ingest, {}) { :some_sig }
|
99
132
|
RestClient.should_receive(:get).with(:url)
|
100
133
|
klass.send(meth, :upload_get)
|
101
134
|
end
|
@@ -103,7 +136,7 @@ describe Helix::Document do
|
|
103
136
|
|
104
137
|
describe ".http_open" do
|
105
138
|
let(:meth) { :http_open }
|
106
|
-
let(:mock_config) {
|
139
|
+
let(:mock_config) { double(Helix::Config) }
|
107
140
|
subject { klass.method(meth) }
|
108
141
|
its(:arity) { should eq(0) }
|
109
142
|
it "should call upload_server_name" do
|
@@ -114,7 +147,7 @@ describe Helix::Document do
|
|
114
147
|
|
115
148
|
describe ".upload_open" do
|
116
149
|
let(:meth) { :upload_open }
|
117
|
-
let(:mock_config) {
|
150
|
+
let(:mock_config) { double(Helix::Config) }
|
118
151
|
subject { klass.method(meth) }
|
119
152
|
its(:arity) { should eq(0) }
|
120
153
|
it "should call upload_server_name" do
|
@@ -125,7 +158,7 @@ describe Helix::Document do
|
|
125
158
|
|
126
159
|
describe ".upload_close" do
|
127
160
|
let(:meth) { :upload_close }
|
128
|
-
let(:mock_config) {
|
161
|
+
let(:mock_config) { double(Helix::Config) }
|
129
162
|
subject { klass.method(meth) }
|
130
163
|
its(:arity) { should eq(0) }
|
131
164
|
it "should call upload_server_name" do
|
data/spec/durationed_spec.rb
CHANGED
@@ -24,7 +24,7 @@ describe Helix::Durationed do
|
|
24
24
|
|
25
25
|
describe ".import" do
|
26
26
|
let(:meth) { :import }
|
27
|
-
let(:mock_config) {
|
27
|
+
let(:mock_config) { double(Helix::Config) }
|
28
28
|
subject { klass.method(meth) }
|
29
29
|
its(:arity) { should eq(-1) }
|
30
30
|
let(:params) { { params: { signature: :some_sig },
|
data/spec/media_spec.rb
CHANGED
@@ -36,7 +36,7 @@ describe Helix::Media do
|
|
36
36
|
|
37
37
|
describe ".create" do
|
38
38
|
let(:meth) { :create }
|
39
|
-
let(:mock_config) {
|
39
|
+
let(:mock_config) { double(Helix::Config) }
|
40
40
|
subject { klass.method(meth) }
|
41
41
|
its(:arity) { should eq(-1) }
|
42
42
|
let(:hash_from_xml) { { klass_sym.to_s => { attribute: :value } } }
|
@@ -108,15 +108,15 @@ describe Helix::Media do
|
|
108
108
|
|
109
109
|
describe ".find" do
|
110
110
|
let(:meth) { :find }
|
111
|
-
let(:mock_config) {
|
112
|
-
let(:mock_obj) {
|
111
|
+
let(:mock_config) { double(Helix::Config) }
|
112
|
+
let(:mock_obj) { double(klass, :load => :output_of_load) }
|
113
113
|
subject { klass.method(meth) }
|
114
114
|
its(:arity) { should eq(-2) }
|
115
115
|
context "when a Helix:Config instance is absent" do
|
116
116
|
before(:each) do Helix::Config.stub(:instance) { nil } end
|
117
117
|
context "and given a guid" do
|
118
118
|
let(:guid_name) { :the_guid_name }
|
119
|
-
let(:mock_attrs) {
|
119
|
+
let(:mock_attrs) { double(Object, :[]= => :output_of_setting_val) }
|
120
120
|
before(:each) do
|
121
121
|
klass.stub(:attributes) { mock_attrs }
|
122
122
|
klass.stub(:guid_name) { guid_name }
|
@@ -140,7 +140,7 @@ describe Helix::Media do
|
|
140
140
|
before(:each) do Helix::Config.stub(:instance) { mock_config } end
|
141
141
|
context "and given a guid" do
|
142
142
|
let(:guid_name) { :the_guid_name }
|
143
|
-
let(:mock_attrs) {
|
143
|
+
let(:mock_attrs) { double(Object, :[]= => :output_of_setting_val) }
|
144
144
|
before(:each) do
|
145
145
|
klass.stub(:attributes) { mock_attrs }
|
146
146
|
klass.stub(:guid_name) { guid_name }
|
@@ -185,7 +185,7 @@ describe Helix::Media do
|
|
185
185
|
|
186
186
|
describe "#destroy" do
|
187
187
|
let(:meth) { :destroy }
|
188
|
-
let(:mock_config) {
|
188
|
+
let(:mock_config) { double(Helix::Config, build_url: :the_built_url, signature: :some_sig) }
|
189
189
|
subject { obj.method(meth) }
|
190
190
|
let(:params) { { params: {signature: :some_sig } } }
|
191
191
|
before do
|
@@ -212,7 +212,7 @@ describe Helix::Media do
|
|
212
212
|
describe "#update" do
|
213
213
|
next if child_class == Helix::Album
|
214
214
|
let(:meth) { :update }
|
215
|
-
let(:mock_config) {
|
215
|
+
let(:mock_config) { double(Helix::Config) }
|
216
216
|
subject { obj.method(meth) }
|
217
217
|
its(:arity) { should eq(-1) }
|
218
218
|
before(:each) do
|
data/spec/statistics_spec.rb
CHANGED
@@ -38,7 +38,7 @@ describe Helix::Statistics do
|
|
38
38
|
|
39
39
|
describe ".#{resource_label}_#{stats_type}" do
|
40
40
|
let(:meth) { "#{resource_label}_#{stats_type}" }
|
41
|
-
let(:mock_config) {
|
41
|
+
let(:mock_config) { double(Helix::Config, build_url: :built_url, get_response: :raw_response) }
|
42
42
|
before(:each) do
|
43
43
|
Helix::Config.stub(:instance) { mock_config }
|
44
44
|
mod.stub(:standardize_raw_stats).with(:raw_response) { :response }
|
data/spec/tag_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe Helix::Tag do
|
|
16
16
|
describe ".get_data_sets" do
|
17
17
|
let(:meth) { :get_data_sets }
|
18
18
|
let(:raw_response) { {"tags" => :expected} }
|
19
|
-
let(:mock_config) {
|
19
|
+
let(:mock_config) { double(Helix::Config, build_url: :the_url, get_response: raw_response) }
|
20
20
|
let(:opts) { {} }
|
21
21
|
before(:each) { klass.stub(:config) { mock_config }}
|
22
22
|
bu_opts = {content_type: :xml, resource_label: "tags"}
|
data/spec/track_spec.rb
CHANGED
@@ -29,9 +29,40 @@ describe Helix::Track do
|
|
29
29
|
|
30
30
|
### CLASS METHODS
|
31
31
|
|
32
|
+
describe ".ingest_opts" do
|
33
|
+
let(:meth) { :ingest_opts }
|
34
|
+
let(:mock_config) { double(Helix::Config, credentials: {}) }
|
35
|
+
subject { klass.method(meth) }
|
36
|
+
its(:arity) { should eq(0) }
|
37
|
+
it "should be private" do expect(klass.private_methods).to include(meth) end
|
38
|
+
context "when called" do
|
39
|
+
subject { klass.send(meth) }
|
40
|
+
before(:each) do klass.stub(:config) { mock_config } end
|
41
|
+
it "should be a Hash" do expect(klass.send(meth)).to be_a(Hash) end
|
42
|
+
its(:keys) { should match_array([:contributor, :company_id, :library_id]) }
|
43
|
+
context "the value for :contributor" do
|
44
|
+
it "should be config.credentials[:contributor]" do
|
45
|
+
mock_config.should_receive(:credentials) { {contributor: :expected_contributor} }
|
46
|
+
expect(klass.send(meth)[:contributor]).to be(:expected_contributor)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
context "the value for :company_id" do
|
50
|
+
it "should be config.credentials[:company]" do
|
51
|
+
mock_config.should_receive(:credentials) { {company: :expected_company} }
|
52
|
+
expect(klass.send(meth)[:company_id]).to be(:expected_company)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
context "the value for :library_id" do
|
56
|
+
it "should be config.credentials[:library]" do
|
57
|
+
mock_config.should_receive(:credentials) { {library: :expected_library} }
|
58
|
+
expect(klass.send(meth)[:library_id]).to be(:expected_library)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
32
63
|
describe ".upload" do
|
33
64
|
let(:meth) { :upload }
|
34
|
-
let(:mock_config) {
|
65
|
+
let(:mock_config) { double(Helix::Config) }
|
35
66
|
subject { klass.method(meth) }
|
36
67
|
its(:arity) { should eq(1) }
|
37
68
|
let(:file_hash) { { file: :some_file } }
|
@@ -49,7 +80,7 @@ describe Helix::Track do
|
|
49
80
|
|
50
81
|
describe ".upload_server_name" do
|
51
82
|
let(:meth) { :upload_server_name }
|
52
|
-
let(:mock_config) {
|
83
|
+
let(:mock_config) { double(Helix::Config) }
|
53
84
|
subject { klass.method(meth) }
|
54
85
|
its(:arity) { should eq(0) }
|
55
86
|
let(:url_opts) { { resource_label: "upload_sessions",
|
@@ -58,8 +89,9 @@ describe Helix::Track do
|
|
58
89
|
content_type: "" } }
|
59
90
|
before { Helix::Config.stub(:instance) { mock_config } }
|
60
91
|
it "should call RestClient.get with correct url building" do
|
92
|
+
klass.should_receive(:ingest_opts) { :ingest_opts }
|
61
93
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
62
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
94
|
+
mock_config.should_receive(:signature).with(:ingest, :ingest_opts) { :some_sig }
|
63
95
|
RestClient.should_receive(:get).with(:url)
|
64
96
|
klass.send(meth)
|
65
97
|
end
|
@@ -67,7 +99,7 @@ describe Helix::Track do
|
|
67
99
|
|
68
100
|
describe ".http_close" do
|
69
101
|
let(:meth) { :http_close }
|
70
|
-
let(:mock_config) {
|
102
|
+
let(:mock_config) { double(Helix::Config) }
|
71
103
|
subject { klass.method(meth) }
|
72
104
|
its(:arity) { should eq(0) }
|
73
105
|
let(:url_opts) { { resource_label: "upload_sessions",
|
@@ -77,7 +109,7 @@ describe Helix::Track do
|
|
77
109
|
before { Helix::Config.stub(:instance) { mock_config } }
|
78
110
|
it "should call RestClient.get with correct url building" do
|
79
111
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
80
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
112
|
+
mock_config.should_receive(:signature).with(:ingest, {}) { :some_sig }
|
81
113
|
RestClient.should_receive(:get).with(:url)
|
82
114
|
klass.send(meth)
|
83
115
|
end
|
@@ -85,9 +117,9 @@ describe Helix::Track do
|
|
85
117
|
|
86
118
|
describe ".upload_get" do
|
87
119
|
let(:meth) { :upload_get }
|
88
|
-
let(:mock_config) {
|
120
|
+
let(:mock_config) { double(Helix::Config) }
|
89
121
|
subject { klass.method(meth) }
|
90
|
-
its(:arity) { should eq(
|
122
|
+
its(:arity) { should eq(-2) }
|
91
123
|
let(:url_opts) { { resource_label: "upload_sessions",
|
92
124
|
guid: :some_sig,
|
93
125
|
action: :upload_get,
|
@@ -95,7 +127,7 @@ describe Helix::Track do
|
|
95
127
|
before { Helix::Config.stub(:instance) { mock_config } }
|
96
128
|
it "should call RestClient.get with correct url building" do
|
97
129
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
98
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
130
|
+
mock_config.should_receive(:signature).with(:ingest, {}) { :some_sig }
|
99
131
|
RestClient.should_receive(:get).with(:url)
|
100
132
|
klass.send(meth, :upload_get)
|
101
133
|
end
|
@@ -103,7 +135,7 @@ describe Helix::Track do
|
|
103
135
|
|
104
136
|
describe ".http_open" do
|
105
137
|
let(:meth) { :http_open }
|
106
|
-
let(:mock_config) {
|
138
|
+
let(:mock_config) { double(Helix::Config) }
|
107
139
|
subject { klass.method(meth) }
|
108
140
|
its(:arity) { should eq(0) }
|
109
141
|
it "should call upload_server_name" do
|
@@ -114,7 +146,7 @@ describe Helix::Track do
|
|
114
146
|
|
115
147
|
describe ".upload_open" do
|
116
148
|
let(:meth) { :upload_open }
|
117
|
-
let(:mock_config) {
|
149
|
+
let(:mock_config) { double(Helix::Config) }
|
118
150
|
subject { klass.method(meth) }
|
119
151
|
its(:arity) { should eq(0) }
|
120
152
|
it "should call upload_server_name" do
|
@@ -125,7 +157,7 @@ describe Helix::Track do
|
|
125
157
|
|
126
158
|
describe ".upload_close" do
|
127
159
|
let(:meth) { :upload_close }
|
128
|
-
let(:mock_config) {
|
160
|
+
let(:mock_config) { double(Helix::Config) }
|
129
161
|
subject { klass.method(meth) }
|
130
162
|
its(:arity) { should eq(0) }
|
131
163
|
it "should call upload_server_name" do
|
data/spec/video_spec.rb
CHANGED
@@ -29,7 +29,7 @@ describe Helix::Video do
|
|
29
29
|
|
30
30
|
describe "#download" do
|
31
31
|
let(:meth) { :download }
|
32
|
-
let(:mock_config) {
|
32
|
+
let(:mock_config) { double(Helix::Config, build_url: :the_built_url, signature: :some_sig) }
|
33
33
|
subject { obj.method(meth) }
|
34
34
|
let(:params) { { params: {signature: :some_sig } } }
|
35
35
|
before do
|
@@ -60,7 +60,7 @@ describe Helix::Video do
|
|
60
60
|
|
61
61
|
describe "#play" do
|
62
62
|
let(:meth) { :play }
|
63
|
-
let(:mock_config) {
|
63
|
+
let(:mock_config) { double(Helix::Config, build_url: :the_built_url, signature: :some_sig) }
|
64
64
|
subject { obj.method(meth) }
|
65
65
|
let(:params) { { params: {signature: :some_sig } } }
|
66
66
|
before do
|
@@ -91,7 +91,7 @@ describe Helix::Video do
|
|
91
91
|
|
92
92
|
describe "#stillframe" do
|
93
93
|
let(:meth) { :stillframe }
|
94
|
-
let(:mock_config) {
|
94
|
+
let(:mock_config) { double(Helix::Config) }
|
95
95
|
subject { obj.method(meth) }
|
96
96
|
its(:arity) { should eq(-1) }
|
97
97
|
it "should call self.class.get_stillframe" do
|
@@ -182,9 +182,40 @@ describe Helix::Video do
|
|
182
182
|
|
183
183
|
### CLASS METHODS
|
184
184
|
|
185
|
+
describe ".ingest_opts" do
|
186
|
+
let(:meth) { :ingest_opts }
|
187
|
+
let(:mock_config) { double(Helix::Config, credentials: {}) }
|
188
|
+
subject { klass.method(meth) }
|
189
|
+
its(:arity) { should eq(0) }
|
190
|
+
it "should be private" do expect(klass.private_methods).to include(meth) end
|
191
|
+
context "when called" do
|
192
|
+
subject { klass.send(meth) }
|
193
|
+
before(:each) do klass.stub(:config) { mock_config } end
|
194
|
+
it "should be a Hash" do expect(klass.send(meth)).to be_a(Hash) end
|
195
|
+
its(:keys) { should match_array([:contributor, :company_id, :library_id]) }
|
196
|
+
context "the value for :contributor" do
|
197
|
+
it "should be config.credentials[:contributor]" do
|
198
|
+
mock_config.should_receive(:credentials) { {contributor: :expected_contributor} }
|
199
|
+
expect(klass.send(meth)[:contributor]).to be(:expected_contributor)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
context "the value for :company_id" do
|
203
|
+
it "should be config.credentials[:company]" do
|
204
|
+
mock_config.should_receive(:credentials) { {company: :expected_company} }
|
205
|
+
expect(klass.send(meth)[:company_id]).to be(:expected_company)
|
206
|
+
end
|
207
|
+
end
|
208
|
+
context "the value for :library_id" do
|
209
|
+
it "should be config.credentials[:library]" do
|
210
|
+
mock_config.should_receive(:credentials) { {library: :expected_library} }
|
211
|
+
expect(klass.send(meth)[:library_id]).to be(:expected_library)
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
185
216
|
describe ".upload" do
|
186
217
|
let(:meth) { :upload }
|
187
|
-
let(:mock_config) {
|
218
|
+
let(:mock_config) { double(Helix::Config) }
|
188
219
|
subject { klass.method(meth) }
|
189
220
|
its(:arity) { should eq(1) }
|
190
221
|
let(:file_hash) { { file: :some_file } }
|
@@ -202,7 +233,7 @@ describe Helix::Video do
|
|
202
233
|
|
203
234
|
describe ".upload_server_name" do
|
204
235
|
let(:meth) { :upload_server_name }
|
205
|
-
let(:mock_config) {
|
236
|
+
let(:mock_config) { double(Helix::Config) }
|
206
237
|
subject { klass.method(meth) }
|
207
238
|
its(:arity) { should eq(0) }
|
208
239
|
let(:url_opts) { { resource_label: "upload_sessions",
|
@@ -211,8 +242,9 @@ describe Helix::Video do
|
|
211
242
|
content_type: "" } }
|
212
243
|
before { Helix::Config.stub(:instance) { mock_config } }
|
213
244
|
it "should call RestClient.get with correct url building" do
|
245
|
+
klass.should_receive(:ingest_opts) { :ingest_opts }
|
214
246
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
215
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
247
|
+
mock_config.should_receive(:signature).with(:ingest, :ingest_opts) { :some_sig }
|
216
248
|
RestClient.should_receive(:get).with(:url)
|
217
249
|
klass.send(meth)
|
218
250
|
end
|
@@ -220,7 +252,7 @@ describe Helix::Video do
|
|
220
252
|
|
221
253
|
describe ".http_close" do
|
222
254
|
let(:meth) { :http_close }
|
223
|
-
let(:mock_config) {
|
255
|
+
let(:mock_config) { double(Helix::Config) }
|
224
256
|
subject { klass.method(meth) }
|
225
257
|
its(:arity) { should eq(0) }
|
226
258
|
let(:url_opts) { { resource_label: "upload_sessions",
|
@@ -230,7 +262,7 @@ describe Helix::Video do
|
|
230
262
|
before { Helix::Config.stub(:instance) { mock_config } }
|
231
263
|
it "should call RestClient.get with correct url building" do
|
232
264
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
233
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
265
|
+
mock_config.should_receive(:signature).with(:ingest, {}) { :some_sig }
|
234
266
|
RestClient.should_receive(:get).with(:url)
|
235
267
|
klass.send(meth)
|
236
268
|
end
|
@@ -238,9 +270,9 @@ describe Helix::Video do
|
|
238
270
|
|
239
271
|
describe ".upload_get" do
|
240
272
|
let(:meth) { :upload_get }
|
241
|
-
let(:mock_config) {
|
273
|
+
let(:mock_config) { double(Helix::Config) }
|
242
274
|
subject { klass.method(meth) }
|
243
|
-
its(:arity) { should eq(
|
275
|
+
its(:arity) { should eq(-2) }
|
244
276
|
let(:url_opts) { { resource_label: "upload_sessions",
|
245
277
|
guid: :some_sig,
|
246
278
|
action: :upload_get,
|
@@ -248,7 +280,7 @@ describe Helix::Video do
|
|
248
280
|
before { Helix::Config.stub(:instance) { mock_config } }
|
249
281
|
it "should call RestClient.get with correct url building" do
|
250
282
|
mock_config.should_receive(:build_url).with(url_opts) { :url }
|
251
|
-
mock_config.should_receive(:signature).with(:ingest) { :some_sig }
|
283
|
+
mock_config.should_receive(:signature).with(:ingest, {}) { :some_sig }
|
252
284
|
RestClient.should_receive(:get).with(:url)
|
253
285
|
klass.send(meth, :upload_get)
|
254
286
|
end
|
@@ -256,7 +288,7 @@ describe Helix::Video do
|
|
256
288
|
|
257
289
|
describe ".http_open" do
|
258
290
|
let(:meth) { :http_open }
|
259
|
-
let(:mock_config) {
|
291
|
+
let(:mock_config) { double(Helix::Config) }
|
260
292
|
subject { klass.method(meth) }
|
261
293
|
its(:arity) { should eq(0) }
|
262
294
|
it "should call upload_server_name" do
|
@@ -267,7 +299,7 @@ describe Helix::Video do
|
|
267
299
|
|
268
300
|
describe ".upload_open" do
|
269
301
|
let(:meth) { :upload_open }
|
270
|
-
let(:mock_config) {
|
302
|
+
let(:mock_config) { double(Helix::Config) }
|
271
303
|
subject { klass.method(meth) }
|
272
304
|
its(:arity) { should eq(0) }
|
273
305
|
it "should call upload_server_name" do
|
@@ -278,7 +310,7 @@ describe Helix::Video do
|
|
278
310
|
|
279
311
|
describe ".upload_close" do
|
280
312
|
let(:meth) { :upload_close }
|
281
|
-
let(:mock_config) {
|
313
|
+
let(:mock_config) { double(Helix::Config) }
|
282
314
|
subject { klass.method(meth) }
|
283
315
|
its(:arity) { should eq(0) }
|
284
316
|
it "should call upload_server_name" do
|
@@ -289,7 +321,7 @@ describe Helix::Video do
|
|
289
321
|
|
290
322
|
describe ".slice" do
|
291
323
|
let(:meth) { :slice }
|
292
|
-
let(:mock_config) {
|
324
|
+
let(:mock_config) { double(Helix::Config) }
|
293
325
|
subject { klass.method(meth) }
|
294
326
|
its(:arity) { should eq(-1) }
|
295
327
|
let(:params) { { params: { signature: :some_sig },
|
@@ -313,7 +345,7 @@ describe Helix::Video do
|
|
313
345
|
|
314
346
|
describe ".stillframe_for" do
|
315
347
|
let(:meth) { :stillframe_for }
|
316
|
-
let(:mock_config) {
|
348
|
+
let(:mock_config) { double(Helix::Config) }
|
317
349
|
subject { klass.method(meth) }
|
318
350
|
its(:arity) { should eq(-2) }
|
319
351
|
let(:image_data) { :some_image_data }
|
metadata
CHANGED
@@ -1,128 +1,136 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: helix
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4.0.pre
|
4
5
|
prerelease: 8
|
5
|
-
version: 0.0.3.9.pre
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Twistage, Inc
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-08-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: json
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
23
21
|
version: 1.5.4
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: rest-client
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.4
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rest-client
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
30
33
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
+
requirements:
|
35
|
+
- - '='
|
36
|
+
- !ruby/object:Gem::Version
|
34
37
|
version: 1.6.7
|
35
38
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: nori
|
39
39
|
prerelease: false
|
40
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - '='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.6.7
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: nori
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
41
49
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
50
|
+
requirements:
|
51
|
+
- - '='
|
52
|
+
- !ruby/object:Gem::Version
|
45
53
|
version: 1.1.3
|
46
54
|
type: :runtime
|
47
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.1.3
|
48
62
|
description: Provides helper libraries for Ruby access to the Twistage API
|
49
63
|
email: kevin.baird@perceptivesoftware.com, michael.wood@perceptivesoftware.com
|
50
64
|
executables: []
|
51
|
-
|
52
65
|
extensions: []
|
53
|
-
|
54
66
|
extra_rdoc_files: []
|
55
|
-
|
56
|
-
files:
|
67
|
+
files:
|
57
68
|
- lib/helix.rb
|
58
|
-
- lib/helix/
|
59
|
-
- lib/helix/document.rb
|
60
|
-
- lib/helix/tag.rb
|
61
|
-
- lib/helix/media.rb
|
62
|
-
- lib/helix/statistics.rb
|
63
|
-
- lib/helix/object_ext.rb
|
64
|
-
- lib/helix/library.rb
|
69
|
+
- lib/helix/base.rb
|
65
70
|
- lib/helix/audio_playlist.rb
|
71
|
+
- lib/helix/image.rb
|
72
|
+
- lib/helix/restful.rb
|
73
|
+
- lib/helix/hash_ext.rb
|
74
|
+
- lib/helix/library.rb
|
75
|
+
- lib/helix/user.rb
|
66
76
|
- lib/helix/uploadable.rb
|
77
|
+
- lib/helix/statistics.rb
|
78
|
+
- lib/helix/document.rb
|
67
79
|
- lib/helix/durationed.rb
|
68
|
-
- lib/helix/
|
69
|
-
- lib/helix/restful.rb
|
80
|
+
- lib/helix/object_ext.rb
|
70
81
|
- lib/helix/video_playlist.rb
|
71
|
-
- lib/helix/
|
82
|
+
- lib/helix/media.rb
|
72
83
|
- lib/helix/video.rb
|
73
|
-
- lib/helix/track.rb
|
74
|
-
- lib/helix/base.rb
|
75
|
-
- lib/helix/image.rb
|
76
84
|
- lib/helix/album.rb
|
85
|
+
- lib/helix/tag.rb
|
86
|
+
- lib/helix/playlist.rb
|
87
|
+
- lib/helix/track.rb
|
77
88
|
- lib/helix/exceptions.rb
|
78
|
-
- lib/helix/
|
79
|
-
- spec/
|
89
|
+
- lib/helix/config.rb
|
90
|
+
- spec/durationed_spec.rb
|
91
|
+
- spec/document_spec.rb
|
80
92
|
- spec/audio_playlist_spec.rb
|
93
|
+
- spec/library_spec.rb
|
94
|
+
- spec/spec_helper.rb
|
81
95
|
- spec/config_spec.rb
|
96
|
+
- spec/base_spec.rb
|
97
|
+
- spec/playlist_spec.rb
|
98
|
+
- spec/video_spec.rb
|
99
|
+
- spec/tag_spec.rb
|
100
|
+
- spec/user_spec.rb
|
101
|
+
- spec/_integration_spec.rb
|
102
|
+
- spec/album_spec.rb
|
82
103
|
- spec/image_spec.rb
|
83
|
-
- spec/media_spec.rb
|
84
|
-
- spec/durationed_spec.rb
|
85
104
|
- spec/helix_spec.rb
|
86
|
-
- spec/document_spec.rb
|
87
|
-
- spec/album_spec.rb
|
88
105
|
- spec/statistics_spec.rb
|
89
|
-
- spec/_integration_spec.rb
|
90
|
-
- spec/tag_spec.rb
|
91
106
|
- spec/video_playlist_spec.rb
|
107
|
+
- spec/media_spec.rb
|
92
108
|
- spec/track_spec.rb
|
93
|
-
- spec/user_spec.rb
|
94
|
-
- spec/video_spec.rb
|
95
|
-
- spec/playlist_spec.rb
|
96
|
-
- spec/library_spec.rb
|
97
|
-
- spec/base_spec.rb
|
98
109
|
- LICENSE
|
99
110
|
- README.md
|
100
111
|
homepage: https://github.com/Twistage/helix/
|
101
|
-
licenses:
|
112
|
+
licenses:
|
102
113
|
- 3-Clause BSD
|
103
114
|
post_install_message:
|
104
115
|
rdoc_options: []
|
105
|
-
|
106
|
-
require_paths:
|
116
|
+
require_paths:
|
107
117
|
- lib
|
108
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
109
119
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version:
|
114
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
125
|
none: false
|
116
|
-
requirements:
|
117
|
-
- -
|
118
|
-
- !ruby/object:Gem::Version
|
126
|
+
requirements:
|
127
|
+
- - ! '>'
|
128
|
+
- !ruby/object:Gem::Version
|
119
129
|
version: 1.3.1
|
120
130
|
requirements: []
|
121
|
-
|
122
131
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.8.
|
132
|
+
rubygems_version: 1.8.23
|
124
133
|
signing_key:
|
125
134
|
specification_version: 3
|
126
135
|
summary: Wrapper library for the video API
|
127
136
|
test_files: []
|
128
|
-
|