avm-eac_ruby_base1 0.41.1 → 0.42.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3bd44d7c8f8a3238cc02e153c0861bd441949f28859d0cbfb32d28323d4bd93
4
- data.tar.gz: 690d9ee1504a31181c8bfa111b5d82504bde9cb193fbc592bc1dcb5aaffa6f44
3
+ metadata.gz: 44f63022f7ec46cc47b7685d8205816192fb9b99fbc3c5a68a09872a346a410a
4
+ data.tar.gz: 8ab73a0a063fd5a74d74411e1fb505aebb2e864906fedee3ae62df4aaa2b2496
5
5
  SHA512:
6
- metadata.gz: 60e8e8302d505e4e62c6300c1a330e1989d4a72d4e0e91f2cb8db252056f51067d1933886deb812c77e8d7ec12111f3014853d7b5973cd4c739895c8a3897f83
7
- data.tar.gz: 1790525ea537b2eac3d8d284bba45e715bc4769677689dc7bc5e206522639a096b9b1e99dee9a7f76d0ba251ba2ec4b7c0a78c2037a9a465f80ccf72bccfff0b
6
+ metadata.gz: c494efbb96ba42d9ad200c3795ddc413b62389715af52af6335f5820ab0e8da83cb0d915282824aeedf222b2fd91c5557ef4e231a71f49efbf00ea6a097848e3
7
+ data.tar.gz: f2645c8feb6518536df8df7929339e501cf181991eda66f6de38afba91b6fc03e723a10d300b869499ed50377e7459502743b04a500ec9ba3890b7a00eba58dd
@@ -13,6 +13,11 @@ module Avm
13
13
  self.type = self.class.lists.type.value_validate!(type)
14
14
  end
15
15
 
16
+ # @return [String]
17
+ def to_s
18
+ "#{self.class}[#{gem_name}, #{type}]"
19
+ end
20
+
16
21
  def version_specs=(version_specs)
17
22
  gemspec.add_or_replace_gem_line(gem_name, version_specs, type)
18
23
  end
@@ -5,22 +5,23 @@ module Avm
5
5
  module Sources
6
6
  class Base < ::Avm::EacGenericBase0::Sources::Base
7
7
  module Update
8
+ # @return [void]
8
9
  def on_sub_updated
9
- update_self_content
10
+ update_self_changes_before_subs
10
11
  end
11
12
 
12
- # @return [String]
13
- def update_self_commit_message
14
- i18n_translate(
15
- __method__,
16
- gemfile_lock_path: gemfile_lock_path.relative_path_from(path)
17
- )
13
+ # @param changes [Enumerable<Avm::Sources::Change>]
14
+ def update_self_changes_after_subs
15
+ super + [
16
+ ::Avm::EacRubyBase1::Sources::Update::Changes::UpdateRequirements.new(self)
17
+ ]
18
18
  end
19
19
 
20
- def update_self_content
21
- bundle_update.execute!
22
- rescue ::EacRubyUtils::Envs::ExecutionError
23
- raise ::Avm::Sources::UpdateError
20
+ # @param changes [Enumerable<Avm::Sources::Change>]
21
+ def update_self_changes_before_subs
22
+ super + [
23
+ ::Avm::EacRubyBase1::Sources::Update::Changes::BundleUpdate.new(self)
24
+ ]
24
25
  end
25
26
  end
26
27
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Sources
6
+ module Update
7
+ module Changes
8
+ class BundleUpdate < ::Avm::Sources::Change
9
+ # @return [String]
10
+ def commit_message
11
+ i18n_translate(
12
+ __method__,
13
+ gemfile_lock_path: source.gemfile_lock_path.relative_path_from(source.path)
14
+ )
15
+ end
16
+
17
+ # @return [void]
18
+ def perform
19
+ source.bundle_update.execute!
20
+ rescue ::EacRubyUtils::Envs::ExecutionError
21
+ raise ::Avm::Sources::UpdateError
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Sources
6
+ module Update
7
+ module Changes
8
+ class UpdateRequirements < ::Avm::Sources::Change
9
+ enable_memoized
10
+
11
+ # @return [void]
12
+ def perform
13
+ source.bundle.system!
14
+ update_gemspec
15
+ source.bundle.system!
16
+ end
17
+
18
+ RUBOCOP_OK_CODES = [256].freeze
19
+
20
+ protected
21
+
22
+ # @param dependency [Avm::EacRubyBase1::Rubygems::Gemspec::Dependency]
23
+ # @return [Array<String>]
24
+ def dependency_requirements_list(dependency)
25
+ ::Avm::EacRubyBase1::PreferredVersionRequirements.new(
26
+ source.gemfile_lock_gem_version(dependency.gem_name)
27
+ ).to_requirements_list
28
+ end
29
+
30
+ # @return [String]
31
+ def format_gemspec
32
+ source.rubocop_command.ignore_parent_exclusion(true).autocorrect(true)
33
+ .file(source.gemspec_path)
34
+ .execute!(exit_outputs: RUBOCOP_OK_CODES.index_with { |_k| nil })
35
+ end
36
+
37
+ # @return [Avm::EacRubyBase1::Rubygems::Gemspec]
38
+ memoize def gemspec
39
+ ::Avm::EacRubyBase1::Rubygems::Gemspec.from_file(source.gemspec_path)
40
+ end
41
+
42
+ # @return [String]
43
+ def update_gemspec
44
+ gemspec.dependencies.each do |dependency|
45
+ dependency.version_specs = dependency_requirements_list(dependency)
46
+ end
47
+ gemspec.write(source.gemspec_path)
48
+ format_gemspec
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRubyBase1
5
- VERSION = '0.41.1'
5
+ VERSION = '0.42.0'
6
6
  end
7
7
  end
data/locale/en.yml CHANGED
@@ -10,7 +10,10 @@ en:
10
10
  version_unpublished_check_result: "%{gem} not found in %{provider}"
11
11
  sources:
12
12
  base:
13
- update_self_commit_message: '%{gemfile_lock_path}: "bundle update".'
14
13
  update_version_no_scm_message: "Gem \"%{application_id}\" (Local): update to '%{version}'."
15
- update_dependency_requirements:
16
- commit_message: "Gem \"%{name}\": update to '%{requirements_list}'."
14
+ update:
15
+ changes:
16
+ bundle_update:
17
+ commit_message: '%{gemfile_lock_path}: "bundle update".'
18
+ update_requirements:
19
+ commit_message: 'Gemspec#dependencies[*]: update requirements.'
data/locale/pt-BR.yml CHANGED
@@ -10,7 +10,10 @@ pt-BR:
10
10
  version_unpublished_check_result: "%{gem} não encontrada em %{provider}."
11
11
  sources:
12
12
  base:
13
- update_self_commit_message: '%{gemfile_lock_path}: "bundle update".'
14
13
  update_version_no_scm_message: "Gem \"%{application_id}\" (Local): atualiza para '%{version}'."
15
- update_dependency_requirements:
16
- commit_message: "Gem \"%{name}\": atualiza para '%{requirements_list}'."
14
+ update:
15
+ changes:
16
+ bundle_update:
17
+ commit_message: '%{gemfile_lock_path}: "bundle update".'
18
+ update_requirements:
19
+ commit_message: 'Gemspec#dependencies[*]: atualiza requisitos.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_ruby_base1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.41.1
4
+ version: 0.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-07 00:00:00.000000000 Z
11
+ date: 2026-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.27'
19
+ version: '0.29'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.27'
26
+ version: '0.29'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.100'
33
+ version: '0.101'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.100'
40
+ version: '0.101'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: avm-eac_generic_base0
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +47,7 @@ dependencies:
47
47
  version: '0.15'
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 0.15.2
50
+ version: 0.15.3
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +57,7 @@ dependencies:
57
57
  version: '0.15'
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 0.15.2
60
+ version: 0.15.3
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: eac_envs-http
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -184,15 +184,15 @@ files:
184
184
  - lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock.rb
185
185
  - lib/avm/eac_ruby_base1/sources/runners/bundler/gemfile_lock/git.rb
186
186
  - lib/avm/eac_ruby_base1/sources/runners/bundler/incompatible.rb
187
- - lib/avm/eac_ruby_base1/sources/runners/update_dependencies_requirements.rb
188
187
  - lib/avm/eac_ruby_base1/sources/tests/base.rb
189
188
  - lib/avm/eac_ruby_base1/sources/tests/minitest.rb
190
189
  - lib/avm/eac_ruby_base1/sources/tests/multiple.rb
191
190
  - lib/avm/eac_ruby_base1/sources/tests/multiple/decorated_gem.rb
192
191
  - lib/avm/eac_ruby_base1/sources/tests/multiple/result.rb
193
192
  - lib/avm/eac_ruby_base1/sources/tests/rspec.rb
193
+ - lib/avm/eac_ruby_base1/sources/update/changes/bundle_update.rb
194
+ - lib/avm/eac_ruby_base1/sources/update/changes/update_requirements.rb
194
195
  - lib/avm/eac_ruby_base1/sources/update/sub_update.rb
195
- - lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
196
196
  - lib/avm/eac_ruby_base1/version.rb
197
197
  - locale/en.yml
198
198
  - locale/pt-BR.yml
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avm
4
- module EacRubyBase1
5
- module Sources
6
- module Runners
7
- class UpdateDependenciesRequirements
8
- runner_with :help do
9
- bool_opt '-a', '--all'
10
- arg_opt '-e', '--exclude', repeat: true
11
- pos_arg :gem_name, repeat: true, optional: true
12
- end
13
-
14
- def run
15
- start_banner
16
- update_gemfile_lock
17
- process_all_gems
18
- end
19
-
20
- def gemspec
21
- ::Avm::EacRubyBase1::Rubygems::Gemspec.from_file(
22
- runner_context.call(:source).gemspec_path
23
- )
24
- end
25
-
26
- private
27
-
28
- def exclude?(gem_name)
29
- parsed.exclude.include?(gem_name)
30
- end
31
-
32
- def gem_names_uncached
33
- ::Set.new(parsed.gem_name + gem_names_from_all).reject { |gem_name| exclude?(gem_name) }
34
- .sort
35
- end
36
-
37
- def gem_names_from_all
38
- return [] unless parsed.all?
39
-
40
- gemspec.dependencies.map(&:gem_name)
41
- end
42
-
43
- def process_all_gems
44
- gem_names.each do |gem_name|
45
- infov 'Gem to update', gem_name
46
- ::Avm::EacRubyBase1::Sources::UpdateDependencyRequirements
47
- .new(runner_context.call(:source), gem_name).perform
48
- end
49
- end
50
-
51
- def start_banner
52
- runner_context.call(:source_banner)
53
- infov 'Gems to update', gem_names.count
54
- end
55
-
56
- def update_gemfile_lock
57
- infom 'Updating Gemfile\'s lock...'
58
- runner_context.call(:source).bundle('update').execute!
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avm
4
- module EacRubyBase1
5
- module Sources
6
- class UpdateDependencyRequirements
7
- enable_simple_cache
8
- common_constructor :source, :gem_name
9
-
10
- RUBOCOP_OK_CODES = [256].freeze
11
-
12
- def perform
13
- source.scm.commit_if_change(commit_message) { update_code }
14
- end
15
-
16
- private
17
-
18
- # @return [String]
19
- def commit_message
20
- i18n_translate(__method__,
21
- name: gem_name,
22
- requirements_list: requirements_list.join(', '),
23
- __locale: source.locale)
24
- end
25
-
26
- def format_gemspec
27
- source.rubocop_command.ignore_parent_exclusion(true).autocorrect(true)
28
- .file(source.gemspec_path)
29
- .execute!(exit_outputs: RUBOCOP_OK_CODES.index_with { |_k| nil })
30
- end
31
-
32
- # @return [Array<String>]
33
- def requirements_list_uncached
34
- ::Avm::EacRubyBase1::PreferredVersionRequirements.new(
35
- source.gemfile_lock_gem_version(gem_name)
36
- ).to_requirements_list
37
- end
38
-
39
- def gemspec_uncached
40
- ::Avm::EacRubyBase1::Rubygems::Gemspec.from_file(source.gemspec_path)
41
- end
42
-
43
- def parent_bundle
44
- source.parent.if_present(&:on_sub_updated)
45
- end
46
-
47
- def update_code
48
- update_gemspec
49
- source.bundle.system!
50
- parent_bundle
51
- end
52
-
53
- def update_gemspec
54
- gemspec.dependency(gem_name).version_specs = requirements_list
55
- gemspec.write(source.gemspec_path)
56
- format_gemspec
57
- end
58
- end
59
- end
60
- end
61
- end