Sha256: 43a36b36b2f95d9594e51f810a77800fcb813df5aed6725d9d780392f1f1761a

Contents?: true

Size: 1.06 KB

Versions: 24

Compression:

Stored size: 1.06 KB

Contents

module UniverseCompiler
  module Entity

    module AutoNamed

      attr_reader :auto_named_entity_type_seed

      def auto_named_entity_type(seed = nil)
        @auto_named_entity_type = true
        @auto_named_entity_type_seed = if seed.nil?
                                         entity_type.to_s
                                       else
                                         seed
                                       end
        @entity_type_counter = 0
      end

      def auto_named_entity_type?
        @auto_named_entity_type
      end

      def get_unique_name(universe)
        return SecureRandom.uuid if universe.nil?

        uniq_name = nil
        loop do
          @entity_type_counter += 1
          raise UniverseCompiler::Error, "Too many '#{entity_type}' (> 999999) in universe '#{universe.name}'" if @entity_type_counter >= 1000000
          uniq_name = '%s_%06u' % [auto_named_entity_type_seed, @entity_type_counter]
          break if universe.get_entity(entity_type, uniq_name).nil?
        end
        uniq_name
      end

    end

  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
universe_compiler-0.5.6 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.5.5 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.5.4 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.5.3 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.5.2 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.5.1 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.4.3 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.4.2 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.4.1 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.4.0 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.12 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.11 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.10 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.9 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.8 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.7 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.6 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.5 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.4 lib/universe_compiler/entity/auto_named.rb
universe_compiler-0.3.3 lib/universe_compiler/entity/auto_named.rb