Class: Writer::FileNamer
- Inherits:
-
Object
- Object
- Writer::FileNamer
- Defined in:
- lib/writer/file_namer.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
- #default_filename ⇒ Object
- #fix_no_ext(name) ⇒ Object
- #fix_standard(name) ⇒ Object
-
#initialize ⇒ FileNamer
constructor
A new instance of FileNamer.
- #name_for(filename) ⇒ Object
- #prevent_overwrite(name, base = nil, ext = nil) ⇒ Object
- #separator_for(name, base = nil) ⇒ Object
Constructor Details
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
5 6 7 |
# File 'lib/writer/file_namer.rb', line 5 def config @config end |
Instance Method Details
#default_filename ⇒ Object
52 53 54 55 |
# File 'lib/writer/file_namer.rb', line 52 def default_filename date = Date.today date.strftime("#{date_format}.md") end |
#fix_no_ext(name) ⇒ Object
31 32 33 34 35 36 37 |
# 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) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# 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) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# 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) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# 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) ⇒ Object
57 58 59 60 |
# File 'lib/writer/file_namer.rb', line 57 def separator_for(name, base = nil) return "." if base || name.include?('.') "--" end |