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.
- checksums.yaml +4 -4
- data/lib/avm/tools/runner/app_src/version_bump.rb +4 -9
- data/lib/avm/tools/version.rb +1 -1
- data/sub/avm/avm.gemspec +1 -1
- data/sub/avm/lib/avm/scms/base.rb +13 -0
- data/sub/avm/lib/avm/sources/base/configuration.rb +2 -1
- data/sub/avm/lib/avm/sources/base/parent.rb +31 -0
- data/sub/avm/lib/avm/sources/base.rb +4 -6
- data/sub/avm/lib/avm/sources/configuration/{_locale.rb → locale.rb} +5 -3
- data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
- data/sub/avm/lib/avm/sources/configuration/tests.rb +29 -0
- data/sub/avm/lib/avm/sources/configuration.rb +5 -1
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +1 -1
- data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base/version_bump.rb +35 -0
- data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb +4 -1
- data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +1 -1
- data/sub/avm-eac_generic_base0/locale/en.yaml +6 -0
- data/sub/avm-eac_generic_base0/locale/pt-BR.yaml +6 -0
- data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +1 -1
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb +23 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb +11 -0
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update.rb +0 -1
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
- data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +1 -3
- data/sub/avm-git/lib/avm/git/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb +1 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb +4 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb +47 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb +74 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb +9 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/method_class.rb +35 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb +2 -25
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/method_class.rb +9 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +86 -33
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/method_class_spec.rb +46 -0
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/method_class_spec.rb +20 -0
- metadata +18 -9
- data/lib/avm/projects/stereotypes/rails_application/update.rb +0 -14
- data/lib/avm/projects/stereotypes/ruby_gem/version_bump.rb +0 -60
- data/sub/avm/lib/avm/sources/configuration/_rubocop.rb +0 -24
- data/sub/avm/lib/avm/sources/configuration/_tests.rb +0 -27
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/patches/i18n.rb +0 -7
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aae509f1d4971fd8a6d39a9f20cc4a3dab9fd28267c333ffe521cba9252f20bb
|
4
|
+
data.tar.gz: f27d6bd59c10b9638f1f42b173d38a53a677b1d8de4b1a01c63e170ed1ed362f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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(:
|
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(:
|
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(:
|
46
|
+
runner_context.call(:subject).if_respond('version')
|
52
47
|
end
|
53
48
|
|
54
49
|
def target_version_uncached
|
data/lib/avm/tools/version.rb
CHANGED
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.
|
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
|
-
|
9
|
+
module Locale
|
10
|
+
LOCALE_KEY = :locale
|
10
11
|
|
11
|
-
|
12
|
-
|
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)
|
data/sub/avm/lib/avm/version.rb
CHANGED
@@ -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.
|
20
|
+
::Avm::Registry.scms.detect_optional(path).present?
|
18
21
|
end
|
19
22
|
end
|
20
23
|
end
|
@@ -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.
|
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
|
@@ -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,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 '
|
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
|
-
|
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
|
@@ -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
|
-
|
38
|
+
def base
|
39
|
+
options[OPTION_BASE] || raise('Option :base not setted')
|
40
|
+
end
|
30
41
|
|
31
|
-
def
|
32
|
-
|
42
|
+
def base?
|
43
|
+
options[OPTION_BASE] ? true : false
|
44
|
+
end
|
33
45
|
|
34
|
-
|
35
|
-
|
46
|
+
def include_modules
|
47
|
+
sub_files.each(&:include_module)
|
36
48
|
end
|
37
49
|
|
38
|
-
def
|
39
|
-
return
|
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
|
-
|
42
|
-
|
54
|
+
raise ::ArgumentError, "Invalid value for 'options[OPTION_INCLUDE_MODULES]':" \
|
55
|
+
" \"#{options[OPTION_INCLUDE_MODULES]}\""
|
56
|
+
end
|
43
57
|
|
44
|
-
|
45
|
-
|
58
|
+
def require_sub_files
|
59
|
+
sub_files.each(&:require_file)
|
46
60
|
end
|
47
61
|
|
48
|
-
def
|
49
|
-
|
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
|
-
|
52
|
-
|
53
|
-
next unless constant.is_a?(::Module) && !constant.is_a?(::Class)
|
67
|
+
class SubFile
|
68
|
+
attr_reader :owner, :path
|
54
69
|
|
55
|
-
|
70
|
+
def initialize(owner, path)
|
71
|
+
@owner = owner
|
72
|
+
@path = path
|
56
73
|
end
|
57
|
-
end
|
58
74
|
|
59
|
-
|
60
|
-
|
61
|
-
end
|
75
|
+
def base_constant
|
76
|
+
return nil unless owner.base?
|
62
77
|
|
63
|
-
|
64
|
-
|
65
|
-
|
78
|
+
owner.base.const_get(constant_name)
|
79
|
+
rescue ::NameError
|
80
|
+
nil
|
81
|
+
end
|
66
82
|
|
67
|
-
|
68
|
-
|
69
|
-
|
83
|
+
def constant_name
|
84
|
+
::ActiveSupport::Inflector.camelize(::File.basename(path, '.rb'))
|
85
|
+
end
|
70
86
|
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
78
|
-
|
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
|
@@ -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.
|
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-
|
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/
|
768
|
-
- sub/avm/lib/avm/sources/configuration/
|
769
|
-
- sub/avm/lib/avm/sources/configuration/
|
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
|