eac_tools 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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