eac_ruby_utils 0.62.1 → 0.67.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/lib/eac_ruby_utils/context.rb +31 -0
  3. data/lib/eac_ruby_utils/contextualizable.rb +12 -7
  4. data/lib/eac_ruby_utils/envs/command.rb +10 -5
  5. data/lib/eac_ruby_utils/filesystem_cache.rb +6 -0
  6. data/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -1
  7. data/lib/eac_ruby_utils/patches/module/context.rb +11 -0
  8. data/lib/eac_ruby_utils/patches/module/speaker.rb +9 -0
  9. data/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
  10. data/lib/eac_ruby_utils/regexp_parser.rb +34 -0
  11. data/lib/eac_ruby_utils/rspec/conditional.rb +1 -4
  12. data/lib/eac_ruby_utils/speaker.rb +16 -0
  13. data/lib/eac_ruby_utils/speaker/receiver.rb +57 -0
  14. data/lib/eac_ruby_utils/speaker/sender.rb +32 -0
  15. data/lib/eac_ruby_utils/version.rb +1 -1
  16. metadata +12 -74
  17. data/lib/eac_ruby_utils/configs.rb +0 -74
  18. data/lib/eac_ruby_utils/configs/base.rb +0 -43
  19. data/lib/eac_ruby_utils/configs/file.rb +0 -47
  20. data/lib/eac_ruby_utils/console.rb +0 -5
  21. data/lib/eac_ruby_utils/console/configs.rb +0 -38
  22. data/lib/eac_ruby_utils/console/configs/entry_reader.rb +0 -81
  23. data/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +0 -18
  24. data/lib/eac_ruby_utils/console/configs/read_entry_options.rb +0 -46
  25. data/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +0 -27
  26. data/lib/eac_ruby_utils/console/docopt_runner.rb +0 -45
  27. data/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +0 -18
  28. data/lib/eac_ruby_utils/console/docopt_runner/_doc.rb +0 -25
  29. data/lib/eac_ruby_utils/console/docopt_runner/_settings.rb +0 -19
  30. data/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +0 -154
  31. data/lib/eac_ruby_utils/console/speaker.rb +0 -133
  32. data/lib/eac_ruby_utils/console/speaker/_class_methods.rb +0 -39
  33. data/lib/eac_ruby_utils/console/speaker/_constants.rb +0 -14
  34. data/lib/eac_ruby_utils/console/speaker/list.rb +0 -63
  35. data/lib/eac_ruby_utils/console/speaker/node.rb +0 -26
  36. data/lib/eac_ruby_utils/patches/module/console_speaker.rb +0 -10
  37. data/lib/eac_ruby_utils/patches/module/template.rb +0 -10
  38. data/lib/eac_ruby_utils/patches/object/template.rb +0 -9
  39. data/lib/eac_ruby_utils/paths_hash.rb +0 -56
  40. data/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +0 -8
  41. data/lib/eac_ruby_utils/paths_hash/node.rb +0 -67
  42. data/lib/eac_ruby_utils/paths_hash/path_search.rb +0 -39
  43. data/lib/eac_ruby_utils/templates.rb +0 -9
  44. data/lib/eac_ruby_utils/templates/directory.rb +0 -110
  45. data/lib/eac_ruby_utils/templates/file.rb +0 -50
  46. data/lib/eac_ruby_utils/templates/searcher.rb +0 -55
  47. data/lib/eac_ruby_utils/templates/variable_not_found_error.rb +0 -7
  48. data/lib/eac_ruby_utils/templates/variable_providers.rb +0 -25
  49. data/lib/eac_ruby_utils/templates/variable_providers/base.rb +0 -23
  50. data/lib/eac_ruby_utils/templates/variable_providers/entries_reader.rb +0 -25
  51. data/lib/eac_ruby_utils/templates/variable_providers/generic.rb +0 -25
  52. 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: 76b0e92df72f0b6b552d62eda2aad5f2701409e7d8093aee4d30c5df70ee30a1
4
- data.tar.gz: b6450dc7143e3a1669df002394357c2209d51983111cefc2d8f25efbd8e5344a
3
+ metadata.gz: 198a793b8a2d0993f304e80e7463e3350d0944450055e71daaa8494624225264
4
+ data.tar.gz: 0e6f0f4edf00f4435ed0c129c9872aaeeeb66a503acbc5875b31c0fee4ad96e8
5
5
  SHA512:
6
- metadata.gz: 7839203f7f9e9a8baa17167e4a5e0d9d812ff9028de3fb3c8298ce6bb584f6b77256b8afdfd49ff79f23d0614afcef74aa5f003ab00a0d3fc14d58816e695fce
7
- data.tar.gz: 9392bdfc10d5a2ba53de62a816c307e0d2f3e21b6731888cc0fe63a46853ed5c074d91fafc5f91194256fa33c6ddb39a930c75564db7aac3ff3967c9e4329eee
6
+ metadata.gz: 67216e383d422fa5961f470823689d76978b2d21b21dc59338c9849198fbc41e198135ad3526f02ae1e4b30e64b5b72292d2b5a17d22b293ff71a48ecc72f405
7
+ data.tar.gz: b678963a2c8d920b1c391af8f90a4ab2ccdf60a4fded2008b7d1d4dfb3261dccb164427fb0f1f6e706474a365ed4d7ebff661a64dce6b4364b415376d913ed03
@@ -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
- def context(method)
7
- current = self
8
- while current
9
- return current.send(method) if current.respond_to?(method)
7
+ common_concern
8
+
9
+ module ClassMethods
10
+ def context
11
+ @context ||= ::EacRubyUtils::Context.new
12
+ end
13
+ end
10
14
 
11
- current = current.respond_to?(:parent) ? current.parent : nil
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
- puts "BEFORE: #{c}".light_red if debug?
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
- puts "AFTER [#{i}]: #{c}".light_red if debug?
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
- puts "SPAWN: #{c}".light_red if debug?
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
- puts c.light_red if debug?
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]
@@ -24,6 +24,12 @@ module EacRubyUtils
24
24
  ::File.read(content_path)
25
25
  end
26
26
 
27
+ def read_or_cache
28
+ write(yield) unless cached?
29
+
30
+ read
31
+ end
32
+
27
33
  def write(value)
28
34
  assert_directory_on_path
29
35
  ::File.write(content_path, value)
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/common_concern'
4
- require 'eac_ruby_utils/console/speaker'
5
4
 
6
5
  class Module
7
6
  def common_concern(&after_callback)
@@ -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,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/speaker/sender'
4
+
5
+ class Module
6
+ def enable_speaker
7
+ include ::EacRubyUtils::Speaker::Sender
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/regexp_parser'
4
+
5
+ class Regexp
6
+ # @return [::EacRubyUtils::RegexpParser]
7
+ def to_parser(&block)
8
+ ::EacRubyUtils::RegexpParser.new(self, &block)
9
+ end
10
+ 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
- warn("Excluded tag: #{tag}: #{message}")
24
+ puts("[WARN] Excluded tag: #{tag}: #{message}")
28
25
  rspec_config.filter_run_excluding tag
29
26
  end
30
27
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/contextualizable'
4
+
5
+ module EacRubyUtils
6
+ module Speaker
7
+ include ::EacRubyUtils::Contextualizable
8
+
9
+ class << self
10
+ # @return [EacRubyUtils::Speaker::Receiver]
11
+ def current_receiver
12
+ context.current
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/abstract_methods'
4
+
5
+ module EacRubyUtils
6
+ module Speaker
7
+ module Receiver
8
+ extend ::EacRubyUtils::AbstractMethods
9
+
10
+ def error(_string)
11
+ raise_abstract_method(__FILE__)
12
+ end
13
+
14
+ def fatal_error(string)
15
+ error(string)
16
+ ::Kernel.exit 1 # rubocop:disable Rails/Exit
17
+ end
18
+
19
+ # @see EacRubyUtils::Speaker::Sender.input
20
+ def input(_question, _options = {})
21
+ raise_abstract_method(__FILE__)
22
+ end
23
+
24
+ def info(_string)
25
+ raise_abstract_method(__FILE__)
26
+ end
27
+
28
+ def infom(_string)
29
+ raise_abstract_method(__FILE__)
30
+ end
31
+
32
+ def infov(*_args)
33
+ raise_abstract_method(__FILE__)
34
+ end
35
+
36
+ def out(_string = '')
37
+ raise_abstract_method(__FILE__)
38
+ end
39
+
40
+ def puts(_string = '')
41
+ raise_abstract_method(__FILE__)
42
+ end
43
+
44
+ def success(_string)
45
+ raise_abstract_method(__FILE__)
46
+ end
47
+
48
+ def title(_string)
49
+ raise_abstract_method(__FILE__)
50
+ end
51
+
52
+ def warn(_string)
53
+ raise_abstract_method(__FILE__)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyUtils
4
+ module Speaker
5
+ module Sender
6
+ delegate :error, :fatal_error, :info, :infom, :title, :success, :warn, to: :speaker_receiver
7
+
8
+ def infov(*args)
9
+ speaker_receiver.infov(*args)
10
+ end
11
+
12
+ delegate :out, to: :speaker_receiver
13
+
14
+ delegate :puts, to: :speaker_receiver
15
+
16
+ # Shortcut to [EacRubyUtils::Speaker.current_receiver].
17
+ #
18
+ # @return [EacRubyUtils::Speaker::Receiver]
19
+ def speaker_receiver
20
+ ::EacRubyUtils::Speaker.current_receiver
21
+ end
22
+
23
+ # Options:
24
+ # +bool+ ([Boolean], default: +false+): requires a answer "yes" or "no".
25
+ # +list+ ([Hash] or [Array], default: +nil+): requires a answer from a list.
26
+ # +noecho+ ([Boolean], default: +false+): does not output answer.
27
+ def input(question, options = {})
28
+ speaker_receiver.input(question, options)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.62.1'
4
+ VERSION = '0.67.0'
5
5
  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.62.1
4
+ version: 0.67.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-04-01 00:00:00.000000000 Z
11
+ date: 2021-06-08 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.1'
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.1'
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/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
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,30 @@ 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/console_speaker.rb
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
179
+ - lib/eac_ruby_utils/patches/module/speaker.rb
232
180
  - lib/eac_ruby_utils/patches/object.rb
233
181
  - lib/eac_ruby_utils/patches/object/asserts.rb
234
182
  - lib/eac_ruby_utils/patches/object/debug.rb
235
183
  - lib/eac_ruby_utils/patches/object/if_nil.rb
236
184
  - lib/eac_ruby_utils/patches/object/if_present.rb
237
185
  - lib/eac_ruby_utils/patches/object/if_respond.rb
238
- - lib/eac_ruby_utils/patches/object/template.rb
239
186
  - lib/eac_ruby_utils/patches/object/to_pathname.rb
240
187
  - lib/eac_ruby_utils/patches/pathname.rb
241
188
  - lib/eac_ruby_utils/patches/pathname/basename_sub.rb
242
189
  - lib/eac_ruby_utils/patches/regexp.rb
243
190
  - lib/eac_ruby_utils/patches/regexp/if_match.rb
191
+ - lib/eac_ruby_utils/patches/regexp/to_parser.rb
244
192
  - lib/eac_ruby_utils/patches/string.rb
245
193
  - lib/eac_ruby_utils/patches/string/inflector.rb
246
194
  - lib/eac_ruby_utils/patches/time.rb
247
195
  - lib/eac_ruby_utils/patches/time/required_zone.rb
248
- - lib/eac_ruby_utils/paths_hash.rb
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
196
+ - lib/eac_ruby_utils/regexp_parser.rb
252
197
  - lib/eac_ruby_utils/require_sub.rb
253
198
  - lib/eac_ruby_utils/rspec.rb
254
199
  - lib/eac_ruby_utils/rspec/conditional.rb
@@ -259,17 +204,10 @@ files:
259
204
  - lib/eac_ruby_utils/settings_provider.rb
260
205
  - lib/eac_ruby_utils/settings_provider/setting_value.rb
261
206
  - lib/eac_ruby_utils/simple_cache.rb
207
+ - lib/eac_ruby_utils/speaker.rb
208
+ - lib/eac_ruby_utils/speaker/receiver.rb
209
+ - lib/eac_ruby_utils/speaker/sender.rb
262
210
  - 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
211
  - lib/eac_ruby_utils/version.rb
274
212
  - lib/eac_ruby_utils/yaml.rb
275
213
  homepage: