Module: UniverseCompiler::Utils::WithUniqueName::ClassMethods

Defined in:
lib/universe_compiler/utils/with_unique_name.rb

Constant Summary collapse

DEFAULT_SEED =
'Unknown'.freeze

Instance Method Summary collapse

Instance Method Details

#get_unique_nameObject



37
38
39
# File 'lib/universe_compiler/utils/with_unique_name.rb', line 37

def get_unique_name
  '%s_%d' % [name_seed, instance_counter]
end

#instancesObject



18
19
20
21
# File 'lib/universe_compiler/utils/with_unique_name.rb', line 18

def instances
  @instances ||= {}
  @instances.dup
end

#name_seedObject



14
15
16
# File 'lib/universe_compiler/utils/with_unique_name.rb', line 14

def name_seed
  @name_seed ||DEFAULT_SEED
end

#new_instance(name, *args) ⇒ Object



23
24
25
26
27
28
# 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) ⇒ Object



30
31
32
33
34
35
# 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) ⇒ Object



10
11
12
# File 'lib/universe_compiler/utils/with_unique_name.rb', line 10

def set_name_seed(name_seed)
  @name_seed = name_seed.to_s
end