Module: ReVIEW::MakerHelper

Defined in:
lib/review/makerhelper.rb

Class Method Summary collapse

Class Method Details

.bindirObject

Return review/bin directory



17
18
19
# File 'lib/review/makerhelper.rb', line 17

def bindir
  Pathname.new("#{Pathname.new(__FILE__).realpath.dirname}/../../bin").realpath
end

.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’



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/review/makerhelper.rb', line 38

def 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}", options)
      else
        FileUtils.mkdir_p(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

        exts = options[:exts] || %w(png gif jpg jpeg svg pdf eps)
        exts_str = exts.join('|')
        if !is_converted && fname =~ /\.(#{exts_str})$/i
          FileUtils.cp "#{from_dir}/#{fname}", to_dir
          image_files << "#{from_dir}/#{fname}"
        end
      end
    end
  end

  image_files
end