avm-tools 0.121.0 → 0.122.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/lib/avm/tools/runner/app_src/info.rb +19 -0
  4. data/lib/avm/tools/version.rb +1 -1
  5. data/locale/en.yml +7 -0
  6. data/locale/pt-BR.yml +7 -0
  7. metadata +4 -71
  8. data/sub/avm-eac_generic_base0/Gemfile +0 -5
  9. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +0 -19
  10. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base/version_bump.rb +0 -35
  11. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb +0 -25
  12. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/tester.rb +0 -56
  13. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources.rb +0 -11
  14. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +0 -7
  15. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0.rb +0 -9
  16. data/sub/avm-eac_generic_base0/locale/en.yaml +0 -6
  17. data/sub/avm-eac_generic_base0/locale/pt-BR.yaml +0 -6
  18. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/sources/base_spec.rb +0 -7
  19. data/sub/avm-eac_generic_base0/spec/rubocop_spec.rb +0 -3
  20. data/sub/avm-eac_generic_base0/spec/spec_helper.rb +0 -4
  21. data/sub/avm-eac_rails_base0/Gemfile +0 -5
  22. data/sub/avm-eac_rails_base0/avm-eac_rails_base0.gemspec +0 -19
  23. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/apache_host.rb +0 -10
  24. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/apache_path.rb +0 -19
  25. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/deploy.rb +0 -53
  26. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/instance.rb +0 -11
  27. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners/base.rb +0 -26
  28. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners.rb +0 -11
  29. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/sources/base.rb +0 -27
  30. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb +0 -7
  31. data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0.rb +0 -9
  32. data/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_host_spec.rb +0 -22
  33. data/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +0 -11
  34. data/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_path_spec.rb +0 -23
  35. data/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_path_spec_files/stub-app_0_apache_path.conf +0 -14
  36. data/sub/avm-eac_rails_base0/spec/rubocop_spec.rb +0 -3
  37. data/sub/avm-eac_rails_base0/spec/spec_helper.rb +0 -5
  38. data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/apache_path/extra_content.conf +0 -5
  39. data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/deploy/config/database.yml.template +0 -21
  40. data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/deploy/config/envvars.d/email.yml.template +0 -11
  41. data/sub/eac_config/Gemfile +0 -5
  42. data/sub/eac_config/eac_config.gemspec +0 -19
  43. data/sub/eac_config/lib/eac_config/entry.rb +0 -53
  44. data/sub/eac_config/lib/eac_config/entry_path.rb +0 -41
  45. data/sub/eac_config/lib/eac_config/envvars_node/entry.rb +0 -54
  46. data/sub/eac_config/lib/eac_config/envvars_node.rb +0 -25
  47. data/sub/eac_config/lib/eac_config/load_nodes_search.rb +0 -39
  48. data/sub/eac_config/lib/eac_config/load_path.rb +0 -28
  49. data/sub/eac_config/lib/eac_config/node.rb +0 -67
  50. data/sub/eac_config/lib/eac_config/node_entry.rb +0 -22
  51. data/sub/eac_config/lib/eac_config/node_uri.rb +0 -38
  52. data/sub/eac_config/lib/eac_config/old_configs/base.rb +0 -43
  53. data/sub/eac_config/lib/eac_config/old_configs/file.rb +0 -47
  54. data/sub/eac_config/lib/eac_config/old_configs.rb +0 -75
  55. data/sub/eac_config/lib/eac_config/paths_hash/entry_key_error.rb +0 -8
  56. data/sub/eac_config/lib/eac_config/paths_hash/node.rb +0 -67
  57. data/sub/eac_config/lib/eac_config/paths_hash/path_search.rb +0 -39
  58. data/sub/eac_config/lib/eac_config/paths_hash.rb +0 -63
  59. data/sub/eac_config/lib/eac_config/rspec/setup.rb +0 -65
  60. data/sub/eac_config/lib/eac_config/rspec.rb +0 -9
  61. data/sub/eac_config/lib/eac_config/version.rb +0 -5
  62. data/sub/eac_config/lib/eac_config/yaml_file_node/entry.rb +0 -36
  63. data/sub/eac_config/lib/eac_config/yaml_file_node.rb +0 -47
  64. data/sub/eac_config/lib/eac_config.rb +0 -7
  65. data/sub/eac_config/spec/lib/eac_config/entry_path_spec.rb +0 -30
  66. data/sub/eac_config/spec/lib/eac_config/envvars_node/entry_spec.rb +0 -14
  67. data/sub/eac_config/spec/lib/eac_config/envvars_node_spec.rb +0 -40
  68. data/sub/eac_config/spec/lib/eac_config/old_configs_spec.rb +0 -46
  69. data/sub/eac_config/spec/lib/eac_config/paths_hash_spec.rb +0 -88
  70. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb +0 -52
  71. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml +0 -6
  72. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml +0 -2
  73. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml +0 -2
  74. data/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml +0 -4
  75. data/sub/eac_config/spec/rubocop_spec.rb +0 -3
  76. data/sub/eac_config/spec/spec_helper.rb +0 -4
@@ -1,11 +0,0 @@
1
- <VirtualHost *:80>
2
- ServerName "stubapp.net"
3
- DocumentRoot "/path/to/stub-app_0/public"
4
- PassengerEnabled On
5
-
6
- <Directory "/path/to/stub-app_0/public">
7
- Allow from all
8
- Options -MultiViews
9
- Require all granted
10
- </Directory>
11
- </VirtualHost>
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_rails_base0/apache_path'
4
- require 'avm/eac_rails_base0/instance'
5
-
6
- RSpec.describe ::Avm::EacRailsBase0::ApachePath do
7
- describe '#no_ssl_site_content' do
8
- let(:instance) { ::Avm::EacRailsBase0::Instance.by_id('stub-app_0') }
9
- let(:apache_path) { described_class.new(instance) }
10
- let(:fixtures_dir) { ::Pathname.new('apache_path_spec_files').expand_path(__dir__) }
11
- let(:expect_file) { fixtures_dir.join('stub-app_0_apache_path.conf') }
12
- let(:expected_content) { expect_file.read }
13
-
14
- before do
15
- instance.entry(::Avm::Instances::EntryKeys::FS_PATH).write('/path/to/stub-app_0')
16
- instance.entry('web.url').write('http://stubapp.net/stub-app_0')
17
- end
18
-
19
- it do
20
- expect(apache_path.content).to eq(expected_content)
21
- end
22
- end
23
- end
@@ -1,14 +0,0 @@
1
- <IfModule mod_passenger.c>
2
- Alias "/stub-app_0" "/path/to/stub-app_0/public"
3
- <Location "/stub-app_0">
4
- PassengerBaseURI "/stub-app_0"
5
- PassengerAppRoot "/path/to/stub-app_0"
6
- PassengerAppEnv production
7
- </Location>
8
-
9
- <Directory "/path/to/stub-app_0/public">
10
- Allow from all
11
- Options -MultiViews
12
- Require all granted
13
- </Directory>
14
- </IfModule>
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ::EacRubyUtils::Rspec.default_setup.describe_rubocop
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/rspec/default_setup'
4
- ::EacRubyUtils::Rspec.default_setup_create(::File.expand_path('..', __dir__))
5
- ::EacRubyUtils::Rspec.default_setup.stub_eac_config_node
@@ -1,5 +0,0 @@
1
- <Location "%%WEB.PATH%%">
2
- PassengerBaseURI "%%WEB.PATH%%"
3
- PassengerAppRoot "%%FS_PATH%%"
4
- PassengerAppEnv production
5
- </Location>
@@ -1,21 +0,0 @@
1
- default: &default
2
- adapter: %%DATABASE.SYSTEM%%
3
- pool: %%DATABASE.LIMIT%%
4
- timeout: %%DATABASE.TIMEOUT%%
5
- encoding: unicode
6
- username: %%DATABASE.USERNAME%%
7
- password: %%DATABASE.PASSWORD%%
8
- host: %%DATABASE.HOSTNAME%%
9
- port: %%DATABASE.PORT%%
10
- reconnect: true
11
-
12
- development: &development
13
- <<: *default
14
- database: %%DATABASE.NAME%%
15
-
16
- production:
17
- <<: *development
18
-
19
- test:
20
- <<: *default
21
- database: %%DATABASE.NAME%%_test
@@ -1,11 +0,0 @@
1
- ---
2
- action_mailer_smtp_address: '%%MAILER.SMTP.ADDRESS%%'
3
- action_mailer_smtp_port: '%%MAILER.SMTP.PORT%%'
4
- action_mailer_smtp_domain: '%%MAILER.SMTP.DOMAIN%%'
5
- action_mailer_smtp_username: '%%MAILER.SMTP.USERNAME%%'
6
- action_mailer_smtp_password: '%%MAILER.SMTP.PASSWORD%%'
7
- action_mailer_smtp_authentication: '%%MAILER.SMTP.AUTHENTICATION%%'
8
- action_mailer_smtp_enable_starttls_auto: '%%MAILER.SMTP.STARTTLS_AUTO%%'
9
- action_mailer_default_options_from: '%%MAILER.FROM%%'
10
- action_mailer_default_options_reply_to: '%%MAILER.REPLY_TO%%'
11
- action_mailer_default_url_host: '%%WEB.URL%%'
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- $LOAD_PATH.push File.expand_path('lib', __dir__)
4
-
5
- require 'eac_config/version'
6
-
7
- Gem::Specification.new do |s|
8
- s.name = 'eac_config'
9
- s.version = EacConfig::VERSION
10
- s.authors = ['Put here the authors']
11
- s.summary = 'Put here de description.'
12
-
13
- s.files = Dir['{lib}/**/*']
14
-
15
- s.add_dependency 'addressable'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.83'
17
-
18
- s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
19
- end
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/entry_path'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module EacConfig
7
- class Entry
8
- enable_simple_cache
9
- common_constructor :root_node, :path do
10
- self.path = ::EacConfig::EntryPath.assert(path)
11
- end
12
-
13
- def found?
14
- node_entry.if_present(false, &:found?)
15
- end
16
-
17
- def found_node
18
- node_entry.if_present(&:node)
19
- end
20
-
21
- def secret_value
22
- node_entry.if_present(&:secret_value)
23
- end
24
-
25
- def value
26
- node_entry.if_present(&:value)
27
- end
28
-
29
- def value=(a_value)
30
- write_node.self_entry(path).value = a_value
31
- end
32
-
33
- def write_node
34
- root_node.write_node || root_node
35
- end
36
-
37
- private
38
-
39
- def node_entry_uncached
40
- node_entry_from_root || node_entry_from_load_path
41
- end
42
-
43
- def node_entry_from_load_path_uncached
44
- root_node.recursive_loaded_nodes.lazy.map { |loaded_node| loaded_node.self_entry(path) }
45
- .find(&:found?)
46
- end
47
-
48
- def node_entry_from_root_uncached
49
- e = root_node.self_entry(path)
50
- e.found? ? e : nil
51
- end
52
- end
53
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacConfig
6
- class EntryPath
7
- PART_SEPARATOR = '.'
8
-
9
- class << self
10
- def assert(source)
11
- source.is_a?(self) ? source : new(build_parts(source))
12
- end
13
-
14
- def build_parts(source)
15
- return validate_parts!(source.split(PART_SEPARATOR)) if source.is_a?(::String)
16
- return validate_parts!(source.flat_map { |part| build_parts(part) }) if
17
- source.is_a?(::Enumerable)
18
-
19
- build_parts(source.to_s)
20
- end
21
-
22
- def validate_parts!(parts)
23
- parts.assert_argument(::Enumerable, 'parts')
24
- parts.each_with_index do |part, index|
25
- raise ::ArgumentError, "Part #{index} of #{parts} is blank" if part.blank?
26
- raise ::ArgumentError, "Part #{index} is not a string" unless part.is_a?(::String)
27
- end
28
- end
29
- end
30
-
31
- attr_reader :parts
32
-
33
- def initialize(parts)
34
- @parts = parts.to_a.freeze
35
- end
36
-
37
- def to_s
38
- "#{self.class}[#{parts.join(PART_SEPARATOR)}]"
39
- end
40
- end
41
- end
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/entry_path'
4
- require 'eac_config/node_entry'
5
- require 'eac_ruby_utils/blank_not_blank'
6
- require 'eac_ruby_utils/core_ext'
7
- require 'eac_ruby_utils/yaml'
8
-
9
- module EacConfig
10
- class EnvvarsNode
11
- class Entry < ::EacConfig::NodeEntry
12
- class << self
13
- def entry_path_to_envvar_name(path)
14
- ::EacConfig::EntryPath.assert(path).parts.join('_').gsub(/[^a-z0-9_]/i, '')
15
- .gsub(/\A_+/, '').gsub(/_+\z/, '').gsub(/_{2,}/, '_').upcase
16
- end
17
-
18
- def from_value(string)
19
- return nil if string.nil?
20
- return ::EacRubyUtils::Yaml.load(string) if string.start_with?('---')
21
-
22
- string
23
- end
24
-
25
- def to_value(object)
26
- return nil if object.nil?
27
- return object if object.is_a?(String)
28
-
29
- ::EacRubyUtils::Yaml.dump(object)
30
- end
31
- end
32
-
33
- enable_simple_cache
34
-
35
- def found?
36
- ENV.key?(envvar_name)
37
- end
38
-
39
- def value
40
- self.class.from_value(ENV[envvar_name])
41
- end
42
-
43
- def value=(a_value)
44
- ENV[envvar_name] = self.class.to_value(a_value)
45
- end
46
-
47
- private
48
-
49
- def envvar_name_uncached
50
- self.class.entry_path_to_envvar_name(path)
51
- end
52
- end
53
- end
54
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'addressable'
4
- require 'eac_config/node'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module EacConfig
8
- # A node that read/write entries from environment variables.
9
- class EnvvarsNode
10
- require_sub __FILE__
11
- include ::EacConfig::Node
12
-
13
- URI = ::Addressable::URI.parse('self://envvars')
14
-
15
- class << self
16
- def from_uri(uri)
17
- return new if uri == URI
18
- end
19
- end
20
-
21
- def url
22
- URI
23
- end
24
- end
25
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacConfig
6
- class LoadNodesSearch
7
- common_constructor :root_node do
8
- add_next_pending until pending.empty?
9
- end
10
-
11
- def result
12
- added
13
- end
14
-
15
- private
16
-
17
- def added
18
- @added ||= []
19
- end
20
-
21
- def add_next_pending
22
- current = pending.pop
23
- current.self_loaded_nodes.each do |loaded_node|
24
- next if added.include?(loaded_node)
25
-
26
- added << loaded_node
27
- pending.push(loaded_node)
28
- end
29
- end
30
-
31
- def pending
32
- @pending ||= begin
33
- r = Queue.new
34
- r.push(root_node)
35
- r
36
- end
37
- end
38
- end
39
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/entry_path'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module EacConfig
7
- class LoadPath
8
- ENTRY_PATH = ::EacConfig::EntryPath.assert(%w[load_path])
9
-
10
- common_constructor :node
11
-
12
- def entry
13
- node.self_entry(ENTRY_PATH)
14
- end
15
-
16
- # @return [Array<String>]
17
- def paths
18
- r = entry.value
19
- r.is_a?(::Array) ? r : []
20
- end
21
-
22
- def push(new_path)
23
- entry.value = paths + [new_path]
24
- end
25
-
26
- delegate :to_s, to: :paths
27
- end
28
- end
@@ -1,67 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/entry'
4
- require 'eac_config/entry_path'
5
- require 'eac_config/load_path'
6
- require 'eac_config/load_nodes_search'
7
- require 'eac_config/node_entry'
8
- require 'eac_config/node_uri'
9
- require 'eac_ruby_utils/core_ext'
10
- require 'eac_ruby_utils/context'
11
-
12
- module EacConfig
13
- module Node
14
- class << self
15
- def context
16
- @context ||= ::EacRubyUtils::Context.new
17
- end
18
- end
19
-
20
- attr_accessor :write_node
21
-
22
- common_concern do
23
- enable_abstract_methods
24
- include ::Comparable
25
- end
26
-
27
- def entry(path)
28
- ::EacConfig::Entry.new(self, path)
29
- end
30
-
31
- # @return [[EacConfig::IncludePath]]
32
- def load_path
33
- @load_path ||= ::EacConfig::LoadPath.new(self)
34
- end
35
-
36
- # @return [Addressable::URI]
37
- def url
38
- raise_abstract_method(__method__)
39
- end
40
-
41
- # Return a entry which search values only in the self node.
42
- # @return [EacConfig::NodeEntry]
43
- def self_entry(path)
44
- self_entry_class.new(self, path)
45
- end
46
-
47
- def self_entry_class
48
- self.class.const_get('Entry')
49
- end
50
-
51
- # @return [Array<EacConfig::Node>]
52
- def self_loaded_nodes
53
- load_path.paths.map { |node_path| load_node(node_path) }
54
- end
55
-
56
- # @return [Array<EacConfig::Node>]
57
- def recursive_loaded_nodes
58
- ::EacConfig::LoadNodesSearch.new(self).result
59
- end
60
-
61
- private
62
-
63
- def load_node(node_path)
64
- ::EacConfig::NodeUri.new(node_path, url).instanciate
65
- end
66
- end
67
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/entry_path'
4
- require 'eac_config/paths_hash'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module EacConfig
8
- # A entry which search values only in the source node.
9
- class NodeEntry
10
- enable_abstract_methods
11
- enable_simple_cache
12
- common_constructor :node, :path do
13
- self.path = ::EacConfig::EntryPath.assert(path)
14
- end
15
-
16
- abstract_methods :found?, :value, :value=
17
-
18
- def secret_value
19
- value
20
- end
21
- end
22
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacConfig
4
- class NodeUri
5
- enable_simple_cache
6
- common_constructor :source, :loader_uri, default: [nil]
7
-
8
- def available_node_classes
9
- require 'eac_config/envvars_node'
10
- require 'eac_config/yaml_file_node'
11
- [::EacConfig::EnvvarsNode, ::EacConfig::YamlFileNode]
12
- end
13
-
14
- def instanciate
15
- available_node_classes.lazy.map { |k| k.from_uri(self) }.find(&:present?) ||
16
- raise("No class mapped for \"#{to_addressable}\"")
17
- end
18
-
19
- delegate :to_s, to: :to_addressable
20
-
21
- private
22
-
23
- def to_addressable_uncached
24
- r = ::Addressable::URI.parse(source)
25
- path = r.path.to_pathname
26
- r.path = path.expand_path(loader_uri_path_directory).to_path if path.relative?
27
- r.scheme = 'file' if r.scheme.blank?
28
- r
29
- end
30
-
31
- def loader_uri_path_directory
32
- r = loader_uri.path
33
- raise ".loader_uri \"#{loader_uri}\" has no path (Source: \"#{source}\")" if r.blank?
34
-
35
- r.to_pathname.parent
36
- end
37
- end
38
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/blank_not_blank'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'eac_config/paths_hash'
6
-
7
- module EacConfig
8
- class OldConfigs
9
- class Base
10
- enable_simple_cache
11
-
12
- common_constructor :data, default: [{}] do
13
- self.data = ::EacConfig::PathsHash.new(data)
14
- end
15
-
16
- def []=(entry_key, entry_value)
17
- write(entry_key, entry_value)
18
- end
19
-
20
- def [](entry_key)
21
- read(entry_key)
22
- end
23
-
24
- def clear
25
- replace({})
26
- end
27
-
28
- def read(entry_key)
29
- return nil unless data.key?(entry_key)
30
-
31
- data.fetch(entry_key).if_present(::EacRubyUtils::BlankNotBlank.instance)
32
- end
33
-
34
- def replace(new_data)
35
- self.data = ::EacConfig::PathsHash.new(new_data)
36
- end
37
-
38
- def write(entry_key, entry_value)
39
- data[entry_key] = entry_value
40
- end
41
- end
42
- end
43
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/old_configs/base'
4
- require 'yaml'
5
-
6
- module EacConfig
7
- class OldConfigs
8
- class File < ::EacConfig::OldConfigs::Base
9
- attr_reader :path, :options
10
-
11
- # Valid options: [:autosave]
12
- def initialize(path, options = {})
13
- @path = path
14
- @options = options.to_sym_keys_hash.freeze
15
- super(raw_data_from_file)
16
- end
17
-
18
- def save
19
- ::FileUtils.mkdir_p(::File.dirname(path))
20
- ::File.write(path, data.to_h.to_yaml)
21
- end
22
-
23
- def load
24
- replace(raw_data_from_file)
25
- end
26
-
27
- def write(entry_key, entry_value)
28
- super
29
- save if autosave?
30
- end
31
-
32
- def autosave?
33
- options[:autosave] ? true : false
34
- end
35
-
36
- private
37
-
38
- def raw_data_from_file
39
- if ::File.exist?(path) && ::File.size(path).positive?
40
- ::YAML.load_file(path)
41
- else
42
- {}
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_support/core_ext/string'
4
- require 'yaml'
5
- require 'eac_config/old_configs/file'
6
- require 'eac_ruby_utils/patches/hash/sym_keys_hash'
7
- require 'eac_config/paths_hash'
8
- require 'eac_ruby_utils/simple_cache'
9
-
10
- module EacConfig
11
- # @deprecated Use {EacConfig::YamlFileNode} instead.
12
- class OldConfigs
13
- include ::EacRubyUtils::SimpleCache
14
-
15
- attr_reader :configs_key, :options
16
-
17
- # Valid options: [:storage_path]
18
- def initialize(configs_key, options = {})
19
- @configs_key = configs_key
20
- @options = options.to_sym_keys_hash.freeze
21
- load
22
- end
23
-
24
- delegate :clear, to: :file
25
-
26
- delegate :save, to: :file
27
-
28
- delegate :load, to: :file
29
-
30
- def []=(entry_key, entry_value)
31
- write_entry(entry_key, entry_value)
32
- end
33
-
34
- def write_entry(entry_key, entry_value)
35
- file.write(entry_key, entry_value)
36
- end
37
-
38
- def [](entry_key)
39
- read_entry(entry_key)
40
- end
41
-
42
- def read_entry(entry_key)
43
- file.read(entry_key)
44
- end
45
-
46
- delegate :autosave?, to: :file
47
-
48
- private
49
-
50
- attr_accessor :data
51
-
52
- def file_uncached
53
- ::EacConfig::OldConfigs::File.new(
54
- storage_path, options
55
- )
56
- end
57
-
58
- def storage_path_uncached
59
- path = options_storage_path || default_storage_path
60
- return path if ::File.exist?(path) && ::File.size(path).positive?
61
-
62
- ::FileUtils.mkdir_p(::File.dirname(path))
63
- ::File.write(path, {}.to_yaml)
64
- path
65
- end
66
-
67
- def options_storage_path
68
- options[:storage_path]
69
- end
70
-
71
- def default_storage_path
72
- ::File.join(ENV['HOME'], '.config', configs_key, 'settings.yml')
73
- end
74
- end
75
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacConfig
4
- class PathsHash
5
- class EntryKeyError < StandardError
6
- end
7
- end
8
- end