active_encode 0.7.0 → 0.8.0

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +1 -0
  4. data/Gemfile +2 -1
  5. data/README.md +69 -0
  6. data/active_encode.gemspec +5 -2
  7. data/lib/active_encode/engine_adapters.rb +1 -0
  8. data/lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb +1 -1
  9. data/lib/active_encode/engine_adapters/ffmpeg_adapter.rb +12 -2
  10. data/lib/active_encode/engine_adapters/media_convert_adapter.rb +372 -0
  11. data/lib/active_encode/engine_adapters/media_convert_output.rb +104 -0
  12. data/lib/active_encode/polling.rb +1 -1
  13. data/lib/active_encode/spec/shared_specs.rb +2 -0
  14. data/{spec/shared_specs/engine_adapter_specs.rb → lib/active_encode/spec/shared_specs/engine_adapter.rb} +36 -36
  15. data/lib/active_encode/version.rb +1 -1
  16. data/lib/file_locator.rb +1 -1
  17. data/spec/fixtures/media_convert/endpoints.json +1 -0
  18. data/spec/fixtures/media_convert/job_canceled.json +412 -0
  19. data/spec/fixtures/media_convert/job_canceling.json +1 -0
  20. data/spec/fixtures/media_convert/job_completed.json +359 -0
  21. data/spec/fixtures/media_convert/job_completed_detail.json +1 -0
  22. data/spec/fixtures/media_convert/job_completed_detail_query.json +1 -0
  23. data/spec/fixtures/media_convert/job_created.json +408 -0
  24. data/spec/fixtures/media_convert/job_failed.json +406 -0
  25. data/spec/fixtures/media_convert/job_progressing.json +414 -0
  26. data/spec/integration/elastic_transcoder_adapter_spec.rb +4 -4
  27. data/spec/integration/ffmpeg_adapter_spec.rb +2 -2
  28. data/spec/integration/matterhorn_adapter_spec.rb +39 -39
  29. data/spec/integration/media_convert_adapter_spec.rb +126 -0
  30. data/spec/integration/pass_through_adapter_spec.rb +2 -2
  31. data/spec/integration/zencoder_adapter_spec.rb +198 -198
  32. data/spec/spec_helper.rb +0 -1
  33. data/spec/units/core_spec.rb +17 -17
  34. data/spec/units/file_locator_spec.rb +1 -1
  35. data/spec/units/global_id_spec.rb +8 -8
  36. data/spec/units/persistence_spec.rb +9 -9
  37. metadata +87 -23
data/spec/spec_helper.rb CHANGED
@@ -6,7 +6,6 @@ require 'bundler/setup'
6
6
  Bundler.setup
7
7
 
8
8
  require 'byebug'
9
- require 'rspec/its'
10
9
  require 'active_encode'
11
10
 
12
11
  RSpec.configure do |_config|
@@ -29,7 +29,7 @@ describe ActiveEncode::Core do
29
29
  let(:id) { encode_class.create(nil).id }
30
30
 
31
31
  it { is_expected.to be_a encode_class }
32
- its(:id) { is_expected.to eq id }
32
+ it { expect(subject.id).to eq id }
33
33
 
34
34
  context 'with no id' do
35
35
  let(:id) { nil }
@@ -43,13 +43,13 @@ describe ActiveEncode::Core do
43
43
  let(:encode_class) { CustomEncode }
44
44
 
45
45
  it { is_expected.to be_a encode_class }
46
- its(:id) { is_expected.to eq id }
46
+ it { expect(subject.id).to eq id }
47
47
 
48
48
  context 'casting' do
49
49
  let(:id) { ActiveEncode::Base.create(nil).id }
50
50
 
51
51
  it { is_expected.to be_a encode_class }
52
- its(:id) { is_expected.to eq id }
52
+ it { expect(subject.id).to eq id }
53
53
  end
54
54
  end
55
55
  end
@@ -58,15 +58,15 @@ describe ActiveEncode::Core do
58
58
  subject { encode_class.create(nil) }
59
59
 
60
60
  it { is_expected.to be_a encode_class }
61
- its(:id) { is_expected.not_to be nil }
62
- its(:state) { is_expected.not_to be nil }
61
+ it { expect(subject.id).not_to be nil }
62
+ it { expect(subject.state).not_to be nil }
63
63
 
64
64
  context 'with an ActiveEncode::Base subclass' do
65
65
  let(:encode_class) { CustomEncode }
66
66
 
67
67
  it { is_expected.to be_a encode_class }
68
- its(:id) { is_expected.not_to be nil }
69
- its(:state) { is_expected.not_to be nil }
68
+ it { expect(subject.id).not_to be nil }
69
+ it { expect(subject.state).not_to be nil }
70
70
  end
71
71
  end
72
72
 
@@ -76,16 +76,16 @@ describe ActiveEncode::Core do
76
76
 
77
77
  it { is_expected.to equal encode }
78
78
  it { is_expected.to be_a encode_class }
79
- its(:id) { is_expected.not_to be nil }
80
- its(:state) { is_expected.not_to be nil }
79
+ it { expect(subject.id).not_to be nil }
80
+ it { expect(subject.state).not_to be nil }
81
81
 
82
82
  context 'with an ActiveEncode::Base subclass' do
83
83
  let(:encode_class) { CustomEncode }
84
84
 
85
85
  it { is_expected.to equal encode }
86
86
  it { is_expected.to be_a encode_class }
87
- its(:id) { is_expected.not_to be nil }
88
- its(:state) { is_expected.not_to be nil }
87
+ it { expect(subject.id).not_to be nil }
88
+ it { expect(subject.state).not_to be nil }
89
89
  end
90
90
  end
91
91
 
@@ -95,7 +95,7 @@ describe ActiveEncode::Core do
95
95
 
96
96
  it { is_expected.to equal encode }
97
97
  it { is_expected.to be_a encode_class }
98
- its(:id) { is_expected.not_to be nil }
98
+ it { expect(subject.id).not_to be nil }
99
99
  it { is_expected.to be_cancelled }
100
100
 
101
101
  context 'with an ActiveEncode::Base subclass' do
@@ -103,7 +103,7 @@ describe ActiveEncode::Core do
103
103
 
104
104
  it { is_expected.to equal encode }
105
105
  it { is_expected.to be_a encode_class }
106
- its(:id) { is_expected.not_to be nil }
106
+ it { expect(subject.id).not_to be nil }
107
107
  it { is_expected.to be_cancelled }
108
108
  end
109
109
  end
@@ -114,16 +114,16 @@ describe ActiveEncode::Core do
114
114
 
115
115
  it { is_expected.to equal encode }
116
116
  it { is_expected.to be_a encode_class }
117
- its(:id) { is_expected.not_to be nil }
118
- its(:state) { is_expected.not_to be nil }
117
+ it { expect(subject.id).not_to be nil }
118
+ it { expect(subject.state).not_to be nil }
119
119
 
120
120
  context 'with an ActiveEncode::Base subclass' do
121
121
  let(:encode_class) { CustomEncode }
122
122
 
123
123
  it { is_expected.to equal encode }
124
124
  it { is_expected.to be_a encode_class }
125
- its(:id) { is_expected.not_to be nil }
126
- its(:state) { is_expected.not_to be nil }
125
+ it { expect(subject.id).not_to be nil }
126
+ it { expect(subject.state).not_to be nil }
127
127
  end
128
128
  end
129
129
 
@@ -12,7 +12,7 @@
12
12
  # CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
13
  # specific language governing permissions and limitations under the License.
14
14
  # --- END LICENSE_HEADER BLOCK ---
15
- require 'aws-sdk'
15
+ require 'aws-sdk-s3'
16
16
  require 'rails_helper'
17
17
 
18
18
  describe FileLocator, type: :service do
@@ -17,17 +17,17 @@ describe ActiveEncode::GlobalID do
17
17
  let(:encode) { encode_class.create(nil) }
18
18
 
19
19
  it { is_expected.to be_a GlobalID }
20
- its(:model_class) { is_expected.to eq encode_class }
21
- its(:model_id) { is_expected.to eq encode.id }
22
- its(:app) { is_expected.to eq 'ActiveEncode' }
20
+ it { expect(subject.model_class).to eq encode_class }
21
+ it { expect(subject.model_id).to eq encode.id }
22
+ it { expect(subject.app).to eq 'ActiveEncode' }
23
23
 
24
24
  context 'with an ActiveEncode::Base subclass' do
25
25
  let(:encode_class) { CustomEncode }
26
26
 
27
27
  it { is_expected.to be_a GlobalID }
28
- its(:model_class) { is_expected.to eq encode_class }
29
- its(:model_id) { is_expected.to eq encode.id }
30
- its(:app) { is_expected.to eq 'ActiveEncode' }
28
+ it { expect(subject.model_class).to eq encode_class }
29
+ it { expect(subject.model_id).to eq encode.id }
30
+ it { expect(subject.app).to eq 'ActiveEncode' }
31
31
  end
32
32
  end
33
33
 
@@ -38,13 +38,13 @@ describe ActiveEncode::GlobalID do
38
38
  let(:global_id) { encode.to_global_id }
39
39
 
40
40
  it { is_expected.to be_a encode_class }
41
- its(:id) { is_expected.to eq encode.id }
41
+ it { expect(subject.id).to eq encode.id }
42
42
 
43
43
  context 'with an ActiveEncode::Base subclass' do
44
44
  let(:encode_class) { CustomEncode }
45
45
 
46
46
  it { is_expected.to be_a encode_class }
47
- its(:id) { is_expected.to eq encode.id }
47
+ it { expect(subject.id).to eq encode.id }
48
48
  end
49
49
  end
50
50
  end
@@ -30,15 +30,15 @@ describe ActiveEncode::Persistence, db_clean: true do
30
30
  expect { encode }.to change { ActiveEncode::EncodeRecord.count }.by(1)
31
31
  end
32
32
 
33
- its(:global_id) { is_expected.to eq encode.to_global_id.to_s }
34
- its(:state) { is_expected.to eq encode.state.to_s }
35
- its(:adapter) { is_expected.to eq encode.class.engine_adapter.class.name }
36
- its(:title) { is_expected.to eq encode.input.url.to_s }
37
- its(:raw_object) { is_expected.to eq encode.to_json }
38
- its(:created_at) { is_expected.to be_within(1.second).of encode.created_at }
39
- its(:updated_at) { is_expected.to be_within(1.second).of encode.updated_at }
40
- its(:create_options) { is_expected.to eq create_options.to_json }
41
- its(:progress) { is_expected.to eq encode.percent_complete }
33
+ it { expect(subject.global_id).to eq encode.to_global_id.to_s }
34
+ it { expect(subject.state).to eq encode.state.to_s }
35
+ it { expect(subject.adapter).to eq encode.class.engine_adapter.class.name }
36
+ it { expect(subject.title).to eq encode.input.url.to_s }
37
+ it { expect(subject.raw_object).to eq encode.to_json }
38
+ it { expect(subject.created_at).to be_within(1.second).of encode.created_at }
39
+ it { expect(subject.updated_at).to be_within(1.second).of encode.updated_at }
40
+ it { expect(subject.create_options).to eq create_options.to_json }
41
+ it { expect(subject.progress).to eq encode.percent_complete }
42
42
  end
43
43
 
44
44
  describe 'cancel' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_encode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klein, Chris Colvard, Phuong Dinh
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-18 00:00:00.000000000 Z
11
+ date: 2021-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: aws-sdk
28
+ name: aws-sdk-cloudwatchevents
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bixby
42
+ name: aws-sdk-cloudwatchlogs
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: aws-sdk-elastictranscoder
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: coveralls
70
+ name: aws-sdk-mediaconvert
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: database_cleaner
84
+ name: aws-sdk-s3
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,21 +95,21 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: engine_cart
98
+ name: bixby
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2.2'
103
+ version: 1.0.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2.2'
110
+ version: 1.0.0
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake
112
+ name: bundler
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec
126
+ name: coveralls
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,49 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rspec-its
140
+ name: database_cleaner
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: engine_cart
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '2.2'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '2.2'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec
141
183
  requirement: !ruby/object:Gem::Requirement
142
184
  requirements:
143
185
  - - ">="
@@ -230,6 +272,8 @@ files:
230
272
  - lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb
231
273
  - lib/active_encode/engine_adapters/ffmpeg_adapter.rb
232
274
  - lib/active_encode/engine_adapters/matterhorn_adapter.rb
275
+ - lib/active_encode/engine_adapters/media_convert_adapter.rb
276
+ - lib/active_encode/engine_adapters/media_convert_output.rb
233
277
  - lib/active_encode/engine_adapters/pass_through_adapter.rb
234
278
  - lib/active_encode/engine_adapters/test_adapter.rb
235
279
  - lib/active_encode/engine_adapters/zencoder_adapter.rb
@@ -239,6 +283,8 @@ files:
239
283
  - lib/active_encode/output.rb
240
284
  - lib/active_encode/persistence.rb
241
285
  - lib/active_encode/polling.rb
286
+ - lib/active_encode/spec/shared_specs.rb
287
+ - lib/active_encode/spec/shared_specs/engine_adapter.rb
242
288
  - lib/active_encode/status.rb
243
289
  - lib/active_encode/technical_metadata.rb
244
290
  - lib/active_encode/version.rb
@@ -292,6 +338,15 @@ files:
292
338
  - spec/fixtures/matterhorn/running_response.xml
293
339
  - spec/fixtures/matterhorn/stop_completed_response.xml
294
340
  - spec/fixtures/matterhorn/stop_running_response.xml
341
+ - spec/fixtures/media_convert/endpoints.json
342
+ - spec/fixtures/media_convert/job_canceled.json
343
+ - spec/fixtures/media_convert/job_canceling.json
344
+ - spec/fixtures/media_convert/job_completed.json
345
+ - spec/fixtures/media_convert/job_completed_detail.json
346
+ - spec/fixtures/media_convert/job_completed_detail_query.json
347
+ - spec/fixtures/media_convert/job_created.json
348
+ - spec/fixtures/media_convert/job_failed.json
349
+ - spec/fixtures/media_convert/job_progressing.json
295
350
  - spec/fixtures/pass_through/cancelled-id/cancelled
296
351
  - spec/fixtures/pass_through/cancelled-id/input_metadata
297
352
  - spec/fixtures/pass_through/completed-id/completed
@@ -317,11 +372,11 @@ files:
317
372
  - spec/integration/elastic_transcoder_adapter_spec.rb
318
373
  - spec/integration/ffmpeg_adapter_spec.rb
319
374
  - spec/integration/matterhorn_adapter_spec.rb
375
+ - spec/integration/media_convert_adapter_spec.rb
320
376
  - spec/integration/pass_through_adapter_spec.rb
321
377
  - spec/integration/zencoder_adapter_spec.rb
322
378
  - spec/rails_helper.rb
323
379
  - spec/routing/encode_record_controller_routing_spec.rb
324
- - spec/shared_specs/engine_adapter_specs.rb
325
380
  - spec/spec_helper.rb
326
381
  - spec/test_app_templates/lib/generators/test_app_generator.rb
327
382
  - spec/units/callbacks_spec.rb
@@ -339,7 +394,7 @@ homepage: https://github.com/samvera-labs/active_encode
339
394
  licenses:
340
395
  - Apache-2.0
341
396
  metadata: {}
342
- post_install_message:
397
+ post_install_message:
343
398
  rdoc_options: []
344
399
  require_paths:
345
400
  - lib
@@ -354,8 +409,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
409
  - !ruby/object:Gem::Version
355
410
  version: '0'
356
411
  requirements: []
357
- rubygems_version: 3.0.4
358
- signing_key:
412
+ rubygems_version: 3.1.2
413
+ signing_key:
359
414
  specification_version: 4
360
415
  summary: Declare encode job classes that can be run by a variety of encoding services
361
416
  test_files:
@@ -408,6 +463,15 @@ test_files:
408
463
  - spec/fixtures/matterhorn/running_response.xml
409
464
  - spec/fixtures/matterhorn/stop_completed_response.xml
410
465
  - spec/fixtures/matterhorn/stop_running_response.xml
466
+ - spec/fixtures/media_convert/endpoints.json
467
+ - spec/fixtures/media_convert/job_canceled.json
468
+ - spec/fixtures/media_convert/job_canceling.json
469
+ - spec/fixtures/media_convert/job_completed.json
470
+ - spec/fixtures/media_convert/job_completed_detail.json
471
+ - spec/fixtures/media_convert/job_completed_detail_query.json
472
+ - spec/fixtures/media_convert/job_created.json
473
+ - spec/fixtures/media_convert/job_failed.json
474
+ - spec/fixtures/media_convert/job_progressing.json
411
475
  - spec/fixtures/pass_through/cancelled-id/cancelled
412
476
  - spec/fixtures/pass_through/cancelled-id/input_metadata
413
477
  - spec/fixtures/pass_through/completed-id/completed
@@ -433,11 +497,11 @@ test_files:
433
497
  - spec/integration/elastic_transcoder_adapter_spec.rb
434
498
  - spec/integration/ffmpeg_adapter_spec.rb
435
499
  - spec/integration/matterhorn_adapter_spec.rb
500
+ - spec/integration/media_convert_adapter_spec.rb
436
501
  - spec/integration/pass_through_adapter_spec.rb
437
502
  - spec/integration/zencoder_adapter_spec.rb
438
503
  - spec/rails_helper.rb
439
504
  - spec/routing/encode_record_controller_routing_spec.rb
440
- - spec/shared_specs/engine_adapter_specs.rb
441
505
  - spec/spec_helper.rb
442
506
  - spec/test_app_templates/lib/generators/test_app_generator.rb
443
507
  - spec/units/callbacks_spec.rb