Class: Eqn::Calculator

Inherits:
Object
  • Object
show all
Defined in:
lib/eqn/calculator.rb

Class Method Summary collapse

Class Method Details

.calc(data, vars = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/eqn/calculator.rb', line 4

def calc(data, vars = {})
  @@vars = vars
  begin
    result = Parser.parse(data).value
    fail ZeroDivisionError if result.is_a?(Float) && (result.abs == Float::INFINITY || result.nan?)
    result
  ensure
    @@vars = nil
  end
end

.valid?(data, vars = {}) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
# File 'lib/eqn/calculator.rb', line 15

def valid?(data, vars = {})
  calc(data, vars)
  true
rescue NonNumericVariableError, NoVariableValueError, ParseError, ZeroDivisionError
  false
end