avm-tools 0.98.0 → 0.99.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 (182) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/configs.rb +2 -2
  3. data/lib/avm/data/package/dump.rb +2 -2
  4. data/lib/avm/data/package/load.rb +1 -1
  5. data/lib/avm/data/unit.rb +1 -1
  6. data/lib/avm/docker/container.rb +2 -2
  7. data/lib/avm/docker/runner.rb +1 -1
  8. data/lib/avm/eac_redmine_base0/core_update.rb +1 -1
  9. data/lib/avm/eac_webapp_base0/runner/data/load.rb +1 -1
  10. data/lib/avm/eac_writings_base0/project_build.rb +1 -1
  11. data/lib/avm/files/appendable/templatized_directory.rb +1 -1
  12. data/lib/avm/files/formatter.rb +1 -1
  13. data/lib/avm/git/auto_commit/rules/manual.rb +1 -1
  14. data/lib/avm/git/file_auto_fixup.rb +1 -1
  15. data/lib/avm/git/issue/complete.rb +2 -2
  16. data/lib/avm/git/issue/deliver.rb +56 -0
  17. data/lib/avm/git/revision_test.rb +1 -1
  18. data/lib/avm/git/subrepo_check.rb +1 -1
  19. data/lib/avm/git/subrepo_checks.rb +1 -1
  20. data/lib/avm/instances/entries.rb +1 -1
  21. data/lib/avm/instances/entry.rb +1 -1
  22. data/lib/avm/launcher/context/instance_manager/cached_instance.rb +1 -1
  23. data/lib/avm/launcher/instances/base.rb +1 -1
  24. data/lib/avm/patches/object/template.rb +2 -2
  25. data/lib/avm/projects/stereotypes/git/update.rb +1 -1
  26. data/lib/avm/projects/stereotypes/git/update/subrepo.rb +1 -1
  27. data/lib/avm/projects/stereotypes/ruby_gem/publish.rb +2 -2
  28. data/lib/avm/projects/stereotypes/ruby_gem/update.rb +1 -1
  29. data/lib/avm/projects/stereotypes/ruby_gem/version_bump.rb +1 -1
  30. data/lib/avm/ruby/gems/generator.rb +3 -3
  31. data/lib/avm/ruby/rubocop.rb +1 -1
  32. data/lib/avm/tools/runner/git.rb +6 -2
  33. data/lib/avm/tools/runner/git/commit.rb +1 -1
  34. data/lib/avm/tools/runner/git/issue.rb +17 -13
  35. data/lib/avm/tools/version.rb +1 -1
  36. data/lib/eac_launcher/context.rb +2 -2
  37. data/lib/eac_launcher/git/publish_base.rb +1 -1
  38. data/lib/eac_launcher/ruby/gem/build.rb +2 -2
  39. data/vendor/avm-apps/lib/avm/apps/jobs/base.rb +1 -1
  40. data/vendor/avm-apps/lib/avm/apps/sources/configuration.rb +2 -2
  41. data/vendor/avm-apps/lib/avm/apps/sources/configuration/_locale.rb +1 -1
  42. data/vendor/avm-apps/lib/avm/apps/sources/configuration/_rubocop.rb +1 -1
  43. data/vendor/avm-apps/lib/avm/apps/sources/configuration/_tests.rb +1 -1
  44. data/vendor/avm-apps/lib/avm/apps/version.rb +1 -1
  45. data/vendor/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +1 -0
  46. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb +1 -1
  47. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build/file.rb +1 -1
  48. data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +1 -1
  49. data/vendor/eac_cli/eac_cli.gemspec +4 -1
  50. data/vendor/eac_cli/lib/eac_cli/default_runner.rb +1 -1
  51. data/vendor/eac_cli/lib/eac_cli/definition/help_formatter.rb +2 -2
  52. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +1 -1
  53. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder/alternative.rb +3 -3
  54. data/vendor/eac_cli/lib/eac_cli/docopt/runner_extension.rb +2 -2
  55. data/vendor/eac_cli/lib/eac_cli/docopt_runner.rb +43 -0
  56. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_class_methods.rb +16 -0
  57. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_doc.rb +23 -0
  58. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_settings.rb +17 -0
  59. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_subcommands.rb +152 -0
  60. data/vendor/eac_cli/lib/eac_cli/old_configs.rb +36 -0
  61. data/vendor/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +80 -0
  62. data/vendor/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +16 -0
  63. data/vendor/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +44 -0
  64. data/vendor/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +25 -0
  65. data/vendor/eac_cli/lib/eac_cli/patches/module.rb +4 -0
  66. data/vendor/eac_cli/lib/eac_cli/patches/module/speaker.rb +10 -0
  67. data/vendor/eac_cli/lib/eac_cli/patches/object/runner_with.rb +1 -1
  68. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands.rb +5 -1
  69. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +10 -0
  70. data/vendor/eac_cli/lib/eac_cli/speaker.rb +131 -0
  71. data/vendor/eac_cli/lib/eac_cli/speaker/_class_methods.rb +37 -0
  72. data/vendor/eac_cli/lib/eac_cli/speaker/_constants.rb +12 -0
  73. data/vendor/eac_cli/lib/eac_cli/speaker/list.rb +61 -0
  74. data/vendor/eac_cli/lib/eac_cli/speaker/node.rb +24 -0
  75. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  76. data/vendor/eac_cli/spec/lib/eac_cli/docopt/runner_extension_spec.rb +1 -1
  77. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console → eac_cli/spec/lib/eac_cli}/docopt_runner_spec.rb +5 -5
  78. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console/configs_spec.rb → eac_cli/spec/lib/eac_cli/old_configs_spec.rb} +2 -2
  79. data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +1 -1
  80. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/console → eac_cli/spec/lib/eac_cli}/speaker_spec.rb +2 -2
  81. data/vendor/eac_cli/spec/lib/module/speaker_spec.rb +13 -0
  82. data/vendor/eac_config/Gemfile +5 -0
  83. data/vendor/eac_config/eac_config.gemspec +19 -0
  84. data/vendor/eac_config/lib/eac_config.rb +7 -0
  85. data/vendor/eac_config/lib/eac_config/entry.rb +43 -0
  86. data/vendor/eac_config/lib/eac_config/entry_path.rb +41 -0
  87. data/vendor/eac_config/lib/eac_config/load_nodes_search.rb +39 -0
  88. data/vendor/eac_config/lib/eac_config/load_path.rb +36 -0
  89. data/vendor/eac_config/lib/eac_config/node.rb +53 -0
  90. data/vendor/eac_config/lib/eac_config/node_entry.rb +39 -0
  91. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils/configs.rb → eac_config/lib/eac_config/old_configs.rb} +5 -5
  92. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils/configs → eac_config/lib/eac_config/old_configs}/base.rb +5 -5
  93. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils/configs → eac_config/lib/eac_config/old_configs}/file.rb +4 -4
  94. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils → eac_config/lib/eac_config}/paths_hash.rb +8 -8
  95. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils → eac_config/lib/eac_config}/paths_hash/entry_key_error.rb +1 -1
  96. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils → eac_config/lib/eac_config}/paths_hash/node.rb +2 -2
  97. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils → eac_config/lib/eac_config}/paths_hash/path_search.rb +4 -4
  98. data/vendor/eac_config/lib/eac_config/version.rb +5 -0
  99. data/vendor/eac_config/lib/eac_config/yaml_file_node.rb +41 -0
  100. data/vendor/eac_config/spec/lib/eac_config/entry_path_spec.rb +30 -0
  101. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/configs_spec.rb → eac_config/spec/lib/eac_config/old_configs_spec.rb} +2 -2
  102. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils → eac_config/spec/lib/eac_config}/paths_hash_spec.rb +6 -6
  103. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb +52 -0
  104. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml +4 -0
  105. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml +2 -0
  106. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml +3 -0
  107. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml +2 -0
  108. data/vendor/eac_config/spec/rubocop_spec.rb +3 -0
  109. data/vendor/eac_config/spec/spec_helper.rb +17 -0
  110. data/vendor/eac_docker/eac_docker.gemspec +2 -1
  111. data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +1 -0
  112. data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
  113. data/vendor/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +2 -1
  114. data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +1 -1
  115. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +2 -2
  116. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +2 -2
  117. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  118. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple.rb +1 -1
  119. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +1 -1
  120. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
  121. data/vendor/eac_ruby_utils/eac_ruby_utils.gemspec +0 -2
  122. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +10 -5
  123. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -1
  124. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec/conditional.rb +1 -4
  125. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  126. data/vendor/eac_templates/Gemfile +5 -0
  127. data/vendor/eac_templates/eac_templates.gemspec +19 -0
  128. data/vendor/eac_templates/lib/eac_templates.rb +7 -0
  129. data/vendor/eac_templates/lib/eac_templates/directory.rb +108 -0
  130. data/vendor/eac_templates/lib/eac_templates/file.rb +48 -0
  131. data/vendor/eac_templates/lib/eac_templates/patches/module/template.rb +10 -0
  132. data/vendor/{eac_ruby_utils/lib/eac_ruby_utils → eac_templates/lib/eac_templates}/patches/object/template.rb +1 -1
  133. data/vendor/eac_templates/lib/eac_templates/searcher.rb +53 -0
  134. data/vendor/eac_templates/lib/eac_templates/variable_not_found_error.rb +5 -0
  135. data/vendor/eac_templates/lib/eac_templates/variable_providers.rb +23 -0
  136. data/vendor/eac_templates/lib/eac_templates/variable_providers/base.rb +21 -0
  137. data/vendor/eac_templates/lib/eac_templates/variable_providers/entries_reader.rb +23 -0
  138. data/vendor/eac_templates/lib/eac_templates/variable_providers/generic.rb +23 -0
  139. data/vendor/eac_templates/lib/eac_templates/variable_providers/hash.rb +27 -0
  140. data/vendor/eac_templates/lib/eac_templates/version.rb +5 -0
  141. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/file_spec.rb +4 -4
  142. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/file_spec_files/expected_content +0 -0
  143. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/file_spec_files/source.template +0 -0
  144. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/searcher_spec.rb +5 -5
  145. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/searcher_spec_files/path1/subdir1/file1.template +0 -0
  146. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/searcher_spec_files/path1/subdir1/file2 +0 -0
  147. data/vendor/{eac_ruby_utils/spec/lib/eac_ruby_utils/templates → eac_templates/spec/lib/eac_templates}/searcher_spec_files/path2/subdir1/file3.template +0 -0
  148. data/vendor/eac_templates/spec/lib/object/template_spec.rb +23 -0
  149. data/vendor/eac_templates/spec/lib/object/template_spec_files/path/my_stub_with_template +1 -0
  150. data/vendor/eac_templates/spec/rubocop_spec.rb +3 -0
  151. data/vendor/eac_templates/spec/spec_helper.rb +102 -0
  152. metadata +90 -71
  153. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console.rb +0 -5
  154. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb +0 -38
  155. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/entry_reader.rb +0 -81
  156. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +0 -18
  157. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/read_entry_options.rb +0 -46
  158. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +0 -27
  159. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner.rb +0 -45
  160. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +0 -18
  161. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_doc.rb +0 -25
  162. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_settings.rb +0 -19
  163. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +0 -154
  164. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker.rb +0 -133
  165. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/_class_methods.rb +0 -39
  166. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/_constants.rb +0 -14
  167. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/list.rb +0 -63
  168. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/speaker/node.rb +0 -26
  169. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/console_speaker.rb +0 -10
  170. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/template.rb +0 -10
  171. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates.rb +0 -9
  172. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/directory.rb +0 -110
  173. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/file.rb +0 -50
  174. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/searcher.rb +0 -55
  175. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_not_found_error.rb +0 -7
  176. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers.rb +0 -25
  177. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/base.rb +0 -23
  178. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb +0 -25
  179. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/generic.rb +0 -25
  180. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/templates/variable_providers/hash.rb +0 -29
  181. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/console_speaker_spec.rb +0 -13
  182. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec.rb +0 -23
@@ -2,13 +2,13 @@
2
2
 
3
3
  require 'active_support/core_ext/string'
4
4
  require 'yaml'
5
- require 'eac_ruby_utils/configs/file'
5
+ require 'eac_config/old_configs/file'
6
6
  require 'eac_ruby_utils/patches/hash/sym_keys_hash'
7
- require 'eac_ruby_utils/paths_hash'
7
+ require 'eac_config/paths_hash'
8
8
  require 'eac_ruby_utils/simple_cache'
9
9
 
10
- module EacRubyUtils
11
- class Configs
10
+ module EacConfig
11
+ class OldConfigs
12
12
  include ::EacRubyUtils::SimpleCache
13
13
 
14
14
  attr_reader :configs_key, :options
@@ -49,7 +49,7 @@ module EacRubyUtils
49
49
  attr_accessor :data
50
50
 
51
51
  def file_uncached
52
- ::EacRubyUtils::Configs::File.new(
52
+ ::EacConfig::OldConfigs::File.new(
53
53
  storage_path, options
54
54
  )
55
55
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  require 'eac_ruby_utils/blank_not_blank'
4
4
  require 'eac_ruby_utils/core_ext'
5
- require 'eac_ruby_utils/paths_hash'
5
+ require 'eac_config/paths_hash'
6
6
 
7
- module EacRubyUtils
8
- class Configs
7
+ module EacConfig
8
+ class OldConfigs
9
9
  class Base
10
10
  enable_simple_cache
11
11
 
12
12
  common_constructor :data, default: [{}] do
13
- self.data = ::EacRubyUtils::PathsHash.new(data)
13
+ self.data = ::EacConfig::PathsHash.new(data)
14
14
  end
15
15
 
16
16
  def []=(entry_key, entry_value)
@@ -32,7 +32,7 @@ module EacRubyUtils
32
32
  end
33
33
 
34
34
  def replace(new_data)
35
- self.data = ::EacRubyUtils::PathsHash.new(new_data)
35
+ self.data = ::EacConfig::PathsHash.new(new_data)
36
36
  end
37
37
 
38
38
  def write(entry_key, entry_value)
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/configs/base'
3
+ require 'eac_config/old_configs/base'
4
4
  require 'yaml'
5
5
 
6
- module EacRubyUtils
7
- class Configs
8
- class File < ::EacRubyUtils::Configs::Base
6
+ module EacConfig
7
+ class OldConfigs
8
+ class File < ::EacConfig::OldConfigs::Base
9
9
  attr_reader :path, :options
10
10
 
11
11
  # Valid options: [:autosave]
@@ -2,23 +2,23 @@
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
4
 
5
- module EacRubyUtils
5
+ module EacConfig
6
6
  class PathsHash
7
7
  require_sub __FILE__
8
8
 
9
9
  class << self
10
10
  def parse_entry_key(entry_key)
11
11
  r = entry_key.to_s.strip
12
- raise ::EacRubyUtils::PathsHash::EntryKeyError, 'Entry key cannot start or end with dot' if
12
+ raise ::EacConfig::PathsHash::EntryKeyError, 'Entry key cannot start or end with dot' if
13
13
  r.start_with?('.') || r.end_with?('.')
14
14
 
15
15
  r = r.split('.').map(&:strip)
16
16
  if r.empty?
17
- raise ::EacRubyUtils::PathsHash::EntryKeyError, "Entry key \"#{entry_key}\" is empty"
17
+ raise ::EacConfig::PathsHash::EntryKeyError, "Entry key \"#{entry_key}\" is empty"
18
18
  end
19
19
  return r.map(&:to_sym) unless r.any?(&:blank?)
20
20
 
21
- raise ::EacRubyUtils::PathsHash::EntryKeyError,
21
+ raise ::EacConfig::PathsHash::EntryKeyError,
22
22
  "Entry key \"#{entry_key}\" has at least one blank part"
23
23
  end
24
24
  end
@@ -30,21 +30,21 @@ module EacRubyUtils
30
30
  end
31
31
 
32
32
  def [](entry_key)
33
- root.read_entry(::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key))
33
+ root.read_entry(::EacConfig::PathsHash::PathSearch.parse_entry_key(entry_key))
34
34
  end
35
35
 
36
36
  def []=(entry_key, entry_value)
37
37
  root.write_entry(
38
- ::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key), entry_value
38
+ ::EacConfig::PathsHash::PathSearch.parse_entry_key(entry_key), entry_value
39
39
  )
40
40
  end
41
41
 
42
42
  def fetch(entry_key)
43
- root.fetch(::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key))
43
+ root.fetch(::EacConfig::PathsHash::PathSearch.parse_entry_key(entry_key))
44
44
  end
45
45
 
46
46
  def key?(entry_key)
47
- root.entry?(::EacRubyUtils::PathsHash::PathSearch.parse_entry_key(entry_key))
47
+ root.entry?(::EacConfig::PathsHash::PathSearch.parse_entry_key(entry_key))
48
48
  end
49
49
 
50
50
  delegate :to_h, to: :root
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module EacRubyUtils
3
+ module EacConfig
4
4
  class PathsHash
5
5
  class EntryKeyError < StandardError
6
6
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
- require 'eac_ruby_utils/paths_hash/entry_key_error'
4
+ require 'eac_config/paths_hash/entry_key_error'
5
5
 
6
- module EacRubyUtils
6
+ module EacConfig
7
7
  class PathsHash
8
8
  class Node
9
9
  PATH_SEARCH_UNENDED_ERROR_MESSAGE = 'Path search is not a Node and is not ended'
@@ -1,18 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module EacRubyUtils
3
+ module EacConfig
4
4
  class PathsHash
5
5
  class PathSearch
6
6
  class << self
7
7
  def parse_entry_key(string)
8
- new(::EacRubyUtils::PathsHash.parse_entry_key(string), [])
8
+ new(::EacConfig::PathsHash.parse_entry_key(string), [])
9
9
  end
10
10
  end
11
11
 
12
12
  common_constructor :current, :previous do
13
13
  self.current = current.assert_argument(Array, 'current').freeze
14
14
  self.previous = previous.assert_argument(Array, 'previous')
15
- raise ::EacRubyUtils::PathsHash::EntryKeyError, 'Current is empty' if current.empty?
15
+ raise ::EacConfig::PathsHash::EntryKeyError, 'Current is empty' if current.empty?
16
16
  end
17
17
 
18
18
  def cursor
@@ -24,7 +24,7 @@ module EacRubyUtils
24
24
  end
25
25
 
26
26
  def raise_error(message)
27
- raise ::EacRubyUtils::PathsHash::EntryKeyError, "#{message} (#{self})"
27
+ raise ::EacConfig::PathsHash::EntryKeyError, "#{message} (#{self})"
28
28
  end
29
29
 
30
30
  def succeeding
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacConfig
4
+ VERSION = '0.3.0'
5
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'addressable'
4
+ require 'eac_config/node'
5
+ require 'eac_ruby_utils/core_ext'
6
+ require 'eac_ruby_utils/yaml'
7
+
8
+ module EacConfig
9
+ class YamlFileNode
10
+ include ::EacConfig::Node
11
+
12
+ common_constructor :path do
13
+ self.path = path.to_pathname
14
+ end
15
+
16
+ def data
17
+ @data ||= ::EacRubyUtils::Yaml.load_file(assert_path)
18
+ end
19
+
20
+ def persist_data(new_data)
21
+ path.parent.mkpath
22
+ ::EacRubyUtils::Yaml.dump_file(path, new_data)
23
+ reset_cache(:data)
24
+ end
25
+
26
+ def url
27
+ ::Addressable::URI.parse("file://#{path.expand_path}")
28
+ end
29
+
30
+ private
31
+
32
+ def assert_path
33
+ unless path.file?
34
+ raise("\"#{path}\" is a not a file") if path.exist?
35
+
36
+ persist_data({})
37
+ end
38
+ path
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_config/entry_path'
4
+
5
+ RSpec.describe ::EacConfig::EntryPath do
6
+ describe '#assert' do
7
+ {
8
+ ['a.b.c'] => %w[a b c],
9
+ [['a', 1], 'b', []] => %w[a 1 b],
10
+ ['a', 'b', ['c', 1.2], 'd', 'e.f'] => %w[a b c 1 2 d e f]
11
+ }.each do |data|
12
+ source = data[0]
13
+ expected_parts = data[1]
14
+
15
+ context "when source is #{source}" do
16
+ let(:instance) { described_class.assert(source) }
17
+
18
+ it { expect(instance.parts).to eq(expected_parts) }
19
+ end
20
+ end
21
+
22
+ [['a..c'], ['a', ' ']].each do |source|
23
+ context "when invalid source is #{source}" do
24
+ it do
25
+ expect { described_class.assert(source) }.to raise_error(::ArgumentError)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'tempfile'
4
- require 'eac_ruby_utils/configs'
4
+ require 'eac_config/old_configs'
5
5
 
6
- RSpec.describe ::EacRubyUtils::Configs do
6
+ RSpec.describe ::EacConfig::OldConfigs do
7
7
  let(:configs_key) { 'configsspec' }
8
8
  let(:storage_path) do
9
9
  file = ::Tempfile.new(configs_key)
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/paths_hash'
3
+ require 'eac_config/paths_hash'
4
4
 
5
- RSpec.describe ::EacRubyUtils::PathsHash do
5
+ RSpec.describe ::EacConfig::PathsHash do
6
6
  let(:source_hash) do
7
7
  {
8
8
  parent: {
@@ -32,7 +32,7 @@ RSpec.describe ::EacRubyUtils::PathsHash do
32
32
 
33
33
  ['.only_suffix', '', '.', 'only_prefx.', 'empty..part'].each do |entry_key|
34
34
  it "invalid entry key \"#{entry_key}\" raises EntryKeyError" do
35
- expect { instance[entry_key] }.to raise_error(::EacRubyUtils::PathsHash::EntryKeyError)
35
+ expect { instance[entry_key] }.to raise_error(::EacConfig::PathsHash::EntryKeyError)
36
36
  end
37
37
  end
38
38
  end
@@ -51,10 +51,10 @@ RSpec.describe ::EacRubyUtils::PathsHash do
51
51
  {
52
52
  'parent.child1.child1_1' => 'v1_1',
53
53
  'parent.child1.child1_2' => 'v1_2',
54
- 'parent.child1.child1_2.no_exist' => ::EacRubyUtils::PathsHash::EntryKeyError,
55
- 'parent.child1.child1_3' => ::EacRubyUtils::PathsHash::EntryKeyError,
54
+ 'parent.child1.child1_2.no_exist' => ::EacConfig::PathsHash::EntryKeyError,
55
+ 'parent.child1.child1_3' => ::EacConfig::PathsHash::EntryKeyError,
56
56
  'parent.child2' => 'v2',
57
- 'no_exist' => ::EacRubyUtils::PathsHash::EntryKeyError,
57
+ 'no_exist' => ::EacConfig::PathsHash::EntryKeyError,
58
58
  'parent.child1' => {
59
59
  child1_1: 'v1_1',
60
60
  child1_2: 'v1_2'
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/struct'
4
+ require 'eac_config/yaml_file_node'
5
+
6
+ RSpec.describe ::EacConfig::YamlFileNode do
7
+ storages = %w[1 1_1 1_2 1_2_1].map do |suffix|
8
+ key = "storage#{suffix}"
9
+ subpath = "#{key}.yaml"
10
+ subpath = "storage1_2/#{subpath}" if suffix == '1_2_1'
11
+ ::EacRubyUtils::Struct.new(suffix: suffix, key: key, subpath: subpath.to_pathname)
12
+ end
13
+
14
+ let(:fixtures_dir) { ::Pathname.new(__dir__).join('yaml_file_node_spec_files') }
15
+ let(:target_dir) { temp_copy(fixtures_dir) }
16
+ let(:yaml_file_path) do
17
+ r = target_dir.join('storage1.yaml')
18
+ r.write(r.read.gsub('%%STORAGE1_2_ABSOLUTE_PATH%%',
19
+ target_dir.join('storage1_2.yaml').expand_path.to_path))
20
+ r
21
+ end
22
+ let(:instance) { described_class.new(yaml_file_path) }
23
+
24
+ context 'with common entry' do
25
+ let(:entry) { instance.entry('common') }
26
+
27
+ it { expect(entry.value).to eq('AAA') }
28
+ it { expect(entry.found_node).to eq(instance) }
29
+ it { expect(entry).to be_found }
30
+ end
31
+
32
+ storages.each do |storage|
33
+ context "with entry in loaded path \"#{storage.subpath}\"" do
34
+ let(:entry) { instance.entry(storage.key) }
35
+ let(:storage_node) { described_class.new(target_dir.join(storage.subpath)) }
36
+
37
+ it { expect(entry).to be_a(::EacConfig::Entry) }
38
+ it { expect(entry).to be_found }
39
+ it { expect(entry.value).to eq(storage.key) }
40
+ it { expect(entry.found_node.url).to eq(storage_node.url) }
41
+ end
42
+ end
43
+
44
+ context 'with not existing entry' do
45
+ let(:entry) { instance.entry('no_exist') }
46
+
47
+ it { expect(entry).to be_a(::EacConfig::Entry) }
48
+ it { expect(entry.value).to eq(nil) }
49
+ it { expect(entry.found_node).to eq(nil) }
50
+ it { expect(entry).not_to be_found }
51
+ end
52
+ end
@@ -0,0 +1,4 @@
1
+ ---
2
+ common: AAA
3
+ load_path: storage1_1.yaml:%%STORAGE1_2_ABSOLUTE_PATH%%
4
+ storage1: storage1
@@ -0,0 +1,2 @@
1
+ ---
2
+ storage1_1: storage1_1
@@ -0,0 +1,3 @@
1
+ ---
2
+ load_path: ./storage1_2/storage1_2_1.yaml
3
+ storage1_2: storage1_2
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ ::EacRubyGemSupport::Rspec.default.describe_rubocop
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
4
+ RSpec.configure do |config|
5
+ config.expect_with :rspec do |expectations|
6
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
7
+ end
8
+
9
+ config.mock_with :rspec do |mocks|
10
+ mocks.verify_partial_doubles = true
11
+ end
12
+
13
+ config.shared_context_metadata_behavior = :apply_to_host_groups
14
+
15
+ require 'eac_ruby_gem_support/rspec'
16
+ ::EacRubyGemSupport::Rspec.setup(::File.dirname(__dir__), config)
17
+ end
@@ -12,7 +12,8 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
- s.add_dependency 'eac_ruby_utils', '~> 0.36'
15
+ s.add_dependency 'eac_ruby_utils', '~> 0.64'
16
+ s.add_dependency 'eac_templates', '~> 0.1'
16
17
 
17
18
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.2'
18
19
  end
@@ -4,6 +4,7 @@ require 'eac_docker/images/base'
4
4
  require 'eac_docker/images/coded'
5
5
  require 'eac_ruby_utils/core_ext'
6
6
  require 'eac_ruby_utils/fs/temp'
7
+ require 'eac_templates/patches/object/template'
7
8
 
8
9
  module EacDocker
9
10
  module Images
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacDocker
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_docker/images/templatized'
4
+ require 'eac_templates/searcher'
4
5
 
5
6
  RSpec.describe(::EacDocker::Images::Templatized, docker: true) do
6
7
  let(:fixtures_dir) { ::Pathname.new('templatized_spec_files').expand_path(__dir__) }
7
8
  let(:instance) { StubDockerImage.new }
8
9
 
9
10
  before do
10
- ::EacRubyUtils::Templates::Searcher.default.included_paths << fixtures_dir
11
+ ::EacTemplates::Searcher.default.included_paths << fixtures_dir
11
12
  stub_const('StubDockerImage', Class.new(described_class))
12
13
  end
13
14