tubedude/xirr

View on GitHub
CHANGE_LOG.md

Summary

Maintainability
Test Coverage
## Unreleased
* Allow activesupport 7. Fixes #30
* Breaking: Require activesupport >= 6.1
* Breaking: Require ruby >= 3.1

## Version 0.7.0
* Removed `RubyInLine`
* Removed possibility to return false from `irr_guess`
* Removed global newton module
* Bumped dependencies

## Version 0.5.4
* Fallsback If Newton Methods returns NaN 

## Version 0.5.3
* Better tests
* added period option to Xirr

## Version 0.5.2
* Changed negative limits to return nil

## Version 0.5.1
* Newton Method will return nil if result is less than 100%

## Version 0.5.0
* This update will break the old Cashflow initializer
* Adds named attributes to Cashflow Initializer
* Allows specific configuration to initializer such as: period, flow (array of transactions)
* Calling xirr with a guess now requires named attribute
* If a method is provided, it won't fall back to the secondary method

## Version 0.4.1
* Added verification to pass on ruby 2.0.0

## Version 0.4.0

* Xirr returns nil and there is now a default settings to replace nil rate.
* It will compact the flow automatically, unless specified in the defaults.
* Attention to the new way, the Cashflow is created. Cashflow.new requires a Compacted boolean before the array of flow.

## Version 0.3.1

* Added fallback to secondary calculation method.

## Version 0.3.0

* Moved XNPV function to C.

## Version 0.2.9

* Cashflow validation excludes zeros

## Version 0.2.8

* Added missing tests
* Fixed Fallback method

## Version 0.2.7

* Bisection will now retry XIRR in Newton Method if right limit is reached
* Options in config are now module constants

## Version 0.2.6

* New Bisection method to avoid not converging to negative IRRs if not enough precision

## Version 0.2.5

* Default XIRR does not raise an Exception if cashflow is invalid

## Version 0.2.4

* Cashflow Invalid Messages are now public.
* Cashflow Invalid? won't raise exception
* Running XIRR in an invalid cashflow will throw exception
* New Cashflow No Exception XIRR call.

## Version 0.2.3

* Major fix to Bisection Engine.
* Error if provided method is wrong.
* Bisection: Initial guess is compared to default limits
* Transaction converts Time to Date.

## Version 0.2.2

* Added Tests.

## Version 0.2.1

* Output is rounded to default precision.

## Version 0.2.0

* Added Newton Method, but Bisection is still the default.
* Added new configs: precision, iteration limit.
* Raises a simple error if iteration limit is reached.
* Output is now BigDecimal.
* Fixed calculation of Bisection#npv
* Amounts in Transactions are now converted to Float
* Transactions now take Date Argument as Date instead of Time.