5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/image_crush/messages.rb', line 5
def self.extended(base)
class << base
def crush_file_with_messages(path)
size_before = File.open(path){|f| f.stat.size}
print "#{path}: #{human_size size_before}"
crush_file_without_messages(path)
size_after = File.open(path){|f| f.stat.size}
ratio = sprintf('%0.2f', size_after.to_f*100/size_before)
puts " -> #{human_size size_after} (#{ratio}%)"
end
alias :crush_file_without_messages :crush_file
alias :crush_file :crush_file_with_messages
private
def human_size(bytes)
if bytes < 1024
bytes.to_s + 'B'
else
sprintf("%0.1fK", bytes.to_f/1024).gsub('.0K', 'K')
end
end
end
end
|