Changelog History
Page 1
-
v2.0.0.beta5 Changes
February 24, 2021 -
v2.0.0.beta4 Changes
January 25, 2020 -
v2.0.0.beta3 Changes
November 14, 2019๐ Fixed
- Remove duplicate detail columns in
double_entry_lines
table migration, (#173).
- Remove duplicate detail columns in
-
v2.0.0.beta2 Changes
January 27, 2019โ Removed
- Extract
DoubleEntry::Reporting
module to a separate gem:double_entry-reporting
.
If this module is in use in your project add the
double_entry-reporting
gem and checkout the changelog for more updates.If not in use, one can delete the
double_entry_line_aggregates
table using the following migration:```ruby drop_table :double_entry_line_aggregates ```
- Extract
-
v2.0.0.beta1 Changes
December 31, 2018โ Added
โ Added contributor credits to README.
โ Added support for Ruby 2.3, 2.4, 2.5 and 2.6.
โ Added support for Rails 5.0, 5.1 and 5.2
๐ Support passing an array of metadata values.
DoubleEntry.transfer( Money.new(20_00), :from => one_account, :to => another_account, :code => :a_business_code_for_this_type_of_transfer, :metadata => { :key1 => ['value 1', 'value 2'], :key2 => 'value 3' }, )
๐ Allow partner account to be specified for aggregates.
๐ Allow filtering aggregates by multiple metadata key/value pairs.
Add index on the
double_entry_line_checks
table. This covers the query to obtain the last line check.
Add this index to your database via a migration like:
```ruby def up add_index "double_entry_line_checks", ["created_at", "last_line_id"], :name => "line_checks_created_at_last_line_id_idx" end ```
- ๐ฒ Log account balance cache errors to the database when performing the line check:
DoubleEntry::Validation::LineCheck::perform!
๐ Changed
โ Replaced Machinist with Factory Bot in test suite.
Implement
DoubleEntry::Transfer::Set
andDoubleEntry::Account::Set
withHash
es rather thanArray
s for performance.Reporting API now uses keyword arguments. Note these reporting classes are marked API private: their interface is not considered stable.
DoubleEntry::Reporting::aggregate
DoubleEntry::Reporting::aggregate_array
DoubleEntry::Reporting::Aggregate::new
DoubleEntry::Reporting::Aggregate::formatted_amount
DoubleEntry::Reporting::AggregateArray::new
DoubleEntry::Reporting::LineAggregateFilter::new
0๏ธโฃ Loosened database string column contstraints to the default (255 characters). Engineering teams can choose to apply this change, or apply their own column length constraints specific to their needs. (#152)
โ Removed default values for the length checks on
code
,account
andscope
(#152). These checks will now only be performed when configured with a value:
DoubleEntry.configure do |config| config.code_max_length = 47 config.account_identifier_max_length = 31 config.scope_identifier_max_length = 23 end
- ๐ Use
bigint
for monetary values in the database to avoid integer overflow (#154). Apply changes via this migration:
change_column :double_entry_account_balances, :balance, :bigint, null: false change_column :double_entry_line_aggregates, :amount, :bigint, null: false change_column :double_entry_lines, :amount, :bigint, null: false change_column :double_entry_lines, :balance, :bigint, null: false
- ๐
On Rails version 5.1 and above, use
bigint
for foreign key values in the database to avoid integer overflow (#154). Apply changes via this migration:
change_column :double_entry_line_checks, :last_line_id, :bigint, null: false change_column :double_entry_line_metadata, :line_id, :bigint, null: false change_column :double_entry_lines, :partner_id, :bigint, null: true change_column :double_entry_lines, :detail_id, :bigint, null: true
- 0๏ธโฃ Line check validation no-longer performs corrections by default. The
DoubleEntry::Validation::LineCheck::perform!
method will only log validation failures in the database. To perform auto-correction pass thefixer
option:LineCheck.perform!(fixer: DoubleEntry::Validation::AccountFixer.new)
โ Removed
โ Removed support for Ruby 1.9, 2.0, 2.1 and 2.2.
โ Removed support for Rails 3.2, 4.0, and 4.1.
โ Removed unneeded development dependencies from Gemspec.
โ Removed spec and script files from gem package.
Removed the
active_record_scope_identifier
method for configuring scoped accounts.user_scope = accounts.active_record_scope_identifier(User)
As a replacement, please define your own with a lambda:
```ruby user_scope = ->(user) do raise 'not a User' unless user.class.name == 'User' user.id end ```
๐ Fixed
๐ Fixed more Ruby warnings.
๐ Use
double_entry
namespace when publishing toActiveSupport::Notifications
.๐ Fixed problem of Rails version number not being set in migration template for apps using Rails 5 or higher.
-
v1.0.1 Changes
January 06, 2018โ Removed
- โ Removed Rubocop checks and build step.
๐ Fixed
๐ Use
Money#positive?
andMoney#negative?
rather than comparing to zero. Resolves issues when dealing with multiple currencies.๐ Fixed typo in jack_hammer documentation.
-
v1.0.0 Changes
August 04, 2015โ Added
Record meta-data against transfers.
DoubleEntry.transfer( Money.new(20_00), :from => one_account, :to => another_account, :code => :a_business_code_for_this_type_of_transfer, :metadata => { :key1 => 'value 1', :key2 => 'value 2' }, )
This feature requires a new DB table. Please add a migration similar to:
```ruby class CreateDoubleEntryLineMetadata < ActiveRecord::Migration def self.up create_table "#{DoubleEntry.table_name_prefix}line_metadata", :force => true do |t| t.integer "line_id", :null => false t.string "key", :limit => 48, :null => false t.string "value", :limit => 64, :null => false t.timestamps :null => false end add_index "#{DoubleEntry.table_name_prefix}line_metadata", ["line_id", "key", "value"], :name => "lines_meta_line_id_key_value_idx" end def self.down drop_table "#{DoubleEntry.table_name_prefix}line_metadata" end end ```
๐ Changed
- ๐ Raise
DoubleEntry::Locking::LockWaitTimeout
for lock wait timeouts.
๐ Fixed
- Ensure that a range is specified when performing an aggregate function over lines.
-
v0.10.3 Changes
July 15, 2015โ Added
- ๐ Check code format with Rubocop as part of the CI build.
๐ Fixed
- ๐ More Rubocop code formatting issues fixed.
-
v0.10.2 Changes
July 10, 2015๐ Fixed
DoubleEntry::Reporting::AggregateArray
correctly retreives previously calculated aggregates.
-
v0.10.1 Changes
July 06, 2015โ Added
๐ Run CI build against Ruby 2.2.0.
โ Added Rubocop and resolved code formatting issues.
๐ Changed
โฌ๏ธ Reduced permutations of DB, Ruby and Rails in CI build.
๐ Build status badge displayed in README reports on just the master branch.
โก๏ธ Update RSpec configuration with latest recommended options.
๐ Fixed
โ Addressed Ruby warnings.
๐ Fixed circular arg reference.