Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.

Latest commit

 

History

History
215 lines (177 loc) · 7.69 KB

CHANGELOG.md

File metadata and controls

215 lines (177 loc) · 7.69 KB

Change Log

v3.3.2 2019-06-10

  • add ability to pre-load AST cache
  • fix negation node bug

v3.3.1 2019-03-26

  • better errors for parse failures and exceptions in internal functions
  • fix Ruby 2.6.0 deprecation warnings
  • fix issue with functions in nested case statements

v3.3.0 2018-12-04

  • add array literal syntax
  • return correct type from string function AST nodes

v3.2.1 2018-10-24

  • make evaluate rescue more exceptions

v3.2.0 2018-03-14

  • add COUNT and AVG functions
  • add unicode support 😎
  • fix CASE parsing bug
  • allow dependency filtering based on context
  • add variadic MUL function
  • performance optimization

v3.1.0 2018-01-10

  • allow decimals with no leading zero
  • nested hash and array support in bulk expression solver
  • add a variadic SUM function
  • support array arguments to min, max, sum, and Math functions
  • add case-sensitive variable support
  • allow opt-out of nested data for performance boost

v3.0.0 2017-10-11

  • add && and || as aliases for AND and OR
  • add hexadecimal literal support
  • add the SWITCH function
  • add AND and OR functions
  • add array access
  • make UnboundVariableError show all missing values
  • cast inputs to numeric function to numeric
  • fix issue with zero-arity functions used as function args
  • fix division when context values contain one or more strings
  • drop Ruby 1.9 support

v2.0.11 2017-05-08

  • fix dependency checking for logical AST nodes
  • make CONCAT variadic
  • fix casting strings to numeric in negation operations
  • add date/time support
  • add & (bitwise and) and | (bitwise or) operators
  • fix incompatibility with 'mathn' module
  • add CONTAINS string function
  • allow storage of nested hashes in calculator memory
  • allow duck type arithmetic
  • fix error handling code to work with Ruby 2.4.0
  • allow calculators to store own registry of functions
  • add timezone support to time literals
  • optimizations

v2.0.10 2016-12-30

  • fix string function initialization bug
  • fix issues with CASE statements
  • allow injecting AST cache

v2.0.9 2016-09-19

  • namespace tokenization errors
  • automatically coerce arguments to string functions as strings
  • selectively disable or clear AST cache

v2.0.8 2016-05-10

  • numeric input validations
  • fail with gem-specific error for invalid arithmetic operands
  • add LEFT, RIGHT, MID, LEN, FIND, SUBSTITUTE, and CONCAT string functions

v2.0.7 2016-02-25

  • fail with gem-specific error for parsing issues
  • support NULL literals and nil variables
  • keep reference to variable that caused failure when bulk-solving

v2.0.6 2016-01-26

  • support array parameters for external functions
  • support case statements
  • support precision for ROUNDUP and ROUNDDOWN functions
  • prevent errors from corrupting calculator memory

v2.0.5 2015-09-03

  • fix bug with detecting unbound nodes
  • silence warnings
  • allow registration of custom token scanners

v2.0.4 2015-09-03

  • fix BigDecimal conversion bug
  • add caching for bulk expression solving dependency order
  • allow for custom configuration for token scanners

v2.0.3 2015-08-25

  • bug fixes
  • performance enhancements
  • code cleanup

v2.0.1 2015-08-15

  • add support for boolean literals
  • implement basic parse-time type checking

v2.0.0 2015-08-07

  • shunting-yard parser for performance enhancement and AST generation
  • AST caching for performance enhancement
  • support comments in formulas
  • support all functions from the Ruby Math module

v1.2.6 2015-05-30

  • support custom error handlers for systems of formulas

v1.2.5 2015-05-23

  • fix memory leak

v1.2.2 2014-12-19

  • performance enhancements
  • unary minus bug fixes
  • preserve provided hash keys for systems of formulas

v1.2.0 2014-10-21

  • add dependency resolution to automatically solve systems of formulas

v1.1.0 2014-07-30

  • add strict evaluation mode to raise UnboundVariableError if not all variable values are provided
  • return division results as BigDecimal values

v1.0.0 2014-03-06

  • cleanup and 1.0 release

v0.2.14 2014-01-24

  • add modulo operator
  • add unary percentage operator
  • support registration of custom functions at runtime

v0.2.10 2012-12-10

  • return integer result for exact division, decimal otherwise

v0.2.9 2012-10-17

  • add ROUNDUP / ROUNDDOWN functions

v0.2.8 2012-09-30

  • make function name matching case-insensitive

v0.2.7 2012-09-26

  • support passing arbitrary expressions as function arguments

v0.2.6 2012-09-19

  • add NOT function

v0.2.5 2012-06-20

  • add exponent operator
  • add support for digits in variable identifiers

v0.2.4 2012-02-29

  • add support for min < x < max syntax for inequality ranges

v0.2.2 2012-02-22

  • support ROUND to arbitrary decimal place on older Rubies
  • ensure case is preserved for string values

v0.2.1 2012-02-12

  • add ROUND function

v0.1.3 2012-01-31

  • add support for string datatype

v0.1.1 2012-01-24

  • change from square bracket to parentheses for top-level evaluation
  • add IF function

v0.1.0 2012-01-20

  • initial release