motion_model 0.3.7 → 0.3.8
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/lib/motion_model/model/model.rb +1 -2
- data/lib/motion_model/validatable.rb +6 -2
- data/lib/motion_model/version.rb +1 -1
- data/spec/validation_spec.rb +35 -3
- metadata +2 -2
@@ -402,8 +402,6 @@ module MotionModel
|
|
402
402
|
# in place if not.
|
403
403
|
def save(*)
|
404
404
|
call_hooks 'save' do
|
405
|
-
@dirty = false
|
406
|
-
|
407
405
|
# Existing object implies update in place
|
408
406
|
action = 'add'
|
409
407
|
set_auto_date_field 'created_at'
|
@@ -414,6 +412,7 @@ module MotionModel
|
|
414
412
|
else
|
415
413
|
collection << self
|
416
414
|
end
|
415
|
+
@dirty = false
|
417
416
|
self.class.issue_notification(self, :action => action)
|
418
417
|
end
|
419
418
|
end
|
@@ -120,9 +120,13 @@ module MotionModel
|
|
120
120
|
result
|
121
121
|
end
|
122
122
|
|
123
|
-
# Validates that something has been
|
123
|
+
# Validates that something has been endntered in a field.
|
124
|
+
# Should catch Fixnums, Bignums and Floats. Nils and Strings should
|
125
|
+
# be handled as well, Arrays, Hashes and other datatypes will not.
|
124
126
|
def validate_presence(field, value, setting)
|
125
|
-
if
|
127
|
+
if(value.is_a?(Numeric))
|
128
|
+
return true
|
129
|
+
elsif value.is_a?(String) || value.nil?
|
126
130
|
result = value.nil? || ((value.length == 0) == setting)
|
127
131
|
additional_message = setting ? "non-empty" : "non-empty"
|
128
132
|
add_message(field, "incorrect value supplied for #{field.to_s.humanize} -- should be #{additional_message}.") if result
|
data/lib/motion_model/version.rb
CHANGED
data/spec/validation_spec.rb
CHANGED
@@ -3,13 +3,17 @@ class ValidatableTask
|
|
3
3
|
include MotionModel::Validatable
|
4
4
|
columns :name => :string,
|
5
5
|
:email => :string,
|
6
|
-
:some_day => :string
|
6
|
+
:some_day => :string,
|
7
|
+
:some_float => :float,
|
8
|
+
:some_int => :int
|
7
9
|
|
8
10
|
validate :name, :presence => true
|
9
11
|
validate :name, :length => 2..10
|
10
12
|
validate :email, :email => true
|
11
13
|
validate :some_day, :format => /\A\d?\d-\d?\d-\d\d\Z/
|
12
14
|
validate :some_day, :length => 8..10
|
15
|
+
validate :some_float, :presence => true
|
16
|
+
validate :some_int, :presence => true
|
13
17
|
end
|
14
18
|
|
15
19
|
describe "validations" do
|
@@ -17,7 +21,9 @@ describe "validations" do
|
|
17
21
|
@valid_tasks = {
|
18
22
|
:name => 'bob',
|
19
23
|
:email => 'bob@domain.com',
|
20
|
-
:some_day => '12-12-12'
|
24
|
+
:some_day => '12-12-12',
|
25
|
+
:some_float => 1.080,
|
26
|
+
:some_int => 99
|
21
27
|
}
|
22
28
|
end
|
23
29
|
|
@@ -39,6 +45,33 @@ describe "validations" do
|
|
39
45
|
task.name = 'bob'
|
40
46
|
task.valid?.should === true
|
41
47
|
end
|
48
|
+
|
49
|
+
it "is false if the float is nil" do
|
50
|
+
task = ValidatableTask.new(@valid_tasks.except(:some_float))
|
51
|
+
task.valid?.should === false
|
52
|
+
end
|
53
|
+
|
54
|
+
it "is true if the float is filled in" do
|
55
|
+
task = ValidatableTask.new(@valid_tasks)
|
56
|
+
task.valid?.should === true
|
57
|
+
end
|
58
|
+
|
59
|
+
it "is false if the integer is nil" do
|
60
|
+
task = ValidatableTask.new(@valid_tasks.except(:some_int))
|
61
|
+
task.valid?.should === false
|
62
|
+
end
|
63
|
+
|
64
|
+
it "is true if the integer is filled in" do
|
65
|
+
task = ValidatableTask.new(@valid_tasks)
|
66
|
+
task.valid?.should === true
|
67
|
+
end
|
68
|
+
|
69
|
+
it "is true if the Numeric datatypes are zero" do
|
70
|
+
task = ValidatableTask.new(@valid_tasks)
|
71
|
+
task.some_float = 0
|
72
|
+
task.some_int = 0
|
73
|
+
task.valid?.should === true
|
74
|
+
end
|
42
75
|
end
|
43
76
|
|
44
77
|
describe "length" do
|
@@ -99,7 +132,6 @@ describe "validations" do
|
|
99
132
|
task = ValidatableTask.new
|
100
133
|
task.validate_for(:some_day, 'a-12-12').should == false
|
101
134
|
end
|
102
|
-
|
103
135
|
end
|
104
136
|
end
|
105
137
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
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: 2013-02-
|
12
|
+
date: 2013-02-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bubble-wrap
|