toolrack 0.9.3 → 0.13.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: 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: []