avm 0.97.0 → 0.98.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: a062f89de5280a1e2cbf17f5d7ee10e7a80025bc2bf1baa58123b438dbf4ccea
4
- data.tar.gz: 0e463b304850f07b42832c26838ccaccb59fd13915cc98fc1a9aa61e3e2b2ba4
3
+ metadata.gz: e42983390965104971cb474b02e9ca77161ae919e59beafe65d7361779f68074
4
+ data.tar.gz: 0f27ea22f0ced294d7db751ed224c032524656e883178736bee971083d76d456
5
5
  SHA512:
6
- metadata.gz: 6c5bd6a6c773b083167eabc9beabd79ee55f8ab275aec41cad3a8b2f76b398860615e4bf9987ee45be78a8e02653605586a54a4fd4c403814c7af150a6cd2d15
7
- data.tar.gz: c02b80e356dc7e924c02dd45ff1ad7baf930c81fa377274664b1d3a7e86abb8ff079b094ab3cf2aed7e0be4c9b1330e0e72d1c48cde43be18faa9769c31d52d8
6
+ metadata.gz: 42855e35c57afafd69f5b92ccc980ffb1d5d6e5133bf4f276623ceafcc0cfe18dc10f03dd743e79ad8d3af88a09386fd71235a34c22b4b2fbc3a0cb563d2dbc7
7
+ data.tar.gz: 69bfa480af64cb4bcb8ac3edeadf178b23412cfe9bb55e1fff27f585e1e3f4fc8fb7a627efd309234a2d854370c277013a6b41c964638923d1da3e625f63fca8
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/core_ext'
4
-
5
3
  module Avm
6
4
  module Applications
7
5
  class Base
@@ -28,7 +28,7 @@ module Avm
28
28
  stereotype.instance_class.new(self, suffix)
29
29
  end
30
30
 
31
- require_sub __FILE__, include_modules: true
31
+ require_sub __FILE__, include_modules: true, require_mode: :kernel
32
32
  end
33
33
  end
34
34
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/file_info'
4
3
  require 'ostruct'
5
4
 
6
5
  module Avm
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/file_info'
4
3
  require 'ostruct'
5
4
 
6
5
  module Avm
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/traversable'
4
-
5
3
  module Avm
6
4
  module FileFormats
7
5
  class SearchFormatter
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/file_info'
4
-
5
3
  module Avm
6
4
  module FileFormats
7
5
  class Utf8Assert
@@ -8,6 +8,7 @@ module Avm
8
8
  module Files
9
9
  class Deploy
10
10
  include ::Avm::Files::Appendable
11
+
11
12
  enable_simple_cache
12
13
 
13
14
  attr_reader :build_dir, :target_env, :target_path
@@ -7,6 +7,7 @@ module Avm
7
7
  class Base
8
8
  class SubcommandParent
9
9
  include ::EacCli::Runner
10
+
10
11
  enable_simple_cache
11
12
  common_constructor :instance do
12
13
  self.runner_context = ::EacCli::Runner::Context.new(self, argv: runner_argv)
@@ -7,6 +7,7 @@ module Avm
7
7
  enable_listable
8
8
  enable_simple_cache
9
9
  include ::Avm::Entries::Base
10
+
10
11
  require_sub __FILE__, include_modules: true
11
12
  include ::Avm::With::ExtraSubcommands
12
13
  include ::Avm::With::ApplicationStereotype
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ruby-progressbar'
4
-
5
3
  module Avm
6
4
  module Launcher
7
5
  class Context
@@ -19,24 +17,19 @@ module Avm
19
17
 
20
18
  # @return [Array<Avm::Launcher::Instances::Base>]
21
19
  def instances_uncached
22
- @progress = ::ProgressBar.create(title: 'Instance discovery', total: 1)
23
20
  root_instance_paths.flat_map { |path| path_instances(path, nil) }
24
- ensure
25
- @progress&.finish
26
21
  end
27
22
 
28
23
  # @param path [Avm::Launcher::Paths::Logical]
29
24
  # @param parent_instance [Avm::Launcher::Instances::Base]
30
25
  # @return [Array<Avm::Launcher::Instances::Base>]
31
26
  def path_instances(path, parent_instance)
32
- update_progress_format(path)
33
27
  on_rescued_path_instances(path) do |r|
34
28
  if path.project?
35
29
  parent_instance = ::Avm::Launcher::Instances::Base.instanciate(path, parent_instance)
36
30
  r << path
37
31
  end
38
32
  children = path.children
39
- update_progress_count(children)
40
33
  r.concat(children.flat_map { |c| path_instances(c, parent_instance) })
41
34
  end
42
35
  end
@@ -53,19 +46,6 @@ module Avm
53
46
  r
54
47
  end
55
48
 
56
- # @param path [Avm::Launcher::Paths::Logical]
57
- # @return [void]
58
- def update_progress_format(path)
59
- @progress.format = "%t (Paths: %c/%C, Current: #{path.logical}) |%B| %a"
60
- end
61
-
62
- # @param path [Array<Avm::Launcher::Paths::Logical>]
63
- # @return [void]
64
- def update_progress_count(children)
65
- @progress.total += children.count
66
- @progress.increment
67
- end
68
-
69
49
  require_sub __FILE__, require_mode: :kernel
70
50
  end
71
51
  end
@@ -2,15 +2,13 @@
2
2
 
3
3
  require 'active_support/core_ext/hash/indifferent_access'
4
4
 
5
- require 'eac_fs/contexts'
6
- require 'eac_fs/core_ext'
7
-
8
5
  require 'eac_cli/speaker'
9
6
 
10
7
  module Avm
11
8
  module Launcher
12
9
  class Context
13
10
  include ::EacRubyUtils::SimpleCache
11
+
14
12
  enable_speaker
15
13
 
16
14
  class << self
@@ -2,11 +2,13 @@
2
2
 
3
3
  module Avm
4
4
  module Registry
5
- class ApplicationStereotypes
5
+ class ApplicationStereotypes < ::Avm::Registry::Base
6
6
  require_sub __FILE__, require_dependency: true
7
7
  enable_simple_cache
8
8
 
9
- common_constructor :module_suffix
9
+ def available
10
+ @available ||= build_available
11
+ end
10
12
 
11
13
  def detect(obj)
12
14
  detect_optional(obj) || raise_not_found(obj)
@@ -18,10 +20,6 @@ module Avm
18
20
 
19
21
  private
20
22
 
21
- def available_uncached
22
- build_available
23
- end
24
-
25
23
  def detect_by_instance_class(obj)
26
24
  return nil unless obj.is_a?(::Class) && obj < ::Avm::Instances::Base
27
25
 
@@ -39,10 +37,6 @@ module Avm
39
37
 
40
38
  available.find { |a| a.source_class == obj }
41
39
  end
42
-
43
- def raise_not_found(obj)
44
- raise("No registered module valid for #{obj} (Available: #{available.join(', ')})")
45
- end
46
40
  end
47
41
  end
48
42
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Registry
5
+ class Base
6
+ acts_as_abstract
7
+ common_constructor :module_suffix
8
+
9
+ def available
10
+ raise_abstract __method__
11
+ end
12
+
13
+ def to_s
14
+ "#{self.class}[#{module_suffix}]"
15
+ end
16
+
17
+ private
18
+
19
+ def raise_not_found(*args)
20
+ raise(::Avm::Registry::DetectionError,
21
+ "No registered module valid for #{args} " \
22
+ "(Module suffix: #{module_suffix}, Available: #{available.join(', ')})")
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Registry
5
+ class DetectionError < RuntimeError
6
+ end
7
+ end
8
+ end
@@ -2,10 +2,9 @@
2
2
 
3
3
  module Avm
4
4
  module Registry
5
- class FromGems
5
+ class FromGems < ::Avm::Registry::Base
6
6
  enable_abstract_methods
7
7
  enable_simple_cache
8
- common_constructor :module_suffix
9
8
 
10
9
  def available
11
10
  registered_modules.reject(&:abstract?)
@@ -33,21 +32,12 @@ module Avm
33
32
  "#{module_suffix}::Base"
34
33
  end
35
34
 
36
- def to_s
37
- "#{self.class}[#{module_suffix}]"
38
- end
39
-
40
35
  def valid_registered_module?(a_module)
41
36
  a_module.is_a?(::Class) && !a_module.abstract?
42
37
  end
43
38
 
44
39
  private
45
40
 
46
- def raise_not_found(*args)
47
- raise("No registered module valid for #{args} " \
48
- "(Module suffix: #{module_suffix}, Available: #{available.join(', ')})")
49
- end
50
-
51
41
  def registered_modules_uncached
52
42
  registered_gems.flat_map { |registry| modules_from_registry(registry) }
53
43
  .select { |v| valid_registered_module?(v) }.uniq
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/comparator'
4
-
5
3
  RSpec.shared_examples 'avm_source_generated' do |spec_file, stereotype, options = {}|
6
4
  include_context 'spec_paths', spec_file
7
5
  block_on_each_source = options.delete(:block_on_each_source)
@@ -6,7 +6,6 @@ RSpec.shared_context 'with_launcher' do
6
6
  before do
7
7
  Avm::Launcher::Context.current = launcher_controller.new_context
8
8
  launcher_controller.remotes_dir = Dir.mktmpdir
9
- allow(ProgressBar).to receive(:create).and_return(double.as_null_object)
10
9
  end
11
10
 
12
11
  delegate :application_source_path, :context_set, :init_git, :init_remote, :temp_context,
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_cli/runner'
4
- require 'eac_fs/traversable'
4
+
5
5
  require 'eac_ruby_utils/core_ext'
6
6
  require 'eac_ruby_utils/settings_provider'
7
7
 
@@ -13,8 +13,10 @@ module Avm
13
13
  common_concern do
14
14
  include ::EacCli::Runner
15
15
  include ::EacFs::Traversable
16
+
16
17
  enable_settings_provider
17
18
  include TopMethods
19
+
18
20
  runner_definition do
19
21
  bool_opt '-R', '--recursive', 'Recursive.'
20
22
  bool_opt '--no-recursive', 'No recursive.'
data/lib/avm/scms/base.rb CHANGED
@@ -7,6 +7,7 @@ module Avm
7
7
  enable_abstract_methods
8
8
  enable_simple_cache
9
9
  include ::Avm::With::ApplicationStereotype
10
+
10
11
  abstract_methods :update, :valid?
11
12
  common_constructor :path do
12
13
  self.path = path.to_pathname.expand_path
@@ -63,9 +63,9 @@ module Avm
63
63
  configuration_with_filename(configuration_paths.first, false)
64
64
  end
65
65
 
66
- # @return [String]
66
+ # @return [Enumerable<String>]
67
67
  def parent_configuration_prefix
68
- PARENT_CONFIGURATION_SUFFIX + [relative_path]
68
+ PARENT_CONFIGURATION_SUFFIX + [relative_path.to_path.gsub(/\A\.+|\.+\z/, '')]
69
69
  end
70
70
 
71
71
  # @return [EacConfig::PrefixedPathNode]
@@ -6,6 +6,7 @@ module Avm
6
6
  require_sub __FILE__, include_modules: true
7
7
  include ::Avm::With::ApplicationStereotype
8
8
  include ::Avm::With::ExtraSubcommands
9
+
9
10
  compare_by :path
10
11
  enable_abstract_methods
11
12
  enable_simple_cache
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_fs/logs'
4
-
5
3
  module Avm
6
4
  module Sources
7
5
  module Tests
data/lib/avm/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.97.0'
4
+ VERSION = '0.98.0'
5
5
  end
data/lib/avm.rb CHANGED
@@ -6,5 +6,7 @@ EacRubyUtils::RootModuleSetup.perform __FILE__
6
6
  module Avm
7
7
  end
8
8
 
9
+ require 'eac_fs'
10
+
9
11
  require 'avm/patches/eac_config/entry_path'
10
12
  require 'avm/applications/base'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.97.0
4
+ version: 0.98.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-17 00:00:00.000000000 Z
11
+ date: 2025-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clipboard
@@ -36,20 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.43'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 0.43.1
39
+ version: '0.44'
43
40
  type: :runtime
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
44
  - - "~>"
48
45
  - !ruby/object:Gem::Version
49
- version: '0.43'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 0.43.1
46
+ version: '0.44'
53
47
  - !ruby/object:Gem::Dependency
54
48
  name: eac_config
55
49
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +64,14 @@ dependencies:
70
64
  requirements:
71
65
  - - "~>"
72
66
  - !ruby/object:Gem::Version
73
- version: '0.7'
67
+ version: '0.8'
74
68
  type: :runtime
75
69
  prerelease: false
76
70
  version_requirements: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - "~>"
79
73
  - !ruby/object:Gem::Version
80
- version: '0.7'
74
+ version: '0.8'
81
75
  - !ruby/object:Gem::Dependency
82
76
  name: eac_fs
83
77
  requirement: !ruby/object:Gem::Requirement
@@ -158,40 +152,20 @@ dependencies:
158
152
  - - ">="
159
153
  - !ruby/object:Gem::Version
160
154
  version: 0.12.1
161
- - !ruby/object:Gem::Dependency
162
- name: ruby-progressbar
163
- requirement: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '1.13'
168
- type: :runtime
169
- prerelease: false
170
- version_requirements: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: '1.13'
175
155
  - !ruby/object:Gem::Dependency
176
156
  name: avm-eac_ruby_base1
177
157
  requirement: !ruby/object:Gem::Requirement
178
158
  requirements:
179
159
  - - "~>"
180
160
  - !ruby/object:Gem::Version
181
- version: '0.37'
182
- - - ">="
183
- - !ruby/object:Gem::Version
184
- version: 0.37.1
161
+ version: '0.38'
185
162
  type: :development
186
163
  prerelease: false
187
164
  version_requirements: !ruby/object:Gem::Requirement
188
165
  requirements:
189
166
  - - "~>"
190
167
  - !ruby/object:Gem::Version
191
- version: '0.37'
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: 0.37.1
168
+ version: '0.38'
195
169
  - !ruby/object:Gem::Dependency
196
170
  name: avm-git
197
171
  requirement: !ruby/object:Gem::Requirement
@@ -201,7 +175,7 @@ dependencies:
201
175
  version: '0.20'
202
176
  - - ">="
203
177
  - !ruby/object:Gem::Version
204
- version: 0.20.1
178
+ version: 0.20.2
205
179
  type: :development
206
180
  prerelease: false
207
181
  version_requirements: !ruby/object:Gem::Requirement
@@ -211,7 +185,7 @@ dependencies:
211
185
  version: '0.20'
212
186
  - - ">="
213
187
  - !ruby/object:Gem::Version
214
- version: 0.20.1
188
+ version: 0.20.2
215
189
  - !ruby/object:Gem::Dependency
216
190
  name: eac_ruby_gem_support
217
191
  requirement: !ruby/object:Gem::Requirement
@@ -366,7 +340,9 @@ files:
366
340
  - lib/avm/registry/application_stereotypes/build_available.rb
367
341
  - lib/avm/registry/application_stereotypes/stereotype_builder.rb
368
342
  - lib/avm/registry/applications.rb
343
+ - lib/avm/registry/base.rb
369
344
  - lib/avm/registry/config_objects.rb
345
+ - lib/avm/registry/detection_error.rb
370
346
  - lib/avm/registry/file_formats.rb
371
347
  - lib/avm/registry/from_gems.rb
372
348
  - lib/avm/registry/instances.rb