toolrack 0.9.3 → 0.13.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: 42fd35a5442e9aaae8d559536346c0de0228db4d93aa40d1d4720eeacf5c7c31
4
- data.tar.gz: 02efc3e79b36480a037174d7005cbcbfddc217688e71b2ebc7b41e0d66bfe12b
3
+ metadata.gz: a8dd55a26c516a19fa866167542d1654ad82e8bd004eb099898030ee72b3128f
4
+ data.tar.gz: 28e576da345ff8e9d43e4e890cbb1ce66b7d896740a22e62693b7b1e8f17cbb5
5
5
  SHA512:
6
- metadata.gz: 54354902f0f97ca0c7c0295ec8ca9b7e25912fcb69954f4d290793ed5a4732e7ec5806ef35c4a5a08e8cc6e68552ce9744023680c5d14d960bfcef09931b0f62
7
- data.tar.gz: 861b791fa8f1396d111f13f21cb91a4375ef9a5c565bcd7c842dca1cae1550d6919a14daf6d8d393009ff3bf44502d8d4b64bd678d813412f89d9e4167b2f686
6
+ metadata.gz: 23af16b224d1fed00c2cf4b9e9649ec7c3c6438ab2309f193a61f15eed06c556a6176b94bcb87bbadf32d81f3cd9008d43610d896c05a2f0ad8dccc41668a589
7
+ data.tar.gz: 87e16f2c2a2761c229bbe979960b2bf58c05e5712d351ad2b148569f426e6a628720ee5a39de647d428ab51bfceb249ca5ceb7a1f8c1aaa002b16210973b7775
@@ -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
@@ -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
+
@@ -116,7 +116,7 @@ module Antrapol
116
116
  s = str.split("")
117
117
  lalpha = ('a'..'z').to_a
118
118
 
119
- (s.difference(lalpha).length == 0)
119
+ (s-lalpha).length == 0
120
120
  end
121
121
 
122
122
  def has_lowercase_alpha?(str)
@@ -134,7 +134,7 @@ module Antrapol
134
134
  s = str.split("")
135
135
  ualpha = ('A'..'Z').to_a
136
136
 
137
- s.difference(ualpha).length == 0
137
+ (s-ualpha).length == 0
138
138
  end
139
139
 
140
140
  def has_uppercase_alpha?(str)
@@ -157,8 +157,8 @@ module Antrapol
157
157
 
158
158
  alpha = [lalpha, ualpha].flatten
159
159
 
160
- t1 = (alpha.difference(s).length == 0)
161
- t2 = (alpha.difference(s).length == 0)
160
+ t1 = (alpha-s).length == 0
161
+ t2 = (alpha-s).length == 0
162
162
 
163
163
  t3 = (s & num).length > 0
164
164
  t4 = (s & sym).length > 0
@@ -197,7 +197,7 @@ module Antrapol
197
197
  s = str.split("")
198
198
  num = ('0'..'9').to_a
199
199
 
200
- !(s.difference(num).length > 0)
200
+ !((s-num).length > 0)
201
201
 
202
202
  end
203
203
 
@@ -206,7 +206,7 @@ module Antrapol
206
206
 
207
207
  s = str.split("")
208
208
  sym = ('!'..'?').to_a
209
- !(s.difference(sym).length > 0)
209
+ !((s-sym).length > 0)
210
210
 
211
211
  end
212
212
 
@@ -229,7 +229,7 @@ module Antrapol
229
229
  ualpha = ('A'..'Z').to_a
230
230
  num = ('0'..'9').to_a
231
231
  sym = ('!'..'?').to_a
232
- sym = sym.difference(num)
232
+ sym = sym-num
233
233
 
234
234
  t1 = ((s & lalpha).length > 0)
235
235
  t2 = ((s & ualpha).length > 0)
@@ -261,7 +261,7 @@ module Antrapol
261
261
  ualpha = ('A'..'Z').to_a
262
262
  num = ('0'..'9').to_a
263
263
  sym = ('!'..'?').to_a
264
- sym = sym.difference(num)
264
+ sym = sym-num
265
265
 
266
266
  t1 = ((s & lalpha).length > 0)
267
267
  t2 = ((s & ualpha).length > 0)
@@ -279,7 +279,7 @@ module Antrapol
279
279
  ualpha = ('A'..'Z').to_a
280
280
  num = ('0'..'9').to_a
281
281
  sym = ('!'..'?').to_a
282
- sym = sym.difference(num)
282
+ sym = sym-num
283
283
 
284
284
  t1 = ((s & lalpha).length > 0)
285
285
  t2 = ((s & ualpha).length > 0)
@@ -1,6 +1,6 @@
1
1
  module Antrapol
2
2
  module ToolRack
3
- VERSION = "0.9.3"
3
+ VERSION = "0.13.0"
4
4
  end
5
5
  end
6
6
 
data/lib/toolrack.rb CHANGED
@@ -12,17 +12,22 @@ 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'
15
16
 
16
17
  module Antrapol
17
18
  module ToolRack
18
19
  class Error < StandardError; end
19
20
  # Your code goes here...
20
-
21
21
  end
22
22
  end
23
23
 
24
+ # try to get rid of constant redefined warning
25
+ module TR
26
+ Antrapol::ToolRack
27
+ end
28
+
24
29
  ToolRack = Antrapol::ToolRack
25
- TR = ToolRack
30
+ #TR = ToolRack
26
31
 
27
32
  ToolRack::DataConvUtils = Antrapol::ToolRack::DataConversionUtils
28
33
  TR::DataConvUtils = ToolRack::DataConvUtils
@@ -39,3 +44,5 @@ TR::ExpUtils = ToolRack::ExpUtils
39
44
  ToolRack::RTUtils = ToolRack::RuntimeUtils
40
45
  TR::RTUtils = ToolRack::RTUtils
41
46
 
47
+ TR::HashConfig = ToolRack::HashConfig
48
+
data/toolrack.gemspec CHANGED
@@ -26,8 +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
+ spec.add_development_dependency "rspec"
33
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.9.3
4
+ version: 0.13.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-11 00:00:00.000000000 Z
11
+ date: 2021-10-10 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,30 @@ 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
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: Just collections of utilities
56
70
  email:
57
71
  - chrisliaw@antrapol.com
@@ -73,6 +87,7 @@ files:
73
87
  - lib/toolrack/data_conversion_utils.rb
74
88
  - lib/toolrack/exception_utils.rb
75
89
  - lib/toolrack/global.rb
90
+ - lib/toolrack/hash_config.rb
76
91
  - lib/toolrack/password_utils.rb
77
92
  - lib/toolrack/process_utils.rb
78
93
  - lib/toolrack/runtime_utils.rb
@@ -88,7 +103,7 @@ licenses: []
88
103
  metadata:
89
104
  homepage_uri: https://github.com/chrisliaw/toolrack
90
105
  source_code_uri: https://github.com/chrisliaw/toolrack
91
- post_install_message:
106
+ post_install_message:
92
107
  rdoc_options: []
93
108
  require_paths:
94
109
  - lib
@@ -104,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
119
  version: '0'
105
120
  requirements: []
106
121
  rubygems_version: 3.2.22
107
- signing_key:
122
+ signing_key:
108
123
  specification_version: 4
109
124
  summary: Collection of simple utilities but I find it increase clarity
110
125
  test_files: []