Class: Eqn::Number

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

Overview

Node class for a simple number.

Direct Known Subclasses

Float

Defined Under Namespace

Classes: Decimal, Exponent, Float, SignedNumber

Instance Method Summary collapse

Methods inherited from EqnNode

#clean_tree!, #term?

Instance Method Details

#value(vars = {}) ⇒ Object



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

def value(vars = {})
  base = elements.shift.value(vars)

  return base if term?

  if instance_of?(Float)
    # Apply any decimal if a float.
    base + elements.shift.value(vars)
  else
    # Apply any exponent if a simple number.
    base * elements.shift.value(vars)
  end
end