storazzo 0.4.2 → 0.5.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -4
  3. data/Makefile +20 -1
  4. data/README.md +23 -0
  5. data/Rakefile +35 -8
  6. data/VERSION +1 -1
  7. data/bin/hello-storazzo +5 -0
  8. data/bin/ricdisk-magic +50 -57
  9. data/bin/stats-with-md5 +268 -297
  10. data/lib/storazzo/colors.rb +43 -45
  11. data/lib/storazzo/common.rb +80 -17
  12. data/lib/storazzo/debug.rb +5 -8
  13. data/lib/storazzo/hashify.rb +44 -43
  14. data/lib/storazzo/main.rb +44 -40
  15. data/lib/storazzo/media/abstract_ric_disk.rb +163 -104
  16. data/lib/storazzo/media/gcs_bucket.rb +51 -15
  17. data/lib/storazzo/media/local_folder.rb +43 -46
  18. data/lib/storazzo/media/mount_point.rb +12 -2
  19. data/lib/storazzo/ric_disk.rb +223 -251
  20. data/lib/storazzo/ric_disk_config.rb +230 -193
  21. data/lib/storazzo/ric_disk_sample_config.rb +12 -16
  22. data/lib/storazzo/ric_disk_statsfile.rb +17 -16
  23. data/lib/storazzo/ric_disk_ugly.rb +35 -38
  24. data/lib/storazzo/version.rb +7 -7
  25. data/lib/storazzo.rb +34 -29
  26. data/storazzo.gemspec +22 -20
  27. data/test/media/test_abstract_ric_disk.rb +19 -0
  28. data/test/media/test_gcs_bucket.rb +58 -0
  29. data/test/media/test_local_folder.rb +145 -0
  30. data/test/media/test_mount_point.rb +25 -0
  31. data/test/test_ric_disk.rb +16 -0
  32. data/test/test_ric_disk_config.rb +20 -29
  33. data/test/test_ric_disk_stats_file.rb +13 -14
  34. data/test/test_storazzo.rb +26 -26
  35. data/var/dumps/file_stat.linux.yaml +15 -0
  36. data/var/dumps/file_stat.macosx.yaml +15 -0
  37. data/var/test/disks/disk02-full/Rakefile +13 -0
  38. data/var/test/disks/ricdisk_stats_v11.rds +11 -0
  39. metadata +38 -10
  40. data/test/test_gcs_bucket.rb +0 -70
  41. data/test/test_local_folder.rb +0 -121
@@ -1,51 +1,49 @@
1
1
  # Use EXTEND vs INCLUDE and magically the Class will inherit instead of instance. Magical! :)
2
2
  # http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
3
- #
4
- # include Storazzo::Colors
5
- # extend Storazzo::Colors
6
- #
3
+ #
4
+ # include Storazzo::Colors
5
+ # extend Storazzo::Colors
6
+ #
7
7
 
8
- module Storazzo
9
- # needs to be defined before
10
- end
8
+ module Storazzo
9
+ # needs to be defined before
10
+ end
11
11
 
12
12
  module Storazzo::Colors
13
-
14
- PREPEND_ME = "[Storazzo::Colors] "
15
-
16
-
17
- def deb2(s); puts "#DEB_OBSOLETE #{gray(s)} [include Storazzo::Common instead]" if $DEBUG; end # Use the Common instead
18
-
19
- # colors 16
20
- def yellow(s) "\033[1;33m#{s}\033[0m" ; end
21
- def gray(s) "\033[1;30m#{s}\033[0m" ; end
22
- def green(s) "\033[1;32m#{s}\033[0m" ; end
23
- def red(s) "\033[1;31m#{s}\033[0m" ; end
24
- def blue(s) "\033[1;34m#{s}\033[0m" ; end
25
- def purple(s) "\033[1;35m#{s}\033[0m" ; end
26
- def azure(s) "\033[1;36m#{s}\033[0m" ; end
27
- def white(s) "\033[1;37m#{s}\033[0m" ; end
28
-
29
- # colors 64k
30
- def orange(s) "\033[38;5;208m#{s}\033[0m" ; end
31
-
32
- # i dont undertstand why i need self :/
33
- # SELF version because I'm just stupid or lazy or both.
34
- # def self.yellow(s) "#{PREPEND_ME}\033[1;33m#{s}\033[0m" ; end
35
- # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
36
- # def self.gray(s) "#{PREPEND_ME}\033[1;30m#{s}\033[0m" ; end
37
- # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
38
- # def self.red(s) "#{PREPEND_ME}\033[1;31m#{s}\033[0m" ; end
39
- # def self.blue(s) "#{PREPEND_ME}\033[1;34m#{s}\033[0m" ; end
40
- # def self.purple(s) "#{PREPEND_ME}\033[1;35m#{s}\033[0m" ; end
41
- # def self.azure(s) "#{PREPEND_ME}\033[1;36m#{s}\033[0m" ; end
42
- # def self.white(s) "#{PREPEND_ME}\033[1;37m#{s}\033[0m" ; end
43
-
44
- # p<COLOR> Carlessian functions..
45
- def pwhite(s) puts(white(s)); end
46
- def pgreen(s) puts(green(s)); end
47
- def pred(s) puts(red(s)); end
48
- def pyellow(s) puts(yellow(s)); end
49
-
13
+ PREPEND_ME = "[Storazzo::Colors] "
14
+
15
+ def deb2(s);
16
+ puts "#DEB_OBSOLETE #{gray(s)} [include Storazzo::Common instead]" if $DEBUG; end # Use the Common instead
17
+
18
+ # colors 16
19
+ def yellow(s) "\033[1;33m#{s}\033[0m"; end
20
+ def gray(s) "\033[1;30m#{s}\033[0m"; end
21
+ def green(s) "\033[1;32m#{s}\033[0m"; end
22
+ def red(s) "\033[1;31m#{s}\033[0m"; end
23
+ def blue(s) "\033[1;34m#{s}\033[0m"; end
24
+ def purple(s) "\033[1;35m#{s}\033[0m"; end
25
+ def azure(s) "\033[1;36m#{s}\033[0m"; end
26
+ def white(s) "\033[1;37m#{s}\033[0m"; end
27
+
28
+ # colors 64k
29
+ def orange(s) "\033[38;5;208m#{s}\033[0m"; end
30
+
31
+ # i dont undertstand why i need self :/
32
+ # SELF version because I'm just stupid or lazy or both.
33
+ # def self.yellow(s) "#{PREPEND_ME}\033[1;33m#{s}\033[0m" ; end
34
+ # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
35
+ # def self.gray(s) "#{PREPEND_ME}\033[1;30m#{s}\033[0m" ; end
36
+ # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
37
+ # def self.red(s) "#{PREPEND_ME}\033[1;31m#{s}\033[0m" ; end
38
+ # def self.blue(s) "#{PREPEND_ME}\033[1;34m#{s}\033[0m" ; end
39
+ # def self.purple(s) "#{PREPEND_ME}\033[1;35m#{s}\033[0m" ; end
40
+ # def self.azure(s) "#{PREPEND_ME}\033[1;36m#{s}\033[0m" ; end
41
+ # def self.white(s) "#{PREPEND_ME}\033[1;37m#{s}\033[0m" ; end
42
+
43
+ # p<COLOR> Carlessian functions..
44
+ def pwhite(s) puts(white(s)); end
45
+ def pgreen(s) puts(green(s)); end
46
+ def pred(s) puts(red(s)); end
47
+ def pyellow(s) puts(yellow(s)); end
50
48
  end
51
- #end
49
+ # end
@@ -1,27 +1,90 @@
1
1
  # Ric common stuff! :)
2
2
  #
3
- #
4
3
  # Usage:
5
- # include Storazzo::Common
4
+ # include Storazzo::Common (def to def)
5
+ # or
6
+ # extend Storazzo::Common (def to def self.XX)
6
7
  #
8
+ =begin
9
+ Emoji to copy:
10
+ 👍 👎 👌 ✌ 👋 🤝 👏 🤘 🤟 🤙 🤏 🙌 🙏 🖖 🤞 ✋ 🤚 🖐 🖑 🤲 👐 👊 🤛 🤜 🖕
11
+ 👈 👉 👆 👇
12
+ ☺ ☻ 😃 😄 😅 😆 😊 😎 😇 😈 😏 🤣 🤩 🤪 🥳 😁 😀 😂 🤠 🤡 🤑 🤓 🤖 kiss
13
+ 😗 😚 😘 😙 flirting
14
+ 😉 🤗 😍 🥰 🤤 😋 😛 😜 😝 neutral
15
+ 😶 🙃 😐 😑 🤔 🤨 🧐 hush
16
+ 🤭 🤫 😯 🤐 😌 😖 😕 😳 😔 🤥 🥴 shocked
17
+ 😮 😲 🤯 tired
18
+ 😩 😫 🥱 😪 😴 😵 sad
19
+ ☹ 😦 😞 😥 😟 cry
20
+ 😢 😭 sick
21
+ 🤢 🤮 😷 🤒 🤕 🥵 🥶 fear
22
+ 🥺 😬 😓 😰 😨 😱 angry
23
+ 😒 😠 😡 😤 😣 😧 🤬 😸 😹 😺 😻 😼 😽 😾 😿 🙀 🙈 🙉 🙊
24
+ [see Animal Emoji 🐰] gesture
25
+ 🤦 🤷 🙅 🙆 🙋 🙌 🙍 🙎 🙇 🙏 activity
26
+ 👯 💃 🕺 🤳 💇 💈 💆 🧖 🧘 🧍 🧎 👰 🤰 🤱 faces
27
+ 👶 🧒 👦 👧 👩 👨 🧑 🧔 🧓 👴 👵 👤 👥 👪 👫 👬 👭 👱 👳 👲 🧕 👸 🤴 🎅 🤶 disabled
28
+ 🧏 🦻 🦮 🦯 🦺 🦼 🦽 🦾 🦿 🤵 👮 👷 💁 💂 🕴 🕵 🦸 🦹 🧙 🧚 🧜 🧝 🧞 🧛 🧟 👼 👿 👻 👹 👺 👽 👾 🛸 💀 ☠ 🕱 🧠 🦴 👁 👀 👂 👃 👄 🗢 👅 🦷 🦵 🦶 💭 🗬 🗭 💬 🗨 🗩 🗪 🗫 🗰 🗱 🗮 🗯 🗣 🗤 🗥 🗦 🗧 💦 💧 💢 💫 💤 💨 💥 💪 🗲 🔥 💡 💩 💯 🔟 🔰 🕲
29
+ =end
7
30
  require_relative 'colors'
31
+ require 'pry'
8
32
 
9
- module Storazzo::Common
10
-
11
- include Storazzo::Colors
33
+ module Storazzo::Common
34
+ include Storazzo::Colors
12
35
 
36
+ def deb(s)
37
+ puts "[DEB👀] #{yellow(s)}" if _debug_true # $DEBUG
38
+ end
13
39
 
14
- def deb(s)
15
- puts "[DEB] #{yellow(s)}" if $DEBUG
16
- end
17
- def warn(s)
18
- puts "[WRN] #{azure(s)}"
19
- end
20
- def err(str)
21
- puts "[ERR] #{red(s)}"
22
- end
23
- def bug(s)
24
- puts "[🐛] #{gray s}"
40
+ # this has a yield
41
+ def if_deb?()
42
+ if _debug_true # $DEBUG
43
+ deb "== yield START =="
44
+ yield
45
+ deb "== yield END =="
25
46
  end
47
+ end
48
+
49
+ def warn(s)
50
+ puts "[W⚠️RN] #{azure(s)}"
51
+ end
52
+
53
+ def err(str)
54
+ puts "[ERR👎] #{red(s)}" # ⛔
55
+ end
56
+
57
+ def bug(s)
58
+ puts "[🐛] #{gray s}"
59
+ end
60
+
61
+ def pverbose(is_verbose, str)
62
+ # puts "[V📚RB💀S📚] #{gray str}"
63
+ puts "[🦋🐛🐝🐞🐜🕷🕸🦂🦗🦟] #{gray str}" # insects: http://xahlee.info/comp/unicode_insects.html
64
+ end
65
+
66
+ def ppp(complex_object_to_colorize)
67
+ # TODO i need to learn to return without printing..
68
+ Pry::ColorPrinter.pp(complex_object_to_colorize)
69
+ end
70
+
71
+ def fatal(s)
72
+ raise "[F💀TAL] #{red s}"
73
+ end
74
+
75
+ def mac?
76
+ `uname`.chomp == 'Darwin'
77
+ end
78
+
79
+ def linux?
80
+ `uname`.chomp == 'Linux'
81
+ end
82
+
83
+ private
84
+
85
+ def _debug_true
86
+ $DEBUG or ENV["DEBUG"] == 'true'
87
+ end
26
88
 
27
- end
89
+ # puts "[DEBUG ENABLED!]" if _debug_true
90
+ end
@@ -1,10 +1,7 @@
1
-
2
1
  # idea from https://medium.com/@leo_hetsch/ruby-modules-include-vs-prepend-vs-extend-f09837a5b073
3
2
  module Debug
4
-
5
- def log(message)
6
- # debug output
7
- puts "TODO(ricc): LOG '#{message}' on GCP :)"
8
- end
9
-
10
- end
3
+ def log(message)
4
+ # debug output
5
+ puts "TODO(ricc): LOG '#{message}' on GCP :)"
6
+ end
7
+ end
@@ -1,46 +1,47 @@
1
1
  # copied from https://dev.to/ayushn21/how-to-generate-yaml-from-ruby-objects-without-type-annotations-4fli
2
2
  module Storazzo
3
- module Hashify
4
- # Classes that include this module can exclude certain
5
- # instance variable from its hash representation by overriding
6
- # this method
7
- def ivars_excluded_from_hash
8
- [ 'this_doesnt_exist' ]
9
- end
10
-
11
- def to_hash
12
- hash = {}
13
- excluded_ivars = ivars_excluded_from_hash
14
-
15
- # Iterate over all the instance variables and store their
16
- # names and values in a hash
17
- instance_variables.each do |var|
18
- next if excluded_ivars.include? var.to_s
19
-
20
- value = instance_variable_get(var)
21
- value = value.map(&:to_hash) if value.is_a? Array
22
-
23
- hash[var.to_s.delete("@")] = value
24
- end
25
-
26
- return hash
27
- end
28
-
29
- def obj_to_hash
30
- h = {}
31
- puts self
32
- self.instance_variables.each{|var|
33
- #puts var
34
- h[var.to_s.delete('@')] = self.instance_variable_get(var) # send(var.to_s.delete('@'))
35
- }
36
- h
37
- end
38
-
39
- def to_yaml
40
- to_hash.to_yaml
41
- end
42
- def obj_to_yaml
43
- obj_to_hash.to_yaml
44
- end
3
+ module Hashify
4
+ # Classes that include this module can exclude certain
5
+ # instance variable from its hash representation by overriding
6
+ # this method
7
+ def ivars_excluded_from_hash
8
+ ['this_doesnt_exist']
45
9
  end
46
- end
10
+
11
+ def to_hash
12
+ hash = {}
13
+ excluded_ivars = ivars_excluded_from_hash
14
+
15
+ # Iterate over all the instance variables and store their
16
+ # names and values in a hash
17
+ instance_variables.each do |var|
18
+ next if excluded_ivars.include? var.to_s
19
+
20
+ value = instance_variable_get(var)
21
+ value = value.map(&:to_hash) if value.is_a? Array
22
+
23
+ hash[var.to_s.delete("@")] = value
24
+ end
25
+
26
+ return hash
27
+ end
28
+
29
+ def obj_to_hash
30
+ h = {}
31
+ puts self
32
+ self.instance_variables.each { |var|
33
+ # puts var
34
+ h[var.to_s.delete('@')] = self.instance_variable_get(var) # send(var.to_s.delete('@'))
35
+ }
36
+ h
37
+ end
38
+
39
+ def to_yaml
40
+ to_hash.to_yaml
41
+ end
42
+
43
+ def obj_to_yaml
44
+ obj_to_hash.to_yaml
45
+ end
46
+ end
47
+ end
data/lib/storazzo/main.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  # eg from RicDisk.
4
4
 
5
5
  module Storazzo
6
-
7
6
  # This is the Main Class - an entrypoint to call the meravilles hidden therein.
8
7
  #
9
8
  # Example:
@@ -13,57 +12,62 @@ module Storazzo
13
12
  # Arguments:
14
13
  # message: (String) - optional
15
14
 
16
-
17
15
  class Storazzo::Main # Can be same name as Module: https://stackoverflow.com/questions/13261474/ruby-modules-and-classes-same-name-in-structure
18
16
  require 'storazzo/colors'
19
17
  extend Storazzo::Colors
20
18
 
21
19
  # version 1.2
22
- def self.say_hi(message=nil)
20
+ def self.say_hi(message = nil)
21
+ str = get_hi(message)
22
+ puts str
23
+ str
24
+ end
25
+
26
+ # salutation
27
+ def self.get_hi(message = nil)
23
28
  str = "Hello from Storazzo v#{white Storazzo::version rescue "Error: #{$!}"}!"
24
29
  str += " Message: '#{yellow message.to_s}'" if message
25
- puts str
26
- str
30
+ str
27
31
  end
28
32
 
29
- def self.all_mounts(opts={})
30
- opts_verbose = opts.fetch :verbose, true
33
+ def self.all_mounts(opts = {})
34
+ opts_verbose = opts.fetch :verbose, true
35
+
36
+ self.say_hi "Storazzo::Main.all_mounts(): BEGIN - RicDiskVersion is: #{Storazzo::RicDiskUgly::RICDISK_VERSION}"
31
37
 
32
- self.say_hi "Storazzo::Main.all_mounts(): BEGIN - RicDiskVersion is: #{Storazzo::RicDiskUgly::RICDISK_VERSION}"
33
-
34
- pwhite("1. First I load the config in verbose mode..")
35
- config = Storazzo::RicDiskConfig.instance
36
- config.load
37
- # puts config.object_id
38
- # puts Storazzo::RicDiskConfig.instance.object_id
39
- pwhite "TODO(ricc): show a list of all RicDisk relevant mounts" if opts_verbose
40
- #d = Storazzo::RicDisk.new
41
- config.iterate_through_file_list_for_disks() # analyze_local_system
42
- #sbrodola_ricdisk("/Volumes/")
43
- Storazzo::RicDisk.test
44
- Storazzo::RicDisk.find_active_dirs
45
- #Storazzo::RicDisk.sbrodola_ricdisk StorazzoMod::root + "./var/disks/"
46
- #sbrodola_ricdisk(StorazzoMod::root + "./var/disks/") rescue "[Storazzo::AllMount] SomeError: #{$!}"
47
- self.hi 'Storazzo::Main.all_mounts(): END'
38
+ pwhite("1. First I load the config in verbose mode..")
39
+ config = Storazzo::RicDiskConfig.instance
40
+ config.load
41
+ # puts config.object_id
42
+ # puts Storazzo::RicDiskConfig.instance.object_id
43
+ pwhite "TODO(ricc): show a list of all RicDisk relevant mounts" if opts_verbose
44
+ # d = Storazzo::RicDisk.new
45
+ config.iterate_through_file_list_for_disks() # analyze_local_system
46
+ # sbrodola_ricdisk("/Volumes/")
47
+ Storazzo::RicDisk.test
48
+ Storazzo::RicDisk.find_active_dirs
49
+ # Storazzo::RicDisk.sbrodola_ricdisk StorazzoMod::root + "./var/disks/"
50
+ # sbrodola_ricdisk(StorazzoMod::root + "./var/disks/") rescue "[Storazzo::AllMount] SomeError: #{$!}"
51
+ self.hi 'Storazzo::Main.all_mounts(): END'
48
52
  end
49
53
 
50
- def self.all_tests
51
- # include vs extend: https://stackoverflow.com/questions/15097929/ruby-module-require-and-include
52
- # => http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
53
- #include Storazzo::Colors
54
- extend Storazzo::Colors
54
+ def self.all_tests
55
+ # include vs extend: https://stackoverflow.com/questions/15097929/ruby-module-require-and-include
56
+ # => http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
57
+ # include Storazzo::Colors
58
+ extend Storazzo::Colors
55
59
 
56
- pwhite "All tests BEGIN - todo obsolete this now that I have proper Rake testing suite..."
57
- deb "Maybe debug is enabled?"
58
- say_hi
59
- # This works with EXTEND..
60
- puts(yellow "Just YELLOW 0")
61
- # This reqwuires a INCLUDE.
62
- #puts(Storazzo::Colors.yellow "Test YELLOW 1 self")
63
- #puts(Colors.yellow "Test YELLOW 1 self")
64
- #puts(Colors.green "Test YELLOW 2 ohne self")
65
- pwhite "All tests END"
66
- #puts "All tests END"
60
+ pwhite "All tests BEGIN - todo obsolete this now that I have proper Rake testing suite..."
61
+ deb "Maybe debug is enabled?"
62
+ say_hi
63
+ # This works with EXTEND..
64
+ puts(yellow "Just YELLOW 0")
65
+ # This reqwuires a INCLUDE.
66
+ # puts(Storazzo::Colors.yellow "Test YELLOW 1 self")
67
+ # puts(Colors.yellow "Test YELLOW 1 self")
68
+ # puts(Colors.green "Test YELLOW 2 ohne self")
69
+ pwhite "All tests END"
70
+ # puts "All tests END"
67
71
  end
68
72
  end
69
- end
73
+ end