module UniverseCompiler::Utils::WithUniqueName::ClassMethods

Constants

DEFAULT_SEED

Public Instance Methods

get_unique_name() click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 37
def get_unique_name
  '%s_%d' % [name_seed, instance_counter]
end
instances() click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 18
def instances
  @instances ||= {}
  @instances.dup
end
name_seed() click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 14
def name_seed
  @name_seed ||DEFAULT_SEED
end
new_instance(name, *args) click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 23
def new_instance(name, *args)
  check_name name
  new_instance = new *args
  @instance[name] = new_instance
  new_instance
end
set_name(name, object) click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 30
def set_name(name, object)
  check_name name
  old_name = instances.key object
  @instances[old_name] = nil unless old_name.nil?
  @instances[name] = object
end
set_name_seed(name_seed) click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 10
def set_name_seed(name_seed)
  @name_seed = name_seed.to_s
end

Private Instance Methods

check_name(name) click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 49
def check_name(name)
  raise UniverseCompiler::Error, 'There is already an instance of %s named %s' % [self, name] unless instances[name].nil?
end
instance_counter() click to toggle source
# File lib/universe_compiler/utils/with_unique_name.rb, line 43
def instance_counter
  @instance_counter ||= 0
  @instance_counter += 1
  @instance_counter
end