mongoid_money_field 3.0.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,10 +4,10 @@ gem 'mongoid', '>= 2.4.0'
4
4
  gem 'money'
5
5
 
6
6
  group :development do
7
- gem "rspec", "~> 2.11.0"
7
+ gem "rspec", "~> 2.12.0"
8
8
  gem "rdoc", "~> 3.12"
9
- gem "bundler", "~> 1.2.1"
9
+ gem "bundler", ">= 1.1.0"
10
10
  gem "jeweler", "~> 1.8.3"
11
11
  gem "simplecov", '>= 0.4.0', :require => false
12
- gem "database_cleaner", "~> 0.8.0"
12
+ gem "database_cleaner", "~> 0.9.0"
13
13
  end
data/Gemfile.lock CHANGED
@@ -1,60 +1,60 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.2.8)
5
- activesupport (= 3.2.8)
4
+ activemodel (3.2.9)
5
+ activesupport (= 3.2.9)
6
6
  builder (~> 3.0.0)
7
- activesupport (3.2.8)
7
+ activesupport (3.2.9)
8
8
  i18n (~> 0.6)
9
9
  multi_json (~> 1.0)
10
- builder (3.0.3)
11
- database_cleaner (0.8.0)
10
+ builder (3.0.4)
11
+ database_cleaner (0.9.1)
12
12
  diff-lcs (1.1.3)
13
13
  git (1.2.5)
14
- i18n (0.6.0)
15
- jeweler (1.8.3)
14
+ i18n (0.6.1)
15
+ jeweler (1.8.4)
16
16
  bundler (~> 1.0)
17
17
  git (>= 1.2.5)
18
18
  rake
19
19
  rdoc
20
- json (1.6.5)
21
- money (4.0.2)
22
- i18n (~> 0.4)
23
- json
24
- mongoid (3.0.6)
20
+ json (1.7.5)
21
+ money (5.1.0)
22
+ i18n (~> 0.6.0)
23
+ mongoid (3.0.14)
25
24
  activemodel (~> 3.1)
26
25
  moped (~> 1.1)
27
26
  origin (~> 1.0)
28
27
  tzinfo (~> 0.3.22)
29
- moped (1.2.7)
30
- multi_json (1.1.0)
31
- origin (1.0.9)
32
- rake (0.9.2.2)
28
+ moped (1.3.0)
29
+ multi_json (1.3.7)
30
+ origin (1.0.11)
31
+ rake (10.0.2)
33
32
  rdoc (3.12)
34
33
  json (~> 1.4)
35
- rspec (2.11.0)
36
- rspec-core (~> 2.11.0)
37
- rspec-expectations (~> 2.11.0)
38
- rspec-mocks (~> 2.11.0)
39
- rspec-core (2.11.1)
40
- rspec-expectations (2.11.3)
34
+ rspec (2.12.0)
35
+ rspec-core (~> 2.12.0)
36
+ rspec-expectations (~> 2.12.0)
37
+ rspec-mocks (~> 2.12.0)
38
+ rspec-core (2.12.0)
39
+ rspec-expectations (2.12.0)
41
40
  diff-lcs (~> 1.1.3)
42
- rspec-mocks (2.11.3)
43
- simplecov (0.6.1)
41
+ rspec-mocks (2.12.0)
42
+ simplecov (0.7.1)
44
43
  multi_json (~> 1.0)
45
- simplecov-html (~> 0.5.3)
46
- simplecov-html (0.5.3)
47
- tzinfo (0.3.33)
44
+ simplecov-html (~> 0.7.1)
45
+ simplecov-html (0.7.1)
46
+ tzinfo (0.3.35)
48
47
 
49
48
  PLATFORMS
50
49
  ruby
50
+ x86-mingw32
51
51
 
52
52
  DEPENDENCIES
53
- bundler (~> 1.2.1)
54
- database_cleaner (~> 0.8.0)
53
+ bundler (>= 1.1.0)
54
+ database_cleaner (~> 0.9.0)
55
55
  jeweler (~> 1.8.3)
56
56
  money
57
57
  mongoid (>= 2.4.0)
58
58
  rdoc (~> 3.12)
59
- rspec (~> 2.11.0)
59
+ rspec (~> 2.12.0)
60
60
  simplecov (>= 0.4.0)
data/README.rdoc CHANGED
@@ -15,9 +15,10 @@ A simple gem that creates a Money datatype using RubyMoney for Mongoid.
15
15
 
16
16
  Inspired by https://gist.github.com/840500
17
17
 
18
- == updating
18
+ == Updating
19
19
  v3 breaks backwards compatibility in favour of having syntax and defaults similar to field mongoid macro
20
- to get the same behaviour as 1.0 please add `default: 0` to field declaration, like this
20
+
21
+ To get the same behaviour as 1.0 please add "default: 0" to field declaration, like this
21
22
 
22
23
  money_field :price, default: 0
23
24
 
@@ -54,6 +55,13 @@ Include the gem in your Gemfile
54
55
 
55
56
  # default_currency is Money.default_currency.iso_code if not specified
56
57
  # fixed_currency overrides default_currency if set
58
+
59
+ # field can be validated as numeric value (with localized separators)
60
+ validates_numericality_of :price, greater_than: 0
61
+ end
62
+
63
+ simple_form_for do |f|
64
+ f.input :price, as: :money
57
65
  end
58
66
 
59
67
  All Money values are converted and stored in mongo as cents and currency in two separate fields.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.0
1
+ 3.2.0
@@ -2,10 +2,10 @@ source "http://rubygems.org"
2
2
 
3
3
  gem 'mongoid', '~> 2.4.0'
4
4
  gem 'money'
5
- gem "rake", "~> 0.9.2.2"
6
- gem "rspec", "~> 2.11.0"
5
+
6
+ gem "rspec", "~> 2.12.0"
7
7
  gem "rdoc", "~> 3.12"
8
- gem "bundler"
8
+ gem "bundler", ">= 1.1.0"
9
9
  gem "jeweler", "~> 1.8.3"
10
10
  gem "simplecov", '>= 0.4.0', :require => false
11
- gem "database_cleaner", "~> 0.8.0"
11
+ gem "database_cleaner", "~> 0.9.0"
@@ -2,10 +2,10 @@ source "http://rubygems.org"
2
2
 
3
3
  gem 'mongoid', '~> 3.0.0'
4
4
  gem 'money'
5
- gem "rake", "~> 0.9.2.2"
6
- gem "rspec", "~> 2.11.0"
5
+
6
+ gem "rspec", "~> 2.12.0"
7
7
  gem "rdoc", "~> 3.12"
8
- gem "bundler"
8
+ gem "bundler", ">= 1.1.0"
9
9
  gem "jeweler", "~> 1.8.3"
10
10
  gem "simplecov", '>= 0.4.0', :require => false
11
- gem "database_cleaner", "~> 0.8.0"
11
+ gem "database_cleaner", "~> 0.9.0"
@@ -1,108 +1,126 @@
1
- # coding: utf-8
1
+ #encoding: utf-8
2
2
 
3
3
  require 'money'
4
4
 
5
5
  module Mongoid
6
6
  module MoneyField
7
7
  extend ActiveSupport::Concern
8
+
8
9
  included do
9
-
10
10
  end
11
11
 
12
12
  module ClassMethods
13
13
 
14
- def money_field(*columns)
15
- opts = columns.last.is_a?(Hash) ? columns.pop : {}
14
+ def money_field( *columns )
15
+ opts = columns.last.is_a?( Hash ) ? columns.pop : {}
16
16
  opts = {
17
- fixed_currency: nil,
18
- default: nil,
19
- required: false,
20
- default_currency: nil
21
- }.merge(opts)
22
-
23
- [columns].flatten.each do |name|
24
- default_money = nil
25
-
26
- if opts[:default].nil?
27
- default = nil
28
- else
29
- default_money = Money.parse(opts[:default])
30
- default = default_money.cents
17
+ fixed_currency: nil,
18
+ default: nil,
19
+ required: false,
20
+ default_currency: nil
21
+ }.merge( opts )
22
+
23
+ [ columns ].flatten.each do |name|
24
+ default, default_cents = nil, nil
25
+
26
+ name = name.to_s
27
+
28
+ unless opts[:default].nil?
29
+ default = Money.parse( opts[:default] )
30
+ default_cents = default.cents
31
31
  end
32
32
 
33
- attr_cents = (name.to_s + '_cents').to_sym
34
- attr_currency = (name.to_s + '_currency').to_sym
33
+ attr_cents = name + '_cents'
34
+ attr_currency = name + '_currency'
35
+ attr_plain = name + '_plain'
36
+ attr_before_type_cast = name + '_before_type_cast'
37
+
38
+ field attr_cents, type: Integer, default: default_cents
39
+
40
+ attr_accessible attr_plain, name
41
+
42
+ if opts[:required]
43
+ validates_presence_of name
44
+ end
35
45
 
36
- field attr_cents, type: Integer, default: default
37
46
  if opts[:fixed_currency].nil?
38
47
  default_currency = nil
48
+
39
49
  if opts[:default_currency].nil?
40
- unless default_money.nil?
41
- default_currency = default_money.currency.iso_code
42
- end
50
+ default_currency = default.currency.iso_code unless default.nil?
43
51
  else
44
52
  default_currency = opts[:default_currency]
45
53
  end
46
54
 
47
55
  field attr_currency, type: String, default: default_currency
48
- end
49
56
 
50
- if opts[:required]
51
- validate do
52
- cents = read_attribute(attr_cents)
53
-
54
- if cents.nil?
55
- errors.add(name, errors.generate_message(name, :error, default: "invalid value for #{name}"))
56
- end
57
- if opts[:fixed_currency].nil? && read_attribute(attr_currency).nil?
58
- errors.add(name, errors.generate_message(name, :error, default: "invalid value for #{name} currency"))
57
+ if default_currency.nil?
58
+ before_save do
59
+ self[ attr_currency ] ||= Money.default_currency.iso_code
59
60
  end
60
61
  end
61
62
  end
62
63
 
64
+ define_method( attr_before_type_cast ) do
65
+ code = ( opts[:fixed_currency].nil? ? read_attribute( attr_currency ) : opts[:fixed_currency] )
66
+ currency = Money::Currency.find( code ) || Money.default_currency
63
67
 
64
- define_method(name) do
65
- cents = read_attribute(attr_cents)
68
+ value = self.send( attr_plain )
66
69
 
67
- if opts[:fixed_currency].nil?
68
- currency = read_attribute(attr_currency)
69
- else
70
- currency = opts[:fixed_currency]
71
- end
70
+ return if value.nil?
72
71
 
73
- if cents.nil?
74
- nil
75
- else
76
- Money.new(cents, currency || ::Money.default_currency)
77
- end
72
+ value.gsub( currency.thousands_separator, '' ).gsub( currency.decimal_mark, '.' )
78
73
  end
79
74
 
80
- define_method("#{name}=") do |value|
75
+ define_method( name ) do
76
+ cents = read_attribute( attr_cents )
77
+
78
+ code = opts[:fixed_currency].nil? ? read_attribute( attr_currency ) : opts[:fixed_currency]
79
+
80
+ cents.nil? ? nil : Money.new( cents, code || ::Money.default_currency )
81
+ end
82
+
83
+ define_method( attr_plain ) do
84
+ value = instance_variable_get( "@#{attr_plain}".to_sym )
85
+ value = self.send( name ) if value.nil?
86
+ value = value.format( symbol: false, no_cents_if_whole: true ) if value.is_a?( Money )
87
+
88
+ value
89
+ end
90
+
91
+ define_method( "#{attr_plain}=" ) do |value|
92
+ instance_variable_set( "@#{attr_plain}".to_sym, value )
93
+
81
94
  if value.blank?
82
- write_attribute(attr_cents, nil)
83
- if opts[:fixed_currency].nil?
84
- write_attribute(attr_currency, nil)
85
- end
86
- nil
87
- else
88
- if opts[:default_currency].nil?
89
- money = value.to_money
90
- else
91
- old_default = Money.default_currency
92
- Money.default_currency = Money::Currency.new(opts[:default_currency])
93
- money = value.to_money
94
- Money.default_currency = old_default
95
- end
95
+ write_attribute( attr_cents, nil )
96
+ write_attribute( attr_currency, nil ) if opts[:fixed_currency].nil?
97
+
98
+ return
99
+ end
96
100
 
97
- write_attribute(attr_cents, money.cents)
98
- if opts[:fixed_currency].nil?
99
- write_attribute(attr_currency, money.currency.iso_code)
100
- end
101
- money
101
+ if opts[:default_currency].nil?
102
+ money = value.to_money
103
+
104
+ else
105
+ old_default = Money.default_currency
106
+ Money.default_currency = Money::Currency.new( opts[:default_currency] )
107
+ money = value.to_money
108
+ Money.default_currency = old_default
102
109
  end
110
+
111
+ write_attribute( attr_cents, money.cents )
112
+ write_attribute( attr_currency, money.currency.iso_code ) if opts[:fixed_currency].nil?
113
+ end
114
+
115
+ define_method( "#{name}=" ) do |value|
116
+ self.send( "#{attr_plain}=", value )
103
117
  end
104
118
  end
105
119
  end
106
120
  end
107
121
  end
108
122
  end
123
+
124
+ if Object.const_defined?("SimpleForm")
125
+ require "mongoid_money_field/simple_form/money_input"
126
+ end
@@ -0,0 +1,20 @@
1
+ class MoneyInput < SimpleForm::Inputs::Base
2
+ enable :placeholder, :min_max
3
+
4
+ def input
5
+ add_size!
6
+ input_html_classes.unshift("numeric")
7
+ if html5?
8
+ input_html_options[:type] ||= "number"
9
+ input_html_options[:step] ||= integer? ? 1 : "any"
10
+ end
11
+ @builder.text_field("#{attribute_name}_plain", input_html_options)
12
+ end
13
+
14
+ private
15
+
16
+ # Rails adds the size attr by default, if the :size key does not exist.
17
+ def add_size!
18
+ input_html_options[:size] ||= nil
19
+ end
20
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "mongoid_money_field"
8
- s.version = "3.0.0"
8
+ s.version = "3.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["glebtv"]
12
- s.date = "2012-10-08"
12
+ s.date = "2012-11-28"
13
13
  s.description = "Use RubyMoney with mongoid"
14
14
  s.email = "glebtv@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  "gemfiles/mongoid2.gemfile",
30
30
  "gemfiles/mongoid3.gemfile",
31
31
  "lib/mongoid_money_field.rb",
32
+ "lib/mongoid_money_field/simple_form/money_input.rb",
32
33
  "mongoid_money_field.gemspec",
33
34
  "spec/money_spec.rb",
34
35
  "spec/spec_helper.rb",
@@ -39,7 +40,9 @@ Gem::Specification.new do |s|
39
40
  "spec/support/dummy_money_with_default_with_currency.rb",
40
41
  "spec/support/dummy_money_with_fixed_currency.rb",
41
42
  "spec/support/dummy_money_without_default.rb",
43
+ "spec/support/dummy_not_a_number.rb",
42
44
  "spec/support/dummy_override_default_currency.rb",
45
+ "spec/support/dummy_positive_number.rb",
43
46
  "spec/support/dummy_prices.rb",
44
47
  "spec/support/dummy_with_default_currency.rb"
45
48
  ]
@@ -55,31 +58,31 @@ Gem::Specification.new do |s|
55
58
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
59
  s.add_runtime_dependency(%q<mongoid>, [">= 2.4.0"])
57
60
  s.add_runtime_dependency(%q<money>, [">= 0"])
58
- s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
61
+ s.add_development_dependency(%q<rspec>, ["~> 2.12.0"])
59
62
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
60
- s.add_development_dependency(%q<bundler>, ["~> 1.2.1"])
63
+ s.add_development_dependency(%q<bundler>, [">= 1.1.0"])
61
64
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
62
65
  s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
63
- s.add_development_dependency(%q<database_cleaner>, ["~> 0.8.0"])
66
+ s.add_development_dependency(%q<database_cleaner>, ["~> 0.9.0"])
64
67
  else
65
68
  s.add_dependency(%q<mongoid>, [">= 2.4.0"])
66
69
  s.add_dependency(%q<money>, [">= 0"])
67
- s.add_dependency(%q<rspec>, ["~> 2.11.0"])
70
+ s.add_dependency(%q<rspec>, ["~> 2.12.0"])
68
71
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
69
- s.add_dependency(%q<bundler>, ["~> 1.2.1"])
72
+ s.add_dependency(%q<bundler>, [">= 1.1.0"])
70
73
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
71
74
  s.add_dependency(%q<simplecov>, [">= 0.4.0"])
72
- s.add_dependency(%q<database_cleaner>, ["~> 0.8.0"])
75
+ s.add_dependency(%q<database_cleaner>, ["~> 0.9.0"])
73
76
  end
74
77
  else
75
78
  s.add_dependency(%q<mongoid>, [">= 2.4.0"])
76
79
  s.add_dependency(%q<money>, [">= 0"])
77
- s.add_dependency(%q<rspec>, ["~> 2.11.0"])
80
+ s.add_dependency(%q<rspec>, ["~> 2.12.0"])
78
81
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
79
- s.add_dependency(%q<bundler>, ["~> 1.2.1"])
82
+ s.add_dependency(%q<bundler>, [">= 1.1.0"])
80
83
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
81
84
  s.add_dependency(%q<simplecov>, [">= 0.4.0"])
82
- s.add_dependency(%q<database_cleaner>, ["~> 0.8.0"])
85
+ s.add_dependency(%q<database_cleaner>, ["~> 0.9.0"])
83
86
  end
84
87
  end
85
88
 
data/spec/money_spec.rb CHANGED
@@ -15,20 +15,105 @@ describe Mongoid::MoneyField do
15
15
  it 'should be not valid to save when field is not filled in' do
16
16
  dummy = DummyMoneyRequired.new
17
17
  dummy.should_not be_valid
18
- dummy.errors.count.should eq 2
19
- dummy.errors.messages[:price][0].should eq "invalid value for price"
20
- dummy.errors.messages[:price][1].should eq "invalid value for price currency"
18
+ dummy.errors.count.should eq 1
19
+ dummy.errors.messages[:price][0].should eq "can't be blank"
21
20
  dummy.save.should eq false
22
21
  end
23
22
 
24
- it 'should be not valid to save when field is filled in but currency is not' do
23
+ it 'should be valid to save when field is filled in but currency is not' do
25
24
  dummy = DummyMoneyRequired.new
26
25
  dummy.price_cents = 123
26
+ dummy.should be_valid
27
+ dummy.save.should eq true
28
+ dummy.price_currency.should eq Money.default_currency.iso_code
29
+ end
30
+ end
31
+
32
+ describe 'when value is filled from code' do
33
+ it 'should raise the error when value consists non digits' do
34
+ dummy = DummyNotANumber.new
35
+ dummy.price = 'incorrect1'
36
+ dummy.should_not be_valid
37
+ dummy.errors.count.should eq 1
38
+ dummy.errors.messages[:price][0].should eq "is not a number"
39
+ dummy.save.should eq false
40
+ end
41
+
42
+ it 'should raise the error when value consists more then one decimal separator' do
43
+ dummy = DummyNotANumber.new
44
+ dummy.price = '121,212,22'
45
+ dummy.should_not be_valid
46
+ dummy.errors.count.should eq 1
47
+ dummy.errors.messages[:price][0].should eq "is not a number"
48
+ dummy.save.should eq false
49
+ end
50
+
51
+ it 'should raise the error when value is not present' do
52
+ dummy = DummyNotANumber.new
53
+ dummy.should_not be_valid
54
+ dummy.errors.count.should eq 1
55
+ dummy.errors.messages[:price][0].should eq "is not a number"
56
+ dummy.save.should eq false
57
+ end
58
+
59
+ it 'should raise the error when value is not present' do
60
+ dummy = DummyNotANumber.new( price: '' )
61
+ dummy.should_not be_valid
62
+ dummy.errors.count.should eq 1
63
+ dummy.errors.messages[:price][0].should eq "is not a number"
64
+ dummy.save.should eq false
65
+ end
66
+ end
67
+
68
+ describe 'when value is filled from SimpleForm' do
69
+ it 'should raise the error when value consists non digits' do
70
+ dummy = DummyNotANumber.new
71
+ dummy.price_plain = 'incorrect1'
72
+ dummy.should_not be_valid
73
+ dummy.errors.count.should eq 1
74
+ dummy.errors.messages[:price][0].should eq "is not a number"
75
+ dummy.save.should eq false
76
+ end
77
+
78
+ it 'should raise the error when value consists more then one decimal separator' do
79
+ dummy = DummyNotANumber.new
80
+ dummy.price_plain = '121,212,22'
81
+ dummy.should_not be_valid
82
+ dummy.errors.count.should eq 1
83
+ dummy.errors.messages[:price][0].should eq "is not a number"
84
+ dummy.save.should eq false
85
+ end
86
+ end
87
+
88
+ describe 'when value should be a positive number' do
89
+ it 'should raise the error when value lesser than 1' do
90
+ dummy = DummyPositiveNumber.new( price: '-10' )
91
+ dummy.should_not be_valid
92
+ dummy.errors.count.should eq 1
93
+ dummy.errors.messages[:price][0].should eq "must be greater than 1"
94
+ dummy.save.should eq false
95
+ dummy.price_cents.should eq -1000
96
+ end
97
+
98
+ it 'should raise the error when value lesser than 1' do
99
+ dummy = DummyPositiveNumber.new( price: '0' )
27
100
  dummy.should_not be_valid
28
101
  dummy.errors.count.should eq 1
29
- dummy.errors.messages[:price][0].should eq "invalid value for price currency"
102
+ dummy.errors.messages[:price][0].should eq "must be greater than 1"
30
103
  dummy.save.should eq false
31
104
  end
105
+
106
+ it 'should be ok when value is greater than 1' do
107
+ dummy = DummyPositiveNumber.new( price: '10' )
108
+ dummy.should be_valid
109
+ dummy.save.should eq true
110
+ end
111
+
112
+ it 'should be ok when value is not present' do
113
+ dummy = DummyPositiveNumber.new( price: '' )
114
+ dummy.should be_valid
115
+ dummy.save.should eq true
116
+ end
32
117
  end
33
118
 
34
119
  describe 'when both default currency and fixed currency is specified' do
@@ -157,7 +242,6 @@ describe Mongoid::MoneyField do
157
242
  end
158
243
  end
159
244
 
160
-
161
245
  describe 'when accessing a document from the datastore with a Money datatype and fixed currency' do
162
246
  it 'should have correct currency when value is set to 5$' do
163
247
  DummyMoneyWithFixedCurrency.create!(price: '5$')
@@ -218,7 +302,7 @@ describe Mongoid::MoneyField do
218
302
  describe 'when accessing a document from the datastore with embedded documents with money fields' do
219
303
  before(:each) do
220
304
  o = DummyOrder.new(first_name: 'test')
221
-
305
+
222
306
  o.dummy_line_items << DummyLineItem.new({name: 'item 1', price: Money.new(1299)})
223
307
  li = DummyLineItem.new({name: 'item 2', price: Money.new(1499)})
224
308
  o.dummy_line_items.push li
@@ -234,8 +318,7 @@ describe Mongoid::MoneyField do
234
318
  it 'should have correct value for first item' do
235
319
  o = DummyOrder.first
236
320
  o.dummy_line_items.last.price.should eq Money.parse('14.99')
237
- end
238
-
321
+ end
239
322
  end
240
323
 
241
324
  describe 'when accessing a document from the datastore with multiple Money datatypes' do
@@ -0,0 +1,10 @@
1
+ # coding: utf-8
2
+
3
+ class DummyNotANumber
4
+ include Mongoid::Document
5
+ include Mongoid::MoneyField
6
+
7
+ money_field :price
8
+
9
+ validates_numericality_of :price
10
+ end
@@ -0,0 +1,10 @@
1
+ # coding: utf-8
2
+
3
+ class DummyPositiveNumber
4
+ include Mongoid::Document
5
+ include Mongoid::MoneyField
6
+
7
+ money_field :price
8
+
9
+ validates_numericality_of :price, greater_than: 1, allow_nil: true
10
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_money_field
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-08 00:00:00.000000000 Z
12
+ date: 2012-11-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 2.11.0
53
+ version: 2.12.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 2.11.0
61
+ version: 2.12.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rdoc
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -80,17 +80,17 @@ dependencies:
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ~>
83
+ - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
- version: 1.2.1
85
+ version: 1.1.0
86
86
  type: :development
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ~>
91
+ - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
- version: 1.2.1
93
+ version: 1.1.0
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: jeweler
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: 0.8.0
133
+ version: 0.9.0
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  requirements:
139
139
  - - ~>
140
140
  - !ruby/object:Gem::Version
141
- version: 0.8.0
141
+ version: 0.9.0
142
142
  description: Use RubyMoney with mongoid
143
143
  email: glebtv@gmail.com
144
144
  executables: []
@@ -159,6 +159,7 @@ files:
159
159
  - gemfiles/mongoid2.gemfile
160
160
  - gemfiles/mongoid3.gemfile
161
161
  - lib/mongoid_money_field.rb
162
+ - lib/mongoid_money_field/simple_form/money_input.rb
162
163
  - mongoid_money_field.gemspec
163
164
  - spec/money_spec.rb
164
165
  - spec/spec_helper.rb
@@ -169,7 +170,9 @@ files:
169
170
  - spec/support/dummy_money_with_default_with_currency.rb
170
171
  - spec/support/dummy_money_with_fixed_currency.rb
171
172
  - spec/support/dummy_money_without_default.rb
173
+ - spec/support/dummy_not_a_number.rb
172
174
  - spec/support/dummy_override_default_currency.rb
175
+ - spec/support/dummy_positive_number.rb
173
176
  - spec/support/dummy_prices.rb
174
177
  - spec/support/dummy_with_default_currency.rb
175
178
  homepage: http://github.com/glebtv/mongoid_money_field
@@ -187,7 +190,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
190
  version: '0'
188
191
  segments:
189
192
  - 0
190
- hash: 2451846497476326695
193
+ hash: -3180143814510618992
191
194
  required_rubygems_version: !ruby/object:Gem::Requirement
192
195
  none: false
193
196
  requirements: