toolrack 0.11.0 → 0.15.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/toolrack/cli_utils.rb +28 -0
- data/lib/toolrack/condition_utils.rb +6 -0
- data/lib/toolrack/exception_utils.rb +5 -5
- data/lib/toolrack/hash_config.rb +115 -0
- data/lib/toolrack/null_output.rb +22 -0
- data/lib/toolrack/version.rb +1 -1
- data/lib/toolrack.rb +9 -0
- data/toolrack.gemspec +2 -2
- metadata +17 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b24177e7add6e8ab1894461fd2ed8244da6b91c13ade087c2dee1379525d84f2
|
4
|
+
data.tar.gz: 419ad51fb287e9d4f65f9addfbf7be5bdcf7295a0286f7349acd45a21887ec41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 168d9e41ddfdc88ac69d1f9735f6251bdadd479576b62f79b47d7e1158437899338fd659984c931b2318c38e31fbf97a816b10ff2ee503a8626157e4342e22fd
|
7
|
+
data.tar.gz: 538232d0ff48587472d34406c373b91491b8467f83ba5e93dc743b76f6ab79342169ea3b5cdd1b80a860cf89e35c071b200257246c954691b4dcf8178b5844a7
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Antrapol
|
4
|
+
module ToolRack
|
5
|
+
module CliUtils
|
6
|
+
include Antrapol::ToolRack::ConditionUtils
|
7
|
+
|
8
|
+
class CliUtilsError < StandardError; end
|
9
|
+
|
10
|
+
def which(app)
|
11
|
+
if not_empty?(app)
|
12
|
+
path = `which #{app}`
|
13
|
+
path.strip if not_empty?(path)
|
14
|
+
else
|
15
|
+
raise CliUtilsError, "Given appication to look for full path (which) is empty"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def self.included(klass)
|
21
|
+
klass.class_eval <<-END
|
22
|
+
extend Antrapol::ToolRack::CliUtils
|
23
|
+
END
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -48,6 +48,12 @@ module Antrapol
|
|
48
48
|
end
|
49
49
|
alias_method :is_str_bool?, :is_string_boolean?
|
50
50
|
|
51
|
+
def self.included(klass)
|
52
|
+
klass.class_eval <<-END
|
53
|
+
extend Antrapol::ToolRack::ConditionUtils
|
54
|
+
END
|
55
|
+
end
|
56
|
+
|
51
57
|
end # ConditionUtils
|
52
58
|
end # MyToolRack
|
53
59
|
end # Antrapol
|
@@ -11,7 +11,7 @@ module Antrapol
|
|
11
11
|
# val - variable/object that shall be tested for emptiness
|
12
12
|
# message - message to be thrown if it is true
|
13
13
|
# error - exception object to be thrown
|
14
|
-
def raise_if_empty(val, message, error =
|
14
|
+
def raise_if_empty(val, message, error = StandardError)
|
15
15
|
raise_error(message,error) if is_empty?(val)
|
16
16
|
end # raise_if_empty
|
17
17
|
alias_method :raise_if_empty?, :raise_if_empty
|
@@ -19,7 +19,7 @@ module Antrapol
|
|
19
19
|
#
|
20
20
|
# raise_if_false
|
21
21
|
#
|
22
|
-
def raise_if_false(bool, message, error =
|
22
|
+
def raise_if_false(bool, message, error = StandardError)
|
23
23
|
if not bool
|
24
24
|
raise_error(message,error)
|
25
25
|
end
|
@@ -29,16 +29,16 @@ module Antrapol
|
|
29
29
|
#
|
30
30
|
# raise_if_true
|
31
31
|
#
|
32
|
-
def raise_if_true(bool, message, error =
|
32
|
+
def raise_if_true(bool, message, error = StandardError)
|
33
33
|
raise_if_false(!bool, message, error)
|
34
34
|
end # raise_if_true
|
35
35
|
alias_method :raise_if_true?, :raise_if_true
|
36
36
|
|
37
37
|
protected
|
38
|
-
def raise_error(message, error =
|
38
|
+
def raise_error(message, error = StandardError)
|
39
39
|
if error.nil?
|
40
40
|
if @default_exception.nil?
|
41
|
-
raise
|
41
|
+
raise StandardError, message
|
42
42
|
else
|
43
43
|
raise @default_exception, message
|
44
44
|
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
module Antrapol
|
5
|
+
module ToolRack
|
6
|
+
module HashConfig
|
7
|
+
include ConditionUtils
|
8
|
+
|
9
|
+
class HashConfigError < StandardError; end
|
10
|
+
|
11
|
+
def hcdeli=(deli)
|
12
|
+
@hcdeli = deli
|
13
|
+
end
|
14
|
+
def hcdeli
|
15
|
+
if is_empty?(@hcdeli)
|
16
|
+
@hcdeli = "."
|
17
|
+
end
|
18
|
+
@hcdeli
|
19
|
+
end
|
20
|
+
|
21
|
+
def hcset(key, value)
|
22
|
+
raise HashConfigError, "Nil key is not supported" if is_empty?(key)
|
23
|
+
|
24
|
+
keys = transform_keys(key)
|
25
|
+
root = hcConf
|
26
|
+
keys.each do |k|
|
27
|
+
if root.is_a?(Hash)
|
28
|
+
if not root.keys.include?(k)
|
29
|
+
root[k] = { }
|
30
|
+
end
|
31
|
+
|
32
|
+
if k == keys[-1]
|
33
|
+
root[k] = value
|
34
|
+
else
|
35
|
+
root = root[k]
|
36
|
+
end
|
37
|
+
|
38
|
+
else
|
39
|
+
raise HashConfigError, "The key '#{k}' currently not tie to a hash. It is an #{root.class} object of value '#{root}'. There is no way to add another value to key '#{key}'. Try to change it to Hash object instead."
|
40
|
+
end
|
41
|
+
end
|
42
|
+
root
|
43
|
+
end
|
44
|
+
|
45
|
+
def hcget(key, defVal = nil)
|
46
|
+
if key.nil?
|
47
|
+
return nil
|
48
|
+
else
|
49
|
+
keys = transform_keys(key)
|
50
|
+
node = hcConf
|
51
|
+
keys.each do |k|
|
52
|
+
if node.keys.include?(k)
|
53
|
+
node = node[k]
|
54
|
+
else
|
55
|
+
node = nil
|
56
|
+
break
|
57
|
+
end
|
58
|
+
end
|
59
|
+
node.nil? ? defVal : node
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def hcinclude?(key)
|
64
|
+
if key.nil?
|
65
|
+
return false
|
66
|
+
else
|
67
|
+
keys = transform_keys(key)
|
68
|
+
node = hcConf
|
69
|
+
keys.each do |k|
|
70
|
+
if node.is_a?(Hash)
|
71
|
+
if node.keys.include?(k)
|
72
|
+
node = node[k]
|
73
|
+
else
|
74
|
+
node = nil
|
75
|
+
break
|
76
|
+
end
|
77
|
+
else
|
78
|
+
node = nil
|
79
|
+
end
|
80
|
+
end
|
81
|
+
not node.nil?
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
def split_key(key)
|
87
|
+
if not_empty?(key)
|
88
|
+
key.split(hcdeli)
|
89
|
+
else
|
90
|
+
[key]
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def transform_keys(key)
|
95
|
+
case key
|
96
|
+
when String
|
97
|
+
split_key(key)
|
98
|
+
when Array
|
99
|
+
key
|
100
|
+
else
|
101
|
+
[key]
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def hcConf
|
106
|
+
if @hcConf.nil?
|
107
|
+
@hcConf = { }
|
108
|
+
end
|
109
|
+
@hcConf
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Antrapol
|
4
|
+
module ToolRack
|
5
|
+
class NullOutput
|
6
|
+
|
7
|
+
def method_missing(mtd, *args, &block)
|
8
|
+
# sink-holed all methods call
|
9
|
+
logger.tdebug :nullOut, "#{mtd} / #{args} / #{block ? "with block" : "no block"}"
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def logger
|
14
|
+
if @logger.nil?
|
15
|
+
@logger = Tlogger.new
|
16
|
+
end
|
17
|
+
@logger
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/toolrack/version.rb
CHANGED
data/lib/toolrack.rb
CHANGED
@@ -12,6 +12,9 @@ require_relative 'toolrack/process_utils'
|
|
12
12
|
require_relative 'toolrack/runtime_utils'
|
13
13
|
require_relative 'toolrack/data_conversion_utils'
|
14
14
|
require_relative 'toolrack/password_utils'
|
15
|
+
require_relative 'toolrack/hash_config'
|
16
|
+
require_relative 'toolrack/cli_utils'
|
17
|
+
require_relative 'toolrack/null_output'
|
15
18
|
|
16
19
|
module Antrapol
|
17
20
|
module ToolRack
|
@@ -25,6 +28,7 @@ module TR
|
|
25
28
|
Antrapol::ToolRack
|
26
29
|
end
|
27
30
|
|
31
|
+
# aliases
|
28
32
|
ToolRack = Antrapol::ToolRack
|
29
33
|
#TR = ToolRack
|
30
34
|
|
@@ -43,4 +47,9 @@ TR::ExpUtils = ToolRack::ExpUtils
|
|
43
47
|
ToolRack::RTUtils = ToolRack::RuntimeUtils
|
44
48
|
TR::RTUtils = ToolRack::RTUtils
|
45
49
|
|
50
|
+
TR::HashConfig = ToolRack::HashConfig
|
51
|
+
|
52
|
+
TR::CliUtils = ToolRack::CliUtils
|
53
|
+
|
54
|
+
TR::NullOut = ToolRack::NullOutput
|
46
55
|
|
data/toolrack.gemspec
CHANGED
@@ -26,9 +26,9 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
|
-
spec.add_dependency "tlogger"
|
29
|
+
spec.add_dependency "tlogger" #, "~> 0.21"
|
30
30
|
spec.add_dependency "base58"
|
31
31
|
|
32
|
-
spec.add_development_dependency "devops_helper"
|
32
|
+
spec.add_development_dependency "devops_helper" #, "~> 0.1.0"
|
33
33
|
spec.add_development_dependency "rspec"
|
34
34
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toolrack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tlogger
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: base58
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: devops_helper
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,10 +83,13 @@ files:
|
|
83
83
|
- bin/console
|
84
84
|
- bin/setup
|
85
85
|
- lib/toolrack.rb
|
86
|
+
- lib/toolrack/cli_utils.rb
|
86
87
|
- lib/toolrack/condition_utils.rb
|
87
88
|
- lib/toolrack/data_conversion_utils.rb
|
88
89
|
- lib/toolrack/exception_utils.rb
|
89
90
|
- lib/toolrack/global.rb
|
91
|
+
- lib/toolrack/hash_config.rb
|
92
|
+
- lib/toolrack/null_output.rb
|
90
93
|
- lib/toolrack/password_utils.rb
|
91
94
|
- lib/toolrack/process_utils.rb
|
92
95
|
- lib/toolrack/runtime_utils.rb
|
@@ -102,7 +105,7 @@ licenses: []
|
|
102
105
|
metadata:
|
103
106
|
homepage_uri: https://github.com/chrisliaw/toolrack
|
104
107
|
source_code_uri: https://github.com/chrisliaw/toolrack
|
105
|
-
post_install_message:
|
108
|
+
post_install_message:
|
106
109
|
rdoc_options: []
|
107
110
|
require_paths:
|
108
111
|
- lib
|
@@ -117,8 +120,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
120
|
- !ruby/object:Gem::Version
|
118
121
|
version: '0'
|
119
122
|
requirements: []
|
120
|
-
rubygems_version: 3.
|
121
|
-
signing_key:
|
123
|
+
rubygems_version: 3.2.22
|
124
|
+
signing_key:
|
122
125
|
specification_version: 4
|
123
126
|
summary: Collection of simple utilities but I find it increase clarity
|
124
127
|
test_files: []
|