class Evolvable::GeneSpace
Attributes
config[R]
Public Class Methods
build(config)
click to toggle source
# File lib/evolvable/gene_space.rb, line 5 def self.build(config) return config if config.respond_to?(:new_genes) new(config: config) end
new(config: {})
click to toggle source
# File lib/evolvable/gene_space.rb, line 11 def initialize(config: {}) @config = normalize_config(config) end
Public Instance Methods
new_genes()
click to toggle source
# File lib/evolvable/gene_space.rb, line 17 def new_genes genes = [] config.each do |_gene_key, gene_config| (gene_config[:count] || 1).times do gene = gene_config[:class].new genes << gene end end genes end
Private Instance Methods
normalize_config(config)
click to toggle source
# File lib/evolvable/gene_space.rb, line 30 def normalize_config(config) config.each do |gene_key, gene_config| next unless gene_config[:type] gene_class = Kernel.const_get(gene_config[:type]) gene_class.key = gene_key gene_config[:class] = gene_class end end