eac_ruby_utils 0.85.0 → 0.86.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48f30b222067edfdcdc7d6a3656ceb73f0c8780d5a35830b9f0e5c8051a44b6b
4
- data.tar.gz: f461e7f88ad988a472df1141a232e125e0ed29b9532e3c74992a5fad5f81867b
3
+ metadata.gz: cb43d75df268978d9c55132da9f3e397fff08e830f699911cd1603927b4bedb8
4
+ data.tar.gz: 2eff47acaff0d353be69220b4ee511fa39ddccf2cf2e7cab0e6d4f3bad246d68
5
5
  SHA512:
6
- metadata.gz: be9046e777c84bf2680f519e1aafe808c974eba21ba285cb2fa8ec6e4598973f14e959a2432077810b90cfcaca4f195baf82bda18ea3b8acfdf647ce6487b3ed
7
- data.tar.gz: 6c9cdc45780225347171b3c4362f04af79b22f4fef2c1080d38d97001c1aace0226e111d0b02cb7f5e28d58acd2cea5d698457d57b07c0b2c8242f5af914b7ef
6
+ metadata.gz: e69e6e3dfcaea37b1c1b7723289fd36cb163c9535d60d93a2ab52c428b1fc4ebaad30bb4acd5b1891a3357467942b4721e06a180521fc373cb22ef6c183d0249
7
+ data.tar.gz: dbf10280434bf5ad40b32cd0cac112e448174b1e93bafffb6d7eeed39c9389292bac59e8c8908da04792d79104c2d2a39d2b77bad0b19f2961071b040885fe01
@@ -1,18 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/listable'
3
4
  require 'eac_ruby_utils/simple_cache'
4
5
 
5
6
  module EacRubyUtils
6
7
  module Envs
7
8
  class Executable
9
+ include ::EacRubyUtils::Listable
8
10
  include ::EacRubyUtils::SimpleCache
9
11
 
10
- attr_reader :env, :name, :check_args
12
+ lists.add_symbol :option, :check_args, :auto_validate
13
+
14
+ DEFAULT_AUTO_VALIDATE = true
15
+
16
+ attr_reader :env, :name, :options
11
17
 
12
18
  def initialize(env, name, *check_args)
13
19
  @env = env
14
20
  @name = name
15
- @check_args = check_args
21
+ self.options = self.class.lists.option.hash_keys_validate!(check_args.extract_options!)
22
+ options[OPTION_CHECK_ARGS] = check_args unless options.key?(OPTION_CHECK_ARGS)
23
+ options.freeze
24
+ end
25
+
26
+ def auto_validate?
27
+ options.key?(OPTION_AUTO_VALIDATE) ? options[OPTION_AUTO_VALIDATE] : DEFAULT_AUTO_VALIDATE
28
+ end
29
+
30
+ def check_args
31
+ options[OPTION_CHECK_ARGS]
16
32
  end
17
33
 
18
34
  def exist?
@@ -32,7 +48,7 @@ module EacRubyUtils
32
48
  end
33
49
 
34
50
  def command(*command_args)
35
- validate!
51
+ validate! if auto_validate?
36
52
  env.command(*executable_args, *command_args)
37
53
  end
38
54
 
@@ -50,6 +66,8 @@ module EacRubyUtils
50
66
 
51
67
  private
52
68
 
69
+ attr_writer :options
70
+
53
71
  def exist_uncached
54
72
  env.command(*executable_args, *check_args).execute!
55
73
  true
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.85.0'
4
+ VERSION = '0.86.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.85.0
4
+ version: 0.86.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: 2022-01-23 00:00:00.000000000 Z
11
+ date: 2022-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport