Module: UniverseCompiler::Universe::Multiverse
- Included in:
- Base
- Defined in:
- lib/universe_compiler/universe/multiverse.rb
Constant Summary collapse
- DEFAULT_UNIVERSE_NAME =
'Unnamed Universe'.freeze
Instance Method Summary collapse
- #get_unique_name(seed = DEFAULT_UNIVERSE_NAME) ⇒ Object
- #register(universe) ⇒ Object
- #universes ⇒ Object
Instance Method Details
#get_unique_name(seed = DEFAULT_UNIVERSE_NAME) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/universe_compiler/universe/multiverse.rb', line 17 def get_unique_name(seed = DEFAULT_UNIVERSE_NAME) max_index = 1 universes.keys.each do |universe_name| universe_name.match /^#{seed}(?:(?: - #)(?<index>\d+))?$/ do |md| index = md['index'] || '1' index = index.to_i max_index = index > max_index ? index : max_index end end if max_index == 1 seed else UniverseCompiler.logger.debug "Universe #{seed} reached its #{max_index} iteration." format_name(seed, max_index) end end |
#register(universe) ⇒ Object
12 13 14 15 |
# File 'lib/universe_compiler/universe/multiverse.rb', line 12 def register(universe) raise UniverseCompiler::Error, "Universe '#{universe.name}' already exists in this continuum !" if universes.keys.include? universe.name universes[universe.name] = universe end |
#universes ⇒ Object
8 9 10 |
# File 'lib/universe_compiler/universe/multiverse.rb', line 8 def universes @universes ||= {} end |