class Ferret::Alias_Generator

Public Class Methods

new(used_ids) click to toggle source
Calls superclass method
# File lib/sql-ferret.rb, line 445
def initialize used_ids
  super()
  @used_ids = Set.new used_ids
  @counter = 0
  return
end

Public Instance Methods

available?(id) click to toggle source
# File lib/sql-ferret.rb, line 461
def available? id
  return !@used_ids.include?(id)
end
create(prefix) click to toggle source
# File lib/sql-ferret.rb, line 452
def create prefix
  begin
    @counter += 1
    candidate = prefix + @counter.to_s
  end while @used_ids.include? candidate
  @used_ids.add candidate
  return candidate
end
reserve(id) click to toggle source
# File lib/sql-ferret.rb, line 465
def reserve id
  if @used_ids.include? id then
    ugh 'already-reserved', identifier: id
  end
  @used_ids.add id
  return id
end