avm-tools 0.116.2 → 0.117.0

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