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