scrooge 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/scrooge.rb CHANGED
@@ -1,9 +1,18 @@
1
1
  module Scrooge
2
- VERSION = "0.1"
2
+ VERSION = "0.1.1"
3
3
 
4
4
  class Money
5
5
  include Comparable
6
6
 
7
+ def self.parse(value)
8
+ if value.is_a?(String)
9
+ value.gsub!(/\$/, '')
10
+ value.gsub!(/,/, '')
11
+ end
12
+
13
+ value.to_money
14
+ end
15
+
7
16
  def initialize(cents)
8
17
  @cents = cents.to_i
9
18
  end
@@ -6,7 +6,7 @@ module Scrooge
6
6
  names.each do |name|
7
7
  composed_of name, :class_name => "Scrooge::Money",
8
8
  :mapping => ["#{name}_in_cents", "to_cents"],
9
- :converter => lambda {|value| (value || 0).to_money },
9
+ :converter => lambda {|value| Money.parse(value || 0) },
10
10
  :constructor => lambda {|value| value.to_f.as_cents }
11
11
  end
12
12
  end
data/scrooge.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "scrooge"
3
- s.version = "0.1"
4
- s.date = "2010-01-19"
3
+ s.version = "0.1.1"
4
+ s.date = "2010-01-20"
5
5
 
6
6
  s.description = "Class to serialize money into the database, works out of the box with ActiveRecord"
7
7
  s.summary = "Scrooge will keep all your money safe. Or at least in the database."
data/spec/scrooge_spec.rb CHANGED
@@ -1,9 +1,9 @@
1
- require "centipede"
1
+ require "scrooge"
2
2
  require "spec"
3
3
 
4
- include Centipede
4
+ include Scrooge
5
5
 
6
- describe Centipede::Money do
6
+ describe Money do
7
7
  subject { Money.new(175) }
8
8
 
9
9
  it "can be interpreted as an integer" do
@@ -66,4 +66,18 @@ describe Centipede::Money do
66
66
  "12345".as_cents.should == Money.new(12345)
67
67
  end
68
68
  end
69
+
70
+ describe "parsing money strings" do
71
+ it "parses decimal points correctly" do
72
+ Money.parse("15.5").should == 15.5
73
+ end
74
+
75
+ it "ignores dollar signs" do
76
+ Money.parse("$10").should == 10
77
+ end
78
+
79
+ it "ignores commas" do
80
+ Money.parse("10,000.00").should == 10_000
81
+ end
82
+ end
69
83
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scrooge
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.1"
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Nicol\xC3\xA1s Sanguinetti"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-19 00:00:00 -02:00
12
+ date: 2010-01-20 00:00:00 -02:00
13
13
  default_executable:
14
14
  dependencies: []
15
15