deb 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -0,0 +1,31 @@
1
+ ## Double Entry Bookkeeping for Rails
2
+
3
+ Inspired by (plutus)[https://github.com/mbulat/plutus].
4
+
5
+ Installation
6
+
7
+ gem "deb"
8
+
9
+ rails g deb
10
+ rake db:migrate
11
+
12
+
13
+ Example
14
+
15
+ @asset = Account.create(kind: "asset")
16
+ @revenue = Account.create(kind: "revenue")
17
+ @liability = Account.create(kind: "liability")
18
+
19
+ Transaction.start! do
20
+ debit @asset, 12
21
+ credit @revenue, 5
22
+ credit @liability, 7
23
+ description "foobar"
24
+ reference @mysome_record
25
+ end
26
+
27
+ TODO: more documentation: balances
28
+
29
+
30
+ Copyright (c) 2013 Boris Nadion
31
+
@@ -8,6 +8,8 @@ module Deb
8
8
  has_many :credit_items, class_name: "Deb::Item", conditions: {kind: "credit"}
9
9
  has_many :credit_accounts, through: :credit_items
10
10
 
11
+ validate :debit_items_presence
12
+ validate :credit_items_presence
11
13
  validate :proper_amounts
12
14
 
13
15
  attr_accessible :reference, :description
@@ -22,9 +24,15 @@ module Deb
22
24
  end
23
25
  end
24
26
 
25
- def proper_amounts
27
+ def debit_items_presence
26
28
  errors.add(:base, "no debit items") if debit_items.blank?
29
+ end
30
+
31
+ def credit_items_presence
27
32
  errors.add(:base, "no credit items") if credit_items.blank?
33
+ end
34
+
35
+ def proper_amounts
28
36
  errors.add(:base, "wrong credit total is not equal debit total") unless credit_items.collect(&:amount).reduce(:+) == debit_items.collect(&:amount).reduce(:+)
29
37
  end
30
38
 
data/lib/deb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Deb
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -142,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
142
  version: '0'
143
143
  segments:
144
144
  - 0
145
- hash: -3835187591091313650
145
+ hash: -1261436476112288047
146
146
  required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  none: false
148
148
  requirements:
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  version: '0'
152
152
  segments:
153
153
  - 0
154
- hash: -3835187591091313650
154
+ hash: -1261436476112288047
155
155
  requirements: []
156
156
  rubyforge_project:
157
157
  rubygems_version: 1.8.25