storazzo 0.5.1 → 0.6.1

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -5
  3. data/LICENSE +20 -1
  4. data/Makefile +9 -5
  5. data/Rakefile +22 -9
  6. data/VERSION +1 -1
  7. data/bin/hello-storazzo +1 -0
  8. data/bin/ricdisk-magic +33 -30
  9. data/bin/stats-with-md5 +146 -176
  10. data/bin/storazzo +158 -0
  11. data/bin/storazzo-symlink.rb +1 -0
  12. data/bin/storazzo-util +1 -0
  13. data/lib/storazzo/colors.rb +77 -36
  14. data/lib/storazzo/common.rb +72 -65
  15. data/lib/storazzo/debug.rb +2 -0
  16. data/lib/storazzo/hashify.rb +7 -5
  17. data/lib/storazzo/main.rb +59 -49
  18. data/lib/storazzo/media/abstract_ric_disk.rb +190 -161
  19. data/lib/storazzo/media/gcs_bucket.rb +78 -47
  20. data/lib/storazzo/media/local_folder.rb +56 -42
  21. data/lib/storazzo/media/mount_point.rb +22 -6
  22. data/lib/storazzo/ric_disk.rb +386 -383
  23. data/lib/storazzo/ric_disk_config.rb +229 -197
  24. data/lib/storazzo/ric_disk_sample_config.rb +26 -24
  25. data/lib/storazzo/ric_disk_statsfile.rb +19 -17
  26. data/lib/storazzo/ric_disk_ugly.rb +1 -0
  27. data/lib/storazzo/version.rb +3 -3
  28. data/lib/storazzo.rb +6 -7
  29. data/storazzo.gemspec +31 -19
  30. data/test/benchmark/for_future_use.rb +15 -0
  31. data/test/benchmark/test_hashing_functions-speed.rb +17 -0
  32. data/test/bin/new-idea.rb +17 -0
  33. data/test/bin/storazzo.rb +25 -0
  34. data/test/media/test_abstract_ric_disk.rb +6 -4
  35. data/test/media/test_gcs_bucket.rb +55 -21
  36. data/test/media/test_local_folder.rb +28 -29
  37. data/test/media/test_mount_point.rb +7 -5
  38. data/test/test_ric_disk.rb +8 -6
  39. data/test/test_ric_disk_config.rb +13 -12
  40. data/test/test_ric_disk_stats_file.rb +5 -3
  41. data/test/test_storazzo.rb +6 -4
  42. data/var/test/disks/disk02-full/Rakefile +7 -5
  43. data/var/test/disks/ricdisk_stats_v11.rds +11 -22
  44. metadata +22 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8def316c4a0c581b9d357bcd2558c9575fc1cf8de8e6cba07d1207134d963aed
4
- data.tar.gz: 6f5715317c526538d8a5635bfbd73cdeee342807c7b8f9934d1b8f1f3de66cc5
3
+ metadata.gz: e82c96fbdff7b8d2f78556899257b431ec1e58ec255321bae2afb4ba3b1ac309
4
+ data.tar.gz: f343d195bce5121d18f456b3fd90f8032a41427ae41e4248f5b8628aca1b0a3e
5
5
  SHA512:
6
- metadata.gz: efaf738c70312c22c0461c2332ba3865f33417b9ec88069734d2082c2c18ad6063c591fd46cccc200eff8bd81dff1d75bf0fe059ecc8d846b937b2aa31b8c1d2
7
- data.tar.gz: 052c40b07650f14d53ec15479d4aa589449e57fad5e8da91d49badca594c280ebf5dde2c7e2319186b7aa4666e78b42ee31270de10485a87d0b0c91e9ad5e0b6
6
+ metadata.gz: d9aa08e7fcc62e0d8a3510db4d26f27e227aa778f8e9d8e6d7831676936c282e97f72f57f08febdc7383dec2f1e4c66beb42eb94dae3638f422fc6073292f204
7
+ data.tar.gz: e75cb487f55943dbae3d23242909ca61a83c39aaf5ef793225c074181f6914290d7f11aa3fa537f43010db4feab239efb14e88c5f30d91f737465081ad825309
data/Gemfile CHANGED
@@ -1,10 +1,12 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # to troubleshoot/debug things
4
- gem 'rubocop'
5
- gem "ruby-lsp", "~> 0.0.4", :group => :development
6
6
  gem 'rake'
7
+ gem 'rubocop'
8
+ gem 'ruby-lsp', '~> 0.0.4', group: :development
9
+
7
10
  # gem 'pry'
8
- gem 'pry', :group => :development
9
- # gem 'require_all' # yup I'm lazy: https://stackoverflow.com/questions/735073/best-way-to-require-all-files-from-a-directory-in-ruby
11
+ gem 'pry', group: :development
10
12
  # gem 'after_do' # To allow AFTER calling instance to do LOAD() automagically. Naah I can do without :)
data/LICENSE CHANGED
@@ -1 +1,20 @@
1
- # todo
1
+ Copyright 2022 Riccardo Carlesso (MIT)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Makefile CHANGED
@@ -10,14 +10,14 @@ help:
10
10
  build-local:
11
11
  gem build storazzo.gemspec
12
12
 
13
- build: build-local
13
+ build: build-local
14
14
 
15
15
  install:
16
16
  gem install ./storazzo-$(VER).gem
17
17
 
18
18
  push-to-rubygems: build-local test
19
19
  gem push ./storazzo-$(VER).gem
20
- push-to-rubygems-without-tests: build-local
20
+ push-to-rubygems-without-tests: build-local
21
21
  gem push ./storazzo-$(VER).gem
22
22
 
23
23
  list:
@@ -31,7 +31,7 @@ test-all:
31
31
  #bin/ricdisk-magic Ciao-da-Makefile
32
32
  echo 3. run rake test.. ont configured yet just a memo for the future.
33
33
  RUBYOPT="-W0" rake test
34
- echo 4. Prove I can include local gem in irb and play around. Similarly to rails console without reload.
34
+ echo 4. Prove I can include local gem in irb and play around. Similarly to rails console without reload.
35
35
  make irb-test
36
36
  @echo 'OK: ALL TESTS PASSED. #STIKA'
37
37
 
@@ -62,7 +62,9 @@ test-local-folder:
62
62
  test-media-subfolder:
63
63
  rake test TEST="test/media/*.rb"
64
64
  test-verbose:
65
- rake test:verbose --verbose
65
+ rake test:verbose --verbose
66
+ test-silent:
67
+ RUBYOPT="-W0" rake test:silent --verbose
66
68
  test-single-file-continuously:
67
69
  \watch -n 5 --color rake test TEST="test/media/test_local_folder.rb"
68
70
 
@@ -70,4 +72,6 @@ test-binary-with-local-gem:
70
72
  ruby -Ilib bin/hello-storazzo
71
73
  test-binary-with-system-gem:
72
74
  bin/hello-storazzo
73
-
75
+
76
+ lint:
77
+ rubocop --auto-correct
data/Rakefile CHANGED
@@ -1,34 +1,47 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # require 'rake'
2
4
 
3
5
  # from hola: https://guides.rubygems.org/make-your-own-gem/#adding-an-executable
4
- require "rake/testtask"
6
+ require 'rake/testtask'
5
7
 
6
- desc "Run Unit tests"
8
+ desc 'Run Unit tests'
7
9
  Rake::TestTask.new(:test) do |t|
8
- t.libs << "test"
9
- t.libs << "test/media"
10
- # note this is only useful for this: https://chriskottom.com/articles/command-line-flags-for-minitest-in-the-raw/
10
+ t.libs << 'test'
11
+ t.libs << 'test/media'
12
+ # NOTE: this is only useful for this: https://chriskottom.com/articles/command-line-flags-for-minitest-in-the-raw/
11
13
  t.verbose = false
12
14
  t.warning = false
13
15
  # puts "[RiccardoOnly]: t.pattern: #{t.pattern}"
14
16
  t.pattern = 'test/**/test_*.rb'
15
17
  end
16
18
 
17
- desc "By default, Run Unit tests"
19
+ desc 'By default, Run Unit tests'
18
20
  task default: :test
19
21
 
20
22
  # Adding test/media directory to rake test.
21
- desc "Test tests/media/* code sobenem"
23
+ desc 'Test tests/media/* code sobenem'
22
24
  namespace :test do
23
25
  desc "Test Verbosely by default since I'm too stupid to toggle via ENV var dammit"
24
26
  Rake::TestTask.new(:verbose) do |t|
25
- t.libs << "test"
26
- t.libs << "test/media"
27
+ t.libs << 'test'
28
+ t.libs << 'test/media'
27
29
  t.verbose = true
28
30
  t.warning = true
29
31
  t.pattern = 'test/**/test_*.rb'
30
32
  $DEBUG = true
31
33
  end
34
+
35
+ desc 'Test Silently and removes VERBOSITY'
36
+ Rake::TestTask.new(:silent) do |t|
37
+ t.libs << 'test'
38
+ t.libs << 'test/media'
39
+ t.verbose = false
40
+ t.warning = false
41
+ t.pattern = 'test/**/test_*.rb'
42
+ puts "Note: Best to call me with RUBYOPT='-W0'. Now RUBYOPT=#{ENV['RUBYOPT']}" if ENV['RUBYOPT'].nil?
43
+ $DEBUG = false
44
+ end
32
45
  end
33
46
  # namespace :verbose_test do
34
47
  # desc "Test tests/media/* code"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.6.1
data/bin/hello-storazzo CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'storazzo'
4
5
 
data/bin/ricdisk-magic CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  ############# ############# ############# ############# ############# ############# ############# #############
4
5
  # placeholder until i make it work..
@@ -32,7 +33,7 @@ include Storazzo::Common # instead
32
33
  # extend Storazzo::Colors
33
34
 
34
35
  if RUBY_VERSION.split('.')[0] == 1
35
- puts "Refusing to launch a script form Ruby 1. Sorry Ric, its 2020 damn it!"
36
+ puts 'Refusing to launch a script form Ruby 1. Sorry Ric, its 2020 damn it!'
36
37
  exit 2020
37
38
  end
38
39
 
@@ -47,23 +48,21 @@ HISTORY = <<-BIG_LONG_MULTILINE
47
48
  2022-07-DD v0.2 Some private stuff on GIC
48
49
  BIG_LONG_MULTILINE
49
50
 
50
- =begin
51
-
52
- ############################################################
53
- @author: Riccardo Carlesso
54
- @email: riccardo.carlesso@gmail.com
55
- @maturity: development
56
- @language: Ruby
57
- @synopsis: Brief Description here
58
- @tags: development, rcarlesso, test
59
- @description: See description
60
- ############################################################
61
-
62
- =end
51
+ #
52
+ # ############################################################
53
+ # @author: Riccardo Carlesso
54
+ # @email: riccardo.carlesso@gmail.com
55
+ # @maturity: development
56
+ # @language: Ruby
57
+ # @synopsis: Brief Description here
58
+ # @tags: development, rcarlesso, test
59
+ # @description: See description
60
+ # ############################################################
61
+ #
63
62
 
64
63
  $myconf = {
65
- :app_name => "RicDisk Magic should be sth like #{$0}",
66
- :description => "
64
+ app_name: "RicDisk Magic should be sth like #{$PROGRAM_NAME}",
65
+ description: "
67
66
  This program is loosely inspired to ricdisk-magic.sh but its much better.
68
67
  The idea is: iterate through all ARGV elements and build a DB of all files with length and MD5.
69
68
  Then if folder is writeable, put this list INSIDE IT as its so conveniente.
@@ -74,13 +73,13 @@ $myconf = {
74
73
  Note. This software is part of the Storazzo gem ('sai chi ti saluta un casino?'):
75
74
 
76
75
  $ gem install storazzo
77
- ".strip.gsub(/^\s+/, "").gsub(/\s+$/, ""),
78
- # TODO move to some class default
79
- :media_dirs => %w{/media/riccardo/ /Volumes/ /mnt/ ~/git/storazzo/var/test/
80
- /sobenme/giusto/per/imparare/ad/ammutolire/gli/errori/},
81
- :mount_types => %w{vfat ntfs},
76
+ ".strip.gsub(/^\s+/, '').gsub(/\s+$/, ''),
77
+ # TODO: move to some class default
78
+ media_dirs: %w[/media/riccardo/ /Volumes/ /mnt/ ~/git/storazzo/var/test/
79
+ /sobenme/giusto/per/imparare/ad/ammutolire/gli/errori/],
80
+ mount_types: %w[vfat ntfs]
82
81
  }
83
- $stats_file = "ricdisk_stats_v11.rds" # => RicDiskStatsFile
82
+ $stats_file = 'ricdisk_stats_v11.rds' # => RicDiskStatsFile
84
83
  $gcs_bucket = 'TODO-CHANGE-CONFIG-palladius'
85
84
 
86
85
  # This template from scripta.rb. from 2.1.0 removed aby ric gem dependency.
@@ -91,14 +90,15 @@ $TEMPLATE_VER = '2.1.1'
91
90
  def usage(comment = nil)
92
91
  puts white($optparse.banner)
93
92
  puts($optparse.summarize)
94
- puts("Description: " + gray($myconf[:description]))
93
+ puts("Description: #{gray($myconf[:description])}")
95
94
  puts red(comment) if comment
96
95
  # puts "Description: #{ $myconf[:description] }"
97
96
  exit 13
98
97
  end
99
98
 
100
99
  # include it in main if you want a custome one
101
- def init() # see lib_autoinit in lib/util.rb
100
+ # see lib_autoinit in lib/util.rb
101
+ def init
102
102
  $opts = {}
103
103
  # setting defaults
104
104
  $opts[:verbose] = false
@@ -107,8 +107,11 @@ def init() # see lib_autoinit in lib/util.rb
107
107
  $opts[:force] = false
108
108
 
109
109
  $optparse = OptionParser.new do |opts|
110
- opts.banner = "#{$0} v.#{$PROG_VER}\n Usage: #{File.basename $0} [options] file1 file2 ..."
111
- opts.on('-d', '--debug', 'enables debug (DFLT=false)') { $opts[:debug] = true; $DEBUG = true }
110
+ opts.banner = "#{$PROGRAM_NAME} v.#{$PROG_VER}\n Usage: #{File.basename $PROGRAM_NAME} [options] file1 file2 ..."
111
+ opts.on('-d', '--debug', 'enables debug (DFLT=false)') do
112
+ $opts[:debug] = true
113
+ $DEBUG = true
114
+ end
112
115
  opts.on('-f', '--force', 'force stuff (DFLT=false)') { $opts[:force] = true }
113
116
  opts.on('-h', '--help', 'Display this screen') { usage }
114
117
  # opts.on( '-j', '--jabba', 'Activates my Jabber powerful CLI' ) { $opts[:jabba] = true }
@@ -120,7 +123,7 @@ def init() # see lib_autoinit in lib/util.rb
120
123
  end
121
124
 
122
125
  def real_program
123
- deb("Hello world from a templated '#{yellow $0}'")
126
+ deb("Hello world from a templated '#{yellow $PROGRAM_NAME}'")
124
127
  deb "+ Options are: #{gray $opts}"
125
128
  deb "+ Depured args: #{azure ARGV}"
126
129
  deb "+ Script-specifig super-cool conf: #{green $prog_conf_d}"
@@ -130,7 +133,7 @@ def real_program
130
133
  puts white("Hello world from #{$myconf[:app_name]}!")
131
134
  puts "Description: '''#{white $myconf[:description]}'''"
132
135
 
133
- config = Storazzo::RicDiskConfig.instance()
136
+ config = Storazzo::RicDiskConfig.instance
134
137
  config.load
135
138
  puts "StorazzoConfig: #{config}"
136
139
  # config.load # auto_sbrodola(ARGV)
@@ -167,8 +170,8 @@ def main(filename)
167
170
  # warn "[warn] template v#{$TEMPLATE_VER }: proviamo il warn che magari depreca il DEB"
168
171
  real_program
169
172
 
170
- if ($DEBUG)
171
- puts "First I need to figure out how to bring in all the libraries in here.."
173
+ if $DEBUG
174
+ puts 'First I need to figure out how to bring in all the libraries in here..'
172
175
  Storazzo::Main.say_hi("ARGV is: #{ARGV.join ', '}")
173
176
  puts Storazzo.version
174
177
  end