Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 2.04 KB

README.md

File metadata and controls

55 lines (35 loc) · 2.04 KB

acts_as_account

Build Status

Theory

ActsAsAccount implements a "Double Entry Accounting" system for your Rails-models.

It hooks into ActiveRecord and allows to add accounts to any model by simply means of adding has_account to your model. Because the accounts are connected via a has_many relation no migration to the account-holder tables is needed.

We also hook into the ActionController request cycle to warn the developer if a request has left uncommitted changes in the system.

Configuration

It is possible to configure if attributes (postings_count, balance, last_valuta) are persisted on the Account or if it is calculated on demand.

  ActsAsAccount.configure do |config|
    # Default values:
    # config.persist_attributes_on_account = true
  end

Enabling persistence means that the sending and receiving account will aquire a lock when making a transfer to ensure correct data. This can be problematic in a high load scenario where many transfers to the same accounts are processed in parallel.

How to test

Run the cucumber features from the acs_as_account gem, just execute

  • rake features:create_database
  • cucumber

How to release

You need to update the data in VERSION and Rakefile and run rake (because it uses GemHadar). rake gem:push will push the version to rubygems.

Links

Compatibility

Rails 4 is supported since version 3.1.0, Rails 7 since 3.2.2 .

Credits

This gem was written for the payment backend of betterplace.org by Thies C. Arntzen, "thieso2", Norman Timmler, "unnu" and others.

Copyright

Copyright (c) 2010-2024 gut.org gAG, released under the Apache License v2.0.