Class: FilenamesSet

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

Instance Method Summary collapse

Constructor Details

#initializeFilenamesSet

Returns a new instance of FilenamesSet.



6
7
8
# File 'lib/filenames_set.rb', line 6

def initialize
  @set = Set.new
end

Instance Method Details

#<<(filename) ⇒ Object



10
11
12
13
14
# File 'lib/filenames_set.rb', line 10

def <<(filename)
  counter = 1
  counter += 1 until @set.add? sequential_filename(filename, counter)
  sequential_filename(filename, counter)
end

#sequential_filename(filename, counter) ⇒ Object



16
17
18
19
20
21
# File 'lib/filenames_set.rb', line 16

def sequential_filename(filename, counter)
  base = File.basename(filename, ".*")
  suffix = "-#{counter}" if counter > 1
  extension_with_delimiter = File.extname(filename)
  [base, suffix, extension_with_delimiter].join
end