eac_tools 0.12.0 → 0.13.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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +18 -17
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +2 -2
  5. data/sub/avm/lib/avm/instances/base/auto_values/install.rb +48 -0
  6. data/sub/avm/lib/avm/instances/base/auto_values.rb +1 -1
  7. data/sub/avm/lib/avm/instances/base.rb +4 -4
  8. data/sub/avm/lib/avm/instances/entry_keys.rb +7 -6
  9. data/sub/avm/lib/avm/instances.rb +3 -2
  10. data/sub/avm/lib/avm/scms/base.rb +2 -2
  11. data/sub/avm/lib/avm/source_generators/base.rb +2 -2
  12. data/sub/avm/lib/avm/sources/base.rb +4 -4
  13. data/sub/avm/lib/avm/version.rb +1 -1
  14. data/sub/avm/lib/avm/with/application_stereotype.rb +35 -0
  15. data/sub/avm/lib/avm/with/extra_subcommands.rb +44 -0
  16. data/sub/avm/spec/lib/avm/instances/base_spec.rb +3 -3
  17. data/sub/avm/spec/lib/avm/instances/base_spec_configs_storage.yml +1 -1
  18. data/sub/avm-eac_rails_base0/avm-eac_rails_base0.gemspec +3 -3
  19. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb +1 -1
  20. data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/spec/{ruby_style_spec.rb → code/rubocop_spec.rb} +0 -0
  21. data/sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +3 -2
  22. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit.rb +1 -1
  23. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +1 -1
  24. data/sub/eac_config/eac_config.gemspec +1 -1
  25. data/sub/eac_config/lib/eac_config/entry_path.rb +15 -4
  26. data/sub/eac_config/lib/eac_config/version.rb +1 -1
  27. data/sub/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +5 -0
  28. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  29. metadata +16 -16
  30. data/sub/avm/lib/avm/instances/base/auto_values/access.rb +0 -40
  31. data/sub/avm/lib/avm/with_application_stereotype.rb +0 -33
  32. data/sub/avm/lib/avm/with_dynamic_runners.rb +0 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8e7fe08b68334a93a53b8f91d2becce812f7e5489d36af3718477d77d651cbc
4
- data.tar.gz: 484af66fe24d6907d195fb67af719ad79299d3ba978e2387e92737b2c1c72c8b
3
+ metadata.gz: 5bf2ba914845ef4487ca80e47097879d283ece113e6cbe0863a9f54920b605d7
4
+ data.tar.gz: b9c45a9db9dba67f8c742bf689a1b267480c40b8312ec066dfe25aabf8f66ec6
5
5
  SHA512:
6
- metadata.gz: 76be1cd01e6f3874a9c3a0a987592cdee9957b723f0ed0dab109f95a0541abd49d62e76a1f3f6da2d633de6ba6bcc115893eb5b44f18180c1deba40c5c7c9b5d
7
- data.tar.gz: 8d814b9bfa7c899a56a2721088e6285ca17af658c3e500ff64075682a59eccb0c7347145c2887313c2520cd9315916ff4c73529dc775f5714561b2c3581711b0
6
+ metadata.gz: de155498ec4b29e4391433f4fe3fb5a9509f15f92d5b4106b1e402026e7349d3887bb4b75bedf96bcb22281ba606149bd17be4ba67dad2d3bb4c741dc4f2a237
7
+ data.tar.gz: 0e738279dd36f46a1bc247d71fb2165ad0b5537e7050874a3705ee3b85c0b353e490535b3e74c7d6960ac17df6c0a8ab9c5f5ad371a7de7a524ad266faae4e6c
data/Gemfile.lock CHANGED
@@ -1,15 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.12.0)
4
+ eac_tools (0.13.0)
5
5
  avm-eac_generic_base0 (~> 0.4)
6
- avm-eac_rails_base0 (~> 0.6)
7
- avm-eac_rails_base1 (~> 0.4, >= 0.4.1)
6
+ avm-eac_rails_base0 (~> 0.6, >= 0.6.1)
7
+ avm-eac_rails_base1 (~> 0.4, >= 0.4.2)
8
8
  avm-eac_redmine_base0 (~> 0.11)
9
9
  avm-eac_redmine_plugin_base0 (~> 0.3)
10
10
  avm-eac_ruby_base1 (~> 0.11)
11
11
  avm-tools (~> 0.127)
12
- eac_ruby_utils (~> 0.96, >= 0.96.1)
12
+ eac_ruby_utils (~> 0.97)
13
13
 
14
14
  PATH
15
15
  remote: sub/avm-eac_generic_base0
@@ -21,17 +21,18 @@ PATH
21
21
  PATH
22
22
  remote: sub/avm-eac_rails_base0
23
23
  specs:
24
- avm-eac_rails_base0 (0.6.0)
25
- avm-eac_rails_base1 (~> 0.3)
26
- eac_ruby_utils (~> 0.80, >= 0.80.2)
24
+ avm-eac_rails_base0 (0.6.1)
25
+ avm-eac_rails_base1 (~> 0.4, >= 0.4.2)
26
+ eac_ruby_utils (~> 0.97)
27
27
 
28
28
  PATH
29
29
  remote: sub/avm-eac_rails_base1
30
30
  specs:
31
- avm-eac_rails_base1 (0.4.1)
32
- avm-eac_ruby_base1 (~> 0.9, >= 0.9.1)
31
+ avm-eac_rails_base1 (0.4.2)
32
+ avm (~> 0.31)
33
+ avm-eac_ruby_base1 (~> 0.11)
33
34
  avm-eac_webapp_base0 (~> 0.3)
34
- eac_ruby_utils (~> 0.95, >= 0.95.2)
35
+ eac_ruby_utils (~> 0.97)
35
36
 
36
37
  PATH
37
38
  remote: sub/avm-eac_redmine_base0
@@ -81,12 +82,12 @@ PATH
81
82
  PATH
82
83
  remote: sub/avm
83
84
  specs:
84
- avm (0.30.0)
85
+ avm (0.31.0)
85
86
  eac_cli (~> 0.27, >= 0.27.6)
86
- eac_config (~> 0.9)
87
+ eac_config (~> 0.10)
87
88
  eac_docker (~> 0.3)
88
89
  eac_git (~> 0.6)
89
- eac_ruby_utils (~> 0.95)
90
+ eac_ruby_utils (~> 0.97)
90
91
  eac_templates (~> 0.1, >= 0.1.1)
91
92
  filesize (~> 0.2)
92
93
  htmlbeautifier (~> 1.3, >= 1.3.1)
@@ -103,9 +104,9 @@ PATH
103
104
  PATH
104
105
  remote: sub/eac_config
105
106
  specs:
106
- eac_config (0.9.0)
107
+ eac_config (0.10.0)
107
108
  addressable
108
- eac_ruby_utils (~> 0.83)
109
+ eac_ruby_utils (~> 0.97)
109
110
 
110
111
  PATH
111
112
  remote: sub/eac_docker
@@ -134,7 +135,7 @@ PATH
134
135
  PATH
135
136
  remote: sub/eac_ruby_utils
136
137
  specs:
137
- eac_ruby_utils (0.96.1)
138
+ eac_ruby_utils (0.97.0)
138
139
  activesupport (>= 4, < 7)
139
140
  addressable (~> 2.6)
140
141
  bundler
@@ -268,7 +269,7 @@ GEM
268
269
  rainbow (3.1.1)
269
270
  rchardet (1.8.0)
270
271
  rexml (3.2.5)
271
- rouge (3.29.0)
272
+ rouge (3.30.0)
272
273
  rspec (3.11.0)
273
274
  rspec-core (~> 3.11.0)
274
275
  rspec-expectations (~> 3.11.0)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.12.0'
4
+ VERSION = '0.13.0'
5
5
  end
data/sub/avm/avm.gemspec CHANGED
@@ -13,10 +13,10 @@ Gem::Specification.new do |s|
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
15
  s.add_dependency 'eac_cli', '~> 0.27', '>= 0.27.6'
16
- s.add_dependency 'eac_config', '~> 0.9'
16
+ s.add_dependency 'eac_config', '~> 0.10'
17
17
  s.add_dependency 'eac_docker', '~> 0.3'
18
18
  s.add_dependency 'eac_git', '~> 0.6'
19
- s.add_dependency 'eac_ruby_utils', '~> 0.95'
19
+ s.add_dependency 'eac_ruby_utils', '~> 0.97'
20
20
  s.add_dependency 'eac_templates', '~> 0.1', '>= 0.1.1'
21
21
  s.add_dependency 'filesize', '~> 0.2'
22
22
  s.add_dependency 'htmlbeautifier', '~> 1.3', '>= 1.3.1'
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/entry_keys'
4
+
5
+ module Avm
6
+ module Instances
7
+ class Base
8
+ module AutoValues
9
+ module Install
10
+ def auto_access
11
+ read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_URL).present? ? 'ssh' : 'local'
12
+ end
13
+
14
+ def auto_install_hostname
15
+ inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
16
+ ::Avm::Instances::EntryKeys::INSTALL_HOSTNAME)
17
+ end
18
+
19
+ def auto_install_port
20
+ inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
21
+ ::Avm::Instances::EntryKeys::INSTALL_PORT) || 22
22
+ end
23
+
24
+ def auto_install_username
25
+ inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
26
+ ::Avm::Instances::EntryKeys::INSTALL_USERNAME)
27
+ end
28
+
29
+ def auto_install_url
30
+ inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
31
+ ::Avm::Instances::EntryKeys::INSTALL_URL) ||
32
+ auto_install_url_by_parts
33
+ end
34
+
35
+ def auto_install_url_by_parts
36
+ read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_HOSTNAME).if_present do |a|
37
+ a = read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_USERNAME)
38
+ .if_present(a) { |v| "#{v}@#{a}" }
39
+ a = read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_PORT)
40
+ .if_present(a) { |v| "#{a}:#{v}" }
41
+ "ssh://#{a}"
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -10,7 +10,7 @@ module Avm
10
10
  extend ::ActiveSupport::Concern
11
11
 
12
12
  included do
13
- %w[Access Admin Data Database Filesystem Mailer Ruby Source System Web]
13
+ %w[Admin Data Database Filesystem Install Mailer Ruby Source System Web]
14
14
  .each do |class_name|
15
15
  include const_get(class_name)
16
16
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/with_application_stereotype'
4
- require 'avm/with_dynamic_runners'
3
+ require 'avm/with/application_stereotype'
4
+ require 'avm/with/extra_subcommands'
5
5
  require 'eac_ruby_utils/require_sub'
6
6
  require 'eac_ruby_utils/simple_cache'
7
7
  require 'avm/instances/entries'
@@ -14,8 +14,8 @@ module Avm
14
14
  enable_simple_cache
15
15
  require_sub __FILE__, include_modules: true
16
16
  include ::Avm::Instances::Entries
17
- include ::Avm::WithDynamicRunners
18
- include ::Avm::WithApplicationStereotype
17
+ include ::Avm::With::ExtraSubcommands
18
+ include ::Avm::With::ApplicationStereotype
19
19
 
20
20
  lists.add_string :access, :local, :ssh
21
21
 
@@ -5,6 +5,8 @@ require 'eac_ruby_utils/core_ext'
5
5
  module Avm
6
6
  module Instances
7
7
  module EntryKeys
8
+ URI_FIELDS = %i[fragment hostname password path port query scheme url username].freeze
9
+
8
10
  class << self
9
11
  def all
10
12
  all_keys.to_a
@@ -43,17 +45,16 @@ module Avm
43
45
 
44
46
  {
45
47
  '' => %w[data_fs_path fs_path host_id name source_instance_id],
46
- admin: %w[username password api_key],
47
- database: %w[id hostname limit name password port system timeout username extra],
48
+ admin: URI_FIELDS + %w[api_key],
49
+ database: URI_FIELDS + %w[id limit name system timeout extra],
48
50
  docker: %w[registry],
49
51
  fs: %w[url],
52
+ install: URI_FIELDS,
50
53
  mailer: {
51
54
  '' => %w[id from reply_to],
52
- smtp: %w[address port domain username password authentication openssl_verify_mode
53
- starttls_auto tls]
55
+ smtp: URI_FIELDS + %w[address domain authentication openssl_verify_mode starttls_auto tls]
54
56
  },
55
- ssh: %w[hostname port url username],
56
- web: %w[authority hostname path port scheme url userinfo]
57
+ web: URI_FIELDS + %w[authority userinfo]
57
58
  }.each { |prefix, suffixes| keys_consts_set(prefix, suffixes) }
58
59
  end
59
60
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/core_ext'
4
+
3
5
  module Avm
4
6
  module Instances
5
- require 'avm/applications/base'
6
- require 'avm/instances/entries'
7
+ require_sub __FILE__
7
8
  end
8
9
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/with_application_stereotype'
3
+ require 'avm/with/application_stereotype'
4
4
  require 'eac_ruby_utils/core_ext'
5
5
 
6
6
  module Avm
@@ -8,7 +8,7 @@ module Avm
8
8
  class Base
9
9
  enable_abstract_methods
10
10
  enable_simple_cache
11
- include ::Avm::WithApplicationStereotype
11
+ include ::Avm::With::ApplicationStereotype
12
12
  abstract_methods :update, :valid?
13
13
  common_constructor :path do
14
14
  self.path = path.to_pathname
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/with_application_stereotype'
3
+ require 'avm/with/application_stereotype'
4
4
  require 'eac_ruby_utils/core_ext'
5
5
 
6
6
  module Avm
7
7
  module SourceGenerators
8
8
  class Base
9
- include ::Avm::WithApplicationStereotype
9
+ include ::Avm::With::ApplicationStereotype
10
10
  common_constructor :target_path do
11
11
  self.target_path = target_path.to_pathname
12
12
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  require 'avm/registry'
4
4
  require 'avm/scms/null'
5
- require 'avm/with_application_stereotype'
6
- require 'avm/with_dynamic_runners'
5
+ require 'avm/with/application_stereotype'
6
+ require 'avm/with/extra_subcommands'
7
7
  require 'eac_git'
8
8
  require 'eac_ruby_utils/core_ext'
9
9
 
@@ -11,8 +11,8 @@ module Avm
11
11
  module Sources
12
12
  class Base
13
13
  require_sub __FILE__, include_modules: true
14
- include ::Avm::WithApplicationStereotype
15
- include ::Avm::WithDynamicRunners
14
+ include ::Avm::With::ApplicationStereotype
15
+ include ::Avm::With::ExtraSubcommands
16
16
  compare_by :path
17
17
  enable_abstract_methods
18
18
  enable_simple_cache
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.30.0'
4
+ VERSION = '0.31.0'
5
5
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module With
7
+ module ApplicationStereotype
8
+ common_concern do
9
+ include ClassMethods
10
+ end
11
+
12
+ module ClassMethods
13
+ # @return [Avm::ApplicationStereotype::Base]
14
+ def application_stereotype
15
+ @application_stereotype ||=
16
+ ::Avm::Registry.application_stereotypes.detect(application_stereotype_name)
17
+ end
18
+
19
+ # @return [String]
20
+ def application_stereotype_name
21
+ stereotype_namespace_module.name.demodulize
22
+ end
23
+
24
+ # @return [Module]
25
+ def stereotype_namespace_module
26
+ module_parent.module_parent
27
+ end
28
+ end
29
+
30
+ def stereotype_namespace_module
31
+ self.class.stereotype_namespace_module
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/runner_with/subcommands'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module With
8
+ module ExtraSubcommands
9
+ # @return [Hash<String, EacCli::Runner>]
10
+ def extra_available_subcommands
11
+ extra_available_subcommands_from_runners_module
12
+ end
13
+
14
+ # @return [Hash<String, EacCli::Runner>]
15
+ def extra_available_subcommands_from_runners_module
16
+ self.class.ancestors.reverse.inject({}) do |a, e|
17
+ a.merge(RunnersFromModule.new(e).result)
18
+ end
19
+ end
20
+
21
+ class RunnersFromModule
22
+ enable_simple_cache
23
+ common_constructor :the_module
24
+
25
+ # @return [Hash<String, EacCli::Runner>]
26
+ def result
27
+ return {} if runners_module.blank?
28
+
29
+ ::EacCli::RunnerWith::Subcommands.subcommands_from_module(runners_module)
30
+ end
31
+
32
+ def runners_module_uncached
33
+ return nil if the_module.module_parent.blank?
34
+
35
+ begin
36
+ the_module.module_parent.const_get('Runners')
37
+ rescue ::NameError
38
+ nil
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -23,9 +23,9 @@ RSpec.describe ::Avm::Instances::Base do
23
23
  ::Avm::Instances::EntryKeys::DATABASE_PASSWORD => 'pass1',
24
24
  ::Avm::Instances::EntryKeys::DATABASE_HOSTNAME => 'database.net',
25
25
  ::Avm::Instances::EntryKeys::DATABASE_PORT => 5432,
26
- ::Avm::Instances::EntryKeys::SSH_HOSTNAME => 'myhost.com',
27
- ::Avm::Instances::EntryKeys::SSH_USERNAME => 'myuser',
28
- ::Avm::Instances::EntryKeys::SSH_URL => 'ssh://otheruser@otherhost.com'
26
+ ::Avm::Instances::EntryKeys::INSTALL_HOSTNAME => 'myhost.com',
27
+ ::Avm::Instances::EntryKeys::INSTALL_USERNAME => 'myuser',
28
+ ::Avm::Instances::EntryKeys::INSTALL_URL => 'ssh://otheruser@otherhost.com'
29
29
  },
30
30
  'app_2' => {
31
31
  ::Avm::Instances::EntryKeys::DATABASE_HOSTNAME => '127.0.0.1',
@@ -11,7 +11,7 @@ app_1:
11
11
  password: pass1
12
12
  hostname: database.net
13
13
  app_2:
14
- ssh:
14
+ install:
15
15
  hostname: myhost.com
16
16
  username: myuser
17
17
  url: ssh://otheruser@otherhost.com
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm-eac_rails_base1', '~> 0.3'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.80', '>= 0.80.2'
15
+ s.add_dependency 'avm-eac_rails_base1', '~> 0.4', '>= 0.4.2'
16
+ s.add_dependency 'eac_ruby_utils', '~> 0.97'
17
17
 
18
- s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
18
+ s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
19
19
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRailsBase0
5
- VERSION = '0.6.0'
5
+ VERSION = '0.6.1'
6
6
  end
7
7
  end
@@ -12,9 +12,10 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm-eac_ruby_base1', '~> 0.9', '>= 0.9.1'
15
+ s.add_dependency 'avm', '~> 0.31'
16
+ s.add_dependency 'avm-eac_ruby_base1', '~> 0.11'
16
17
  s.add_dependency 'avm-eac_webapp_base0', '~> 0.3'
17
- s.add_dependency 'eac_ruby_utils', '~> 0.95', '>= 0.95.2'
18
+ s.add_dependency 'eac_ruby_utils', '~> 0.97'
18
19
 
19
20
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
20
21
  end
@@ -38,7 +38,7 @@ module Avm
38
38
  end
39
39
 
40
40
  def user
41
- instance.ssh_username
41
+ instance.install_username
42
42
  end
43
43
 
44
44
  private
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRailsBase1
5
- VERSION = '0.4.1'
5
+ VERSION = '0.4.2'
6
6
  end
7
7
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
15
  s.add_dependency 'addressable'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.83'
16
+ s.add_dependency 'eac_ruby_utils', '~> 0.97'
17
17
 
18
18
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
19
19
  end
@@ -28,17 +28,28 @@ module EacConfig
28
28
  end
29
29
  end
30
30
 
31
- attr_reader :parts
32
-
33
- def initialize(parts)
34
- @parts = parts.to_a.freeze
31
+ common_constructor :parts, default: [[]] do
32
+ self.parts = ::Array.new(parts).freeze
35
33
  end
36
34
 
35
+ compare_by :parts
36
+ delegate :any?, :count, :each, :each_value, :each_with_index, :empty?, :fetch, :first, :index,
37
+ :inject, :last, :map, :size, to: :parts
38
+
37
39
  # @return [EacConfig::EntryPath]
38
40
  def +(other)
39
41
  self.class.new(parts + self.class.assert(other).parts)
40
42
  end
41
43
 
44
+ def [](*args)
45
+ slice(*args)
46
+ end
47
+
48
+ def slice(*args)
49
+ r = parts.slice(*args)
50
+ r.is_a?(::Enumerable) ? self.class.new(r) : r
51
+ end
52
+
42
53
  def to_s
43
54
  "#{self.class}[#{parts.join(PART_SEPARATOR)}]"
44
55
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacConfig
4
- VERSION = '0.9.0'
4
+ VERSION = '0.10.0'
5
5
  end
@@ -20,6 +20,11 @@ module EacRubyUtils
20
20
  raise ::ArgumentError, "String \"#{string}\" does not match pattern \"#{pattern}\""
21
21
  end
22
22
 
23
+ # @return [Boolean]
24
+ def parse?(string)
25
+ internal_parse(string).first
26
+ end
27
+
23
28
  private
24
29
 
25
30
  def internal_parse(string)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.96.1'
4
+ VERSION = '0.97.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.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: 2022-07-27 00:00:00.000000000 Z
11
+ date: 2022-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm-eac_generic_base0
@@ -31,6 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.6'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.6.1
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +41,9 @@ dependencies:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
43
  version: '0.6'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.6.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: avm-eac_rails_base1
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +53,7 @@ dependencies:
47
53
  version: '0.4'
48
54
  - - ">="
49
55
  - !ruby/object:Gem::Version
50
- version: 0.4.1
56
+ version: 0.4.2
51
57
  type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +63,7 @@ dependencies:
57
63
  version: '0.4'
58
64
  - - ">="
59
65
  - !ruby/object:Gem::Version
60
- version: 0.4.1
66
+ version: 0.4.2
61
67
  - !ruby/object:Gem::Dependency
62
68
  name: avm-eac_redmine_base0
63
69
  requirement: !ruby/object:Gem::Requirement
@@ -120,20 +126,14 @@ dependencies:
120
126
  requirements:
121
127
  - - "~>"
122
128
  - !ruby/object:Gem::Version
123
- version: '0.96'
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: 0.96.1
129
+ version: '0.97'
127
130
  type: :runtime
128
131
  prerelease: false
129
132
  version_requirements: !ruby/object:Gem::Requirement
130
133
  requirements:
131
134
  - - "~>"
132
135
  - !ruby/object:Gem::Version
133
- version: '0.96'
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: 0.96.1
136
+ version: '0.97'
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: eac_ruby_gem_support
139
139
  requirement: !ruby/object:Gem::Requirement
@@ -218,7 +218,7 @@ files:
218
218
  - sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/lib/ability.rb
219
219
  - sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/lib/ability_mapping.rb
220
220
  - sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/public/favicon.ico
221
- - sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/spec/ruby_style_spec.rb
221
+ - sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/spec/code/rubocop_spec.rb
222
222
  - sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/spec/spec_helper.rb
223
223
  - sub/avm-eac_rails_base1/Gemfile
224
224
  - sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec
@@ -1026,11 +1026,11 @@ files:
1026
1026
  - sub/avm/lib/avm/instances.rb
1027
1027
  - sub/avm/lib/avm/instances/base.rb
1028
1028
  - sub/avm/lib/avm/instances/base/auto_values.rb
1029
- - sub/avm/lib/avm/instances/base/auto_values/access.rb
1030
1029
  - sub/avm/lib/avm/instances/base/auto_values/admin.rb
1031
1030
  - sub/avm/lib/avm/instances/base/auto_values/data.rb
1032
1031
  - sub/avm/lib/avm/instances/base/auto_values/database.rb
1033
1032
  - sub/avm/lib/avm/instances/base/auto_values/filesystem.rb
1033
+ - sub/avm/lib/avm/instances/base/auto_values/install.rb
1034
1034
  - sub/avm/lib/avm/instances/base/auto_values/mailer.rb
1035
1035
  - sub/avm/lib/avm/instances/base/auto_values/ruby.rb
1036
1036
  - sub/avm/lib/avm/instances/base/auto_values/source.rb
@@ -1097,8 +1097,8 @@ files:
1097
1097
  - sub/avm/lib/avm/sync.rb
1098
1098
  - sub/avm/lib/avm/version.rb
1099
1099
  - sub/avm/lib/avm/version_number.rb
1100
- - sub/avm/lib/avm/with_application_stereotype.rb
1101
- - sub/avm/lib/avm/with_dynamic_runners.rb
1100
+ - sub/avm/lib/avm/with/application_stereotype.rb
1101
+ - sub/avm/lib/avm/with/extra_subcommands.rb
1102
1102
  - sub/avm/spec/lib/avm/applications/base_spec.rb
1103
1103
  - sub/avm/spec/lib/avm/applications/base_spec_fixture.yml
1104
1104
  - sub/avm/spec/lib/avm/instances/base_spec.rb
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avm
4
- module Instances
5
- class Base
6
- module AutoValues
7
- module Access
8
- def auto_access
9
- read_entry_optional('ssh.url').present? ? 'ssh' : 'local'
10
- end
11
-
12
- def auto_ssh_hostname
13
- inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.hostname')
14
- end
15
-
16
- def auto_ssh_port
17
- inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.port') || 22
18
- end
19
-
20
- def auto_ssh_username
21
- inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.username')
22
- end
23
-
24
- def auto_ssh_url
25
- inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.url') ||
26
- auto_ssh_url_by_parts
27
- end
28
-
29
- def auto_ssh_url_by_parts
30
- read_entry_optional('ssh.hostname').if_present do |a|
31
- a = read_entry_optional('ssh.username').if_present(a) { |v| "#{v}@#{a}" }
32
- a = read_entry_optional('ssh.port').if_present(a) { |v| "#{a}:#{v}" }
33
- "ssh://#{a}"
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module WithApplicationStereotype
7
- common_concern do
8
- include ClassMethods
9
- end
10
-
11
- module ClassMethods
12
- # @return [Avm::ApplicationStereotype::Base]
13
- def application_stereotype
14
- @application_stereotype ||=
15
- ::Avm::Registry.application_stereotypes.detect(application_stereotype_name)
16
- end
17
-
18
- # @return [String]
19
- def application_stereotype_name
20
- stereotype_namespace_module.name.demodulize
21
- end
22
-
23
- # @return [Module]
24
- def stereotype_namespace_module
25
- module_parent.module_parent
26
- end
27
- end
28
-
29
- def stereotype_namespace_module
30
- self.class.stereotype_namespace_module
31
- end
32
- end
33
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner_with/subcommands'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module WithDynamicRunners
8
- # @return [Hash<String, EacCli::Runner>]
9
- def extra_available_subcommands
10
- extra_available_subcommands_from_runners_module
11
- end
12
-
13
- # @return [Hash<String, EacCli::Runner>]
14
- def extra_available_subcommands_from_runners_module
15
- self.class.ancestors.reverse.inject({}) do |a, e|
16
- a.merge(RunnersFromModule.new(e).result)
17
- end
18
- end
19
-
20
- class RunnersFromModule
21
- enable_simple_cache
22
- common_constructor :the_module
23
-
24
- # @return [Hash<String, EacCli::Runner>]
25
- def result
26
- return {} if runners_module.blank?
27
-
28
- ::EacCli::RunnerWith::Subcommands.subcommands_from_module(runners_module)
29
- end
30
-
31
- def runners_module_uncached
32
- return nil if the_module.module_parent.blank?
33
-
34
- begin
35
- the_module.module_parent.const_get('Runners')
36
- rescue ::NameError
37
- nil
38
- end
39
- end
40
- end
41
- end
42
- end