class Lita::MarkovBrain

Constants

NoBrainInputsFound

Attributes

dictionary[R]
inputs_path[R]

Public Class Methods

new(inputs_path:) click to toggle source
# File lib/lita/markov_brain.rb, line 6
def initialize(inputs_path:)
  @inputs_path = File.absolute_path(inputs_path)
  @dictionary = ::MarkyMarkov::TemporaryDictionary.new
  load_brain!
end

Public Instance Methods

generate_n_words(n) click to toggle source
# File lib/lita/markov_brain.rb, line 12
def generate_n_words(n)
  dictionary.generate_n_words(n)
end

Private Instance Methods

load_brain!() click to toggle source
# File lib/lita/markov_brain.rb, line 20
def load_brain!
  return unless dictionary.dictionary.empty?
  text_files_path = inputs_path + '/*.txt'

  files = Dir[text_files_path]
  raise NoBrainInputsFound, "No markov input files found at [#{text_files_path}]" if files.none?

  Dir[text_files_path].each do |file|
    load_dictionary(file)
  end
end
load_dictionary(path) click to toggle source
# File lib/lita/markov_brain.rb, line 33
def load_dictionary(path)
  logger.debug "Loading Markov input text at: [#{path}]"
  dictionary.parse_file path
end
logger() click to toggle source
# File lib/lita/markov_brain.rb, line 38
def logger
  Lita.logger
end