Class: MetadataCleaner::Cleaner

Inherits:
Object
  • Object
show all
Defined in:
lib/metadata_cleaner/cleaner.rb

Constant Summary collapse

IMAGE_FORMATS =
'gif,png,jpeg,jpg,JPG,GIF,PNG,JPEG,TIFF,TIF,tif,tiff,SVG,svg'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Cleaner

Returns a new instance of Cleaner.



8
9
10
11
12
# File 'lib/metadata_cleaner/cleaner.rb', line 8

def initialize(path)
 @path = path
 image_files = File.join(@path, "**", "*.{#{IMAGE_FORMATS}}")
 @images = Dir.glob(image_files)
end

Instance Attribute Details

#imagesObject

Returns the value of attribute images.



6
7
8
# File 'lib/metadata_cleaner/cleaner.rb', line 6

def images
  @images
end

#pathObject

Returns the value of attribute path.



6
7
8
# File 'lib/metadata_cleaner/cleaner.rb', line 6

def path
  @path
end

Instance Method Details

#convert(options = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/metadata_cleaner/cleaner.rb', line 37

def convert(options={})   
  total_length = @images.size.to_f
  
  @images.each_with_index do |file, index|
    system "convert #{file} -strip #{file}"
    print "\r\t-processed: %3i%%" % (100*(index.to_f+1.0)/total_length) 
  end
  log ''
end

#dirsize(options = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/metadata_cleaner/cleaner.rb', line 27

def dirsize(options={})
  size = 0
  
  @images.each do |f| 
    size += File.stat(f).size
  end
  
  size/(1024*1024.0)
end

#log(message) ⇒ Object



47
48
49
# File 'lib/metadata_cleaner/cleaner.rb', line 47

def log(message)
  STDOUT.puts message
end

#startObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/metadata_cleaner/cleaner.rb', line 14

def start
  before_size = dirsize
  log "#{before_size} Mb"
  
  convert
  
  after_size = dirsize
  log "#{after_size} Mb"
  
  percent = ((before_size - after_size)/before_size)*100
  log "Optimization result: #{percent} %"
end