Class: VolumeVisualizer::ZFS::Filesystem
- Inherits:
-
Object
- Object
- VolumeVisualizer::ZFS::Filesystem
- Defined in:
- lib/volume_visualizer/zfs/filesystem.rb
Instance Attribute Summary collapse
-
#children ⇒ Object
Returns the value of attribute children.
-
#parent ⇒ Object
Returns the value of attribute parent.
Instance Method Summary collapse
- #depth ⇒ Object
- #dump ⇒ Object
-
#initialize(string) ⇒ Filesystem
constructor
A new instance of Filesystem.
- #parent_name ⇒ Object
- #snapshot? ⇒ Boolean
- #to_h ⇒ Object
- #zero? ⇒ Boolean
Constructor Details
#initialize(string) ⇒ Filesystem
Returns a new instance of Filesystem.
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 7 def initialize(string) @children = [] params = string.split("\t") ATTRS.each do |attr| val = params.shift unless NON_BYTE_ATTRS.include? attr val = DataSizeString.new(val) end instance_variable_set "@#{attr.to_s}", val end end |
Instance Attribute Details
#children ⇒ Object
Returns the value of attribute children.
5 6 7 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 5 def children @children end |
#parent ⇒ Object
Returns the value of attribute parent.
5 6 7 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 5 def parent @parent end |
Instance Method Details
#depth ⇒ Object
20 21 22 23 24 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 20 def depth depth = name.split("/").size depth -= 1 unless snapshot? depth end |
#dump ⇒ Object
42 43 44 45 46 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 42 def dump ATTRS.each do |attr| puts "%18s %s" % [attr, self.send(attr)] end end |
#parent_name ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 26 def parent_name if snapshot? name.split("@").first else File.dirname(name) end end |
#snapshot? ⇒ Boolean
34 35 36 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 34 def snapshot? type == "snapshot" end |
#to_h ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 48 def to_h hash = { :name => name, :type => type, :size => used.bytes, :size_human => used, :type => type, } unless children.empty? hash[:children] = [ { :name => name + " (data)", :type => "filesystem", :size => referenced.bytes, :size_human => referenced } ] hash[:type] = "container" children.each do |child| hash[:children] << child.to_h end end hash end |
#zero? ⇒ Boolean
38 39 40 |
# File 'lib/volume_visualizer/zfs/filesystem.rb', line 38 def zero? used.bytes == 0 end |