has_money_fields 0.0.2 → 0.0.3
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/.gitignore +1 -0
- data/History.md +8 -2
- data/README.md +17 -2
- data/has_money_fields.gemspec +1 -1
- data/lib/has_money_fields/version.rb +1 -1
- data/lib/has_money_fields.rb +2 -0
- data/spec/has_money_fields_spec.rb +11 -1
- data/spec/spec_helper.rb +2 -2
- metadata +115 -120
data/.gitignore
CHANGED
data/History.md
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
|
2
|
-
0.0.
|
2
|
+
0.0.3 / 2012-05-17
|
3
|
+
==================
|
4
|
+
|
5
|
+
* Fix bug appearing when field include text like "0.99 + VAT"
|
6
|
+
* Fix tests not running on ruby 1.9.2
|
7
|
+
|
8
|
+
0.0.2 / 2011-07-14
|
3
9
|
==================
|
4
10
|
|
5
11
|
* Added possibility to use some AR validations
|
6
12
|
* Added changelog
|
7
13
|
|
8
|
-
0.0.1 / 2011-07-14
|
14
|
+
0.0.1 / 2011-07-14
|
9
15
|
==================
|
10
16
|
|
11
17
|
* Added TODO for future version
|
data/README.md
CHANGED
@@ -56,7 +56,7 @@ p = Product.new :price => Money.new(1000, "EUR"), :name => "T-shirt"
|
|
56
56
|
p.price # => #<Money cents:1000 currency:EUR>
|
57
57
|
p.price.format # => "10.00 €"
|
58
58
|
p.price.cents # => 1000
|
59
|
-
p.price.currency_as_string => "€"
|
59
|
+
p.price.currency_as_string # => "€"
|
60
60
|
```
|
61
61
|
|
62
62
|
To use the default currency from the money gem, you'd rather drop the
|
@@ -68,6 +68,21 @@ class Product < ActiveRecord::Base
|
|
68
68
|
end
|
69
69
|
```
|
70
70
|
|
71
|
+
## Validations
|
72
|
+
|
73
|
+
You can use ActiveRecord validations, as the following example:
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
class Product < ActiveRecord::Base
|
77
|
+
has_money_fields :price
|
78
|
+
validates :price, :presence => true
|
79
|
+
end
|
80
|
+
|
81
|
+
product = Product.new :price => nil
|
82
|
+
product.save # => false
|
83
|
+
product.valid? # => false
|
84
|
+
```
|
85
|
+
|
71
86
|
# TODO
|
72
87
|
|
73
|
-
* Make dirty attributes
|
88
|
+
* Make dirty attributes work
|
data/has_money_fields.gemspec
CHANGED
@@ -26,7 +26,7 @@ currency data in a safe and clean way.
|
|
26
26
|
s.add_dependency "money"
|
27
27
|
s.add_development_dependency "sqlite3"
|
28
28
|
s.add_development_dependency "rspec", "~> 2"
|
29
|
-
s.add_development_dependency "ruby-
|
29
|
+
s.add_development_dependency "ruby-debug19"
|
30
30
|
s.add_development_dependency "guard"
|
31
31
|
s.add_development_dependency "guard-rspec"
|
32
32
|
end
|
data/lib/has_money_fields.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require "
|
1
|
+
require "spec_helper"
|
2
2
|
|
3
3
|
describe "Model with money fields" do
|
4
4
|
context "for cents and currency" do
|
@@ -39,6 +39,16 @@ describe "Model with money fields" do
|
|
39
39
|
its(:money_price_in_usd) { should be_nil }
|
40
40
|
end
|
41
41
|
|
42
|
+
context "with price combining text and numbers" do
|
43
|
+
before do
|
44
|
+
@product = Product.create! :price => "$1000 + VAT"
|
45
|
+
end
|
46
|
+
subject {@product}
|
47
|
+
|
48
|
+
its(:money_price){ should == 100000 }
|
49
|
+
its(:currency_price){ should == "USD" }
|
50
|
+
end
|
51
|
+
|
42
52
|
context "with validations" do
|
43
53
|
before do
|
44
54
|
Product.class_eval do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,135 +1,140 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_money_fields
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Francisco J. Casas
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-05-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: activerecord
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 3
|
32
|
-
- 0
|
33
|
-
version: "3.0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: money
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
25
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: money
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
48
38
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: sqlite3
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: sqlite3
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
54
49
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
62
54
|
type: :development
|
63
|
-
version_requirements: *id003
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rspec
|
66
55
|
prerelease: false
|
67
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
68
65
|
none: false
|
69
|
-
requirements:
|
66
|
+
requirements:
|
70
67
|
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
segments:
|
74
|
-
- 2
|
75
|
-
version: "2"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2'
|
76
70
|
type: :development
|
77
|
-
version_requirements: *id004
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: ruby-debug
|
80
71
|
prerelease: false
|
81
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
73
|
none: false
|
83
|
-
requirements:
|
84
|
-
- -
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: ruby-debug19
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
90
86
|
type: :development
|
91
|
-
version_requirements: *id005
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: guard
|
94
87
|
prerelease: false
|
95
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
96
89
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: guard
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
104
102
|
type: :development
|
105
|
-
version_requirements: *id006
|
106
|
-
- !ruby/object:Gem::Dependency
|
107
|
-
name: guard-rspec
|
108
103
|
prerelease: false
|
109
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
105
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: guard-rspec
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
|
-
|
120
|
-
|
121
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: ! 'Use the Money gem and ActiveRecord''s composed_of to store fields
|
127
|
+
wich contains
|
128
|
+
|
122
129
|
currency data in a safe and clean way.
|
123
130
|
|
124
|
-
|
131
|
+
'
|
132
|
+
email:
|
125
133
|
- fran@zorros.be
|
126
134
|
executables: []
|
127
|
-
|
128
135
|
extensions: []
|
129
|
-
|
130
136
|
extra_rdoc_files: []
|
131
|
-
|
132
|
-
files:
|
137
|
+
files:
|
133
138
|
- .gitignore
|
134
139
|
- Gemfile
|
135
140
|
- Guardfile
|
@@ -143,41 +148,31 @@ files:
|
|
143
148
|
- spec/has_money_fields_spec.rb
|
144
149
|
- spec/models.rb
|
145
150
|
- spec/spec_helper.rb
|
146
|
-
has_rdoc: true
|
147
151
|
homepage: http://zorros.be
|
148
152
|
licenses: []
|
149
|
-
|
150
153
|
post_install_message:
|
151
154
|
rdoc_options: []
|
152
|
-
|
153
|
-
require_paths:
|
155
|
+
require_paths:
|
154
156
|
- lib
|
155
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
156
158
|
none: false
|
157
|
-
requirements:
|
158
|
-
- -
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
|
161
|
-
|
162
|
-
- 0
|
163
|
-
version: "0"
|
164
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - ! '>='
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
164
|
none: false
|
166
|
-
requirements:
|
167
|
-
- -
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
|
170
|
-
segments:
|
171
|
-
- 0
|
172
|
-
version: "0"
|
165
|
+
requirements:
|
166
|
+
- - ! '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
173
169
|
requirements: []
|
174
|
-
|
175
170
|
rubyforge_project: has_money_fields
|
176
|
-
rubygems_version: 1.
|
171
|
+
rubygems_version: 1.8.24
|
177
172
|
signing_key:
|
178
173
|
specification_version: 3
|
179
174
|
summary: Persist your money on a clean and easy way with Money gem
|
180
|
-
test_files:
|
175
|
+
test_files:
|
181
176
|
- spec/has_money_fields_spec.rb
|
182
177
|
- spec/models.rb
|
183
178
|
- spec/spec_helper.rb
|