avm 0.80.0 → 0.82.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avm/application_scms/base.rb +39 -0
- data/lib/avm/application_scms.rb +9 -0
- data/lib/avm/applications/base/auto_local_source_path.rb +24 -0
- data/lib/avm/applications/base/local_source.rb +1 -1
- data/lib/avm/applications/base/scm.rb +27 -0
- data/lib/avm/applications/base.rb +10 -1
- data/lib/avm/entries/base/inherited_entry_value.rb +16 -1
- data/lib/avm/entries/base/uri_component_entry_value/default_value.rb +2 -1
- data/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +2 -1
- data/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +4 -19
- data/lib/avm/patches/eac_config/entry_path.rb +46 -0
- data/lib/avm/registry/application_scms.rb +15 -0
- data/lib/avm/registry.rb +3 -3
- data/lib/avm/rspec/shared_examples/entries_values.rb +2 -2
- data/lib/avm/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba7de7fb51ef4cb64b226e0f9797ceee1253fd91aec2db6dc97d51fa9ea1d9a0
|
4
|
+
data.tar.gz: f6d75846fd246eba14ebb2b20dd0075c3c83d4177b4d017f806763bf1f9bf5df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79c47096a1c10051bfa2c1371f8417a65375c386c81be0dc85998e95a3f11e4fba147760571a3f1e8506ab6e16dcfebcbb45307ab64bef6695c00c283cf2802f
|
7
|
+
data.tar.gz: 9e92f65585c980504fc39eb098728c8be153a9cf70d7e0ba9656e0572cf6a9db593d20e829ba94bbbbc71480b6afeca16a6d0cb01069f6f7e378e9dd96f6ed74
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module ApplicationScms
|
7
|
+
class Base
|
8
|
+
acts_as_abstract
|
9
|
+
|
10
|
+
class << self
|
11
|
+
# @return [String]
|
12
|
+
def type_name
|
13
|
+
name.gsub(/#{Regexp.quote('::ApplicationScms::Base')}$/, '').demodulize
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# !method initialize(application)
|
18
|
+
# @param application [Avm::Application::Base]
|
19
|
+
common_constructor :application
|
20
|
+
delegate :type_name, to: :class
|
21
|
+
|
22
|
+
# @param path [Pathname]
|
23
|
+
# @return [Pathname]
|
24
|
+
def assert_main_at(path) # rubocop:disable Lint/UnusedMethodArgument
|
25
|
+
raise_abstract_method __method__
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [String]
|
29
|
+
def to_s
|
30
|
+
"#{type_name}[#{to_s_type_specific}]"
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [String]
|
34
|
+
def to_s_type_specific
|
35
|
+
''
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_fs/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Applications
|
7
|
+
class Base
|
8
|
+
class AutoLocalSourcePath
|
9
|
+
acts_as_instance_method
|
10
|
+
common_constructor :application
|
11
|
+
|
12
|
+
# @return [Pathname]
|
13
|
+
def result
|
14
|
+
application.scm.assert_main_at(fs_cache.path.to_pathname)
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [String]
|
18
|
+
def fs_object_id
|
19
|
+
application.id.to_s.parameterize
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/registry'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Applications
|
8
|
+
class Base
|
9
|
+
module Scm
|
10
|
+
common_concern do
|
11
|
+
uri_components_entries_values 'scm', %w[repos_path ssh_username type]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Avm::ApplicationScms::Base]
|
15
|
+
def scm
|
16
|
+
@scm ||= ::Avm::Registry.application_scms.detect(self)
|
17
|
+
end
|
18
|
+
|
19
|
+
# @param value [String]
|
20
|
+
# @return [String]
|
21
|
+
def scm_repos_path_inherited_value_proc(value)
|
22
|
+
value.to_pathname.join(id).to_path
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -7,11 +7,18 @@ module Avm
|
|
7
7
|
module Applications
|
8
8
|
class Base
|
9
9
|
enable_simple_cache
|
10
|
-
require_sub __FILE__, include_modules: true
|
11
10
|
include ::Avm::Entries::Base
|
12
11
|
|
13
12
|
AVM_TYPE = 'Application'
|
14
13
|
|
14
|
+
class << self
|
15
|
+
# @param id [String]
|
16
|
+
# @return [Avm::Applications::Base]
|
17
|
+
def by_id(id)
|
18
|
+
new(id)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
15
22
|
common_constructor :id do
|
16
23
|
self.id = id.to_s
|
17
24
|
end
|
@@ -23,6 +30,8 @@ module Avm
|
|
23
30
|
def instance(suffix)
|
24
31
|
stereotype.instance_class.new(self, suffix)
|
25
32
|
end
|
33
|
+
|
34
|
+
require_sub __FILE__, include_modules: true
|
26
35
|
end
|
27
36
|
end
|
28
37
|
end
|
@@ -18,8 +18,23 @@ module Avm
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
+
# @param provider_id [String]
|
22
|
+
# @return [Avm::Entries::Base]
|
23
|
+
def other_entries_provider(provider_id)
|
24
|
+
other_entries_provider_class.by_id(provider_id)
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [Class]
|
28
|
+
def other_entries_provider_class
|
29
|
+
[::Avm::Instances::Base, ::Avm::Applications::Base].each do |klass|
|
30
|
+
return klass if entries_provider.is_a?(klass)
|
31
|
+
end
|
32
|
+
|
33
|
+
raise "No provider class found for \"#{entries_provider}\""
|
34
|
+
end
|
35
|
+
|
21
36
|
def other_entry_value(instance_id)
|
22
|
-
|
37
|
+
other_entries_provider(instance_id).read_entry_optional(target_entry_suffix)
|
23
38
|
end
|
24
39
|
|
25
40
|
def self_entry_value
|
@@ -13,8 +13,9 @@ module Avm
|
|
13
13
|
common_constructor :uri_component_entry_value
|
14
14
|
delegate :component_entry_path, :entries_provider, to: :uri_component_entry_value
|
15
15
|
|
16
|
+
# @return [Symbol]
|
16
17
|
def default_value_method_name
|
17
|
-
|
18
|
+
component_entry_path.default_method_name
|
18
19
|
end
|
19
20
|
|
20
21
|
def result
|
@@ -28,8 +28,9 @@ module Avm
|
|
28
28
|
->(value) { entries_provider.send(inherited_value_block_method_name, value) }
|
29
29
|
end
|
30
30
|
|
31
|
+
# @return [Symbol]
|
31
32
|
def inherited_value_block_method_name
|
32
|
-
|
33
|
+
component_entry_path.inherited_block_method_name
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/entries/uri_builder'
|
4
|
+
require 'avm/patches/eac_config/entry_path'
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
5
6
|
|
6
7
|
module Avm
|
@@ -10,14 +11,8 @@ module Avm
|
|
10
11
|
class GenericComponent
|
11
12
|
common_constructor :owner, :component
|
12
13
|
delegate :entries_provider_class, :prefix, to: :owner
|
13
|
-
|
14
|
-
|
15
|
-
['auto', component_method_name].join('_')
|
16
|
-
end
|
17
|
-
|
18
|
-
def component_method_name
|
19
|
-
[prefix, component].join('_')
|
20
|
-
end
|
14
|
+
delegate :auto_method_name, :get_method_name, :get_optional_method_name,
|
15
|
+
to: :entry_key_path
|
21
16
|
|
22
17
|
def define_auto_method
|
23
18
|
outer_self = self
|
@@ -48,22 +43,12 @@ module Avm
|
|
48
43
|
::EacConfig::EntryPath.assert([prefix, component])
|
49
44
|
end
|
50
45
|
|
51
|
-
# @return [String]
|
52
|
-
def get_method_name # rubocop:disable Naming/AccessorMethodName
|
53
|
-
component_method_name
|
54
|
-
end
|
55
|
-
|
56
|
-
# @return [String]
|
57
|
-
def get_optional_method_name # rubocop:disable Naming/AccessorMethodName
|
58
|
-
get_method_name + '_optional'
|
59
|
-
end
|
60
|
-
|
61
46
|
def id_component
|
62
47
|
@id_component ||= owner.component_factory('id')
|
63
48
|
end
|
64
49
|
|
65
50
|
def inherited_value_proc_name
|
66
|
-
|
51
|
+
entry_key_path.inherited_block_method_name
|
67
52
|
end
|
68
53
|
|
69
54
|
def setup
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_config/entry_path'
|
4
|
+
|
5
|
+
module EacConfig
|
6
|
+
class EntryPath
|
7
|
+
# @return [Symbol]
|
8
|
+
def auto_method_name
|
9
|
+
method_name('auto_', '')
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [Symbol]
|
13
|
+
def default_method_name
|
14
|
+
method_name('', '_default_value')
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Symbol]
|
18
|
+
def get_method_name # rubocop:disable Naming/AccessorMethodName
|
19
|
+
method_name('', '')
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [Symbol]
|
23
|
+
def get_optional_method_name # rubocop:disable Naming/AccessorMethodName
|
24
|
+
method_name('', '_optional')
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [Symbol]
|
28
|
+
def inherited_block_method_name
|
29
|
+
method_name('', '_inherited_value_proc')
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [String]
|
33
|
+
def variableize
|
34
|
+
parts.join('_')
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
# @param before [String]
|
40
|
+
# @param after [String]
|
41
|
+
# @return [Symbol]
|
42
|
+
def method_name(before, after)
|
43
|
+
"#{before}#{variableize}#{after}".to_sym
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/registry/from_gems'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Registry
|
7
|
+
class ApplicationScms < ::Avm::Registry::FromGems
|
8
|
+
def class_detect(klass, detect_args)
|
9
|
+
return nil unless klass.type_name == detect_args.fetch(0).scm_type
|
10
|
+
|
11
|
+
klass.new(*detect_args)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/avm/registry.rb
CHANGED
@@ -7,9 +7,9 @@ module Avm
|
|
7
7
|
module Registry
|
8
8
|
require_sub __FILE__
|
9
9
|
enable_listable
|
10
|
-
lists.add_symbol :category, :applications, :
|
11
|
-
:file_formats, :instances, :launcher_stereotypes, :runners,
|
12
|
-
:source_generators, :sources
|
10
|
+
lists.add_symbol :category, :applications, :application_scms, :application_stereotypes,
|
11
|
+
:config_objects, :file_formats, :instances, :launcher_stereotypes, :runners,
|
12
|
+
:scms, :source_generators, :sources
|
13
13
|
|
14
14
|
class << self
|
15
15
|
enable_simple_cache
|
@@ -13,8 +13,8 @@ require 'eac_ruby_utils/core_ext'
|
|
13
13
|
context "when a auto value is requested for \"#{instance_id}.#{input}\"" do
|
14
14
|
let(:instance) { described_class.by_id(instance_id) }
|
15
15
|
|
16
|
-
it ".
|
17
|
-
expect(instance.
|
16
|
+
it ".entry('#{input}').value should return \"#{expected}\"" do
|
17
|
+
expect(instance.entry(input).value).to eq(expected)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
data/lib/avm/version.rb
CHANGED
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.
|
4
|
+
version: 0.82.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: 2023-
|
11
|
+
date: 2023-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -237,15 +237,19 @@ extensions: []
|
|
237
237
|
extra_rdoc_files: []
|
238
238
|
files:
|
239
239
|
- lib/avm.rb
|
240
|
+
- lib/avm/application_scms.rb
|
241
|
+
- lib/avm/application_scms/base.rb
|
240
242
|
- lib/avm/application_stereotypes.rb
|
241
243
|
- lib/avm/application_stereotypes/base.rb
|
242
244
|
- lib/avm/applications.rb
|
243
245
|
- lib/avm/applications/base.rb
|
246
|
+
- lib/avm/applications/base/auto_local_source_path.rb
|
244
247
|
- lib/avm/applications/base/local_instance.rb
|
245
248
|
- lib/avm/applications/base/local_source.rb
|
246
249
|
- lib/avm/applications/base/naming.rb
|
247
250
|
- lib/avm/applications/base/organization.rb
|
248
251
|
- lib/avm/applications/base/publishing.rb
|
252
|
+
- lib/avm/applications/base/scm.rb
|
249
253
|
- lib/avm/applications/base/stereotype.rb
|
250
254
|
- lib/avm/data/callbacks.rb
|
251
255
|
- lib/avm/data/clearer.rb
|
@@ -344,8 +348,10 @@ files:
|
|
344
348
|
- lib/avm/launcher/publish/check_result.rb
|
345
349
|
- lib/avm/launcher/stereotype.rb
|
346
350
|
- lib/avm/launcher_stereotypes.rb
|
351
|
+
- lib/avm/patches/eac_config/entry_path.rb
|
347
352
|
- lib/avm/path_string.rb
|
348
353
|
- lib/avm/registry.rb
|
354
|
+
- lib/avm/registry/application_scms.rb
|
349
355
|
- lib/avm/registry/application_stereotypes.rb
|
350
356
|
- lib/avm/registry/application_stereotypes/build_available.rb
|
351
357
|
- lib/avm/registry/application_stereotypes/stereotype_builder.rb
|