Class: ReVIEW::MakerHelper

Inherits:
Object show all
Defined in:
lib/review/makerhelper.rb

Class Method Summary collapse

Class Method Details

.copy_images_to_dir(from_dir, to_dir, options = {}) ⇒ Object

Copy image files under from_dir to to_dir recursively

Args

from_dir

path to the directory which has image files to be copied

to_dir

path to the directory to which the image files are copied

options

used to specify optional operations during copy

Returns

list of image files

Options

:convert

Conversion rule

Examples

copy_images_to_dir("/path/to/foo", "/path/to/bar", :convert => {:eps => :png})

Image files are copied recursively, and each ‘.eps’ file is converted into ‘.eps.png’



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/review/makerhelper.rb', line 30

def self.copy_images_to_dir(from_dir, to_dir, options = {})
  image_files = []

  Dir.open(from_dir) do |dir|
    dir.each do |fname|
      next if fname =~ /^\./
      if FileTest.directory?("#{from_dir}/#{fname}")
        image_files += copy_images_to_dir("#{from_dir}/#{fname}", "#{to_dir}/#{fname}")
      else
        Dir.mkdir(to_dir) unless File.exist?(to_dir)

        is_converted = false
        (options[:convert] || {}).each do |orig_type, conv_type|
          next unless /\.#{orig_type}$/ =~ fname
          is_converted = system("convert #{from_dir}/#{fname} #{to_dir}/#{fname}.#{conv_type}")
          image_files << "#{from_dir}/#{fname}.#{conv_type}"
        end

        if !is_converted && fname =~ /\.(png|gif|jpg|jpeg|svg|pdf|eps)$/i
          FileUtils.cp "#{from_dir}/#{fname}", to_dir
          image_files << "#{from_dir}/#{fname}"
        end
      end
    end
  end

  image_files
end