module Odyssey

Constants

DEFAULT_FORMULA
FORMULAS
VERSION

Public Class Methods

analyze(text, formula_name = DEFAULT_FORMULA, all_stats = false) click to toggle source

main method

# File lib/odyssey.rb, line 8
def self.analyze(text, formula_name = DEFAULT_FORMULA, all_stats = false)
  formula_name ||= DEFAULT_FORMULA

  @engine = Odyssey::Engine.new(formula_name)
  score = @engine.score(text)

  return @engine.get_stats if all_stats

  score
end
analyze_all(text) click to toggle source
# File lib/odyssey.rb, line 38
def self.analyze_all(text)
  analyze_multi text, FORMULAS, true
end
analyze_multi(text, formula_names, all_stats = false) click to toggle source
# File lib/odyssey.rb, line 19
def self.analyze_multi(text, formula_names, all_stats = false)
  raise Odyssey::ArgumentError, "You must supply at least one formula" if formula_names.empty?

  scores = {}
  @engine = Odyssey::Engine.new(formula_names[0])
  scores[formula_names[0]] = @engine.score(text)

  formula_names.drop(1).each do |formula_name|
    @engine.update_formula(formula_name)
    scores[formula_name] = @engine.score("", false)
  end

  return scores unless all_stats

  all_stats = @engine.get_stats(false)
  all_stats['scores'] = scores
  all_stats
end
method_missing(method_name, *args, &block) click to toggle source

run whatever method was given as if it were a shortcut to a formula

Calls superclass method
# File lib/odyssey.rb, line 43
def self.method_missing(method_name, *args, &block)
  #send to the main method
  formula_class = method_name.to_s.split("_").map(&:capitalize).join
  super unless Object.const_defined? formula_class
  analyze(args[0], formula_class, args[1] || false)
end