has_money 0.2.1 → 0.3.0
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.
- data/CHANGELOG.md +3 -1
- data/Gemfile +8 -0
- data/Rakefile +24 -36
- data/VERSION +1 -1
- data/has_money.gemspec +23 -13
- data/lib/has_money.rb +1 -1
- data/spec/has_money_spec.rb +11 -1
- metadata +61 -7
data/CHANGELOG.md
CHANGED
data/Gemfile
ADDED
data/Rakefile
CHANGED
@@ -1,45 +1,33 @@
|
|
1
|
-
|
2
|
-
require 'rake'
|
1
|
+
# encoding: utf-8
|
3
2
|
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
4
5
|
begin
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
gem.email = "sam.vincent@mac.com"
|
11
|
-
gem.homepage = "http://github.com/samvincent/has_money"
|
12
|
-
gem.authors = ["Greg Bell", "Sam Vincent", "Philippe Creux"]
|
13
|
-
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
-
end
|
16
|
-
Jeweler::GemcutterTasks.new
|
17
|
-
rescue LoadError
|
18
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
19
11
|
end
|
12
|
+
require 'rake'
|
20
13
|
|
21
|
-
require '
|
22
|
-
|
23
|
-
|
24
|
-
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "has_money"
|
18
|
+
gem.summary = "Parsing the various ways people enter dollar amounts so you don't have to."
|
19
|
+
gem.description = "Parsing the various ways people enter dollar amounts so you don't have to. Store values in cents as integer."
|
20
|
+
gem.email = "sam.vincent@mac.com"
|
21
|
+
gem.homepage = "http://github.com/samvincent/has_money"
|
22
|
+
gem.authors = ["Greg Bell", "Sam Vincent", "Philippe Creux"]
|
23
|
+
# dependencies defined in Gemfile
|
25
24
|
end
|
25
|
+
Jeweler::RubygemsDotOrgTasks.new
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
spec.
|
27
|
+
require 'rspec/core'
|
28
|
+
require 'rspec/core/rake_task'
|
29
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
30
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
31
31
|
end
|
32
32
|
|
33
|
-
task :spec => :check_dependencies
|
34
|
-
|
35
33
|
task :default => :spec
|
36
|
-
|
37
|
-
require 'rake/rdoctask'
|
38
|
-
Rake::RDocTask.new do |rdoc|
|
39
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
40
|
-
|
41
|
-
rdoc.rdoc_dir = 'rdoc'
|
42
|
-
rdoc.title = "awesome #{version}"
|
43
|
-
rdoc.rdoc_files.include('README*')
|
44
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
45
|
-
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/has_money.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "has_money"
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Greg Bell", "Sam Vincent", "Philippe Creux"]
|
12
|
+
s.date = "2013-04-11"
|
13
|
+
s.description = "Parsing the various ways people enter dollar amounts so you don't have to. Store values in cents as integer."
|
14
|
+
s.email = "sam.vincent@mac.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.rdoc"
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
"CHANGELOG.md",
|
22
|
+
"Gemfile",
|
22
23
|
"LICENSE",
|
23
24
|
"README.rdoc",
|
24
25
|
"Rakefile",
|
@@ -27,21 +28,30 @@ Gem::Specification.new do |s|
|
|
27
28
|
"lib/has_money.rb",
|
28
29
|
"spec/has_money_spec.rb"
|
29
30
|
]
|
30
|
-
s.homepage =
|
31
|
-
s.require_paths = [
|
32
|
-
s.rubygems_version =
|
33
|
-
s.summary =
|
31
|
+
s.homepage = "http://github.com/samvincent/has_money"
|
32
|
+
s.require_paths = ["lib"]
|
33
|
+
s.rubygems_version = "1.8.25"
|
34
|
+
s.summary = "Parsing the various ways people enter dollar amounts so you don't have to."
|
34
35
|
|
35
36
|
if s.respond_to? :specification_version then
|
36
37
|
s.specification_version = 3
|
37
38
|
|
38
39
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
39
|
-
s.add_development_dependency(%q<
|
40
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
41
|
+
s.add_development_dependency(%q<activerecord>, [">= 0"])
|
42
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
43
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
40
44
|
else
|
41
|
-
s.add_dependency(%q<
|
45
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
46
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
47
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
48
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
42
49
|
end
|
43
50
|
else
|
44
|
-
s.add_dependency(%q<
|
51
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
52
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
53
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
54
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
45
55
|
end
|
46
56
|
end
|
47
57
|
|
data/lib/has_money.rb
CHANGED
@@ -32,7 +32,7 @@ module HasMoney
|
|
32
32
|
|
33
33
|
dollars = dollars.to_s.gsub(/[$,]/, "").strip
|
34
34
|
dollars[0] = '0.' if dollars =~ /^\.\d{1,2}/
|
35
|
-
return nil unless dollars.match(
|
35
|
+
return nil unless dollars.match(/^-?\d+\.?(\d+)?$/) # xx.xxx
|
36
36
|
|
37
37
|
(BigDecimal(dollars).round(2) * 100).to_i
|
38
38
|
end
|
data/spec/has_money_spec.rb
CHANGED
@@ -34,6 +34,11 @@ describe HasMoney do
|
|
34
34
|
it "should return the amount in dollars" do
|
35
35
|
@product.price_in_dollars.should == '29.99'
|
36
36
|
end
|
37
|
+
|
38
|
+
it "should return the amount in dollars correctly when negative" do
|
39
|
+
@product.price = -4200
|
40
|
+
@product.price_in_dollars.should == '-42.00'
|
41
|
+
end
|
37
42
|
|
38
43
|
it "should set the amount in dollars with a float" do
|
39
44
|
@product.price_in_dollars = 39.99
|
@@ -99,7 +104,12 @@ describe HasMoney do
|
|
99
104
|
@product.price_in_dollars = 'two dollars'
|
100
105
|
@product.price.should == nil
|
101
106
|
end
|
102
|
-
|
107
|
+
|
108
|
+
it "should respect negative signs" do
|
109
|
+
@product.price_in_dollars = '-$8.12'
|
110
|
+
@product.price.should == -812
|
111
|
+
end
|
112
|
+
|
103
113
|
it "should return string formatted to two decimal places" do
|
104
114
|
@product.price_in_dollars = '99'
|
105
115
|
@product.price_in_dollars.should == '99.00'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_money
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,19 +11,72 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2013-04-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
requirement:
|
17
|
+
name: bundler
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '0'
|
24
|
+
type: :development
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: activerecord
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
19
35
|
none: false
|
20
36
|
requirements:
|
21
37
|
- - ! '>='
|
22
38
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
39
|
+
version: '0'
|
24
40
|
type: :development
|
25
41
|
prerelease: false
|
26
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 2.8.0
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ~>
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 2.8.0
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: jeweler
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ~>
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 1.8.4
|
72
|
+
type: :development
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ~>
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.8.4
|
27
80
|
description: Parsing the various ways people enter dollar amounts so you don't have
|
28
81
|
to. Store values in cents as integer.
|
29
82
|
email: sam.vincent@mac.com
|
@@ -35,6 +88,7 @@ extra_rdoc_files:
|
|
35
88
|
files:
|
36
89
|
- .document
|
37
90
|
- CHANGELOG.md
|
91
|
+
- Gemfile
|
38
92
|
- LICENSE
|
39
93
|
- README.rdoc
|
40
94
|
- Rakefile
|
@@ -62,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
116
|
version: '0'
|
63
117
|
requirements: []
|
64
118
|
rubyforge_project:
|
65
|
-
rubygems_version: 1.8.
|
119
|
+
rubygems_version: 1.8.25
|
66
120
|
signing_key:
|
67
121
|
specification_version: 3
|
68
122
|
summary: Parsing the various ways people enter dollar amounts so you don't have to.
|