avm-tools 0.94.2 → 0.98.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/app_src.rb +60 -0
  3. data/lib/avm/core_ext.rb +4 -0
  4. data/lib/avm/docker/runner.rb +22 -30
  5. data/lib/avm/eac_asciidoctor_base0/deploy.rb +5 -5
  6. data/lib/avm/eac_rails_base1/runner/bundle.rb +0 -1
  7. data/lib/avm/eac_rails_base1/runner/code_runner.rb +0 -1
  8. data/lib/avm/eac_rails_base1/runner/rails_server.rb +0 -1
  9. data/lib/avm/eac_webapp_base0/instance.rb +5 -2
  10. data/lib/avm/eac_webapp_base0/instance/subcommand_parent.rb +24 -0
  11. data/lib/avm/eac_webapp_base0/runner/data.rb +1 -0
  12. data/lib/avm/eac_webapp_base0/runner/data/dump.rb +1 -1
  13. data/lib/avm/eac_webapp_base0/runner/data/load.rb +1 -1
  14. data/lib/avm/git/issue/complete/_test.rb +2 -2
  15. data/lib/avm/instances/base.rb +6 -12
  16. data/lib/avm/instances/base/entry_keys.rb +17 -0
  17. data/lib/{eac_launcher → avm/launcher}/instances/error.rb +0 -0
  18. data/lib/avm/launcher/instances/runner_helper.rb +41 -0
  19. data/lib/avm/patches/class.rb +4 -0
  20. data/lib/avm/patches/eac_ruby_gems_utils.rb +4 -0
  21. data/lib/avm/patches/eac_ruby_gems_utils/gem.rb +2 -2
  22. data/lib/avm/patches/object.rb +4 -0
  23. data/lib/avm/patches/object/fs_cache.rb +16 -0
  24. data/lib/avm/ruby/bundler.rb +11 -0
  25. data/lib/avm/ruby/bundler/incompatible_parser.rb +25 -0
  26. data/lib/avm/ruby/bundler/incompatible_parser/depends_on.rb +25 -0
  27. data/lib/avm/ruby/bundler/incompatible_parser/gem_conflict.rb +39 -0
  28. data/lib/avm/ruby/bundler/incompatible_parser/in_gemfile.rb +19 -0
  29. data/lib/avm/ruby/bundler/incompatible_parser/line_buffer.rb +73 -0
  30. data/lib/avm/ruby/bundler/incompatible_parser/line_factory.rb +31 -0
  31. data/lib/avm/ruby/bundler/incompatible_parser/line_parser_base.rb +19 -0
  32. data/lib/avm/ruby/bundler/incompatible_parser/version_requirement.rb +26 -0
  33. data/lib/avm/ruby/gems/generator.rb +1 -5
  34. data/lib/avm/ruby/rubocop/_configured.rb +2 -2
  35. data/lib/avm/tools/runner/{local_project.rb → app_src.rb} +3 -3
  36. data/lib/avm/tools/runner/app_src/eac_asciidoctor_base0.rb +14 -0
  37. data/lib/avm/tools/runner/{local_project → app_src}/eac_asciidoctor_base0/build.rb +19 -7
  38. data/lib/avm/tools/runner/{local_project → app_src}/eac_writings_base0.rb +1 -2
  39. data/lib/avm/tools/runner/{local_project → app_src}/eac_writings_base0/build_chapters.rb +1 -2
  40. data/lib/avm/tools/runner/{local_project → app_src}/eac_writings_base0/build_single.rb +1 -2
  41. data/lib/avm/tools/runner/{local_project → app_src}/eac_writings_base0/info.rb +1 -2
  42. data/lib/avm/tools/runner/app_src/info.rb +22 -0
  43. data/lib/avm/tools/runner/{local_project → app_src}/ruby.rb +1 -1
  44. data/lib/avm/tools/runner/{local_project → app_src}/ruby/bundler.rb +1 -1
  45. data/lib/avm/tools/runner/{local_project → app_src}/ruby/bundler/gemfile_lock.rb +1 -1
  46. data/lib/avm/tools/runner/app_src/ruby/bundler/incompatible.rb +84 -0
  47. data/lib/avm/tools/runner/{local_project → app_src}/test.rb +6 -9
  48. data/lib/avm/tools/runner/app_src/update.rb +22 -0
  49. data/lib/avm/tools/runner/{local_project → app_src}/version_bump.rb +1 -1
  50. data/lib/avm/tools/runner/eac_asciidoctor_base0.rb +0 -1
  51. data/lib/avm/tools/runner/eac_rails_base0.rb +0 -1
  52. data/lib/avm/tools/runner/eac_redmine_base0.rb +0 -1
  53. data/lib/avm/tools/runner/eac_wordpress_base0.rb +0 -1
  54. data/lib/avm/tools/runner/eac_writings_base0.rb +0 -1
  55. data/lib/avm/tools/runner/git.rb +0 -1
  56. data/lib/avm/tools/runner/git/commit.rb +0 -1
  57. data/lib/avm/tools/runner/git/dirty_files.rb +17 -22
  58. data/lib/avm/tools/runner/git/issue.rb +21 -36
  59. data/lib/avm/tools/runner/git/organize.rb +6 -9
  60. data/lib/avm/tools/runner/git/revisions_test.rb +14 -25
  61. data/lib/avm/tools/runner/git/subrepo.rb +3 -6
  62. data/lib/avm/tools/runner/git/subrepo/check.rb +10 -13
  63. data/lib/avm/tools/runner/git/subrepo/clone.rb +2 -3
  64. data/lib/avm/tools/runner/git/subrepo/fix.rb +2 -3
  65. data/lib/avm/tools/runner/launcher.rb +3 -6
  66. data/lib/avm/tools/runner/launcher/instances.rb +10 -21
  67. data/lib/avm/tools/runner/launcher/projects.rb +10 -18
  68. data/lib/avm/tools/runner/launcher/publish.rb +18 -26
  69. data/lib/avm/tools/runner/ruby/rubocop.rb +9 -25
  70. data/lib/avm/tools/runner/self.rb +7 -15
  71. data/lib/avm/tools/runner/self/docker.rb +1 -1
  72. data/lib/avm/tools/version.rb +1 -1
  73. data/lib/eac_launcher/instances.rb +1 -1
  74. data/template/avm/ruby/gems/generator/static/spec/rubocop_spec.rb +1 -5
  75. data/template/avm/ruby/gems/generator/static/spec/spec_helper.rb +2 -0
  76. data/vendor/avm-apps/avm-apps.gemspec +1 -1
  77. data/vendor/avm-apps/lib/avm/apps/sources/configuration.rb +57 -0
  78. data/vendor/avm-apps/lib/avm/apps/sources/configuration/_locale.rb +18 -0
  79. data/vendor/avm-apps/lib/avm/apps/sources/configuration/_rubocop.rb +26 -0
  80. data/vendor/avm-apps/lib/avm/apps/sources/configuration/_tests.rb +29 -0
  81. data/vendor/avm-apps/lib/avm/apps/version.rb +1 -1
  82. data/vendor/avm-apps/spec/rubocop_spec.rb +1 -5
  83. data/vendor/avm-apps/spec/spec_helper.rb +3 -0
  84. data/vendor/avm-eac_asciidoctor_base0/Gemfile +5 -0
  85. data/vendor/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +20 -0
  86. data/{lib/avm/local_projects.rb → vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb} +1 -1
  87. data/{lib/avm/eac_asciidoctor_base0/project.rb → vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources.rb} +2 -4
  88. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base.rb +19 -0
  89. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb +49 -0
  90. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build/file.rb +30 -0
  91. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runner.rb +30 -0
  92. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runner/build.rb +54 -0
  93. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +7 -0
  94. data/vendor/avm-eac_asciidoctor_base0/spec/rubocop_spec.rb +3 -0
  95. data/vendor/avm-eac_asciidoctor_base0/spec/spec_helper.rb +102 -0
  96. data/vendor/eac_cli/eac_cli.gemspec +1 -1
  97. data/vendor/eac_cli/lib/eac_cli/definition/base_option.rb +5 -1
  98. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +3 -1
  99. data/vendor/eac_cli/lib/eac_cli/runner/context.rb +2 -1
  100. data/vendor/eac_cli/lib/eac_cli/runner/instance_methods.rb +8 -1
  101. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  102. data/vendor/eac_cli/spec/rubocop_spec.rb +1 -5
  103. data/vendor/eac_cli/spec/spec_helper.rb +3 -0
  104. data/vendor/eac_docker/eac_docker.gemspec +1 -1
  105. data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
  106. data/vendor/eac_docker/spec/rubocop_spec.rb +1 -5
  107. data/vendor/eac_docker/spec/spec_helper.rb +3 -0
  108. data/vendor/eac_git/eac_git.gemspec +2 -1
  109. data/vendor/eac_git/lib/eac_git/local.rb +4 -0
  110. data/vendor/eac_git/lib/eac_git/local/commit.rb +53 -0
  111. data/vendor/eac_git/lib/eac_git/local/commit/changed_file.rb +46 -0
  112. data/vendor/eac_git/lib/eac_git/local/commit/diff_tree_line.rb +32 -0
  113. data/vendor/eac_git/lib/eac_git/rspec.rb +6 -1
  114. data/{lib/avm/git/spec_helper.rb → vendor/eac_git/lib/eac_git/rspec/stubbed_git_local_repo.rb} +16 -13
  115. data/vendor/eac_git/lib/eac_git/version.rb +1 -1
  116. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec.rb +13 -0
  117. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.source.out +1 -0
  118. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  119. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  120. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  121. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  122. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  123. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  124. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  125. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  126. data/vendor/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  127. data/vendor/eac_git/spec/lib/eac_git/local/commit_spec.rb +58 -0
  128. data/vendor/eac_git/spec/rubocop_spec.rb +1 -5
  129. data/vendor/eac_git/spec/spec_helper.rb +3 -0
  130. data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +4 -4
  131. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/input.rb +36 -0
  132. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb +58 -0
  133. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  134. data/vendor/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/output_spec.rb +81 -0
  135. data/vendor/eac_ruby_base0/spec/rubocop_spec.rb +1 -5
  136. data/vendor/eac_ruby_base0/spec/spec_helper.rb +3 -0
  137. data/vendor/eac_ruby_gems_utils/eac_ruby_gems_utils.gemspec +4 -3
  138. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/base.rb +7 -10
  139. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple.rb +9 -2
  140. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
  141. data/vendor/eac_ruby_gems_utils/spec/code/rubocop_check_spec.rb +1 -5
  142. data/vendor/eac_ruby_gems_utils/spec/spec_helper.rb +3 -0
  143. data/vendor/eac_ruby_utils/eac_ruby_utils.gemspec +2 -1
  144. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/filesystem_cache.rb +6 -0
  145. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/logs.rb +63 -0
  146. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +9 -1
  147. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +3 -2
  148. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +4 -2
  149. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
  150. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +4 -2
  151. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +34 -0
  152. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +10 -29
  153. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +69 -0
  154. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +18 -5
  155. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  156. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +8 -0
  157. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +9 -0
  158. data/vendor/eac_ruby_utils/spec/rubocop_check_spec.rb +1 -5
  159. data/vendor/eac_ruby_utils/spec/spec_helper.rb +3 -0
  160. metadata +120 -39
  161. data/lib/avm/eac_asciidoctor_base0/build.rb +0 -47
  162. data/lib/avm/eac_asciidoctor_base0/build/file.rb +0 -28
  163. data/lib/avm/instances/configuration.rb +0 -55
  164. data/lib/avm/instances/configuration/_locale.rb +0 -16
  165. data/lib/avm/instances/configuration/_rubocop.rb +0 -24
  166. data/lib/avm/instances/configuration/_tests.rb +0 -27
  167. data/lib/avm/local_projects/instance.rb +0 -62
  168. data/lib/avm/tools/runner/local_project/eac_asciidoctor_base0.rb +0 -32
  169. data/lib/avm/tools/runner/local_project/info.rb +0 -25
  170. data/lib/avm/tools/runner/local_project/update.rb +0 -25
  171. data/lib/eac_launcher/instances/runner_helper.rb +0 -42
  172. data/vendor/eac_cli/lib/eac_cli/runner_with/output_file.rb +0 -30
  173. data/vendor/eac_cli/spec/lib/eac_cli/runner_with/output_file_spec.rb +0 -53
@@ -2,12 +2,11 @@
2
2
 
3
3
  require 'avm/eac_writings_base0/project'
4
4
  require 'eac_cli/core_ext'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
 
7
6
  module Avm
8
7
  module Tools
9
8
  class Runner
10
- class LocalProject
9
+ class AppSrc
11
10
  class EacWritingsBase0
12
11
  require_sub __FILE__
13
12
  enable_simple_cache
@@ -2,12 +2,11 @@
2
2
 
3
3
  require 'avm/eac_writings_base0/project_build'
4
4
  require 'eac_cli/core_ext'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
 
7
6
  module Avm
8
7
  module Tools
9
8
  class Runner
10
- class LocalProject
9
+ class AppSrc
11
10
  class EacWritingsBase0
12
11
  class BuildChapters
13
12
  runner_with :help do
@@ -2,12 +2,11 @@
2
2
 
3
3
  require 'avm/eac_writings_base0/project_build'
4
4
  require 'eac_cli/core_ext'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
 
7
6
  module Avm
8
7
  module Tools
9
8
  class Runner
10
- class LocalProject
9
+ class AppSrc
11
10
  class EacWritingsBase0
12
11
  class BuildSingle
13
12
  runner_with :help do
@@ -2,12 +2,11 @@
2
2
 
3
3
  require 'avm/eac_writings_base0/project_build'
4
4
  require 'eac_cli/core_ext'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
 
7
6
  module Avm
8
7
  module Tools
9
8
  class Runner
10
- class LocalProject
9
+ class AppSrc
11
10
  class EacWritingsBase0
12
11
  class Info
13
12
  runner_with :help do
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class AppSrc
9
+ class Info
10
+ runner_with :help do
11
+ desc 'Show information about local project instance.'
12
+ end
13
+
14
+ def run
15
+ infov 'Path', runner_context.call(:instance).path
16
+ infov 'Stereotypes', runner_context.call(:instance).stereotypes.map(&:label).join(', ')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -6,7 +6,7 @@ require 'eac_cli/core_ext'
6
6
  module Avm
7
7
  module Tools
8
8
  class Runner
9
- class LocalProject
9
+ class AppSrc
10
10
  class Ruby
11
11
  require_sub __FILE__
12
12
  runner_with :help, :subcommands do
@@ -5,7 +5,7 @@ require 'eac_ruby_base0/core_ext'
5
5
  module Avm
6
6
  module Tools
7
7
  class Runner
8
- class LocalProject
8
+ class AppSrc
9
9
  class Ruby
10
10
  class Bundler
11
11
  require_sub __FILE__
@@ -5,7 +5,7 @@ require 'eac_ruby_base0/core_ext'
5
5
  module Avm
6
6
  module Tools
7
7
  class Runner
8
- class LocalProject
8
+ class AppSrc
9
9
  class Ruby
10
10
  class Bundler
11
11
  class GemfileLock
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/fs_cache'
4
+ require 'avm/ruby/bundler/incompatible_parser'
5
+ require 'eac_ruby_base0/core_ext'
6
+
7
+ module Avm
8
+ module Tools
9
+ class Runner
10
+ class AppSrc
11
+ class Ruby
12
+ class Bundler
13
+ class Incompatible
14
+ runner_with :help do
15
+ desc 'Identify incompatible gems in a "Gemfile.lock" file.'
16
+ bool_opt '-l', '--last', 'Process the last \"bundle update\" result.'
17
+ end
18
+
19
+ def run
20
+ infov 'Cache path', fs_cache.content_path
21
+ infov 'Cached?', fs_cache.cached?
22
+ parser.gems_in_conflict.each do |gem_in_conflict|
23
+ print_gem_in_conflict(gem_in_conflict)
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def bundle_update
30
+ infom 'Running "bundle update"...'
31
+ instance.ruby_gem.bundle('update').execute[:stdout]
32
+ end
33
+
34
+ def content_path
35
+ fs_cache.write(bundle_update) unless fs_cache.cached? && parsed.last?
36
+ fs_cache.content_path
37
+ end
38
+
39
+ def fs_cache_uncached
40
+ ::Avm.fs_cache.child(self.class.name.variableize)
41
+ .child(instance.path.to_s.variableize)
42
+ end
43
+
44
+ def gem_title(gem_in_conflict)
45
+ gem_in_conflict.gem_name
46
+ end
47
+
48
+ def instance
49
+ runner_context.call(:instance)
50
+ end
51
+
52
+ def parser_uncached
53
+ ::Avm::Ruby::Bundler::IncompatibleParser.new(content_path)
54
+ end
55
+
56
+ def print_gem_in_conflict(gem_in_conflict)
57
+ infov 'Gem', gem_title(gem_in_conflict)
58
+ gem_in_conflict.versions_requirements.each do |requirement|
59
+ print_requirement(requirement)
60
+ end
61
+ end
62
+
63
+ def print_requirement(req)
64
+ infov ' ' + requirement_title(req), requirement_value(req)
65
+ end
66
+
67
+ def requirement_stack(req)
68
+ req.stack.map { |d| "#{d.gem_name} (#{d.version})" }.join(' > '.green)
69
+ end
70
+
71
+ def requirement_title(req)
72
+ req.requirements_source.if_present('*')
73
+ end
74
+
75
+ def requirement_value(req)
76
+ requirement_stack(req)
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,21 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/core_ext'
3
+ require 'avm/core_ext'
5
4
 
6
5
  module Avm
7
6
  module Tools
8
7
  class Runner
9
- class LocalProject
10
- class Test < ::EacRubyUtils::Console::DocoptRunner
11
- include ::EacCli::DefaultRunner
12
-
13
- runner_definition do
8
+ class AppSrc
9
+ class Test
10
+ runner_with :help do
14
11
  desc 'Test local project.'
15
12
  end
16
13
 
17
14
  def run
18
- context(:instance_banner)
15
+ runner_context.call(:instance_banner)
19
16
  infov 'Test command', test_command
20
17
  if test_command.present?
21
18
  test_command.system!
@@ -25,7 +22,7 @@ module Avm
25
22
  end
26
23
 
27
24
  def test_command
28
- context(:instance).configuration.if_present(&:any_test_command)
25
+ runner_context.call(:instance).configuration.if_present(&:any_test_command)
29
26
  end
30
27
  end
31
28
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class AppSrc
9
+ class Update
10
+ runner_with :help do
11
+ desc 'Update local project.'
12
+ end
13
+
14
+ def run
15
+ infov 'Path', runner_context.call(:instance).path
16
+ runner_context.call(:instance).run_job(:update)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -6,7 +6,7 @@ require 'eac_cli/core_ext'
6
6
  module Avm
7
7
  module Tools
8
8
  class Runner
9
- class LocalProject
9
+ class AppSrc
10
10
  class VersionBump
11
11
  runner_with :help do
12
12
  desc 'Bump version of a local project.'
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'avm/eac_webapp_base0/runner'
4
4
  require 'avm/eac_asciidoctor_base0'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
 
7
6
  module Avm
8
7
  module Tools
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'avm/eac_rails_base0'
4
4
  require 'avm/eac_rails_base1/runner'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
  require 'eac_ruby_utils/core_ext'
7
6
 
8
7
  module Avm
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'avm/eac_rails_base1/runner'
4
4
  require 'avm/eac_redmine_base0'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
  require 'eac_ruby_utils/core_ext'
7
6
 
8
7
  module Avm
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'avm/eac_webapp_base0/runner'
4
4
  require 'avm/eac_wordpress_base0'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
  require 'eac_ruby_utils/core_ext'
7
6
 
8
7
  module Avm
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'avm/eac_webapp_base0/runner'
4
4
  require 'avm/eac_writings_base0'
5
- require 'eac_ruby_utils/console/docopt_runner'
6
5
 
7
6
  module Avm
8
7
  module Tools
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
3
  require 'eac_ruby_utils/require_sub'
5
4
  require 'eac_launcher/git/base'
6
5
  ::EacRubyUtils.require_sub(__FILE__)
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
3
  require 'eac_ruby_utils/console/speaker'
5
4
  require 'eac_ruby_utils/simple_cache'
6
5
  require 'eac_launcher/git/base'
@@ -1,46 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_ruby_utils/console/docopt_runner'
3
+ require 'avm/core_ext'
5
4
 
6
5
  module Avm
7
6
  module Tools
8
7
  class Runner
9
8
  class Git
10
- class DirtyFiles < ::EacRubyUtils::Console::DocoptRunner
11
- enable_console_speaker
12
-
9
+ class DirtyFiles
10
+ DEFAULT_FORMAT = '%p'
13
11
  FIELDS = {
14
12
  i: :index, w: :worktree, p: :path, a: :absolute_path
15
13
  }.map { |k, v| ["%#{k}", v] }.to_h
16
14
 
17
- FIELDS_DOC = FIELDS.map { |k, v| " #{k} => #{v}" }.join("\n")
18
-
19
- DOC = <<~DOCOPT
20
- Lists dirty files in Git repository.
21
-
22
- Usage:
23
- __PROGRAM__ [options]
24
- __PROGRAM__ -h | --help
25
-
26
- Options:
27
- -h --help Mostra esta ajuda.
28
- -f --format=<format> Format of each line (See "Format fields") [default: %p].
15
+ runner_with :help do
16
+ desc 'Lists dirty files in Git repository.'
17
+ arg_opt '-f', '--format',
18
+ "Format of each line (See \"Format fields\") [default: #{DEFAULT_FORMAT}]."
19
+ end
29
20
 
30
- Format fields:
31
- #{FIELDS_DOC}
32
- DOCOPT
21
+ def help_extra_text
22
+ "Format fields:\n" + FIELDS.map { |k, v| " #{k} => #{v}" }.join("\n")
23
+ end
33
24
 
34
25
  def run
35
- context(:git).dirty_files.each do |file|
26
+ runner_context.call(:git).dirty_files.each do |file|
36
27
  out("#{format_file(file)}\n")
37
28
  end
38
29
  end
39
30
 
40
31
  private
41
32
 
33
+ def format
34
+ parsed.format || DEFAULT_FORMAT
35
+ end
36
+
42
37
  def format_file(file)
43
- FIELDS.inject(options.fetch('--format')) { |a, e| a.gsub(e.first, file.send(e.last)) }
38
+ FIELDS.inject(format) { |a, e| a.gsub(e.first, file.send(e.last)) }
44
39
  end
45
40
  end
46
41
  end
@@ -1,45 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/console/speaker'
3
+ require 'avm/core_ext'
5
4
  require 'avm/git/issue/complete'
6
5
 
7
6
  module Avm
8
7
  module Tools
9
8
  class Runner
10
9
  class Git
11
- class Issue < ::EacRubyUtils::Console::DocoptRunner
12
- enable_simple_cache
13
- include ::EacRubyUtils::Console::Speaker
14
-
15
- DOC = <<~DOCOPT
16
- Closes a issue in a Git repository.
17
-
18
- Usage:
19
- __PROGRAM__ [options] [complete]
20
- __PROGRAM__ -h | --help
21
-
22
- Options:
23
- -h --help Show this screen.
24
- -f --uncomplete-unfail Do not exit with error if issue is not completed
25
- or is invalid.
26
- -s --skip-validations=<validations> Does not validate conditions on <validations>
27
- (Comma separated value).
28
- -y --yes Does not ask for user confirmation.
29
-
30
- Validations:
31
- %%VALIDATIONS%%
32
- DOCOPT
33
-
34
- UNCOMPLETE_MESSAGE =
10
+ class Issue
11
+ runner_with :help do
12
+ desc 'Closes a issue in a Git repository.'
13
+ bool_opt '-f', '--uncomplete-unfail', 'Do not exit with error if issue is not' \
14
+ ' completed or is invalid.'
15
+ arg_opt '-s', '--skip-validations', 'Does not validate conditions on <validations>' \
16
+ ' (Comma separated value).'
17
+ bool_opt '-y', '--yes', 'Does not ask for user confirmation.'
18
+ bool_opt '--complete', 'Run complete task.'
19
+ end
35
20
 
36
- def run
37
- banner
38
- return unless validate
21
+ def run
22
+ banner
23
+ return unless validate
39
24
 
40
- run_complete if options.fetch('complete')
41
- success('Done!')
42
- end
25
+ run_complete if parsed.complete?
26
+ success('Done!')
27
+ end
43
28
 
44
29
  def banner
45
30
  complete.start_banner
@@ -68,15 +53,15 @@ module Avm
68
53
  end
69
54
 
70
55
  def confirm?
71
- options.fetch('--yes') || request_input('Confirm issue completion?', bool: true)
56
+ parsed.yes? || request_input('Confirm issue completion?', bool: true)
72
57
  end
73
58
 
74
59
  def skip_validations
75
- options.fetch('--skip-validations').to_s.split(',').map(&:strip).reject(&:blank?)
60
+ parsed.skip_validations.to_s.split(',').map(&:strip).reject(&:blank?)
76
61
  end
77
62
 
78
63
  def git_complete_issue_options
79
- { dir: context(:repository_path), skip_validations: skip_validations }
64
+ { dir: runner_context.call(:repository_path), skip_validations: skip_validations }
80
65
  end
81
66
 
82
67
  def doc_validations_list
@@ -84,7 +69,7 @@ module Avm
84
69
  end
85
70
 
86
71
  def uncomplete_unfail?
87
- options.fetch('--uncomplete-unfail')
72
+ parsed.uncomplete_unfail?
88
73
  end
89
74
 
90
75
  def uncomplete_message(message)