module Cauldron::Operator::ClassMethods

Public Instance Methods

context_instances(contexts) click to toggle source
# File lib/cauldron/operator.rb, line 47
def context_instances(contexts)
  temp = []
  contexts.each do |context|
    temp << context.keys.collect(&:to_s).select {|x| x.match(/var\d/) }
  end
  results = temp.flatten.uniq
  
  variable_numbers = results.collect { |x| x.match(/var(\d+)/)[1] }
  variable_numbers.collect { |x| new([x.to_i])}
end
instances(histories, composite, examples, insert_points) click to toggle source
# File lib/cauldron/operator.rb, line 11
def instances(histories, composite, examples, insert_points)

  # TEMP
  unless examples.class == ExampleSet
    raise StandardError.new('Examples should be an example')
  end

  # Print out each insertable statements
  scope = examples.scope

  # self.init([0]).to_ruby(scope)
  # - this will print out "var0.chop"

  # Get the variables available at each point
  results = []

  insert_points.each do |point|

    # Find the variables at a particular point
    # TODO Change to test
    contexts = histories.contexts_at(point)
    composites = context_instances(contexts)

    composites.each do |x|
      if contexts.all? do |context|
        x.context_realizable?(context)
      end
      results << extend_actualized_composite(x, composite, examples, point)
    end
  end

  end
  
  results
end