eac_ruby_utils 0.62.0 → 0.66.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/context.rb +31 -0
- data/lib/eac_ruby_utils/contextualizable.rb +12 -7
- 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/patches/module/common_concern.rb +0 -1
- data/lib/eac_ruby_utils/patches/module/context.rb +11 -0
- data/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
- 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 +8 -74
- 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/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: 9d679154119599ad2255adc22653e9fce48d4c517a7894c44b7ab49227a55e50
|
4
|
+
data.tar.gz: 38a941b85b06be67ae89a459bf3897097d326713b4ea77ec91a6c69bbdad98c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d30ef6f35aa136aa0611039f44422f8d54cb484599b5577c6773873b2f35709d879e26e3fd8ae984837cea7b71a74d521720204d9adce4f12d8712a9ebd42241
|
7
|
+
data.tar.gz: 14fdbded17c439e74aea06d61922318fa1e5221a5587ec995f0c7daefae1dd0d6ca76cd2c7876fbd95b8bcf84c18c397b801d11d44d36e668c42eb0ef60c0e3b
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacRubyUtils
|
4
|
+
class Context
|
5
|
+
def current
|
6
|
+
optional_current || raise('No elements in context')
|
7
|
+
end
|
8
|
+
|
9
|
+
def optional_current
|
10
|
+
stack.last
|
11
|
+
end
|
12
|
+
|
13
|
+
delegate :pop, to: :stack
|
14
|
+
delegate :push, to: :stack
|
15
|
+
|
16
|
+
def on(obj)
|
17
|
+
push(obj)
|
18
|
+
begin
|
19
|
+
yield
|
20
|
+
ensure
|
21
|
+
pop
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def stack
|
28
|
+
@stack ||= []
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,16 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'eac_ruby_utils/context'
|
4
|
+
|
3
5
|
module EacRubyUtils
|
4
|
-
# Provides the method context which search and call a method in self and ancestor objects.
|
5
6
|
module Contextualizable
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
common_concern
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def context
|
11
|
+
@context ||= ::EacRubyUtils::Context.new
|
12
|
+
end
|
13
|
+
end
|
10
14
|
|
11
|
-
|
15
|
+
module InstanceMethods
|
16
|
+
def context
|
17
|
+
self.class.context
|
12
18
|
end
|
13
|
-
raise "Context method \"#{method}\" not found for #{self.class}"
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
@@ -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]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/patch'
|
4
|
+
require 'eac_ruby_utils/contextualizable'
|
5
|
+
|
6
|
+
class Module
|
7
|
+
# Patches module with [EacRubyUtils::Contextualizable].
|
8
|
+
def enable_context
|
9
|
+
::EacRubyUtils.patch(self, ::EacRubyUtils::Contextualizable)
|
10
|
+
end
|
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.66.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-02 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,25 +100,7 @@ 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/
|
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
|
103
|
+
- lib/eac_ruby_utils/context.rb
|
156
104
|
- lib/eac_ruby_utils/contextualizable.rb
|
157
105
|
- lib/eac_ruby_utils/core_ext.rb
|
158
106
|
- lib/eac_ruby_utils/custom_format.rb
|
@@ -222,33 +170,29 @@ files:
|
|
222
170
|
- lib/eac_ruby_utils/patches/module.rb
|
223
171
|
- lib/eac_ruby_utils/patches/module/abstract_methods.rb
|
224
172
|
- lib/eac_ruby_utils/patches/module/common_concern.rb
|
225
|
-
- lib/eac_ruby_utils/patches/module/
|
173
|
+
- lib/eac_ruby_utils/patches/module/context.rb
|
226
174
|
- lib/eac_ruby_utils/patches/module/immutable.rb
|
227
175
|
- lib/eac_ruby_utils/patches/module/listable.rb
|
228
176
|
- lib/eac_ruby_utils/patches/module/patch.rb
|
229
177
|
- lib/eac_ruby_utils/patches/module/require_sub.rb
|
230
178
|
- lib/eac_ruby_utils/patches/module/simple_cache.rb
|
231
|
-
- lib/eac_ruby_utils/patches/module/template.rb
|
232
179
|
- lib/eac_ruby_utils/patches/object.rb
|
233
180
|
- lib/eac_ruby_utils/patches/object/asserts.rb
|
234
181
|
- lib/eac_ruby_utils/patches/object/debug.rb
|
235
182
|
- lib/eac_ruby_utils/patches/object/if_nil.rb
|
236
183
|
- lib/eac_ruby_utils/patches/object/if_present.rb
|
237
184
|
- lib/eac_ruby_utils/patches/object/if_respond.rb
|
238
|
-
- lib/eac_ruby_utils/patches/object/template.rb
|
239
185
|
- lib/eac_ruby_utils/patches/object/to_pathname.rb
|
240
186
|
- lib/eac_ruby_utils/patches/pathname.rb
|
241
187
|
- lib/eac_ruby_utils/patches/pathname/basename_sub.rb
|
242
188
|
- lib/eac_ruby_utils/patches/regexp.rb
|
243
189
|
- lib/eac_ruby_utils/patches/regexp/if_match.rb
|
190
|
+
- lib/eac_ruby_utils/patches/regexp/to_parser.rb
|
244
191
|
- lib/eac_ruby_utils/patches/string.rb
|
245
192
|
- lib/eac_ruby_utils/patches/string/inflector.rb
|
246
193
|
- lib/eac_ruby_utils/patches/time.rb
|
247
194
|
- 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
|
195
|
+
- lib/eac_ruby_utils/regexp_parser.rb
|
252
196
|
- lib/eac_ruby_utils/require_sub.rb
|
253
197
|
- lib/eac_ruby_utils/rspec.rb
|
254
198
|
- lib/eac_ruby_utils/rspec/conditional.rb
|
@@ -260,16 +204,6 @@ files:
|
|
260
204
|
- lib/eac_ruby_utils/settings_provider/setting_value.rb
|
261
205
|
- lib/eac_ruby_utils/simple_cache.rb
|
262
206
|
- 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
207
|
- lib/eac_ruby_utils/version.rb
|
274
208
|
- lib/eac_ruby_utils/yaml.rb
|
275
209
|
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
|