toolrack 0.16.0 → 0.18.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: 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