toolrack 0.11.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc054121dfe0f58514fbb1144367c1de27e117feda1d888efd1aaa3063d6dea5
4
- data.tar.gz: c8cda5ca33e463fb6aeae51e9e41e13cdd8aaf13b61c650bcd503d91739ae0dc
3
+ metadata.gz: b24177e7add6e8ab1894461fd2ed8244da6b91c13ade087c2dee1379525d84f2
4
+ data.tar.gz: 419ad51fb287e9d4f65f9addfbf7be5bdcf7295a0286f7349acd45a21887ec41
5
5
  SHA512:
6
- metadata.gz: 9c410161466247551ac55f1b27e86b03e9a3416940158afc0fc59e3e7fbead8b0e6d0524f36aa9d2b5cc0a24b60a537b45642c438c488cd7f5f04ec719d38fe0
7
- data.tar.gz: 0d7acf5ed32ef580fa73833ccb05f6de4c0b691544a8596e019126058344608222c7eb9bf9df7a89b4ce3fc720ab62d3e803e3423c50e603074e20ceca823725
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 = Antrapol::ToolRack::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 = Antrapol::ToolRack::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 = Antrapol::ToolRack::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 = Antrapol::ToolRack::Error)
38
+ def raise_error(message, error = StandardError)
39
39
  if error.nil?
40
40
  if @default_exception.nil?
41
- raise Antrapol::ToolRack::Error, message
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
@@ -1,6 +1,6 @@
1
1
  module Antrapol
2
2
  module ToolRack
3
- VERSION = "0.11.0"
3
+ VERSION = "0.15.0"
4
4
  end
5
5
  end
6
6
 
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", "~> 0.21"
29
+ spec.add_dependency "tlogger" #, "~> 0.21"
30
30
  spec.add_dependency "base58"
31
31
 
32
- spec.add_development_dependency "devops_helper", "~> 0.1.0"
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.11.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-09-19 00:00:00.000000000 Z
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.21'
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.21'
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.1.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.1.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.0.9
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: []