Method: MarkovTwitter::MarkovBuilder#evaluate_favoring_end

Defined in:
lib/markov_twitter/markov_builder.rb

#evaluate_favoring_end(length:, probability_bounds: [0,100], root_node: nil) ⇒ String

See #_evaluate for paramspec. The passed node_node_finder lambda picks a node contained in @end_nodes An error is raised if no nodes match this condition.

Returns:

  • (String)

    the result of #_evaluate reversed and joined by whitespace.



142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/markov_twitter/markov_builder.rb', line 142

def evaluate_favoring_end(length:, probability_bounds: [0,100], root_node: nil)
  node_finder = node_finders[:favor_end]
  has_possible_end_node = nodes.values.any? &node_finder
  unless has_possible_end_node
    raise ArgumentError, "@end_nodes is empty; can't evaluate favoring end"
  end
  _evaluate(
    length: length,
    probability_bounds: probability_bounds,
    root_node: root_node,
    direction: :prev,
    node_finder: node_finder
  ).map(&:value).reverse.join(" ")
end