Method: MarkovTwitter::MarkovBuilder#evaluate_favoring_start

Defined in:
lib/markov_twitter/markov_builder.rb

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

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

Returns:

  • (String)

    the result of #_evaluate joined by whitespace.



123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/markov_twitter/markov_builder.rb', line 123

def evaluate_favoring_start(length:, probability_bounds: [0,100], root_node: nil)
  node_finder = node_finders[:favor_start]
  has_possible_start_node = nodes.values.any? &node_finder
  unless has_possible_start_node
    raise ArgumentError, "@start_nodes is empty; can't evaluate favoring start"
  end
  _evaluate(
    length: length,
    probability_bounds: probability_bounds,
    root_node: root_node,
    direction: :next,
    node_finder: node_finder
  ).map(&:value).join(" ")
end