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