avm-tools 0.116.2 → 0.117.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/tools/runner/app_src/version_bump.rb +4 -9
  3. data/lib/avm/tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +1 -1
  5. data/sub/avm/lib/avm/scms/base.rb +13 -0
  6. data/sub/avm/lib/avm/sources/base/configuration.rb +2 -1
  7. data/sub/avm/lib/avm/sources/base/parent.rb +31 -0
  8. data/sub/avm/lib/avm/sources/base.rb +4 -6
  9. data/sub/avm/lib/avm/sources/configuration/{_locale.rb → locale.rb} +5 -3
  10. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  11. data/sub/avm/lib/avm/sources/configuration/tests.rb +29 -0
  12. data/sub/avm/lib/avm/sources/configuration.rb +5 -1
  13. data/sub/avm/lib/avm/version.rb +1 -1
  14. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +1 -1
  15. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base/version_bump.rb +35 -0
  16. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb +4 -1
  17. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +1 -1
  18. data/sub/avm-eac_generic_base0/locale/en.yaml +6 -0
  19. data/sub/avm-eac_generic_base0/locale/pt-BR.yaml +6 -0
  20. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +1 -1
  21. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb +23 -0
  22. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb +11 -0
  23. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update.rb +0 -1
  24. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  25. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +1 -3
  26. data/sub/avm-git/lib/avm/git/version.rb +1 -1
  27. data/sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb +1 -0
  28. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb +4 -0
  29. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb +47 -0
  30. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb +74 -0
  31. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb +9 -0
  32. data/sub/eac_ruby_utils/lib/eac_ruby_utils/method_class.rb +35 -0
  33. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb +2 -25
  34. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/method_class.rb +9 -0
  35. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +86 -33
  36. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  37. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/method_class_spec.rb +46 -0
  38. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/method_class_spec.rb +20 -0
  39. metadata +18 -9
  40. data/lib/avm/projects/stereotypes/rails_application/update.rb +0 -14
  41. data/lib/avm/projects/stereotypes/ruby_gem/version_bump.rb +0 -60
  42. data/sub/avm/lib/avm/sources/configuration/_rubocop.rb +0 -24
  43. data/sub/avm/lib/avm/sources/configuration/_tests.rb +0 -27
  44. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/patches/i18n.rb +0 -7
  45. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/patches.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ade74f1c59b191c0af317c03f8acb00fffc0e2bcac3120b56a604ab72a31ac1
4
- data.tar.gz: 9d9967c47a11500142f7843b53ac7430f40fb191e441ce177ce583a58f46fffc
3
+ metadata.gz: aae509f1d4971fd8a6d39a9f20cc4a3dab9fd28267c333ffe521cba9252f20bb
4
+ data.tar.gz: f27d6bd59c10b9638f1f42b173d38a53a677b1d8de4b1a01c63e170ed1ed362f
5
5
  SHA512:
6
- metadata.gz: dae95c3e50159a7cd7a9c77745a106d462c2d5c8445a43f92f35cadeb42545509d83b53f2085a339b9dac930610a6cc68cb4551a2dd35e0a2566a1d07f932ce1
7
- data.tar.gz: 7dc23f20f7430e88fd0a75582a899df38a81eb6a102f948611c96d810d766032656c730395ef66f4a3f89a11ad4b84d429252dcbf8e58082777b632f5e2ad188
6
+ metadata.gz: ea73fcc793b05f0265396c36a592969b9f60c6ccb8a0e7526f7f5e12f5c7b58688489c11cda94b7e17ab8a0430029dccca11d3a0b799a49e6c65d11c5f200b8a
7
+ data.tar.gz: bf13a36e7cdf500a7538c75531b108b7f09ef76dfd1b5a4ceb102cc32f2c2b76026df875c593de2fa6c240b3b5fccc43b9d7a989941dab6b15e61a8b142ee503
@@ -8,14 +8,13 @@ module Avm
8
8
  class Runner
9
9
  class AppSrc
10
10
  class VersionBump
11
- runner_with :help do
11
+ runner_with :help, :confirmation do
12
12
  desc 'Bump version of a local project.'
13
13
  arg_opt '-n', '--new', 'Set new version.'
14
14
  arg_opt '-s', '--segment', 'Increment de <segment>-th segment (Left-most is 0)'
15
15
  bool_opt '-M', '--major', 'Same as --segment=0.'
16
16
  bool_opt '-m', '--minor', 'Same as --segment=1.'
17
17
  bool_opt '-p', '--patch', 'Same as --segment=2.'
18
- bool_opt '-y', '--yes', 'Bump without confirmation.'
19
18
  end
20
19
 
21
20
  def run
@@ -26,7 +25,7 @@ module Avm
26
25
  def run_version_changed
27
26
  infom 'Version changed'
28
27
  if confirm?
29
- runner_context.call(:instance).run_job(:version_bump, target_version)
28
+ runner_context.call(:subject).version_bump(target_version)
30
29
  success 'Bumped'
31
30
  else
32
31
  fatal_error 'Bump unconfirmed'
@@ -38,17 +37,13 @@ module Avm
38
37
  end
39
38
 
40
39
  def start_banner
41
- runner_context.call(:instance_banner)
40
+ infov 'Instance', runner_context.call(:subject)
42
41
  infov 'Current version', current_version.if_present('-')
43
42
  infov 'Target version', target_version.if_present('-')
44
43
  end
45
44
 
46
- def confirm?
47
- parsed.yes? || input('Confirm version bump?', bool: true)
48
- end
49
-
50
45
  def current_version_uncached
51
- runner_context.call(:instance).if_respond('version')
46
+ runner_context.call(:subject).if_respond('version')
52
47
  end
53
48
 
54
49
  def target_version_uncached
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.116.2'
5
+ VERSION = '0.117.0'
6
6
  end
7
7
  end
data/sub/avm/avm.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.add_dependency 'eac_cli', '~> 0.23', '>= 0.23.1'
16
16
  s.add_dependency 'eac_docker', '~> 0.3'
17
17
  s.add_dependency 'eac_git', '~> 0.6'
18
- s.add_dependency 'eac_ruby_utils', '~> 0.80'
18
+ s.add_dependency 'eac_ruby_utils', '~> 0.95'
19
19
  s.add_dependency 'eac_templates', '~> 0.1', '>= 0.1.1'
20
20
  s.add_dependency 'filesize', '~> 0.2'
21
21
  s.add_dependency 'htmlbeautifier', '~> 1.3', '>= 1.3.1'
@@ -6,6 +6,7 @@ module Avm
6
6
  module Scms
7
7
  class Base
8
8
  enable_abstract_methods
9
+ enable_simple_cache
9
10
  abstract_methods :update, :valid?
10
11
  common_constructor :path do
11
12
  self.path = path.to_pathname
@@ -28,6 +29,18 @@ module Avm
28
29
  def to_s
29
30
  name
30
31
  end
32
+
33
+ private
34
+
35
+ # @return [Avm::Scms::Base]
36
+ def parent_scm
37
+ parent_path = path.parent
38
+ until parent_path.root?
39
+ ::Avm::Registry.scms.detect_optional(parent_path).if_present { |v| return v }
40
+ parent_path = parent_path.parent
41
+ end
42
+ nil
43
+ end
31
44
  end
32
45
  end
33
46
  end
@@ -29,7 +29,8 @@ module Avm
29
29
 
30
30
  # @return [Avm::Sources::Configuration]
31
31
  def old_configuration_uncached
32
- ::Avm::Sources::Configuration.find_in_path(path)
32
+ ::Avm::Sources::Configuration.find_in_path(path) ||
33
+ ::Avm::Sources::Configuration.temp_instance
33
34
  end
34
35
  end
35
36
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Sources
7
+ class Base
8
+ module Parent
9
+ # @return [Avm::Sources::Base]
10
+ def parent
11
+ parent_by_option || parent_by_search
12
+ end
13
+
14
+ # @return [Avm::Sources::Base]
15
+ def parent_by_option
16
+ options[OPTION_PARENT]
17
+ end
18
+
19
+ # @return [Avm::Sources::Base]
20
+ def parent_by_search
21
+ parent_path = path.parent
22
+ until parent_path.root?
23
+ ::Avm::Registry.sources.detect_optional(parent_path).if_present { |v| return v }
24
+ parent_path = parent_path.parent
25
+ end
26
+ nil
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -21,12 +21,6 @@ module Avm
21
21
  abstract_methods :update, :valid?
22
22
 
23
23
  delegate :locale, to: :old_configuration
24
- delegate :to_s, to: :path
25
-
26
- # @return [Avm::Sources::Base]
27
- def parent
28
- options[OPTION_PARENT]
29
- end
30
24
 
31
25
  # @return [Pathname]
32
26
  def relative_path
@@ -35,6 +29,10 @@ module Avm
35
29
  path.relative_path_from(parent.path)
36
30
  end
37
31
 
32
+ def to_s
33
+ "#{self.class}[#{path}]"
34
+ end
35
+
38
36
  # @return [Enumerable<Avm::Sources::Base>]
39
37
  def subs
40
38
  scm.subs.map { |subrepo| ::Avm::Registry.sources.detect(subrepo.path, parent: self) }
@@ -6,10 +6,12 @@ require 'i18n'
6
6
  module Avm
7
7
  module Sources
8
8
  class Configuration < ::EacConfig::OldConfigs
9
- LOCALE_KEY = :locale
9
+ module Locale
10
+ LOCALE_KEY = :locale
10
11
 
11
- def locale
12
- read_entry(LOCALE_KEY) || ::I18n.default_locale
12
+ def locale
13
+ read_entry(LOCALE_KEY) || ::I18n.default_locale
14
+ end
13
15
  end
14
16
  end
15
17
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Sources
5
+ class Configuration < ::EacConfig::OldConfigs
6
+ module Rubocop
7
+ RUBOCOP_COMMAND_KEY = 'ruby.rubocop.command'
8
+ RUBOCOP_GEMFILE_KEY = 'ruby.rubocop.gemfile'
9
+
10
+ def rubocop_command
11
+ read_command(RUBOCOP_COMMAND_KEY)
12
+ end
13
+
14
+ def rubocop_gemfile
15
+ gemfile_path = read_entry(RUBOCOP_GEMFILE_KEY)
16
+ return nil if gemfile_path.blank?
17
+
18
+ gemfile_path = gemfile_path.to_pathname.expand_path(storage_path.parent)
19
+ return gemfile_path if gemfile_path.file?
20
+
21
+ raise "Gemfile path \"#{gemfile_path}\" does not exist or is not a file"
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/patches/eac_ruby_gems_utils/gem'
4
+
5
+ module Avm
6
+ module Sources
7
+ class Configuration < ::EacConfig::OldConfigs
8
+ module Tests
9
+ BUNDLE_TEST_COMMAND_KEY = 'test.bundle_command'
10
+ TEST_COMMAND_KEY = 'test.command'
11
+
12
+ def any_test_command
13
+ bundle_test_command || test_command
14
+ end
15
+
16
+ def test_command
17
+ read_command(TEST_COMMAND_KEY)
18
+ end
19
+
20
+ def bundle_test_command
21
+ read_entry(BUNDLE_TEST_COMMAND_KEY).if_present do |v|
22
+ args = v.is_a?(::Enumerable) ? v.map(&:to_s) : ::Shellwords.split(v)
23
+ ::EacRubyGemsUtils::Gem.new(::File.dirname(storage_path)).bundle(*args).chdir_root
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -7,7 +7,7 @@ require 'yaml'
7
7
  module Avm
8
8
  module Sources
9
9
  class Configuration < ::EacConfig::OldConfigs
10
- require_sub __FILE__
10
+ require_sub __FILE__, include_modules: true
11
11
 
12
12
  FILENAMES = %w[.avm.yml .avm.yaml].freeze
13
13
 
@@ -28,6 +28,10 @@ module Avm
28
28
  nil
29
29
  end
30
30
 
31
+ def temp_instance
32
+ new(::Tempfile.new(['.avm', '.yaml']))
33
+ end
34
+
31
35
  private
32
36
 
33
37
  def internal_find_path(absolute_pathname)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.18.1'
4
+ VERSION = '0.19.0'
5
5
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.10'
15
+ s.add_dependency 'avm', '~> 0.19'
16
16
  s.add_dependency 'eac_ruby_utils', '~> 0.80'
17
17
 
18
18
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/sources/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacGenericBase0
8
+ module Sources
9
+ class Base < ::Avm::Sources::Base
10
+ module VersionBump
11
+ def after_sub_version_bump_do_changes
12
+ # Do nothing
13
+ end
14
+
15
+ # @return [Avm::Scms::Commit, nil]
16
+ def version_bump(target_version)
17
+ scm.commit_if_change(version_bump_commit_message(target_version)) do
18
+ version_bump_do_changes(target_version)
19
+ parent.if_present(&:after_sub_version_bump_do_changes)
20
+ end
21
+ end
22
+
23
+ # @return [String]
24
+ def version_bump_commit_message(target_version)
25
+ i18n_translate(__method__, version: target_version, __locale: locale)
26
+ end
27
+
28
+ def version_bump_do_changes(_target_version)
29
+ raise_abstract_method(__METHOD__)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -8,13 +8,16 @@ module Avm
8
8
  module EacGenericBase0
9
9
  module Sources
10
10
  class Base < ::Avm::Sources::Base
11
+ require_sub __FILE__, include_modules: true
12
+ enable_abstract_methods
13
+
11
14
  # @return [Avm::EacGenericBase0::Sources::Tester]
12
15
  def tester_class
13
16
  Avm::EacGenericBase0::Sources::Tester
14
17
  end
15
18
 
16
19
  def valid?
17
- path.directory?
20
+ ::Avm::Registry.scms.detect_optional(path).present?
18
21
  end
19
22
  end
20
23
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacGenericBase0
5
- VERSION = '0.1.1'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
@@ -0,0 +1,6 @@
1
+ en:
2
+ avm:
3
+ eac_generic_base0:
4
+ sources:
5
+ base:
6
+ version_bump_commit_message: Bump to '%{version}'.
@@ -0,0 +1,6 @@
1
+ pt-BR:
2
+ avm:
3
+ eac_generic_base0:
4
+ sources:
5
+ base:
6
+ version_bump_commit_message: Versão para '%{version}'.
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.files = Dir['{lib,locale}/**/*']
14
14
 
15
15
  s.add_dependency 'avm', '~> 0.9'
16
- s.add_dependency 'avm-eac_generic_base0', '~> 0.1'
16
+ s.add_dependency 'avm-eac_generic_base0', '~> 0.2'
17
17
  s.add_dependency 'eac_ruby_gems_utils', '~> 0.9', '>= 0.9.8'
18
18
  s.add_dependency 'eac_ruby_utils', '~> 0.80'
19
19
 
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_generic_base0/sources/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRubyBase1
8
+ module Sources
9
+ class Base < ::Avm::EacGenericBase0::Sources::Base
10
+ module VersionBump
11
+ def after_sub_version_bump_do_changes
12
+ the_gem.bundle('install').chdir_root.execute!
13
+ end
14
+
15
+ def version_bump_do_changes(target_version)
16
+ self.version = target_version
17
+ the_gem.bundle('install').chdir_root.execute!
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -3,6 +3,7 @@
3
3
  require 'avm/eac_generic_base0/sources/base'
4
4
  require 'avm/eac_ruby_base1/sources/update'
5
5
  require 'avm/eac_ruby_base1/sources/tester'
6
+ require 'avm/version_number'
6
7
  require 'eac_ruby_gems_utils/gem'
7
8
  require 'eac_ruby_utils/core_ext'
8
9
 
@@ -10,6 +11,7 @@ module Avm
10
11
  module EacRubyBase1
11
12
  module Sources
12
13
  class Base < ::Avm::EacGenericBase0::Sources::Base
14
+ require_sub __FILE__, include_modules: :prepend, require_dependency: true
13
15
  delegate :gemspec_path, to: :the_gem
14
16
 
15
17
  def gemfile_path
@@ -33,6 +35,15 @@ module Avm
33
35
  def update
34
36
  ::Avm::EacRubyBase1::Sources::Update.new(self)
35
37
  end
38
+
39
+ # @return [Avm::VersionNumber]
40
+ def version
41
+ the_gem.version.if_present { |v| ::Avm::VersionNumber.new(v) }
42
+ end
43
+
44
+ def version=(value)
45
+ the_gem.version_file.value = value
46
+ end
36
47
  end
37
48
  end
38
49
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_ruby_base1/patches/i18n'
4
3
  require 'eac_ruby_utils/core_ext'
5
4
 
6
5
  module Avm
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRubyBase1
5
- VERSION = '0.4.0'
5
+ VERSION = '0.5.0'
6
6
  end
7
7
  end
@@ -8,9 +8,7 @@ module Avm
8
8
  module Git
9
9
  module Scms
10
10
  class GitSubrepo < ::Avm::Scms::Base
11
- def commit_if_change(_message)
12
- nyi
13
- end
11
+ delegate :commit_if_change, to: :parent_scm
14
12
 
15
13
  def update
16
14
  git_subrepo.command('clean').execute!
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Git
5
- VERSION = '0.3.2'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/locales/from_all_gems'
3
4
  require 'eac_ruby_utils/patches'
4
5
  require 'active_support/dependencies/autoload'
5
6
  require 'active_support/core_ext'
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/locales/from_gem'
4
+ ::EacRubyUtils::Locales::FromGem.include_all
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'i18n'
4
+ require 'eac_ruby_utils/patches/class/common_constructor'
5
+ require 'eac_ruby_utils/patches/object/to_pathname'
6
+
7
+ module EacRubyUtils
8
+ module Locales
9
+ class FromGem
10
+ class << self
11
+ def include_all(i18n_obj = nil)
12
+ ::Gem::Specification.each { |gemspec| new(gemspec, i18n_obj).include }
13
+ end
14
+ end
15
+
16
+ LOCALES_DIR_SUBPATH = 'locale'
17
+ LOCALES_FILES_GLOB_PATTERNS = %w[*.yaml *.yml].freeze
18
+
19
+ common_constructor :gemspec, :i18n_obj, default: [nil] do
20
+ self.i18n_obj ||= ::I18n
21
+ end
22
+
23
+ # @return [Boolean]
24
+ delegate :exist?, to: :path
25
+
26
+ # @return [Pathname, nil]
27
+ def include
28
+ return nil unless exist?
29
+
30
+ ::I18n.load_path += paths_to_load.map(&:to_path)
31
+ path
32
+ end
33
+
34
+ # @return [Pathname]
35
+ def path
36
+ gemspec.gem_dir.to_pathname.join(LOCALES_DIR_SUBPATH)
37
+ end
38
+
39
+ # @return [Pathname]
40
+ def paths_to_load
41
+ return [] unless exist?
42
+
43
+ LOCALES_FILES_GLOB_PATTERNS.inject([]) { |a, e| a + path.glob(e) }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/string/inflections'
4
+ require 'eac_ruby_utils/common_constructor'
5
+ require 'i18n'
6
+
7
+ module EacRubyUtils
8
+ module Locales
9
+ class ModuleI18nTranslate
10
+ TRANSLATE_LOCALE_KEY = :__locale
11
+
12
+ common_constructor :the_module, :entry_suffix, :values, default: [{}]
13
+
14
+ def ancestor_i18n_translate(ancestor)
15
+ t = self.class.new(ancestor, entry_suffix, values)
16
+ t.exists? ? t.i18n_translate : nil
17
+ end
18
+
19
+ def ancestors_i18n_translate
20
+ the_module.ancestors.lazy.map { |v| ancestor_i18n_translate(v) }.find(&:present?)
21
+ end
22
+
23
+ def exists?
24
+ ::I18n.exists?(i18n_key)
25
+ end
26
+
27
+ def i18n_key
28
+ "#{module_entry_prefix}.#{entry_suffix}"
29
+ end
30
+
31
+ def i18n_options
32
+ values.except(TRANSLATE_LOCALE_KEY)
33
+ end
34
+
35
+ def i18n_translate
36
+ ::I18n.translate(i18n_key, i18n_options)
37
+ end
38
+
39
+ def locale
40
+ values[TRANSLATE_LOCALE_KEY]
41
+ end
42
+
43
+ def module_entry_prefix
44
+ the_module.name.underscore.gsub('/', '.')
45
+ end
46
+
47
+ def on_locale(&block)
48
+ if locale.present?
49
+ on_present_locale(&block)
50
+ else
51
+ block.call
52
+ end
53
+ end
54
+
55
+ def result
56
+ on_locale do
57
+ ancestors_i18n_translate || i18n_translate
58
+ end
59
+ end
60
+
61
+ private
62
+
63
+ def on_present_locale(&block)
64
+ old_locale = ::I18n.locale
65
+ begin
66
+ ::I18n.locale = locale
67
+ block.call
68
+ ensure
69
+ ::I18n.locale = old_locale
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+
5
+ module EacRubyUtils
6
+ module Locales
7
+ ::EacRubyUtils.require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/module/introspection'
4
+ require 'eac_ruby_utils/patches/class/common_constructor'
5
+ require 'eac_ruby_utils/patches/module/common_concern'
6
+ require 'eac_ruby_utils/patches/string/inflector'
7
+
8
+ module EacRubyUtils
9
+ module MethodClass
10
+ common_concern do
11
+ ::EacRubyUtils::MethodClass::Setup.new(self)
12
+ end
13
+
14
+ class Setup
15
+ common_constructor :method_class do
16
+ perform
17
+ end
18
+
19
+ def perform
20
+ the_setup = self
21
+ sender_module.define_method(method_name) do |*args, &block|
22
+ the_setup.method_class.new(self, *args, &block).result
23
+ end
24
+ end
25
+
26
+ def method_name
27
+ method_class.name.demodulize.underscore.variableize
28
+ end
29
+
30
+ def sender_module
31
+ method_class.module_parent
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,32 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/core_ext/string/inflections'
4
- require 'i18n'
3
+ require 'eac_ruby_utils/locales/module_i18n_translate'
5
4
 
6
5
  class Module
7
- TRANSLATE_LOCALE_KEY = :__locale
8
-
9
6
  def i18n_translate(entry_suffix, values = {})
10
- on_i18n_locale(values.delete(TRANSLATE_LOCALE_KEY)) do
11
- ::I18n.translate(i18n_translate_entry_full(entry_suffix), values)
12
- end
13
- end
14
-
15
- def i18n_translate_entry_full(entry_suffix)
16
- "#{i18n_translate_entry_self_prefix}.#{entry_suffix}"
17
- end
18
-
19
- def i18n_translate_entry_self_prefix
20
- name.underscore.gsub('/', '.')
21
- end
22
-
23
- def on_i18n_locale(locale)
24
- old_locale = ::I18n.locale
25
- begin
26
- ::I18n.locale = locale
27
- yield
28
- ensure
29
- ::I18n.locale = old_locale
30
- end
7
+ ::EacRubyUtils::Locales::ModuleI18nTranslate.new(self, entry_suffix, values).result
31
8
  end
32
9
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/method_class'
4
+
5
+ class Module
6
+ def enable_method_class
7
+ ::EacRubyUtils.patch(self, ::EacRubyUtils::MethodClass)
8
+ end
9
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_support/inflector'
4
+ require 'active_support/dependencies'
4
5
  require 'eac_ruby_utils/listable'
5
6
 
6
7
  module EacRubyUtils
@@ -11,6 +12,14 @@ module EacRubyUtils
11
12
  end
12
13
 
13
14
  class RequireSub
15
+ INCLUDE_MODULES_MAP = {
16
+ nil => nil,
17
+ false => nil,
18
+ true => :include,
19
+ include: :include,
20
+ prepend: :prepend
21
+ }.freeze
22
+
14
23
  include ::EacRubyUtils::Listable
15
24
  lists.add_symbol :option, :base, :include_modules, :require_dependency
16
25
 
@@ -26,56 +35,100 @@ module EacRubyUtils
26
35
  include_modules
27
36
  end
28
37
 
29
- private
38
+ def base
39
+ options[OPTION_BASE] || raise('Option :base not setted')
40
+ end
30
41
 
31
- def active_support_require(path)
32
- return false unless options[OPTION_REQUIRE_DEPENDENCY]
42
+ def base?
43
+ options[OPTION_BASE] ? true : false
44
+ end
33
45
 
34
- ::Kernel.require_dependency(path)
35
- true
46
+ def include_modules
47
+ sub_files.each(&:include_module)
36
48
  end
37
49
 
38
- def autoload_require(path)
39
- return false unless base?
50
+ def include_or_prepend_method
51
+ return INCLUDE_MODULES_MAP.fetch(options[OPTION_INCLUDE_MODULES]) if
52
+ INCLUDE_MODULES_MAP.key?(options[OPTION_INCLUDE_MODULES])
40
53
 
41
- basename = ::File.basename(path, '.*')
42
- return false if basename.start_with?('_')
54
+ raise ::ArgumentError, "Invalid value for 'options[OPTION_INCLUDE_MODULES]':" \
55
+ " \"#{options[OPTION_INCLUDE_MODULES]}\""
56
+ end
43
57
 
44
- base.autoload ::ActiveSupport::Inflector.camelize(basename), path
45
- true
58
+ def require_sub_files
59
+ sub_files.each(&:require_file)
46
60
  end
47
61
 
48
- def include_modules
49
- return unless options[OPTION_INCLUDE_MODULES]
62
+ def sub_files
63
+ @sub_files ||= Dir["#{File.dirname(file)}/#{::File.basename(file, '.*')}/*.rb"].sort
64
+ .map { |path| SubFile.new(self, path) }
65
+ end
50
66
 
51
- base.constants.each do |constant_name|
52
- constant = base.const_get(constant_name)
53
- next unless constant.is_a?(::Module) && !constant.is_a?(::Class)
67
+ class SubFile
68
+ attr_reader :owner, :path
54
69
 
55
- base.include(constant)
70
+ def initialize(owner, path)
71
+ @owner = owner
72
+ @path = path
56
73
  end
57
- end
58
74
 
59
- def base
60
- options[OPTION_BASE] || raise('Option :base not setted')
61
- end
75
+ def base_constant
76
+ return nil unless owner.base?
62
77
 
63
- def base?
64
- options[OPTION_BASE] ? true : false
65
- end
78
+ owner.base.const_get(constant_name)
79
+ rescue ::NameError
80
+ nil
81
+ end
66
82
 
67
- def kernel_require(path)
68
- ::Kernel.require(path)
69
- end
83
+ def constant_name
84
+ ::ActiveSupport::Inflector.camelize(::File.basename(path, '.rb'))
85
+ end
70
86
 
71
- def require_sub_files
72
- Dir["#{File.dirname(file)}/#{::File.basename(file, '.*')}/*.rb"].sort.each do |path|
73
- require_sub_file(path)
87
+ def include_module
88
+ return unless module?
89
+
90
+ owner.include_or_prepend_method.if_present do |v|
91
+ owner.base.send(v, base_constant)
92
+ end
93
+ end
94
+
95
+ def include_or_prepend_method
96
+ return :include if owner.options[OPTION_INCLUDE_MODULES]
97
+ return :prepend if owner.options[OPTION_PREPEND_MODULES]
98
+
99
+ nil
100
+ end
101
+
102
+ def module?
103
+ base_constant.is_a?(::Module) && !base_constant.is_a?(::Class)
104
+ end
105
+
106
+ def require_file
107
+ active_support_require || autoload_require || kernel_require
108
+ end
109
+
110
+ private
111
+
112
+ def active_support_require
113
+ return false unless owner.options[OPTION_REQUIRE_DEPENDENCY]
114
+
115
+ ::Kernel.require_dependency(path)
116
+ true
74
117
  end
75
- end
76
118
 
77
- def require_sub_file(path)
78
- active_support_require(path) || autoload_require(path) || kernel_require(path)
119
+ def autoload_require
120
+ return false unless owner.base?
121
+
122
+ basename = ::File.basename(path, '.*')
123
+ return false if basename.start_with?('_')
124
+
125
+ owner.base.autoload ::ActiveSupport::Inflector.camelize(basename), path
126
+ true
127
+ end
128
+
129
+ def kernel_require
130
+ ::Kernel.require(path)
131
+ end
79
132
  end
80
133
  end
81
134
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.94.2'
4
+ VERSION = '0.95.0'
5
5
  end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/method_class'
4
+
5
+ ::RSpec.describe ::EacRubyUtils::MethodClass do
6
+ let(:sender_class) do
7
+ ::Class.new do
8
+ attr_accessor :sender_value
9
+
10
+ def initialize(sender_value)
11
+ self.sender_value = sender_value
12
+ end
13
+ end
14
+ end
15
+
16
+ let(:method_class) do
17
+ the_described_class = described_class
18
+ ::Class.new do
19
+ def self.name
20
+ 'TheSender::PerformX'
21
+ end
22
+
23
+ include the_described_class
24
+ attr_accessor :sender, :method_param
25
+
26
+ def initialize(sender, method_param)
27
+ self.sender = sender
28
+ self.method_param = method_param
29
+ end
30
+
31
+ def result
32
+ "#{sender.sender_value},#{method_param}"
33
+ end
34
+ end
35
+ end
36
+
37
+ let(:sender_instance) { sender_class.new('AAA') }
38
+
39
+ before do
40
+ ::Object.const_set('TheSender', sender_class)
41
+ sender_class.const_set('PerformX', method_class)
42
+ end
43
+
44
+ it { expect(sender_instance).to respond_to(:perform_x) }
45
+ it { expect(sender_instance.perform_x('BBB')).to eq('AAA,BBB') }
46
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/method_class'
4
+ require 'eac_ruby_utils/patches/module/method_class'
5
+
6
+ RSpec.describe ::Class do
7
+ let(:stub_method_class) do
8
+ described_class.new do
9
+ def self.name
10
+ 'StubMethodClass'
11
+ end
12
+
13
+ enable_method_class
14
+ end
15
+ end
16
+
17
+ describe '#enable_simple_cache' do
18
+ it { expect(stub_method_class.included_modules).to include(::EacRubyUtils::MethodClass) }
19
+ end
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.116.2
4
+ version: 0.117.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-06 00:00:00.000000000 Z
11
+ date: 2022-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -354,12 +354,10 @@ files:
354
354
  - lib/avm/projects/stereotypes/git_subtree/warp.rb
355
355
  - lib/avm/projects/stereotypes/rails_application.rb
356
356
  - lib/avm/projects/stereotypes/rails_application/local_project_mixin.rb
357
- - lib/avm/projects/stereotypes/rails_application/update.rb
358
357
  - lib/avm/projects/stereotypes/redmine_plugin.rb
359
358
  - lib/avm/projects/stereotypes/ruby_gem.rb
360
359
  - lib/avm/projects/stereotypes/ruby_gem/local_project_mixin.rb
361
360
  - lib/avm/projects/stereotypes/ruby_gem/publish.rb
362
- - lib/avm/projects/stereotypes/ruby_gem/version_bump.rb
363
361
  - lib/avm/rails.rb
364
362
  - lib/avm/ruby.rb
365
363
  - lib/avm/ruby/bundler.rb
@@ -459,8 +457,11 @@ files:
459
457
  - sub/avm-eac_generic_base0/lib/avm/eac_generic_base0.rb
460
458
  - sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources.rb
461
459
  - sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb
460
+ - sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base/version_bump.rb
462
461
  - sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/tester.rb
463
462
  - sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb
463
+ - sub/avm-eac_generic_base0/locale/en.yaml
464
+ - sub/avm-eac_generic_base0/locale/pt-BR.yaml
464
465
  - sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/sources/base_spec.rb
465
466
  - sub/avm-eac_generic_base0/spec/rubocop_spec.rb
466
467
  - sub/avm-eac_generic_base0/spec/spec_helper.rb
@@ -541,14 +542,13 @@ files:
541
542
  - sub/avm-eac_ruby_base1/Gemfile
542
543
  - sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec
543
544
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb
544
- - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/patches.rb
545
- - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/patches/i18n.rb
546
545
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop.rb
547
546
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/configured.rb
548
547
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/envvar.rb
549
548
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/gemfile.rb
550
549
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources.rb
551
550
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb
551
+ - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb
552
552
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tester.rb
553
553
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update.rb
554
554
  - sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/sub_update.rb
@@ -762,11 +762,12 @@ files:
762
762
  - sub/avm/lib/avm/sources/base.rb
763
763
  - sub/avm/lib/avm/sources/base/configuration.rb
764
764
  - sub/avm/lib/avm/sources/base/instance.rb
765
+ - sub/avm/lib/avm/sources/base/parent.rb
765
766
  - sub/avm/lib/avm/sources/base/testing.rb
766
767
  - sub/avm/lib/avm/sources/configuration.rb
767
- - sub/avm/lib/avm/sources/configuration/_locale.rb
768
- - sub/avm/lib/avm/sources/configuration/_rubocop.rb
769
- - sub/avm/lib/avm/sources/configuration/_tests.rb
768
+ - sub/avm/lib/avm/sources/configuration/locale.rb
769
+ - sub/avm/lib/avm/sources/configuration/rubocop.rb
770
+ - sub/avm/lib/avm/sources/configuration/tests.rb
770
771
  - sub/avm/lib/avm/sources/tester.rb
771
772
  - sub/avm/lib/avm/sources/tests.rb
772
773
  - sub/avm/lib/avm/sources/tests/builder.rb
@@ -1281,6 +1282,11 @@ files:
1281
1282
  - sub/eac_ruby_utils/lib/eac_ruby_utils/listable/symbol_list.rb
1282
1283
  - sub/eac_ruby_utils/lib/eac_ruby_utils/listable/value.rb
1283
1284
  - sub/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb
1285
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb
1286
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb
1287
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb
1288
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb
1289
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/method_class.rb
1284
1290
  - sub/eac_ruby_utils/lib/eac_ruby_utils/options_consumer.rb
1285
1291
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patch.rb
1286
1292
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches.rb
@@ -1308,6 +1314,7 @@ files:
1308
1314
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb
1309
1315
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb
1310
1316
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/listable.rb
1317
+ - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/method_class.rb
1311
1318
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch.rb
1312
1319
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/require_sub.rb
1313
1320
  - sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/simple_cache.rb
@@ -1380,6 +1387,7 @@ files:
1380
1387
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb
1381
1388
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb
1382
1389
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb
1390
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/method_class_spec.rb
1383
1391
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/options_consumer_spec.rb
1384
1392
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/abstract_spec.rb
1385
1393
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/self_included_modules_spec.rb
@@ -1390,6 +1398,7 @@ files:
1390
1398
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/sym_keys_hash_spec.rb
1391
1399
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/compare_by_spec.rb
1392
1400
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb
1401
+ - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/method_class_spec.rb
1393
1402
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb
1394
1403
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb
1395
1404
  - sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/call_if_proc_spec.rb
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/projects/stereotypes/ruby_gem/update'
4
-
5
- module Avm
6
- module Projects
7
- module Stereotypes
8
- class RailsApplication
9
- class Update < ::Avm::Projects::Stereotypes::RubyGem::Update
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/patches/i18n'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module Projects
8
- module Stereotypes
9
- class RubyGem
10
- class VersionBump
11
- enable_speaker
12
- common_constructor :instance, :target_version
13
-
14
- def run
15
- git_checkout
16
- change_version
17
- bundle_run
18
- git_commit
19
- end
20
-
21
- private
22
-
23
- def bundle_run
24
- infom 'Running "bundle install"...'
25
- instance.ruby_gem.bundle('install').execute!
26
- end
27
-
28
- def change_version
29
- infom 'Setting project version...'
30
- instance.version = target_version
31
- end
32
-
33
- def git_checkout
34
- return unless instance.respond_to?(:git_repo)
35
-
36
- infom "Checkouting #{changing_files.map(&:to_path).join(', ')}..."
37
- instance.git_repo.command('checkout', '--',
38
- *changing_files.map(&:to_path)).execute!
39
- end
40
-
41
- def git_commit
42
- return unless instance.respond_to?(:git_repo)
43
-
44
- infom "Commiting #{changing_files.map(&:to_path).join(', ')}..."
45
- instance.git_repo.command('commit', '-m', git_commit_message, '--',
46
- *changing_files.map(&:to_path)).execute!
47
- end
48
-
49
- def git_commit_message
50
- i18n_translate(__method__, version: target_version, __locale: instance.locale)
51
- end
52
-
53
- def changing_files
54
- [instance.ruby_gem.gemfile_lock_path, instance.ruby_gem.version_file_path]
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avm
4
- module Sources
5
- class Configuration < ::EacConfig::OldConfigs
6
- RUBOCOP_COMMAND_KEY = 'ruby.rubocop.command'
7
- RUBOCOP_GEMFILE_KEY = 'ruby.rubocop.gemfile'
8
-
9
- def rubocop_command
10
- read_command(RUBOCOP_COMMAND_KEY)
11
- end
12
-
13
- def rubocop_gemfile
14
- gemfile_path = read_entry(RUBOCOP_GEMFILE_KEY)
15
- return nil if gemfile_path.blank?
16
-
17
- gemfile_path = gemfile_path.to_pathname.expand_path(storage_path.parent)
18
- return gemfile_path if gemfile_path.file?
19
-
20
- raise "Gemfile path \"#{gemfile_path}\" does not exist or is not a file"
21
- end
22
- end
23
- end
24
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/patches/eac_ruby_gems_utils/gem'
4
-
5
- module Avm
6
- module Sources
7
- class Configuration < ::EacConfig::OldConfigs
8
- BUNDLE_TEST_COMMAND_KEY = 'test.bundle_command'
9
- TEST_COMMAND_KEY = 'test.command'
10
-
11
- def any_test_command
12
- bundle_test_command || test_command
13
- end
14
-
15
- def test_command
16
- read_command(TEST_COMMAND_KEY)
17
- end
18
-
19
- def bundle_test_command
20
- read_entry(BUNDLE_TEST_COMMAND_KEY).if_present do |v|
21
- args = v.is_a?(::Enumerable) ? v.map(&:to_s) : ::Shellwords.split(v)
22
- ::EacRubyGemsUtils::Gem.new(::File.dirname(storage_path)).bundle(*args).chdir_root
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'i18n'
5
-
6
- ::I18n.load_path += __dir__.to_pathname.expand_path.parent_n(4).join('locale').glob('*.yaml')
7
- .map(&:to_path)
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/require_sub'
4
- ::EacRubyUtils.require_sub(__FILE__)