eac_ruby_utils 0.61.0 → 0.65.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.
- checksums.yaml +4 -4
- data/lib/eac_ruby_utils/envs/command.rb +10 -5
- data/lib/eac_ruby_utils/filesystem_cache.rb +6 -0
- data/lib/eac_ruby_utils/inflector.rb +9 -1
- data/lib/eac_ruby_utils/listable/list.rb +3 -2
- data/lib/eac_ruby_utils/patches/kernel/nyi.rb +4 -2
- data/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -1
- data/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
- data/lib/eac_ruby_utils/patches/string/inflector.rb +4 -2
- data/lib/eac_ruby_utils/regexp_parser.rb +34 -0
- data/lib/eac_ruby_utils/rspec/conditional.rb +1 -4
- data/lib/eac_ruby_utils/simple_cache.rb +18 -5
- data/lib/eac_ruby_utils/version.rb +1 -1
- metadata +6 -75
- data/lib/eac_ruby_utils/configs.rb +0 -74
- data/lib/eac_ruby_utils/configs/base.rb +0 -43
- data/lib/eac_ruby_utils/configs/file.rb +0 -47
- data/lib/eac_ruby_utils/console.rb +0 -5
- data/lib/eac_ruby_utils/console/configs.rb +0 -38
- data/lib/eac_ruby_utils/console/configs/entry_reader.rb +0 -81
- data/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +0 -18
- data/lib/eac_ruby_utils/console/configs/read_entry_options.rb +0 -46
- data/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +0 -27
- data/lib/eac_ruby_utils/console/docopt_runner.rb +0 -45
- data/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +0 -18
- data/lib/eac_ruby_utils/console/docopt_runner/_doc.rb +0 -25
- data/lib/eac_ruby_utils/console/docopt_runner/_settings.rb +0 -19
- data/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +0 -154
- data/lib/eac_ruby_utils/console/speaker.rb +0 -133
- data/lib/eac_ruby_utils/console/speaker/_class_methods.rb +0 -39
- data/lib/eac_ruby_utils/console/speaker/_constants.rb +0 -14
- data/lib/eac_ruby_utils/console/speaker/list.rb +0 -63
- data/lib/eac_ruby_utils/console/speaker/node.rb +0 -26
- data/lib/eac_ruby_utils/contextualizable.rb +0 -16
- data/lib/eac_ruby_utils/patches/module/console_speaker.rb +0 -10
- data/lib/eac_ruby_utils/patches/module/template.rb +0 -10
- data/lib/eac_ruby_utils/patches/object/template.rb +0 -9
- data/lib/eac_ruby_utils/paths_hash.rb +0 -56
- data/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +0 -8
- data/lib/eac_ruby_utils/paths_hash/node.rb +0 -67
- data/lib/eac_ruby_utils/paths_hash/path_search.rb +0 -39
- data/lib/eac_ruby_utils/templates.rb +0 -9
- data/lib/eac_ruby_utils/templates/directory.rb +0 -110
- data/lib/eac_ruby_utils/templates/file.rb +0 -50
- data/lib/eac_ruby_utils/templates/searcher.rb +0 -55
- data/lib/eac_ruby_utils/templates/variable_not_found_error.rb +0 -7
- data/lib/eac_ruby_utils/templates/variable_providers.rb +0 -25
- data/lib/eac_ruby_utils/templates/variable_providers/base.rb +0 -23
- data/lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb +0 -25
- data/lib/eac_ruby_utils/templates/variable_providers/generic.rb +0 -25
- data/lib/eac_ruby_utils/templates/variable_providers/hash.rb +0 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 823da035ba7b8dc287824ac361ede6806dc17dd19aeb1ae2cd4626f3d1883231
|
|
4
|
+
data.tar.gz: 44ad34e935574af466a3a3b9eb72859074f58b43759c2355423f7162bab9df66
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a98249defe02854ceb5b865b6ed1c63cb78cf93ec2e70340428dc0a7ebc5f864fddd30f57108b7892959a3bbc9ab9a00c574c73d2e827e59d105f927347df2d0
|
|
7
|
+
data.tar.gz: 414b7753c72ea221e05a9b41f2563fe5c01c82025658aae6ca13bd705c791a7c78400c45e0663c7118b24d8007fcd7164c9ad88864a45767f472fa52e31ba99d
|
|
@@ -10,7 +10,6 @@ module EacRubyUtils
|
|
|
10
10
|
module Envs
|
|
11
11
|
class Command
|
|
12
12
|
require_sub __FILE__, include_modules: true
|
|
13
|
-
enable_console_speaker
|
|
14
13
|
|
|
15
14
|
def initialize(env, command, extra_options = {})
|
|
16
15
|
@env = env
|
|
@@ -61,17 +60,17 @@ module EacRubyUtils
|
|
|
61
60
|
|
|
62
61
|
def execute(options = {})
|
|
63
62
|
c = command(options)
|
|
64
|
-
|
|
63
|
+
debug_print("BEFORE: #{c}")
|
|
65
64
|
t1 = Time.now
|
|
66
65
|
r = ::EacRubyUtils::Envs::Process.new(c).to_h
|
|
67
66
|
i = Time.now - t1
|
|
68
|
-
|
|
67
|
+
debug_print("AFTER [#{i}]: #{c}")
|
|
69
68
|
r
|
|
70
69
|
end
|
|
71
70
|
|
|
72
71
|
def spawn(options = {})
|
|
73
72
|
c = command(options)
|
|
74
|
-
|
|
73
|
+
debug_print("SPAWN: #{c}")
|
|
75
74
|
::EacRubyUtils::Envs::Spawn.new(c)
|
|
76
75
|
end
|
|
77
76
|
|
|
@@ -83,7 +82,7 @@ module EacRubyUtils
|
|
|
83
82
|
|
|
84
83
|
def system(options = {})
|
|
85
84
|
c = command(options)
|
|
86
|
-
|
|
85
|
+
debug_print(c)
|
|
87
86
|
Kernel.system(c)
|
|
88
87
|
end
|
|
89
88
|
|
|
@@ -109,6 +108,12 @@ module EacRubyUtils
|
|
|
109
108
|
ENV['DEBUG'].to_s.strip != ''
|
|
110
109
|
end
|
|
111
110
|
|
|
111
|
+
# Print a message if debugging is enabled.
|
|
112
|
+
def debug_print(message)
|
|
113
|
+
message = message.to_s
|
|
114
|
+
puts message.if_respond(:light_red, message) if debug?
|
|
115
|
+
end
|
|
116
|
+
|
|
112
117
|
def append_command_options(command, options)
|
|
113
118
|
command = options[:input].command + ' | ' + command if options[:input]
|
|
114
119
|
if options[:input_file]
|
|
@@ -7,11 +7,19 @@ module EacRubyUtils
|
|
|
7
7
|
class << self
|
|
8
8
|
VARIABLE_NAME_PATTERN = /[_a-z][_a-z0-9]*/i.freeze
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
# Convert a string to a variable format: first character as a lowercase letter or underscore
|
|
11
|
+
# and other as a lowercase letter, underscore or numbers.
|
|
12
|
+
# @param string [String] The source string.
|
|
13
|
+
# @param validate [Boolean] Affect the outcome when the result builded is not in a valid
|
|
14
|
+
# variable format. If `true`, it raises a {ArgumentError}. If `false`, return `nil`.
|
|
15
|
+
# @return [String, nil]
|
|
16
|
+
# @raise [ArgumentError]
|
|
17
|
+
def variableize(string, validate = true)
|
|
11
18
|
r = ::ActiveSupport::Inflector.transliterate(string).gsub(/[^_a-z0-9]/i, '_')
|
|
12
19
|
.gsub(/_+/, '_').gsub(/_\z/, '').gsub(/\A_/, '').downcase
|
|
13
20
|
m = VARIABLE_NAME_PATTERN.match(r)
|
|
14
21
|
return r if m
|
|
22
|
+
return nil unless validate
|
|
15
23
|
|
|
16
24
|
raise ::ArgumentError, "Invalid variable name \"#{r}\" was generated " \
|
|
17
25
|
"from string \"#{string}\""
|
|
@@ -54,8 +54,9 @@ module EacRubyUtils
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def value_validate!(value, error_class = ::StandardError)
|
|
57
|
-
value_valid?(value)
|
|
58
|
-
|
|
57
|
+
return value if value_valid?(value)
|
|
58
|
+
|
|
59
|
+
raise(error_class, "Invalid value: \"#{value}\" (Valid: #{values_to_s})")
|
|
59
60
|
end
|
|
60
61
|
|
|
61
62
|
def values_to_s
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
module Kernel
|
|
4
4
|
# Raise exception with text "Not yet implemented".
|
|
5
|
-
def nyi
|
|
6
|
-
|
|
5
|
+
def nyi(message = nil)
|
|
6
|
+
s = "Not yet implemented (Called in #{caller.first})"
|
|
7
|
+
s += ": #{message}" if message
|
|
8
|
+
raise s
|
|
7
9
|
end
|
|
8
10
|
end
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
require 'eac_ruby_utils/inflector'
|
|
4
4
|
|
|
5
5
|
class String
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
# Shortcut to `EacRubyUtils::Inflector.variableize(self, ...)`.
|
|
7
|
+
# @see EacRubyUtils::Inflector.variableize
|
|
8
|
+
def variableize(validate = true)
|
|
9
|
+
::EacRubyUtils::Inflector.variableize(self, validate)
|
|
8
10
|
end
|
|
9
11
|
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module EacRubyUtils
|
|
4
|
+
class RegexpParser
|
|
5
|
+
attr_reader :pattern, :builder_proc
|
|
6
|
+
|
|
7
|
+
def initialize(pattern, &builder_proc)
|
|
8
|
+
@pattern = pattern
|
|
9
|
+
@builder_proc = builder_proc
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def parse(string)
|
|
13
|
+
internal_parse(string)[1]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def parse!(string)
|
|
17
|
+
match, result = internal_parse(string)
|
|
18
|
+
return result if match
|
|
19
|
+
|
|
20
|
+
raise ::ArgumentError, "String \"#{string}\" does not match pattern \"#{pattern}\""
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def internal_parse(string)
|
|
26
|
+
m = pattern.match(string)
|
|
27
|
+
if m
|
|
28
|
+
[true, builder_proc ? builder_proc.call(m) : m]
|
|
29
|
+
else
|
|
30
|
+
[false, nil]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'active_support/core_ext/object/blank'
|
|
4
|
-
require 'eac_ruby_utils/console/speaker'
|
|
5
4
|
|
|
6
5
|
module EacRubyUtils
|
|
7
6
|
module Rspec
|
|
8
7
|
class Conditional
|
|
9
|
-
include ::EacRubyUtils::Console::Speaker
|
|
10
|
-
|
|
11
8
|
def self.default
|
|
12
9
|
@default ||= new
|
|
13
10
|
end
|
|
@@ -24,7 +21,7 @@ module EacRubyUtils
|
|
|
24
21
|
tags.each do |tag, condition|
|
|
25
22
|
message = condition.call
|
|
26
23
|
if message.present?
|
|
27
|
-
|
|
24
|
+
puts("[WARN] Excluded tag: #{tag}: #{message}")
|
|
28
25
|
rspec_config.filter_run_excluding tag
|
|
29
26
|
end
|
|
30
27
|
end
|
|
@@ -2,12 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
module EacRubyUtils
|
|
4
4
|
module SimpleCache
|
|
5
|
-
|
|
5
|
+
UNCACHED_METHOD_NAME_SUFFIX = '_uncached'
|
|
6
|
+
UNCACHED_METHOD_PATTERN = /\A(\s+)_#{::Regexp.quote(UNCACHED_METHOD_NAME_SUFFIX)}\z/.freeze
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
def uncached_method_name(method_name)
|
|
10
|
+
"#{method_name}#{UNCACHED_METHOD_NAME_SUFFIX}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
6
13
|
|
|
7
14
|
def method_missing(method, *args, &block)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
call_method_with_cache(uncached_method, args, &block)
|
|
15
|
+
if respond_to?(::EacRubyUtils::SimpleCache.uncached_method_name(method), true)
|
|
16
|
+
call_method_with_cache(method, args, &block)
|
|
11
17
|
else
|
|
12
18
|
super
|
|
13
19
|
end
|
|
@@ -35,10 +41,17 @@ module EacRubyUtils
|
|
|
35
41
|
raise 'Não é possível realizar o cache de métodos com bloco' if block
|
|
36
42
|
|
|
37
43
|
key = ([method] + args).join('@@@')
|
|
38
|
-
|
|
44
|
+
unless cache_keys.key?(key)
|
|
45
|
+
uncached_value = call_uncached_method(method, args)
|
|
46
|
+
cache_keys[key] = uncached_value
|
|
47
|
+
end
|
|
39
48
|
cache_keys[key]
|
|
40
49
|
end
|
|
41
50
|
|
|
51
|
+
def call_uncached_method(method, args)
|
|
52
|
+
send(::EacRubyUtils::SimpleCache.uncached_method_name(method), *args)
|
|
53
|
+
end
|
|
54
|
+
|
|
42
55
|
def cache_keys
|
|
43
56
|
@cache_keys ||= {}
|
|
44
57
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: eac_ruby_utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.65.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esquilo Azul Company
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-06-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -38,34 +38,6 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '2.6'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: colorize
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.8.1
|
|
48
|
-
type: :runtime
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0.8.1
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: docopt
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 0.6.1
|
|
62
|
-
type: :runtime
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0.6.1
|
|
69
41
|
- !ruby/object:Gem::Dependency
|
|
70
42
|
name: filesize
|
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,20 +72,14 @@ dependencies:
|
|
|
100
72
|
requirements:
|
|
101
73
|
- - "~>"
|
|
102
74
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0.
|
|
104
|
-
- - ">="
|
|
105
|
-
- !ruby/object:Gem::Version
|
|
106
|
-
version: 0.1.1
|
|
75
|
+
version: '0.2'
|
|
107
76
|
type: :development
|
|
108
77
|
prerelease: false
|
|
109
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
110
79
|
requirements:
|
|
111
80
|
- - "~>"
|
|
112
81
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: '0.
|
|
114
|
-
- - ">="
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: 0.1.1
|
|
82
|
+
version: '0.2'
|
|
117
83
|
description:
|
|
118
84
|
email:
|
|
119
85
|
executables: []
|
|
@@ -134,26 +100,6 @@ files:
|
|
|
134
100
|
- lib/eac_ruby_utils/common_constructor/class_initialize.rb
|
|
135
101
|
- lib/eac_ruby_utils/common_constructor/instance_initialize.rb
|
|
136
102
|
- lib/eac_ruby_utils/common_constructor/super_args.rb
|
|
137
|
-
- lib/eac_ruby_utils/configs.rb
|
|
138
|
-
- lib/eac_ruby_utils/configs/base.rb
|
|
139
|
-
- lib/eac_ruby_utils/configs/file.rb
|
|
140
|
-
- lib/eac_ruby_utils/console.rb
|
|
141
|
-
- lib/eac_ruby_utils/console/configs.rb
|
|
142
|
-
- lib/eac_ruby_utils/console/configs/entry_reader.rb
|
|
143
|
-
- lib/eac_ruby_utils/console/configs/password_entry_reader.rb
|
|
144
|
-
- lib/eac_ruby_utils/console/configs/read_entry_options.rb
|
|
145
|
-
- lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb
|
|
146
|
-
- lib/eac_ruby_utils/console/docopt_runner.rb
|
|
147
|
-
- lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb
|
|
148
|
-
- lib/eac_ruby_utils/console/docopt_runner/_doc.rb
|
|
149
|
-
- lib/eac_ruby_utils/console/docopt_runner/_settings.rb
|
|
150
|
-
- lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb
|
|
151
|
-
- lib/eac_ruby_utils/console/speaker.rb
|
|
152
|
-
- lib/eac_ruby_utils/console/speaker/_class_methods.rb
|
|
153
|
-
- lib/eac_ruby_utils/console/speaker/_constants.rb
|
|
154
|
-
- lib/eac_ruby_utils/console/speaker/list.rb
|
|
155
|
-
- lib/eac_ruby_utils/console/speaker/node.rb
|
|
156
|
-
- lib/eac_ruby_utils/contextualizable.rb
|
|
157
103
|
- lib/eac_ruby_utils/core_ext.rb
|
|
158
104
|
- lib/eac_ruby_utils/custom_format.rb
|
|
159
105
|
- lib/eac_ruby_utils/envs.rb
|
|
@@ -222,33 +168,28 @@ files:
|
|
|
222
168
|
- lib/eac_ruby_utils/patches/module.rb
|
|
223
169
|
- lib/eac_ruby_utils/patches/module/abstract_methods.rb
|
|
224
170
|
- lib/eac_ruby_utils/patches/module/common_concern.rb
|
|
225
|
-
- lib/eac_ruby_utils/patches/module/console_speaker.rb
|
|
226
171
|
- lib/eac_ruby_utils/patches/module/immutable.rb
|
|
227
172
|
- lib/eac_ruby_utils/patches/module/listable.rb
|
|
228
173
|
- lib/eac_ruby_utils/patches/module/patch.rb
|
|
229
174
|
- lib/eac_ruby_utils/patches/module/require_sub.rb
|
|
230
175
|
- lib/eac_ruby_utils/patches/module/simple_cache.rb
|
|
231
|
-
- lib/eac_ruby_utils/patches/module/template.rb
|
|
232
176
|
- lib/eac_ruby_utils/patches/object.rb
|
|
233
177
|
- lib/eac_ruby_utils/patches/object/asserts.rb
|
|
234
178
|
- lib/eac_ruby_utils/patches/object/debug.rb
|
|
235
179
|
- lib/eac_ruby_utils/patches/object/if_nil.rb
|
|
236
180
|
- lib/eac_ruby_utils/patches/object/if_present.rb
|
|
237
181
|
- lib/eac_ruby_utils/patches/object/if_respond.rb
|
|
238
|
-
- lib/eac_ruby_utils/patches/object/template.rb
|
|
239
182
|
- lib/eac_ruby_utils/patches/object/to_pathname.rb
|
|
240
183
|
- lib/eac_ruby_utils/patches/pathname.rb
|
|
241
184
|
- lib/eac_ruby_utils/patches/pathname/basename_sub.rb
|
|
242
185
|
- lib/eac_ruby_utils/patches/regexp.rb
|
|
243
186
|
- lib/eac_ruby_utils/patches/regexp/if_match.rb
|
|
187
|
+
- lib/eac_ruby_utils/patches/regexp/to_parser.rb
|
|
244
188
|
- lib/eac_ruby_utils/patches/string.rb
|
|
245
189
|
- lib/eac_ruby_utils/patches/string/inflector.rb
|
|
246
190
|
- lib/eac_ruby_utils/patches/time.rb
|
|
247
191
|
- lib/eac_ruby_utils/patches/time/required_zone.rb
|
|
248
|
-
- lib/eac_ruby_utils/
|
|
249
|
-
- lib/eac_ruby_utils/paths_hash/entry_key_error.rb
|
|
250
|
-
- lib/eac_ruby_utils/paths_hash/node.rb
|
|
251
|
-
- lib/eac_ruby_utils/paths_hash/path_search.rb
|
|
192
|
+
- lib/eac_ruby_utils/regexp_parser.rb
|
|
252
193
|
- lib/eac_ruby_utils/require_sub.rb
|
|
253
194
|
- lib/eac_ruby_utils/rspec.rb
|
|
254
195
|
- lib/eac_ruby_utils/rspec/conditional.rb
|
|
@@ -260,16 +201,6 @@ files:
|
|
|
260
201
|
- lib/eac_ruby_utils/settings_provider/setting_value.rb
|
|
261
202
|
- lib/eac_ruby_utils/simple_cache.rb
|
|
262
203
|
- lib/eac_ruby_utils/struct.rb
|
|
263
|
-
- lib/eac_ruby_utils/templates.rb
|
|
264
|
-
- lib/eac_ruby_utils/templates/directory.rb
|
|
265
|
-
- lib/eac_ruby_utils/templates/file.rb
|
|
266
|
-
- lib/eac_ruby_utils/templates/searcher.rb
|
|
267
|
-
- lib/eac_ruby_utils/templates/variable_not_found_error.rb
|
|
268
|
-
- lib/eac_ruby_utils/templates/variable_providers.rb
|
|
269
|
-
- lib/eac_ruby_utils/templates/variable_providers/base.rb
|
|
270
|
-
- lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb
|
|
271
|
-
- lib/eac_ruby_utils/templates/variable_providers/generic.rb
|
|
272
|
-
- lib/eac_ruby_utils/templates/variable_providers/hash.rb
|
|
273
204
|
- lib/eac_ruby_utils/version.rb
|
|
274
205
|
- lib/eac_ruby_utils/yaml.rb
|
|
275
206
|
homepage:
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/core_ext/string'
|
|
4
|
-
require 'yaml'
|
|
5
|
-
require 'eac_ruby_utils/configs/file'
|
|
6
|
-
require 'eac_ruby_utils/patches/hash/sym_keys_hash'
|
|
7
|
-
require 'eac_ruby_utils/paths_hash'
|
|
8
|
-
require 'eac_ruby_utils/simple_cache'
|
|
9
|
-
|
|
10
|
-
module EacRubyUtils
|
|
11
|
-
class Configs
|
|
12
|
-
include ::EacRubyUtils::SimpleCache
|
|
13
|
-
|
|
14
|
-
attr_reader :configs_key, :options
|
|
15
|
-
|
|
16
|
-
# Valid options: [:storage_path]
|
|
17
|
-
def initialize(configs_key, options = {})
|
|
18
|
-
@configs_key = configs_key
|
|
19
|
-
@options = options.to_sym_keys_hash.freeze
|
|
20
|
-
load
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
delegate :clear, to: :file
|
|
24
|
-
|
|
25
|
-
delegate :save, to: :file
|
|
26
|
-
|
|
27
|
-
delegate :load, to: :file
|
|
28
|
-
|
|
29
|
-
def []=(entry_key, entry_value)
|
|
30
|
-
write_entry(entry_key, entry_value)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def write_entry(entry_key, entry_value)
|
|
34
|
-
file.write(entry_key, entry_value)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def [](entry_key)
|
|
38
|
-
read_entry(entry_key)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def read_entry(entry_key)
|
|
42
|
-
file.read(entry_key)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
delegate :autosave?, to: :file
|
|
46
|
-
|
|
47
|
-
private
|
|
48
|
-
|
|
49
|
-
attr_accessor :data
|
|
50
|
-
|
|
51
|
-
def file_uncached
|
|
52
|
-
::EacRubyUtils::Configs::File.new(
|
|
53
|
-
storage_path, options
|
|
54
|
-
)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def storage_path_uncached
|
|
58
|
-
path = options_storage_path || default_storage_path
|
|
59
|
-
return path if ::File.exist?(path) && ::File.size(path).positive?
|
|
60
|
-
|
|
61
|
-
::FileUtils.mkdir_p(::File.dirname(path))
|
|
62
|
-
::File.write(path, {}.to_yaml)
|
|
63
|
-
path
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def options_storage_path
|
|
67
|
-
options[:storage_path]
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def default_storage_path
|
|
71
|
-
::File.join(ENV['HOME'], '.config', configs_key, 'settings.yml')
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|