double_entry 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -1
  3. data/.rubocop.yml +55 -0
  4. data/.travis.yml +23 -12
  5. data/README.md +5 -1
  6. data/Rakefile +8 -3
  7. data/double_entry.gemspec +4 -3
  8. data/lib/active_record/locking_extensions.rb +28 -40
  9. data/lib/active_record/locking_extensions/log_subscriber.rb +4 -4
  10. data/lib/double_entry.rb +0 -2
  11. data/lib/double_entry/account.rb +13 -16
  12. data/lib/double_entry/account_balance.rb +0 -4
  13. data/lib/double_entry/balance_calculator.rb +4 -5
  14. data/lib/double_entry/configurable.rb +0 -2
  15. data/lib/double_entry/configuration.rb +2 -3
  16. data/lib/double_entry/errors.rb +2 -2
  17. data/lib/double_entry/line.rb +13 -16
  18. data/lib/double_entry/locking.rb +13 -18
  19. data/lib/double_entry/reporting.rb +2 -3
  20. data/lib/double_entry/reporting/aggregate.rb +90 -88
  21. data/lib/double_entry/reporting/aggregate_array.rb +58 -58
  22. data/lib/double_entry/reporting/day_range.rb +37 -35
  23. data/lib/double_entry/reporting/hour_range.rb +40 -37
  24. data/lib/double_entry/reporting/line_aggregate.rb +27 -28
  25. data/lib/double_entry/reporting/month_range.rb +67 -67
  26. data/lib/double_entry/reporting/time_range.rb +40 -38
  27. data/lib/double_entry/reporting/time_range_array.rb +3 -5
  28. data/lib/double_entry/reporting/week_range.rb +77 -78
  29. data/lib/double_entry/reporting/year_range.rb +27 -27
  30. data/lib/double_entry/transfer.rb +14 -15
  31. data/lib/double_entry/validation/line_check.rb +92 -86
  32. data/lib/double_entry/version.rb +1 -1
  33. data/lib/generators/double_entry/install/install_generator.rb +1 -2
  34. data/lib/generators/double_entry/install/templates/migration.rb +0 -2
  35. data/script/jack_hammer +1 -1
  36. data/spec/active_record/locking_extensions_spec.rb +45 -38
  37. data/spec/double_entry/account_balance_spec.rb +4 -5
  38. data/spec/double_entry/account_spec.rb +43 -44
  39. data/spec/double_entry/balance_calculator_spec.rb +6 -8
  40. data/spec/double_entry/configuration_spec.rb +14 -16
  41. data/spec/double_entry/line_spec.rb +25 -26
  42. data/spec/double_entry/locking_spec.rb +34 -39
  43. data/spec/double_entry/reporting/aggregate_array_spec.rb +8 -10
  44. data/spec/double_entry/reporting/aggregate_spec.rb +84 -44
  45. data/spec/double_entry/reporting/line_aggregate_spec.rb +7 -6
  46. data/spec/double_entry/reporting/month_range_spec.rb +109 -103
  47. data/spec/double_entry/reporting/time_range_array_spec.rb +145 -135
  48. data/spec/double_entry/reporting/time_range_spec.rb +36 -35
  49. data/spec/double_entry/reporting/week_range_spec.rb +82 -76
  50. data/spec/double_entry/reporting_spec.rb +9 -13
  51. data/spec/double_entry/transfer_spec.rb +13 -15
  52. data/spec/double_entry/validation/line_check_spec.rb +73 -79
  53. data/spec/double_entry_spec.rb +65 -68
  54. data/spec/generators/double_entry/install/install_generator_spec.rb +7 -10
  55. data/spec/spec_helper.rb +68 -10
  56. data/spec/support/accounts.rb +2 -4
  57. data/spec/support/double_entry_spec_helper.rb +4 -4
  58. data/spec/support/gemfiles/Gemfile.rails-3.2.x +1 -0
  59. metadata +31 -2
@@ -1,15 +1,14 @@
1
1
  # encoding: utf-8
2
2
  require_relative 'blueprints'
3
3
  DoubleEntry.configure do |config|
4
-
5
4
  # A set of accounts to test with
6
5
  config.define_accounts do |accounts|
7
6
  user_scope = accounts.active_record_scope_identifier(User)
8
7
  accounts.define(:identifier => :savings, :scope_identifier => user_scope, :positive_only => true)
9
8
  accounts.define(:identifier => :checking, :scope_identifier => user_scope, :positive_only => true)
10
9
  accounts.define(:identifier => :test, :scope_identifier => user_scope)
11
- accounts.define(:identifier => :btc_test, :scope_identifier => user_scope, :currency => "BTC")
12
- accounts.define(:identifier => :btc_savings, :scope_identifier => user_scope, :currency => "BTC")
10
+ accounts.define(:identifier => :btc_test, :scope_identifier => user_scope, :currency => 'BTC')
11
+ accounts.define(:identifier => :btc_savings, :scope_identifier => user_scope, :currency => 'BTC')
13
12
  end
14
13
 
15
14
  # A set of allowed transfers between accounts
@@ -19,5 +18,4 @@ DoubleEntry.configure do |config|
19
18
  transfers.define(:from => :savings, :to => :test, :code => :test_withdrawal)
20
19
  transfers.define(:from => :btc_test, :to => :btc_savings, :code => :btc_test_transfer)
21
20
  end
22
-
23
21
  end
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
  module DoubleEntrySpecHelper
3
-
4
3
  def lines_for_account(account)
5
4
  lines = DoubleEntry::Line.order(:id)
6
5
  lines = lines.where(:scope => account.scope_identity) if account.scoped?
@@ -9,7 +8,8 @@ module DoubleEntrySpecHelper
9
8
  end
10
9
 
11
10
  def perform_deposit(user, amount)
12
- DoubleEntry.transfer(Money.new(amount),
11
+ DoubleEntry.transfer(
12
+ Money.new(amount),
13
13
  :from => DoubleEntry.account(:test, :scope => user),
14
14
  :to => DoubleEntry.account(:savings, :scope => user),
15
15
  :code => :bonus,
@@ -17,11 +17,11 @@ module DoubleEntrySpecHelper
17
17
  end
18
18
 
19
19
  def perform_btc_deposit(user, amount)
20
- DoubleEntry.transfer(Money.new(amount, :btc),
20
+ DoubleEntry.transfer(
21
+ Money.new(amount, :btc),
21
22
  :from => DoubleEntry.account(:btc_test, :scope => user),
22
23
  :to => DoubleEntry.account(:btc_savings, :scope => user),
23
24
  :code => :btc_test_transfer,
24
25
  )
25
26
  end
26
-
27
27
  end
@@ -4,3 +4,4 @@ gemspec :path => '../../../'
4
4
 
5
5
  gem 'i18n', '0.6.11'
6
6
  gem 'rails', '~> 3.2.0'
7
+ gem 'minitest', '~> 4.7.5'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: double_entry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Sellitti
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2015-01-09 00:00:00.000000000 Z
18
+ date: 2015-07-06 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: money
@@ -157,6 +157,20 @@ dependencies:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: rspec-instafail
162
+ requirement: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
160
174
  - !ruby/object:Gem::Dependency
161
175
  name: database_cleaner
162
176
  requirement: !ruby/object:Gem::Requirement
@@ -213,6 +227,20 @@ dependencies:
213
227
  - - ">="
214
228
  - !ruby/object:Gem::Version
215
229
  version: '0'
230
+ - !ruby/object:Gem::Dependency
231
+ name: rubocop
232
+ requirement: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ type: :development
238
+ prerelease: false
239
+ version_requirements: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
216
244
  description:
217
245
  email:
218
246
  - anthony.sellitti@envato.com
@@ -229,6 +257,7 @@ extra_rdoc_files: []
229
257
  files:
230
258
  - ".gitignore"
231
259
  - ".rspec"
260
+ - ".rubocop.yml"
232
261
  - ".travis.yml"
233
262
  - ".yardopts"
234
263
  - Gemfile