From e3bac0c101b8a6c762eda0df66fbfbda448b476c Mon Sep 17 00:00:00 2001
From: NeonXP <frei@neonxp.info>
Date: Fri, 6 Sep 2013 17:30:48 +0400
Subject: ~Change readme

---
 README.md | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index ea6d31b..b921f70 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,15 @@ Simple math expressions calculator
 
 ## Install via Composer
 
-All instructions to install here: https://packagist.org/packages/nxp/math-executor
+Stable branch
+```
+composer require "nxp/math-executor" "v0.1"
+```
+
+Dev branch
+```
+composer require "nxp/math-executor" "dev-master"
+```
 
 ## Sample usage:
 
-- 
cgit v1.2.3


From ec9e06742193092f00454ca734e5defd28459759 Mon Sep 17 00:00:00 2001
From: Alexander Kiryukhin <frei@neonxp.info>
Date: Fri, 6 Sep 2013 17:33:47 +0400
Subject: Update README.md

---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index b921f70..f32427a 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,12 @@ Simple math expressions calculator
 
 Stable branch
 ```
-composer require "nxp/math-executor" "v0.1"
+composer require "nxp/math-executor" "dev-master"
 ```
 
 Dev branch
 ```
-composer require "nxp/math-executor" "dev-master"
+composer require "nxp/math-executor" "dev-dev"
 ```
 
 ## Sample usage:
-- 
cgit v1.2.3


From 4b092895bc510efb6cc329b325a0426e720f05d5 Mon Sep 17 00:00:00 2001
From: NeonXP <frei@neonxp.info>
Date: Wed, 18 Sep 2013 20:27:46 +0400
Subject: ~ remove callable for PHP 5.3

---
 src/NXP/MathExecutor.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/NXP/MathExecutor.php b/src/NXP/MathExecutor.php
index 7eaa914..f348355 100644
--- a/src/NXP/MathExecutor.php
+++ b/src/NXP/MathExecutor.php
@@ -164,7 +164,7 @@ class MathExecutor
      * @param  int          $places   Count of arguments
      * @return MathExecutor
      */
-    public function addFunction($name, callable $function = null, $places = 1)
+    public function addFunction($name, $function = null, $places = 1)
     {
         $this->tokenFactory->addFunction($name, $function, $places);
 
-- 
cgit v1.2.3


From 0b7e6b1b860f303d6c71a0d0d1692220dcb53dc4 Mon Sep 17 00:00:00 2001
From: NeonXP <frei@neonxp.info>
Date: Wed, 18 Sep 2013 20:34:51 +0400
Subject: + added test for custom user functions

---
 tests/MathTest.php | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tests/MathTest.php b/tests/MathTest.php
index 1b96ee2..2b2727f 100644
--- a/tests/MathTest.php
+++ b/tests/MathTest.php
@@ -62,4 +62,14 @@ class MathTest extends \PHPUnit_Framework_TestCase
             array('100500 * 3.5E-5')
         );
     }
+
+    public function testFunction()
+    {
+        $calculator = new MathExecutor();
+
+        $calculator->addFunction('round', function ($arg) { return round($arg); }, 1);
+        /** @var float $phpResult */
+        eval('$phpResult = round(100/30);');
+        $this->assertEquals($calculator->execute('round(100/30)'), $phpResult);
+    }
 }
\ No newline at end of file
-- 
cgit v1.2.3


From 29d32a155f9956d1041a4420c19986565f695040 Mon Sep 17 00:00:00 2001
From: Bruce Wells <bruce.wells@simparel.com>
Date: Fri, 31 Aug 2018 12:22:58 -0400
Subject: Add ability to get functions and operators that have been registered

---
 src/NXP/Classes/TokenFactory.php | 22 ++++++++++++++++++++++
 src/NXP/MathExecutor.php         | 21 +++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/src/NXP/Classes/TokenFactory.php b/src/NXP/Classes/TokenFactory.php
index 19ba1cf..2b1e00e 100644
--- a/src/NXP/Classes/TokenFactory.php
+++ b/src/NXP/Classes/TokenFactory.php
@@ -51,6 +51,18 @@ class TokenFactory
         $this->functions[$name] = array($places, $function);
     }
 
+
+    /**
+     * get functions
+     *
+     * @return array containing callback and places indexed by
+     *         function name
+     */
+    public function getFunctions()
+    {
+        return $this->functions;
+    }
+
     /**
      * Add operator
      * @param  string                                  $operatorClass
@@ -68,6 +80,16 @@ class TokenFactory
         $this->operators = array_unique($this->operators);
     }
 
+    /**
+     * Get registered operators
+     *
+     * @return array of operator class names
+     */
+    public function getOperators()
+    {
+        return $this->operators;
+    }
+
     /**
      * Add variable
      * @param string $name
diff --git a/src/NXP/MathExecutor.php b/src/NXP/MathExecutor.php
index f348355..0c3d185 100644
--- a/src/NXP/MathExecutor.php
+++ b/src/NXP/MathExecutor.php
@@ -156,6 +156,16 @@ class MathExecutor
         return $this;
     }
 
+    /**
+     * Get all registered operators to executor
+     *
+     * @return array of operator class names
+     */
+    public function getOperators()
+    {
+        return $this->tokenFactory->getOperators();
+    }
+
     /**
      * Add function to executor
      *
@@ -171,6 +181,17 @@ class MathExecutor
         return $this;
     }
 
+    /**
+     * Get all registered functions
+     *
+     * @return array containing callback and places indexed by
+     *         function name
+     */
+    public function getFunctions()
+    {
+        return $this->tokenFactory->getFunctions();
+    }
+
     /**
      * Execute expression
      *
-- 
cgit v1.2.3