ehbrs_ruby_utils 0.4.0 → 0.6.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a5f85d8072d8f656d982d29d5b4267615628ef993347630ed4a796ea3f8937d
4
- data.tar.gz: d3c379fc4d4054cd628ed56a7a1ae8647cccf249de77333762d5f2010405561c
3
+ metadata.gz: 86d2b7290ba8a20d4c3f8a87ed7d3fecb6d4fd877d700524ce7c467a40f96cf7
4
+ data.tar.gz: f3817effe28180094b3d6fd1182d9bea026f7de3c98debdc1b13fd855eb8486a
5
5
  SHA512:
6
- metadata.gz: 88c6613b66181f404d6530f2d43161e6a6e10bf70da7a96d43867c487066b7e26c2dd44e710775468b06bc612a5c2357463a0e3529a23bc976cf95f636796262
7
- data.tar.gz: f99bfc207698e18dcc708b0522ca249eee46288950fe16fd0e5fd554d3537b2c2a431954cc4f0456d08081f5512469fbe4a460dc18313480ded6fc874cb0350c
6
+ metadata.gz: 3fac516de86eb3e88e7cc30263d5b97a94e8fd542d75fda8b0e3f49604ada03a1897f9bac167da3dff88e7668583e6dca223d65a8bfd2f92b6b6f5aa78ba9c6b
7
+ data.tar.gz: 07c97a47c7e2b7ece00d7a1f2ed0d4f929b189139ad27c505f7231f4d6891bbfc9976908ff5105b3766b303f19b06215260bc114371de7861c2dbfd63aa3c4e0
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EhbrsRubyUtils
4
- VERSION = '0.4.0'
4
+ VERSION = '0.6.1'
5
5
  end
@@ -1,11 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
+ require 'ehbrs_ruby_utils/executables'
5
+ require 'ehbrs_ruby_utils/videos/stream'
6
+ require 'json'
4
7
 
5
8
  module EhbrsRubyUtils
6
9
  module Videos
7
- module Container
8
- require_sub __FILE__
10
+ class Container
11
+ enable_simple_cache
12
+ common_constructor :path do
13
+ self.path = path.to_pathname
14
+ end
15
+
16
+ ::EhbrsRubyUtils::Videos::Stream.lists.codec_type.each_value do |stream_type|
17
+ define_method stream_type.to_s.pluralize do
18
+ streams.select { |stream| stream.codec_type == stream_type }
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def probe_data_uncached
25
+ ::JSON.parse(
26
+ ::EhbrsRubyUtils::Executables.ffprobe.command(
27
+ '-hide_banner', '-print_format', 'json', '-show_format', '-show_streams', path
28
+ ).execute!
29
+ ).deep_symbolize_keys.freeze
30
+ end
31
+
32
+ def streams_uncached
33
+ probe_data.fetch(:streams).map do |stream_ffprobe_data|
34
+ ::EhbrsRubyUtils::Videos::Stream.new(stream_ffprobe_data)
35
+ end
36
+ end
9
37
  end
10
38
  end
11
39
  end
@@ -11,7 +11,7 @@ module EhbrsRubyUtils
11
11
  'matroska' => '.mkv'
12
12
  }.freeze
13
13
 
14
- enable_console_speaker
14
+ enable_speaker
15
15
  enable_simple_cache
16
16
  common_constructor :input, :ffmpeg_convert_args do
17
17
  self.input = input.to_pathname.expand_path
@@ -8,13 +8,19 @@ module EhbrsRubyUtils
8
8
  enable_simple_cache
9
9
  enable_listable
10
10
 
11
- lists.add_symbol :codec_type, :audio, :video, :subtitle, :other
11
+ lists.add_symbol :codec_type, :audio, :video, :subtitle, :data, :attachment
12
12
 
13
13
  common_constructor :ffprobe_data do
14
14
  self.ffprobe_data = ffprobe_data.symbolize_keys.freeze
15
15
  self.class.lists.codec_type.value_validate!(codec_type)
16
16
  end
17
17
 
18
+ lists.codec_type.each_value do |v|
19
+ define_method "#{v}?" do
20
+ codec_type == v
21
+ end
22
+ end
23
+
18
24
  def to_s
19
25
  "#{index}|#{codec_type}|#{codec_name}|#{language}"
20
26
  end
@@ -23,23 +29,33 @@ module EhbrsRubyUtils
23
29
  ffprobe_data
24
30
  end
25
31
 
26
- %i[index codec_name codec_long_name].each do |method_name|
32
+ %i[index].each do |method_name|
27
33
  define_method method_name do
28
34
  ffprobe_data.fetch(method_name)
29
35
  end
30
36
  end
31
37
 
38
+ %i[codec_name codec_long_name].each do |method_name|
39
+ define_method method_name do
40
+ ffprobe_data[method_name]
41
+ end
42
+ end
43
+
32
44
  def codec_type
33
45
  ffprobe_data.fetch(:codec_type).to_sym
34
46
  end
35
47
 
36
48
  def tags
37
- ffprobe_data.fetch(:tags).symbolize_keys
49
+ ffprobe_data[:tags].if_present({}, &:symbolize_keys)
38
50
  end
39
51
 
40
52
  def language
41
53
  tags[:language]
42
54
  end
55
+
56
+ def title
57
+ tags[:title]
58
+ end
43
59
  end
44
60
  end
45
61
  end
@@ -8,7 +8,7 @@ module EhbrsRubyUtils
8
8
  module WebUtils
9
9
  module Videos
10
10
  class FilesList
11
- enable_console_speaker
11
+ enable_speaker
12
12
  enable_simple_cache
13
13
 
14
14
  common_constructor :type_class, :root_path, :options do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ehbrs_ruby_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-28 00:00:00.000000000 Z
11
+ date: 2021-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_ruby_utils
@@ -16,34 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.36'
19
+ version: '0.70'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.36'
26
+ version: '0.70'
27
27
  - !ruby/object:Gem::Dependency
28
- name: eac_ruby_gem_support
28
+ name: aranha-parsers
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.1'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 0.1.1
33
+ version: '0.8'
37
34
  type: :development
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: '0.1'
44
- - - ">="
40
+ version: '0.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: eac_ruby_gem_support
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
45
53
  - !ruby/object:Gem::Version
46
- version: 0.1.1
54
+ version: '0.3'
47
55
  description:
48
56
  email:
49
57
  executables: []
@@ -55,8 +63,6 @@ files:
55
63
  - lib/ehbrs_ruby_utils/version.rb
56
64
  - lib/ehbrs_ruby_utils/videos.rb
57
65
  - lib/ehbrs_ruby_utils/videos/container.rb
58
- - lib/ehbrs_ruby_utils/videos/container/file.rb
59
- - lib/ehbrs_ruby_utils/videos/container/info.rb
60
66
  - lib/ehbrs_ruby_utils/videos/convert_job.rb
61
67
  - lib/ehbrs_ruby_utils/videos/quality.rb
62
68
  - lib/ehbrs_ruby_utils/videos/resolution.rb
@@ -84,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
90
  - !ruby/object:Gem::Version
85
91
  version: '0'
86
92
  requirements: []
87
- rubygems_version: 3.0.8
93
+ rubygems_version: 3.1.6
88
94
  signing_key:
89
95
  specification_version: 4
90
96
  summary: Utilities for EHB/RS's Ruby projects.
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'ehbrs_ruby_utils/executables'
6
- require 'ehbrs_ruby_utils/videos/container/info'
7
- require 'ehbrs_ruby_utils/videos/stream'
8
-
9
- module EhbrsRubyUtils
10
- module Videos
11
- module Container
12
- class File
13
- enable_simple_cache
14
- common_constructor :path do
15
- self.path = path.to_pathname
16
- end
17
-
18
- ::EhbrsRubyUtils::Videos::Stream.lists.codec_type.each_value do |stream_type|
19
- define_method stream_type.to_s.pluralize do
20
- streams.select { |stream| stream.codec_type == stream_type }
21
- end
22
- end
23
-
24
- private
25
-
26
- def info_uncached
27
- ::EhbrsRubyUtils::Videos::Container::Info.new(
28
- ::JSON.parse(
29
- ::EhbrsRubyUtils::Executables.ffprobe.command(
30
- '-hide_banner', '-print_format', 'json', '-show_format', '-show_streams', path
31
- ).execute!
32
- )
33
- )
34
- end
35
-
36
- def streams_uncached
37
- info.ffprobe_data.fetch(:streams).map do |stream_ffprobe_data|
38
- ::EhbrsRubyUtils::Videos::Stream.new(stream_ffprobe_data)
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'ehbrs_ruby_utils/videos/container/info'
5
-
6
- module EhbrsRubyUtils
7
- module Videos
8
- module Container
9
- class Info
10
- enable_simple_cache
11
- common_constructor :ffprobe_data do
12
- self.ffprobe_data = ffprobe_data.with_indifferent_access.freeze
13
- end
14
-
15
- def to_h
16
- ffprobe_data
17
- end
18
- end
19
- end
20
- end
21
- end