class SortBytes::SizeSorter
Attributes
lines[RW]
Public Class Methods
new(lines)
click to toggle source
# File lib/sort_bytes.rb, line 7 def initialize(lines) @lines = lines end
Public Instance Methods
size_in_bytes(size)
click to toggle source
# File lib/sort_bytes.rb, line 17 def size_in_bytes(size) num, suffix = size.split(/([^0-9.]+)/) suffix ||= 'B' power = %w(B K M G T P).index(suffix[0,1]) * 3 multiplier = 10 ** power num.to_f * multiplier end
size_token(line)
click to toggle source
# File lib/sort_bytes.rb, line 25 def size_token(line) line[/^\s*(\S+)/, 1] end
sorted()
click to toggle source
# File lib/sort_bytes.rb, line 11 def sorted lines.map do |line| [ size_in_bytes(size_token(line)), line] end.sort.map(&:last) end