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