Class: Maprename::Renamer
- Inherits:
-
Object
- Object
- Maprename::Renamer
- Defined in:
- lib/maprename/renamer.rb
Instance Method Summary collapse
- #destination ⇒ Object
-
#initialize(file, config) ⇒ Renamer
constructor
A new instance of Renamer.
- #input_basename ⇒ Object
- #input_dirname ⇒ Object
- #parse_config! ⇒ Object
- #rename!(dry) ⇒ Object
- #source ⇒ Object
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
#destination ⇒ Object
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_basename ⇒ Object
45 46 47 |
# File 'lib/maprename/renamer.rb', line 45 def input_basename File.basename(@file) end |
#input_dirname ⇒ Object
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 |
#source ⇒ Object
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 |