cashrb 1.2.2 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ cashrb v1.3.0
2
+ =============
3
+ - add #abs
4
+
1
5
  cashrb v1.2.2
2
6
  =============
3
7
  - fix formatting in README.md
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  cashrb
2
2
  ======
3
3
 
4
+ [![Build Status](http://travis-ci.org/semmons99/cashrb.png)](http://travis-ci.org/semmons99/cashrb)
5
+
4
6
  Lightweight money and currency handler for working with financial calculations.
5
7
  Ensures precision without sacrificing speed. Eschews complexity by only
6
8
  providing what you need to get your job done.
data/Rakefile CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'rake/testtask'
2
- require 'rake/gempackagetask'
2
+ require 'rubygems/package_task'
3
3
 
4
4
  Rake::TestTask.new
5
+ task :default => :test
5
6
 
6
7
  spec = Gem::Specification.load File.expand_path("../cashrb.gemspec", __FILE__)
7
- gem = Rake::GemPackageTask.new(spec)
8
+ gem = Gem::PackageTask.new(spec)
8
9
  gem.define
data/cashrb.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cashrb"
3
- s.version = "1.2.2"
3
+ s.version = "1.3.0"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ["Shane Emmons"]
6
6
  s.email = ["semmons99@gmail.com"]
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.required_ruby_version = ">= 1.8.7"
12
12
  s.required_rubygems_version = ">= 1.3.6"
13
13
 
14
- s.requirements << "minitest"
14
+ s.add_dependency "minitest", "~> 2.2.0"
15
15
 
16
16
  s.files = Dir.glob("{lib,test}/**/*")
17
17
  s.files += %w(CHANGELOG.md LICENSE README.md)
data/lib/cashrb/cash.rb CHANGED
@@ -78,6 +78,10 @@ class Cash
78
78
  Cash.new(@cents - value.cents, new_options)
79
79
  end
80
80
 
81
+ def -@
82
+ Cash.new(-@cents, new_options)
83
+ end
84
+
81
85
  def *(value)
82
86
  Cash.new(@cents * bd(value), new_options)
83
87
  end
@@ -102,6 +106,10 @@ class Cash
102
106
  [Cash.new(quotient, new_options), Cash.new(remainder, new_options)]
103
107
  end
104
108
 
109
+ def abs
110
+ Cash.new(@cents.abs, new_options)
111
+ end
112
+
105
113
  def <=>(value)
106
114
  @cents <=> value.cents
107
115
  end
data/test/test_cash.rb CHANGED
@@ -174,6 +174,21 @@ class TestCash < MiniTest::Unit::TestCase
174
174
  assert_equal Cash.new(5), rs
175
175
  end
176
176
 
177
+ def test_unary_minus
178
+ rs = -Cash.new(6)
179
+ assert_equal Cash.new(-6), rs
180
+ end
181
+
182
+ def test_unary_minus_with_modified_defaults
183
+ Cash.default_cents_in_whole = 10
184
+ Cash.default_rounding_method = BigDecimal::ROUND_UP
185
+ Cash.default_currency = :usd
186
+ Cash.default_from = :decimal
187
+
188
+ rs = -Cash.new(6)
189
+ assert_equal Cash.new(-6), rs
190
+ end
191
+
177
192
  def test_multiply_with_Cash_Numeric
178
193
  rs = Cash.new(6) * 2
179
194
  assert_equal Cash.new(12), rs
@@ -267,6 +282,14 @@ class TestCash < MiniTest::Unit::TestCase
267
282
  assert_equal [Cash.new(0.1), Cash.new(2)], rs
268
283
  end
269
284
 
285
+ def test_abs_with_positive_cents
286
+ assert_equal Cash.new(120), Cash.new(120).abs
287
+ end
288
+
289
+ def test_abs_with_negative_cents
290
+ assert_equal Cash.new(120), Cash.new(-120).abs
291
+ end
292
+
270
293
  def test_equal_to_when_equal_to
271
294
  rs = Cash.new(6) == Cash.new(6)
272
295
  assert rs
metadata CHANGED
@@ -1,33 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cashrb
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 2
10
- version: 1.2.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Shane Emmons
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-05-24 00:00:00 Z
19
- dependencies: []
20
-
12
+ date: 2011-11-11 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: &16572528 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *16572528
21
25
  description: Lightweight money and currency handler for working with financial calculations.
22
- email:
26
+ email:
23
27
  - semmons99@gmail.com
24
28
  executables: []
25
-
26
29
  extensions: []
27
-
28
30
  extra_rdoc_files: []
29
-
30
- files:
31
+ files:
31
32
  - lib/cashrb/cash.rb
32
33
  - lib/cashrb.rb
33
34
  - test/test_cash.rb
@@ -39,40 +40,26 @@ files:
39
40
  - cashrb.gemspec
40
41
  homepage: http://semmons99.github.com/cashrb/
41
42
  licenses: []
42
-
43
43
  post_install_message:
44
44
  rdoc_options: []
45
-
46
- require_paths:
45
+ require_paths:
47
46
  - lib
48
- required_ruby_version: !ruby/object:Gem::Requirement
47
+ required_ruby_version: !ruby/object:Gem::Requirement
49
48
  none: false
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- hash: 57
54
- segments:
55
- - 1
56
- - 8
57
- - 7
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
58
52
  version: 1.8.7
59
- required_rubygems_version: !ruby/object:Gem::Requirement
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
54
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- hash: 23
65
- segments:
66
- - 1
67
- - 3
68
- - 6
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
69
58
  version: 1.3.6
70
- requirements:
71
- - minitest
59
+ requirements: []
72
60
  rubyforge_project:
73
- rubygems_version: 1.8.1
61
+ rubygems_version: 1.8.5
74
62
  signing_key:
75
63
  specification_version: 3
76
64
  summary: Lightweight money and currency handler for working with financial calculations.
77
65
  test_files: []
78
-