Class: Zapata::Predictor::Value

Inherits:
Object
  • Object
show all
Extended by:
Memoist
Defined in:
lib/zapata/predictor/value.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, finder = nil) ⇒ Value

Returns a new instance of Value.



8
9
10
11
# File 'lib/zapata/predictor/value.rb', line 8

def initialize(name, finder = nil)
  @name = name
  @finder = finder
end

Instance Method Details

#a_finder?(primitive) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
# File 'lib/zapata/predictor/value.rb', line 21

def a_finder?(primitive)
  return false unless @finder

  primitive.class == @finder.class && primitive.name == @finder.name
end

#chooseObject



13
14
15
16
17
18
19
# File 'lib/zapata/predictor/value.rb', line 13

def choose
  return Primitive::Raw.new(:nil, nil) if @name.nil?
  return @finder if @finder && FINAL_TYPES.include?(@finder.type)
  return Primitive::Raw.new(:super, @name) if possible_values.empty?

  Chooser.new(possible_values).by_probability
end

#possible_valuesObject



27
28
29
30
31
# File 'lib/zapata/predictor/value.rb', line 27

def possible_values
  Revolutionist.analysis_as_array.select do |element|
    !a_finder?(element) && element.name == @name
  end
end