Class: Writer::FileNamer
- Inherits:
-
Object
- Object
- Writer::FileNamer
- Defined in:
- lib/writer/file_namer.rb
Class Method Summary collapse
- .config ⇒ Object
- .default_filename ⇒ Object
- .fix_no_ext(name) ⇒ Object
- .fix_standard(name) ⇒ Object
- .name_for(filename) ⇒ Object
- .prevent_overwrite(name, base = nil, ext = nil) ⇒ Object
- .separator_for(name, base = nil) ⇒ Object
Class Method Details
.config ⇒ Object
57 58 59 |
# File 'lib/writer/file_namer.rb', line 57 def config @configuration ||= Writer.config end |
.default_filename ⇒ Object
47 48 49 50 |
# File 'lib/writer/file_namer.rb', line 47 def default_filename date = Date.today date.strftime("#{date_format}.md") end |
.fix_no_ext(name) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/writer/file_namer.rb', line 26 def fix_no_ext(name) if /\.$/ =~ name basename = name.gsub('.', '') prevent_overwrite(name, basename) end end |
.fix_standard(name) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/writer/file_namer.rb', line 16 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) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/writer/file_namer.rb', line 6 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) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/writer/file_namer.rb', line 34 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) ⇒ Object
52 53 54 55 |
# File 'lib/writer/file_namer.rb', line 52 def separator_for(name, base = nil) return "." if base || name.include?('.') "--" end |