class Maprename::Renamer

Public Class Methods

new(file, config) click to toggle source
# File lib/maprename/renamer.rb, line 9
def initialize(file, config)
  @context = OpenStruct.new
  @file = file
  @config = config
  debug "Process file: #@file"
  parse_config!
end

Public Instance Methods

destination() click to toggle source
# File lib/maprename/renamer.rb, line 54
def destination
  File.join(@config[:output][:directory], @context.instance_eval('"%s"' % @config[:output][:filename]))
end
input_basename() click to toggle source
# File lib/maprename/renamer.rb, line 45
def input_basename
  File.basename(@file)
end
input_dirname() click to toggle source
# File lib/maprename/renamer.rb, line 41
def input_dirname
  File.dirname(@file)
end
parse_config!() click to toggle source
# File lib/maprename/renamer.rb, line 17
def parse_config!
  @config[:input][:name_parse].try do |parse_config|
    Maprename::FileNameParser.new(parse_config).parse!(input_basename, @context)
  end

  @config[:input][:content_parse].try do |parse_config|
    Maprename::ContentParser.new(parse_config, @file).parse!(@context)
  end

  @config[:mapping].try do |mapping_config|
    Maprename::MappingParser.new(mapping_config).parse!(@context)
  end
end
rename!(dry) click to toggle source
# File lib/maprename/renamer.rb, line 31
def rename!(dry)
  puts "mkdir -p %s" % File.dirname(destination)
  puts "cp %s %s" % [source, destination]

  unless dry
    FileUtils.mkdir_p(File.dirname(destination))
    FileUtils.copy_file(source, destination)
  end
end
source() click to toggle source
# File lib/maprename/renamer.rb, line 49
def source
  md = input_basename.match(Regexp.new(@config[:input][:pattern])).to_a
  File.join(input_dirname, @config[:input][:source].gsub(/\$(\d+)/) { md[$1.to_i] })
end