Class: Maprename::Renamer

Inherits:
Object
  • Object
show all
Defined in:
lib/maprename/renamer.rb

Instance Method Summary collapse

Constructor Details

#initialize(file, config) ⇒ Renamer

Returns a new instance of Renamer.



9
10
11
12
13
14
15
# 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

Instance Method Details

#destinationObject



54
55
56
# File 'lib/maprename/renamer.rb', line 54

def destination
  File.join(@config[:output][:directory], @context.instance_eval('"%s"' % @config[:output][:filename]))
end

#input_basenameObject



45
46
47
# File 'lib/maprename/renamer.rb', line 45

def input_basename
  File.basename(@file)
end

#input_dirnameObject



41
42
43
# File 'lib/maprename/renamer.rb', line 41

def input_dirname
  File.dirname(@file)
end

#parse_config!Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# 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) ⇒ Object



31
32
33
34
35
36
37
38
39
# 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

#sourceObject



49
50
51
52
# 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