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