toolrack 0.16.0 → 0.18.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: dc4910a1f5cea30a6abb8a4327b82587249209a8cce6830aa9e1df7e2bdf32ff
4
- data.tar.gz: 41d80a9716fff1a2dd1ff12ec4eb1e03496bbdc709c757a54f80c767c7c61eb7
3
+ metadata.gz: 5610441ad91a23021d614e6098082c39f2ed065f3cd8b41d9f1baa450578008e
4
+ data.tar.gz: 8e9d4a84aa5042b118b53e10e52d5acadf9d51f95da7f5ee86eb37b6d705ff2a
5
5
  SHA512:
6
- metadata.gz: 4bc935dac9779c3d705228b289fb4c3c114ca9b52c1bb7d6713c4950380b3158cc4c4c9b09b96c0c86e59dc476aa91a30b0e5503acd71fd66051f9198db5fc49
7
- data.tar.gz: fee94264c22adc4bf922c6fbef169e816c83ae72433e8f90ae060e05c5f52715054b23ffbb79d1bd29959084cf17e8e4afc9ab63bb8e8031b2fd91472feae6b3
6
+ metadata.gz: a22d8044d9e1a0336348d15f693c8536b3bbaacbd609f6ccac74183273631e930d120705b4d290c70d0bc24ff97e34ba09786c2023b8aa3e93f1b29ced4f8c55
7
+ data.tar.gz: 63d84fb30698e89db3b1cd1f38c46589aa038ea416ae00c9e02ee12891288b7c228cb2d69d289cf6cd735f95827b7fb84dca27d75c8f5adf151e452854a78087
@@ -0,0 +1,8 @@
1
+ ---
2
+ toolrack:
3
+ - :version: 0.16.1
4
+ :timestamp: 1635759283.7389827
5
+ - :version: 0.16.2
6
+ :timestamp: 1636343293.571501
7
+ - :version: 0.17.0
8
+ :timestamp: 1636636596.4561074
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
- require 'devops_helper'
4
+ require 'devops_assist'
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
7
  t.libs << "test"
@@ -0,0 +1,40 @@
1
+
2
+
3
+
4
+ module Antrapol
5
+ module ToolRack
6
+ module BlockParamsUtils
7
+ include ConditionUtils
8
+
9
+ def value_from_block(blockKey, defValue, opts = { }, &block)
10
+ if block
11
+ blockParams = nil
12
+ if not_empty?(opts)
13
+ blockParams = opts[:blockArgs]
14
+ end
15
+
16
+ value = nil
17
+ if blockParams.nil?
18
+ value = block.call(blockKey)
19
+ value = defValue if is_empty?(value)
20
+ else
21
+ value = block.call(blockKey, *blockParams)
22
+ value = defValue if is_empty?(value)
23
+ end
24
+
25
+ value
26
+ else
27
+ defValue
28
+ end
29
+ end
30
+
31
+
32
+ def self.included(klass)
33
+ klass.class_eval <<-END
34
+ extend Antrapol::ToolRack::BlockParamsUtils
35
+ END
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -10,11 +10,24 @@ module Antrapol
10
10
  elsif obj.nil?
11
11
  true
12
12
  elsif obj.respond_to?(:empty?)
13
- if obj.respond_to?(:strip)
14
- obj.strip.empty?
15
- else
16
- obj.empty?
13
+ begin
14
+ if obj.respond_to?(:strip)
15
+ obj.strip.empty?
16
+ else
17
+ obj.empty?
18
+ end
19
+ rescue ArgumentError => ex
20
+ # strip sometimes trigger 'invalid byte sequence in UTF-8' error
21
+ # This will happen if the data is binary but the reading of the data
22
+ # is in ascii format.
23
+ if ex.message =~ /invalid byte sequence/
24
+ cuLogger.twarn :is_empty?, "Invalid byte sequence exception might indicates the data is expected in binary but was given a ASCII buffer to test. Please load the data in binary and test again"
25
+ false
26
+ else
27
+ raise
28
+ end
17
29
  end
30
+
18
31
  elsif obj.respond_to?(:length)
19
32
  obj.length == 0
20
33
  elsif obj.respond_to?(:size)
@@ -48,6 +61,16 @@ module Antrapol
48
61
  end
49
62
  alias_method :is_str_bool?, :is_string_boolean?
50
63
 
64
+ def cuLogger
65
+ if @cuLogger.nil?
66
+ @cuLogger = Tlogger.new
67
+ end
68
+ @cuLogger
69
+ end
70
+
71
+ #
72
+ # Make it available at class level too
73
+ #
51
74
  def self.included(klass)
52
75
  klass.class_eval <<-END
53
76
  extend Antrapol::ToolRack::ConditionUtils
@@ -115,6 +115,18 @@ module Antrapol
115
115
  alias_method :str_to_bool, :string_to_bool
116
116
  alias_method :string_to_boolean, :string_to_bool
117
117
 
118
+
119
+
120
+ #
121
+ # Make it available at class level too
122
+ #
123
+ def self.included(klass)
124
+ klass.class_eval <<-END
125
+ extend Antrapol::ToolRack::DataConversionUtils
126
+ END
127
+ end
128
+
129
+
118
130
  end
119
131
  end
120
132
  end
@@ -0,0 +1,72 @@
1
+
2
+ require 'openssl'
3
+
4
+ module Antrapol
5
+ module ToolRack
6
+ module FileUtils
7
+ include Antrapol::ToolRack::DataConversionUtils
8
+
9
+ class FileUtilsError < StandardError; end
10
+ module ClassMethods
11
+ def is_same?(*args, &block)
12
+ opts = { verbose: false }
13
+ if args.last.is_a?(Hash)
14
+ opts.merge!(args.last)
15
+ target = args[0..-2]
16
+ else
17
+ target = args
18
+ end
19
+
20
+ raise FileUtilsError, "is_same? requires at least 2 files" if target.length < 2
21
+
22
+ res = true
23
+ size = nil
24
+ target.each do |f|
25
+ raise FileUtilsError, "Given file #{f} to is_same? does not exist" if not File.exist?(f)
26
+
27
+ if size.nil?
28
+ size = File.size(f)
29
+ elsif File.size(f) != size
30
+ res = false
31
+ break
32
+ end
33
+
34
+ end
35
+
36
+ if res
37
+ prevDigRes = nil
38
+ target.each do |f|
39
+ dig = OpenSSL::Digest.new("SHA256")
40
+ bufSize = 2048*1000
41
+ File.open(f,"rb") do |f|
42
+ dig.update(f.read(bufSize))
43
+ end
44
+ digRes = dig.digest
45
+
46
+ STDOUT.puts "#{f} : #{to_hex(digRes)}" if opts[:verbose]
47
+
48
+ if prevDigRes.nil?
49
+ prevDigRes = digRes
50
+ elsif prevDigRes != digRes
51
+ res = false
52
+ break
53
+ end
54
+ end
55
+ end
56
+
57
+ res
58
+
59
+ end
60
+ end
61
+
62
+ def self.included(klass)
63
+ File.class_eval <<-END
64
+ extend Antrapol::ToolRack::FileUtils::ClassMethods
65
+ END
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+
72
+
@@ -16,6 +16,10 @@ module Antrapol
16
16
  (RbConfig::CONFIG['host_os'] =~ /linux/) != nil
17
17
  end
18
18
 
19
+ def RuntimeUtils.os_string
20
+ RbConfig::CONFIG['host_os']
21
+ end
22
+
19
23
  def RuntimeUtils.on_ruby?
20
24
  not on_jruby?
21
25
  end
@@ -1,6 +1,6 @@
1
1
  module Antrapol
2
2
  module ToolRack
3
- VERSION = "0.16.0"
3
+ VERSION = "0.18.0"
4
4
  end
5
5
  end
6
6
 
data/lib/toolrack.rb CHANGED
@@ -16,6 +16,8 @@ require_relative 'toolrack/hash_config'
16
16
  require_relative 'toolrack/cli_utils'
17
17
  require_relative 'toolrack/null_output'
18
18
  require_relative 'toolrack/version_utils'
19
+ require_relative 'toolrack/file_utils'
20
+ require_relative 'toolrack/block_params_utils'
19
21
 
20
22
  module Antrapol
21
23
  module ToolRack
@@ -59,3 +61,7 @@ TR::NullOut = ToolRack::NullOutput
59
61
  TR::VerUtils = ToolRack::VersionUtils
60
62
  TR::VUtils = TR::VerUtils
61
63
 
64
+ TR::FileUtils = ToolRack::FileUtils
65
+
66
+ TR::BlockParamsUtils = ToolRack::BlockParamsUtils
67
+
data/toolrack.gemspec CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
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 "devops_assist"
33
34
  spec.add_development_dependency "rspec"
34
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toolrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-22 00:00:00.000000000 Z
11
+ date: 2021-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tlogger
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: devops_helper
42
+ name: devops_assist
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -74,6 +74,7 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
+ - ".release_history.yml"
77
78
  - ".rspec"
78
79
  - ".travis.yml"
79
80
  - CODE_OF_CONDUCT.md
@@ -83,10 +84,12 @@ files:
83
84
  - bin/console
84
85
  - bin/setup
85
86
  - lib/toolrack.rb
87
+ - lib/toolrack/block_params_utils.rb
86
88
  - lib/toolrack/cli_utils.rb
87
89
  - lib/toolrack/condition_utils.rb
88
90
  - lib/toolrack/data_conversion_utils.rb
89
91
  - lib/toolrack/exception_utils.rb
92
+ - lib/toolrack/file_utils.rb
90
93
  - lib/toolrack/global.rb
91
94
  - lib/toolrack/hash_config.rb
92
95
  - lib/toolrack/null_output.rb