Class: Cauldron::ArrayCollectTemplate::Template

Inherits:
TemplateBase
  • Object
show all
Defined in:
lib/cauldron/array_collect_template/template.rb

Class Method Summary collapse

Methods inherited from TemplateBase

extend_actualized_composite

Class Method Details

.context_instances(contexts) ⇒ Object



42
43
44
45
46
47
48
49
50
51
# File 'lib/cauldron/array_collect_template/template.rb', line 42

def self.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| Cauldron::ArrayCollectTemplate::Default.new([x.to_i])}
end

.instances(histories, composite, examples, insert_points) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/cauldron/array_collect_template/template.rb', line 7

def self.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? { |context| x.context_realizable?(context) }
        #binding.pry
        results << extend_actualized_composite(x, composite, examples, point)
      end
      #results << extend_actualized_composite(x, composite, examples, point)
    end
  end

  results
end