class GeneGenie::GeneFactory
GeneFactory
This is a helper class that will create a specified number of genes, given a template. The default implementation will produce random genes, but other approaches could be taken.
Public Class Methods
new(template, fitness_evaluator)
click to toggle source
# File lib/gene_genie/gene_factory.rb, line 10 def initialize(template, fitness_evaluator) @template = template @fitness_evaluator = fitness_evaluator end
Public Instance Methods
create(size = 1)
click to toggle source
# File lib/gene_genie/gene_factory.rb, line 15 def create(size = 1) genes = [] size.times do genes << create_gene_from_template end genes end
Private Instance Methods
create_gene_from_template()
click to toggle source
# File lib/gene_genie/gene_factory.rb, line 25 def create_gene_from_template gene_array = @template.map do |part| create_hash_from_template_part(part) end Gene.new(gene_array, @fitness_evaluator) end
create_hash_from_template_part(part)
click to toggle source
# File lib/gene_genie/gene_factory.rb, line 32 def create_hash_from_template_part(part) new_hash = {} part.each do |k, v| new_hash[k] = rand(v) end new_hash end