ehbrs_ruby_utils 0.4.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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