class Writer::FileNamer
Attributes
config[R]
Public Class Methods
new()
click to toggle source
# File lib/writer/file_namer.rb, line 7 def initialize @config = Writer.config end
Public Instance Methods
default_filename()
click to toggle source
# File lib/writer/file_namer.rb, line 52 def default_filename date = Date.today date.strftime("#{date_format}.md") end
fix_no_ext(name)
click to toggle source
# File lib/writer/file_namer.rb, line 31 def fix_no_ext(name) if /\.$/ =~ name basename = name.gsub('.', '') prevent_overwrite(name, basename) end end
fix_standard(name)
click to toggle source
# File lib/writer/file_namer.rb, line 21 def fix_standard(name) if /.+\..+/ =~ name parts = name.split('.') basename = parts[0..-2].join('.') extension = parts.last prevent_overwrite(name, basename, extension) end end
name_for(filename)
click to toggle source
# File lib/writer/file_namer.rb, line 11 def name_for(filename) filename ||= default_filename name = fix_standard(filename) name ||= fix_no_ext(filename) name ||= prevent_overwrite(filename) name end
prevent_overwrite(name, base = nil, ext = nil)
click to toggle source
# File lib/writer/file_namer.rb, line 39 def prevent_overwrite(name, base = nil, ext = nil) separator = separator_for(name, base) to_fix = base || name count = 1 while File.exists?(name) name = append_count(to_fix, separator, count += 1) name << ".#{ext}" if base end name end
separator_for(name, base = nil)
click to toggle source
# File lib/writer/file_namer.rb, line 57 def separator_for(name, base = nil) return "." if base || name.include?('.') "--" end
Private Instance Methods
append_count(name, separator, count)
click to toggle source
# File lib/writer/file_namer.rb, line 63 def append_count(name, separator, count) basename = name.gsub(/(--|\.)\d*$/, '') zero_pad = count < 10 ? 0 : nil [basename, separator, zero_pad, count].join end
date_format()
click to toggle source
# File lib/writer/file_namer.rb, line 70 def date_format config.date_format end