ehbrs-tools 0.16.5 → 0.21.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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ehbrs/cooking_book.rb +9 -0
  3. data/lib/ehbrs/cooking_book/build.rb +45 -0
  4. data/lib/ehbrs/cooking_book/build/base_page.rb +43 -0
  5. data/lib/ehbrs/cooking_book/build/index_page.rb +26 -0
  6. data/lib/ehbrs/cooking_book/build/recipe_page.rb +27 -0
  7. data/lib/ehbrs/cooking_book/project.rb +31 -0
  8. data/lib/ehbrs/cooking_book/recipe.rb +37 -0
  9. data/lib/ehbrs/cooking_book/recipe/ingredient.rb +21 -0
  10. data/lib/ehbrs/cooking_book/recipe/measure.rb +60 -0
  11. data/lib/ehbrs/cooking_book/recipe/part.rb +32 -0
  12. data/lib/ehbrs/music.rb +9 -0
  13. data/lib/ehbrs/music/album.rb +42 -0
  14. data/lib/ehbrs/observers/base.rb +1 -1
  15. data/lib/ehbrs/observers/with_persistence.rb +1 -1
  16. data/lib/ehbrs/patches/module/erb_template.rb +11 -0
  17. data/lib/ehbrs/patches/object/erb_template.rb +9 -0
  18. data/lib/ehbrs/patches/object/template.rb +7 -0
  19. data/lib/ehbrs/runner.rb +6 -13
  20. data/lib/ehbrs/runner/cooking_book.rb +30 -0
  21. data/lib/ehbrs/runner/cooking_book/build.rb +50 -0
  22. data/lib/ehbrs/runner/fs/used_space.rb +1 -1
  23. data/lib/ehbrs/runner/music.rb +16 -0
  24. data/lib/ehbrs/runner/music/selected.rb +63 -0
  25. data/lib/ehbrs/runner/telegram.rb +26 -0
  26. data/lib/ehbrs/runner/telegram/send_message.rb +29 -0
  27. data/lib/ehbrs/runner/videos/probe.rb +2 -2
  28. data/lib/ehbrs/runner/videos/unsupported.rb +1 -1
  29. data/lib/ehbrs/runner/web_utils/videos/upload.rb +1 -1
  30. data/lib/ehbrs/telegram.rb +9 -0
  31. data/lib/ehbrs/telegram/message_sending.rb +32 -0
  32. data/lib/ehbrs/tools/application.rb +13 -0
  33. data/lib/ehbrs/tools/instance.rb +16 -0
  34. data/lib/ehbrs/tools/version.rb +1 -1
  35. data/lib/ehbrs/videos/convert_job.rb +1 -1
  36. data/lib/ehbrs/videos/series/rename/line_result.rb +1 -1
  37. data/lib/ehbrs/videos/unsupported/check_support.rb +3 -2
  38. data/lib/ehbrs/videos/unsupported/fixes/supported_codec.rb +1 -1
  39. data/lib/ehbrs/videos/unsupported/profiles/aoc.rb +27 -0
  40. data/lib/ehbrs/videos/unsupported/search.rb +1 -1
  41. data/lib/ehbrs/videos/unsupported/track.rb +1 -1
  42. data/template/ehbrs/cooking_book/build/base_page/layout.html.erb +20 -0
  43. data/template/ehbrs/cooking_book/build/index_page/inner.html.erb +6 -0
  44. data/template/ehbrs/cooking_book/build/recipe_page/inner.html.erb +6 -0
  45. data/template/ehbrs/cooking_book/build/recipe_page/part.html.erb +27 -0
  46. data/vendor/aranha-selenium/lib/aranha/selenium/driver_factory/base.rb +8 -0
  47. data/vendor/aranha-selenium/lib/aranha/selenium/driver_factory/chrome.rb +10 -5
  48. data/vendor/aranha-selenium/lib/aranha/selenium/driver_factory/firefox.rb +25 -11
  49. data/vendor/aranha-selenium/lib/aranha/selenium/version.rb +1 -1
  50. data/vendor/eac_cli/eac_cli.gemspec +5 -2
  51. data/vendor/eac_cli/lib/eac_cli/core_ext.rb +2 -0
  52. data/vendor/eac_cli/lib/eac_cli/default_runner.rb +1 -1
  53. data/vendor/eac_cli/lib/eac_cli/definition/alternative.rb +4 -7
  54. data/vendor/eac_cli/lib/eac_cli/definition/argument_option.rb +8 -0
  55. data/vendor/eac_cli/lib/eac_cli/definition/base_option.rb +26 -10
  56. data/vendor/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb +47 -0
  57. data/vendor/eac_cli/lib/eac_cli/definition/boolean_option.rb +8 -0
  58. data/vendor/eac_cli/lib/eac_cli/definition/help_formatter.rb +2 -2
  59. data/vendor/eac_cli/lib/eac_cli/definition/positional_argument.rb +12 -0
  60. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +18 -2
  61. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder/alternative.rb +3 -3
  62. data/vendor/eac_cli/lib/eac_cli/docopt/runner_context_replacement.rb +15 -0
  63. data/vendor/eac_cli/lib/eac_cli/docopt/runner_extension.rb +7 -2
  64. data/vendor/eac_cli/lib/eac_cli/docopt_runner.rb +43 -0
  65. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_class_methods.rb +16 -0
  66. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_doc.rb +23 -0
  67. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_settings.rb +17 -0
  68. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_subcommands.rb +152 -0
  69. data/vendor/eac_cli/lib/eac_cli/old_configs.rb +36 -0
  70. data/vendor/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +80 -0
  71. data/vendor/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +16 -0
  72. data/vendor/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +44 -0
  73. data/vendor/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +25 -0
  74. data/vendor/eac_cli/lib/eac_cli/parser/alternative.rb +4 -4
  75. data/vendor/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +37 -0
  76. data/vendor/eac_cli/lib/eac_cli/parser/alternative/option_argument.rb +29 -0
  77. data/vendor/eac_cli/lib/eac_cli/parser/alternative/options.rb +7 -36
  78. data/vendor/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +47 -0
  79. data/vendor/eac_cli/lib/eac_cli/parser/collector.rb +3 -17
  80. data/vendor/eac_cli/lib/eac_cli/patches/module.rb +4 -0
  81. data/vendor/eac_cli/lib/eac_cli/patches/module/speaker.rb +10 -0
  82. data/vendor/eac_cli/lib/eac_cli/patches/object/runner_with.rb +3 -2
  83. data/vendor/eac_cli/lib/eac_cli/runner.rb +0 -48
  84. data/vendor/eac_cli/lib/eac_cli/runner/after_class_methods.rb +29 -0
  85. data/vendor/eac_cli/lib/eac_cli/runner/context.rb +2 -1
  86. data/vendor/eac_cli/lib/eac_cli/runner/instance_methods.rb +38 -0
  87. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands.rb +19 -3
  88. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +10 -0
  89. data/vendor/eac_cli/lib/eac_cli/runner_with_set.rb +50 -0
  90. data/vendor/eac_cli/lib/eac_cli/speaker.rb +131 -0
  91. data/vendor/eac_cli/lib/eac_cli/speaker/_class_methods.rb +37 -0
  92. data/vendor/eac_cli/lib/eac_cli/speaker/_constants.rb +12 -0
  93. data/vendor/eac_cli/lib/eac_cli/speaker/list.rb +61 -0
  94. data/vendor/eac_cli/lib/eac_cli/speaker/node.rb +24 -0
  95. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  96. data/vendor/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +4 -0
  97. data/vendor/eac_cli/spec/lib/eac_cli/docopt/runner_extension_spec.rb +1 -1
  98. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console → eac_cli/spec/lib/eac_cli}/docopt_runner_spec.rb +5 -5
  99. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console/configs_spec.rb → eac_cli/spec/lib/eac_cli/old_configs_spec.rb} +2 -2
  100. data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +44 -5
  101. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console → eac_cli/spec/lib/eac_cli}/speaker_spec.rb +2 -2
  102. data/vendor/eac_cli/spec/lib/module/speaker_spec.rb +13 -0
  103. data/vendor/eac_cli/spec/rubocop_spec.rb +1 -5
  104. data/vendor/eac_cli/spec/spec_helper.rb +3 -0
  105. data/vendor/eac_docker/eac_docker.gemspec +3 -2
  106. data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +1 -0
  107. data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
  108. data/vendor/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +2 -1
  109. data/vendor/eac_docker/spec/rubocop_spec.rb +1 -5
  110. data/vendor/eac_docker/spec/spec_helper.rb +3 -0
  111. data/vendor/eac_ruby_base0/Gemfile +5 -0
  112. data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +20 -0
  113. data/vendor/eac_ruby_base0/lib/eac_ruby_base0.rb +7 -0
  114. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/application.rb +69 -0
  115. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +4 -0
  116. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +31 -0
  117. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches.rb +4 -0
  118. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/class.rb +4 -0
  119. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/class/jobs_runner.rb +10 -0
  120. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/object.rb +5 -0
  121. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/object/runner_with.rb +5 -0
  122. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +52 -0
  123. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner/test_all.rb +22 -0
  124. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with.rb +9 -0
  125. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb +36 -0
  126. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/filesystem_traverser.rb +52 -0
  127. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/input.rb +36 -0
  128. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb +58 -0
  129. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +5 -0
  130. data/vendor/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/confirmation_spec.rb +42 -0
  131. data/vendor/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/output_spec.rb +81 -0
  132. data/vendor/eac_ruby_base0/spec/rubocop_spec.rb +3 -0
  133. data/vendor/eac_ruby_base0/spec/spec_helper.rb +103 -0
  134. data/vendor/eac_ruby_utils/eac_ruby_utils.gemspec +2 -3
  135. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/common_concern/module_setup.rb +16 -6
  136. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor.rb +2 -99
  137. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb +29 -0
  138. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb +53 -0
  139. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb +54 -0
  140. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +10 -5
  141. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/filesystem_cache.rb +6 -0
  142. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/logs.rb +63 -0
  143. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/traverser.rb +0 -2
  144. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +13 -2
  145. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +3 -2
  146. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb +48 -0
  147. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/class/settings_provider.rb +10 -0
  148. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel.rb +4 -0
  149. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +10 -0
  150. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -1
  151. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb +17 -0
  152. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
  153. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +4 -2
  154. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb +11 -0
  155. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +34 -0
  156. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec/conditional.rb +1 -4
  157. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +10 -29
  158. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +69 -0
  159. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +18 -5
  160. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  161. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb +8 -0
  162. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb +14 -4
  163. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb +30 -0
  164. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb +2 -1
  165. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb +17 -0
  166. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +8 -0
  167. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +9 -0
  168. data/vendor/eac_ruby_utils/spec/rubocop_check_spec.rb +1 -5
  169. data/vendor/eac_ruby_utils/spec/spec_helper.rb +3 -0
  170. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/videos/convert_job.rb +1 -1
  171. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/web_utils/videos/files_list.rb +1 -1
  172. metadata +134 -62
  173. data/vendor/eac_cli/lib/eac_cli/runner_with/output_file.rb +0 -30
  174. data/vendor/eac_cli/spec/lib/eac_cli/runner_with/output_file_spec.rb +0 -53
  175. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs.rb +0 -74
  176. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/base.rb +0 -43
  177. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/file.rb +0 -47
  178. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console.rb +0 -5
  179. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb +0 -38
  180. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/entry_reader.rb +0 -81
  181. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +0 -18
  182. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/read_entry_options.rb +0 -46
  183. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +0 -27
  184. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner.rb +0 -45
  185. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +0 -18
  186. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_doc.rb +0 -25
  187. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_settings.rb +0 -19
  188. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +0 -145
  189. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker.rb +0 -133
  190. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/_class_methods.rb +0 -39
  191. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/_constants.rb +0 -14
  192. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/list.rb +0 -63
  193. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/node.rb +0 -26
  194. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/console_speaker.rb +0 -10
  195. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/template.rb +0 -16
  196. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/default_time_zone_set.rb +0 -5
  197. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/local_time_zone.rb +0 -25
  198. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash.rb +0 -56
  199. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +0 -8
  200. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/node.rb +0 -67
  201. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb +0 -39
  202. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates.rb +0 -9
  203. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/directory.rb +0 -110
  204. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/file.rb +0 -50
  205. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/searcher.rb +0 -55
  206. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_not_found_error.rb +0 -7
  207. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers.rb +0 -25
  208. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/base.rb +0 -23
  209. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb +0 -25
  210. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/generic.rb +0 -25
  211. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/hash.rb +0 -29
  212. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/configs_spec.rb +0 -46
  213. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/console_speaker_spec.rb +0 -13
  214. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec.rb +0 -23
  215. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/paths_hash_spec.rb +0 -88
  216. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/file_spec.rb +0 -35
  217. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/file_spec_files/expected_content +0 -2
  218. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/file_spec_files/source.template +0 -2
  219. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec.rb +0 -30
  220. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec_files/path1/subdir1/file1.template +0 -1
  221. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec_files/path1/subdir1/file2 +0 -1
  222. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/templates/searcher_spec_files/path2/subdir1/file3.template +0 -1
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ehbrs/patches/module/erb_template'
4
+
5
+ class Object
6
+ def erb_template(subpath, binding_obj = self)
7
+ self.class.erb_template(subpath, binding_obj)
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ehbrs/tools/application'
4
+ require 'eac_templates/patches/object/template'
5
+
6
+ ::EacTemplates::Searcher.default.included_paths <<
7
+ ::Ehbrs::Tools.application.gemspec_dir.join('template').to_path
data/lib/ehbrs/runner.rb CHANGED
@@ -1,26 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_cli/core_ext'
4
- require 'ehbrs/tools/version'
3
+ require 'eac_ruby_base0/runner'
4
+ require 'ehbrs/tools/application'
5
5
 
6
6
  module Ehbrs
7
7
  class Runner
8
8
  require_sub __FILE__
9
+ include ::EacRubyBase0::Runner
9
10
 
10
- runner_with :help, :subcommands do
11
+ runner_definition do
11
12
  desc 'Tools for EHB/RS.'
12
- subcommands
13
- alt do
14
- bool_opt '-V', '--version', 'Show version.'
15
- end
16
13
  end
17
14
 
18
- def run
19
- if parsed[:version].present?
20
- out(::Ehbrs::Tools::VERSION + "\n")
21
- else
22
- run_with_subcommand
23
- end
15
+ def application
16
+ ::Ehbrs::Tools.application
24
17
  end
25
18
  end
26
19
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/cooking_book/project'
5
+
6
+ module Ehbrs
7
+ class Runner
8
+ class CookingBook
9
+ require_sub __FILE__
10
+
11
+ DEFAULT_SOURCE_DIR = '.'
12
+
13
+ runner_with :help, :subcommands do
14
+ desc 'Operações para livros de receitas.'
15
+ arg_opt '-C', '--source-dir', 'Caminho para o diretório do código-fonte.'
16
+ subcommands
17
+ end
18
+
19
+ private
20
+
21
+ def source_dir_uncached
22
+ (parsed.source_dir || DEFAULT_SOURCE_DIR).to_pathname.expand_path
23
+ end
24
+
25
+ def project_uncached
26
+ ::Ehbrs::CookingBook::Project.new(source_dir)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/cooking_book/build'
5
+ require 'os'
6
+
7
+ module Ehbrs
8
+ class Runner
9
+ class CookingBook
10
+ class Build
11
+ runner_with :help, :subcommands do
12
+ desc 'Operações para livros de receitas.'
13
+ arg_opt '-d', '--target-dir', 'Caminho para o diretório destino da construção.'
14
+ bool_opt '--open', 'Show the result.'
15
+ end
16
+
17
+ def run
18
+ start_banner
19
+ build.run
20
+ open
21
+ success 'Done'
22
+ end
23
+
24
+ private
25
+
26
+ def build_uncached
27
+ ::Ehbrs::CookingBook::Build.new(
28
+ runner_context.call(:project), target_dir: parsed.target_dir
29
+ )
30
+ end
31
+
32
+ def open
33
+ return unless parsed.open?
34
+
35
+ infom "Opening \"#{open_path}\"..."
36
+ ::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
37
+ end
38
+
39
+ def open_path
40
+ build.index_page.target_path
41
+ end
42
+
43
+ def start_banner
44
+ infov 'Project', build.project
45
+ infov 'Target directory', build.target_dir
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -48,7 +48,7 @@ module Ehbrs
48
48
 
49
49
  class PathBase
50
50
  enable_simple_cache
51
- enable_console_speaker
51
+ enable_speaker
52
52
  common_constructor :runner, :path do
53
53
  self.path = path.to_pathname
54
54
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Ehbrs
6
+ class Runner
7
+ class Music
8
+ require_sub __FILE__
9
+
10
+ runner_with :help, :subcommands do
11
+ desc 'Ferramentas para músicas.'
12
+ subcommands
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_base0/patches'
4
+ require 'eac_ruby_utils/fs/clearable_directory'
5
+ require 'ehbrs/music/album'
6
+
7
+ module Ehbrs
8
+ class Runner
9
+ class Music
10
+ class Selected
11
+ DEFAULT_TRAVERSER_RECURSIVE = true
12
+
13
+ enable_jobs_runner
14
+ runner_with :help, :filesystem_traverser do
15
+ desc 'Seleciona álbuns de música.'
16
+ arg_opt '-b', '--build-dir', 'Constrói diretório de músicas selecionadas.'
17
+ end
18
+
19
+ def run
20
+ infov 'Recursive', traverser_recursive
21
+ run_jobs :show, :build
22
+ end
23
+
24
+ private
25
+
26
+ def build
27
+ infom 'Building...'
28
+ build_dir.clear
29
+ selected_albums.each do |album|
30
+ ::EacRubyUtils::Envs.local.command('ln', '-s', album.path,
31
+ build_dir.join(album.id)).system!
32
+ end
33
+ end
34
+
35
+ def build_dir_uncached
36
+ parsed.build_dir.if_present { |v| ::EacRubyUtils::Fs::ClearableDirectory.new(v) }
37
+ end
38
+
39
+ def run_build?
40
+ build_dir.present?
41
+ end
42
+
43
+ def selected_albums_uncached
44
+ infom 'Searching selected albums...'
45
+ @selected = []
46
+ run_filesystem_traverser
47
+ @selected.sort
48
+ end
49
+
50
+ def show
51
+ infov 'Albums found', selected_albums.count
52
+ selected_albums.each do |album|
53
+ puts album.to_label
54
+ end
55
+ end
56
+
57
+ def traverser_check_directory(path)
58
+ @selected << ::Ehbrs::Music::Album.new(path) if path.join('.selected').exist?
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/tools/instance'
5
+
6
+ module Ehbrs
7
+ class Runner
8
+ class Telegram
9
+ require_sub __FILE__
10
+
11
+ runner_with :help, :subcommands do
12
+ desc 'Operações com Telegram.'
13
+ arg_opt '-b', '--bot-token', 'Token do bot Telegram.'
14
+ subcommands
15
+ end
16
+
17
+ def bot_token
18
+ parsed.bot_token || default_bot_token
19
+ end
20
+
21
+ def default_bot_token
22
+ ::Ehbrs::Tools.instance.read_entry(:telegram_bot_token)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/telegram/message_sending'
5
+
6
+ module Ehbrs
7
+ class Runner
8
+ class Telegram
9
+ class SendMessage
10
+ runner_with :help do
11
+ desc 'Envia mensagens Telegram.'
12
+ pos_arg :message
13
+ pos_arg :recipients_ids, repeat: true
14
+ end
15
+
16
+ delegate :run, to: :message_sending
17
+
18
+ private
19
+
20
+ def message_sending_uncached
21
+ parsed.recipients_ids
22
+ .inject(::Ehbrs::Telegram::MessageSending.new) { |a, e| a.recipient_id(e) }
23
+ .bot_token(runner_context.call(:bot_token))
24
+ .message(parsed.message)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_cli/core_ext'
4
3
  require 'ehbrs_ruby_utils/videos/container'
4
+ require 'eac_ruby_base0/core_ext'
5
5
  require 'eac_ruby_utils/yaml'
6
6
 
7
7
  module Ehbrs
8
8
  class Runner
9
9
  class Videos
10
10
  class Probe
11
- runner_with :help, :output_file do
11
+ runner_with :help, :output do
12
12
  desc 'FFProbe em um arquivo de vídeo.'
13
13
  pos_arg :file_path
14
14
  end
@@ -9,7 +9,7 @@ module Ehbrs
9
9
  class Runner
10
10
  class Videos
11
11
  class Unsupported
12
- PROFILES = %w[philco samsung].freeze
12
+ PROFILES = %w[aoc philco samsung].freeze
13
13
 
14
14
  runner_with :help do
15
15
  desc 'Procura e converte vídeos não suportados pelas TVs de EHB/RS.'
@@ -42,7 +42,7 @@ module Ehbrs
42
42
  def process_response(response)
43
43
  infov 'Response status', response.status
44
44
  if response.status == 200
45
- pp ::JSON.parse(response.body) # rubocop:disable Rails/Output
45
+ pp ::JSON.parse(response.body)
46
46
  else
47
47
  error_file = '/tmp/ehbrsutils.html'
48
48
  ::File.write(error_file, response.body)
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Ehbrs
6
+ module Telegram
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_ruby_utils/immutable'
5
+ require 'telegram/bot'
6
+
7
+ module Ehbrs
8
+ module Telegram
9
+ class MessageSending
10
+ include ::EacRubyUtils::Immutable
11
+ immutable_accessor :bot_token, :message
12
+ immutable_accessor :recipient_id, type: :array
13
+
14
+ def run
15
+ ::Telegram::Bot::Client.run(prop(:bot_token)) do |bot|
16
+ prop(:recipient_ids).each do |recipient_id|
17
+ bot.api.sendMessage(chat_id: recipient_id, text: prop(:message))
18
+ end
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def prop(attribute)
25
+ r = send(attribute)
26
+ return r if r.present?
27
+
28
+ raise "Attribute #{attribute} is blank"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_base0/application'
4
+
5
+ module Ehbrs
6
+ module Tools
7
+ class << self
8
+ def application
9
+ @application ||= ::EacRubyBase0::Application.new(::File.expand_path('../../..', __dir__))
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Ehbrs
7
+ module Tools
8
+ INSTANCE_ID = 'ehbrs-tools_0'
9
+
10
+ class << self
11
+ def instance
12
+ @instance ||= ::Avm::Instances::Base.by_id(INSTANCE_ID)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ehbrs
4
4
  module Tools
5
- VERSION = '0.16.5'
5
+ VERSION = '0.21.0'
6
6
  end
7
7
  end
@@ -7,7 +7,7 @@ require 'fileutils'
7
7
  module Ehbrs
8
8
  module Videos
9
9
  class ConvertJob
10
- enable_console_speaker
10
+ enable_speaker
11
11
  enable_simple_cache
12
12
 
13
13
  FORMATS_TO_EXTENSIONS = {
@@ -8,7 +8,7 @@ module Ehbrs
8
8
  module Rename
9
9
  class LineResult
10
10
  enable_simple_cache
11
- enable_console_speaker
11
+ enable_speaker
12
12
 
13
13
  def show(level)
14
14
  out(padding_level(level) + line_out + "\n")
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_cli/speaker'
3
4
  require 'ehbrs/videos/unsupported/check_result'
4
5
 
5
6
  module Ehbrs
@@ -9,7 +10,7 @@ module Ehbrs
9
10
  extend ::ActiveSupport::Concern
10
11
 
11
12
  included do
12
- include ::EacRubyUtils::Console::Speaker
13
+ include ::EacCli::Speaker
13
14
  include ::EacRubyUtils::SimpleCache
14
15
  end
15
16
 
@@ -26,7 +27,7 @@ module Ehbrs
26
27
 
27
28
  def ffmpeg_fix_args
28
29
  unpassed_checks.flat_map do |check|
29
- check.check.fix.ffmpeg_args(self)
30
+ check.check.fix.if_present([]) { |v| v.ffmpeg_args(self) }
30
31
  end
31
32
  end
32
33