schema_validations 0.1.2 → 0.2.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/.travis.yml +13 -0
- data/README.rdoc +20 -12
- data/Rakefile +1 -1
- data/gemfiles/Gemfile.rails-2.3 +4 -0
- data/gemfiles/Gemfile.rails-2.3.lock +65 -0
- data/gemfiles/Gemfile.rails-3.0 +4 -0
- data/gemfiles/Gemfile.rails-3.0.lock +110 -0
- data/gemfiles/Gemfile.rails-3.1 +4 -0
- data/gemfiles/Gemfile.rails-3.1.lock +120 -0
- data/gemfiles/Gemfile.rails-3.2 +4 -0
- data/gemfiles/Gemfile.rails-3.2.lock +118 -0
- data/lib/schema_validations/active_record/validations.rb +14 -0
- data/lib/schema_validations/version.rb +1 -1
- data/runspecs +47 -22
- data/schema_validations.gemspec +2 -11
- data/spec/validations_spec.rb +8 -0
- metadata +132 -88
data/.travis.yml
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
rvm:
|
|
2
|
+
- 1.8.7
|
|
3
|
+
- 1.9.2
|
|
4
|
+
- 1.9.3
|
|
5
|
+
gemfile:
|
|
6
|
+
- gemfiles/Gemfile.rails-2.3
|
|
7
|
+
- gemfiles/Gemfile.rails-3.0
|
|
8
|
+
- gemfiles/Gemfile.rails-3.1
|
|
9
|
+
- gemfiles/Gemfile.rails-3.2
|
|
10
|
+
notifications:
|
|
11
|
+
recipients:
|
|
12
|
+
- michal.lomnicki@gmail.com
|
|
13
|
+
- ronen@barzel.org
|
data/README.rdoc
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
= SchemaValidations
|
|
2
2
|
|
|
3
|
+
SchemaValidations is an ActiveRecord extension that keeps your model class
|
|
4
|
+
definitions simpler and more DRY, by automatically defining validations
|
|
5
|
+
based on the database schema.
|
|
6
|
+
|
|
7
|
+
{<img src="https://secure.travis-ci.org/lomba/schema_validations.png"/>}[http://travis-ci.org/lomba/schema_validations]
|
|
8
|
+
{<img src="https://gemnasium.com/lomba/schema_validations.png" alt="Dependency Status" />}[https://gemnasium.com/lomba/schema_validations]
|
|
9
|
+
|
|
3
10
|
== Overview
|
|
4
11
|
|
|
5
12
|
One of the great things about Rails (ActiveRecord, in particular) is that it
|
|
@@ -96,8 +103,8 @@ you probably want -- but if you don't want them, you can disable them using
|
|
|
96
103
|
== Compatibility
|
|
97
104
|
|
|
98
105
|
SchemaValidations supports all combinations of:
|
|
99
|
-
* rails 2.3, 3.0, or 3.
|
|
100
|
-
* MRI ruby 1.8.7 or 1.9.
|
|
106
|
+
* rails 2.3, 3.0, 3.1, or 3.2
|
|
107
|
+
* MRI ruby 1.8.7, 1.9.2, or 1.9.3
|
|
101
108
|
|
|
102
109
|
== How do I know what it did?
|
|
103
110
|
If you're curious (or dubious) about what validations SchemaValidations defines, you can check the log file. For every assocation that SchemaValidations defines, it generates an info entry such as
|
|
@@ -106,16 +113,18 @@ If you're curious (or dubious) about what validations SchemaValidations defines,
|
|
|
106
113
|
|
|
107
114
|
which shows the exact validation definition call.
|
|
108
115
|
|
|
109
|
-
SchemaValidations defines the validations lazily
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
TODO and blame you
|
|
116
|
+
SchemaValidations defines the validations lazily for each class, only
|
|
117
|
+
creating them when they are needed (to validate a record of the class, or
|
|
118
|
+
in response to introspection on the class). So you may need to search
|
|
119
|
+
through the log file for "schema_validations" to find all the validations,
|
|
120
|
+
and some classes' validations may not be defined at all if they
|
|
121
|
+
were never needed for the logged use case.
|
|
116
122
|
|
|
117
123
|
== History
|
|
118
124
|
|
|
125
|
+
* Recent Release notes:
|
|
126
|
+
* 0.2.0 - new feature: ActiveRecord#validators and ActiveRecord#validators_on now ensure schema_validations are loaded
|
|
127
|
+
|
|
119
128
|
* SchemaValidations is derived from the "Red Hill On Rails" plugin schema_validations originally created by harukizaemon (https://github.com/harukizaemon)
|
|
120
129
|
|
|
121
130
|
* SchemaValidations was created in 2011 by Michał Łomnicki and Ronen Barzel
|
|
@@ -132,11 +141,10 @@ full combo of tests, after you've forked & cloned:
|
|
|
132
141
|
|
|
133
142
|
See <tt>./runspecs --help</tt> for other options. You can also pick a specific version of rails and ruby to use, such as:
|
|
134
143
|
$ rvm use 1.9.2
|
|
135
|
-
$ export
|
|
136
|
-
$ bundle update --local rails
|
|
144
|
+
$ export BUNDLE_GEMFILE=gemfiles/Gemfile.rails-3.1
|
|
137
145
|
$ rake spec
|
|
138
146
|
|
|
139
|
-
If you're running ruby 1.9
|
|
147
|
+
If you're running ruby 1.9, code coverage results will be in coverage/index.html -- it should be at 100% coverage.
|
|
140
148
|
|
|
141
149
|
== License
|
|
142
150
|
|
data/Rakefile
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: /Users/ronen/github/schema_validations
|
|
3
|
+
specs:
|
|
4
|
+
schema_validations (0.1.2)
|
|
5
|
+
schema_plus
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: http://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
actionmailer (2.3.14)
|
|
11
|
+
actionpack (= 2.3.14)
|
|
12
|
+
actionpack (2.3.14)
|
|
13
|
+
activesupport (= 2.3.14)
|
|
14
|
+
rack (~> 1.1.0)
|
|
15
|
+
activerecord (2.3.14)
|
|
16
|
+
activesupport (= 2.3.14)
|
|
17
|
+
activeresource (2.3.14)
|
|
18
|
+
activesupport (= 2.3.14)
|
|
19
|
+
activesupport (2.3.14)
|
|
20
|
+
diff-lcs (1.1.3)
|
|
21
|
+
json (1.7.3)
|
|
22
|
+
multi_json (1.3.6)
|
|
23
|
+
rack (1.1.3)
|
|
24
|
+
rails (2.3.14)
|
|
25
|
+
actionmailer (= 2.3.14)
|
|
26
|
+
actionpack (= 2.3.14)
|
|
27
|
+
activerecord (= 2.3.14)
|
|
28
|
+
activeresource (= 2.3.14)
|
|
29
|
+
activesupport (= 2.3.14)
|
|
30
|
+
rake (>= 0.8.3)
|
|
31
|
+
rake (0.9.2.2)
|
|
32
|
+
rdoc (3.12)
|
|
33
|
+
json (~> 1.4)
|
|
34
|
+
rspec (2.10.0)
|
|
35
|
+
rspec-core (~> 2.10.0)
|
|
36
|
+
rspec-expectations (~> 2.10.0)
|
|
37
|
+
rspec-mocks (~> 2.10.0)
|
|
38
|
+
rspec-core (2.10.1)
|
|
39
|
+
rspec-expectations (2.10.0)
|
|
40
|
+
diff-lcs (~> 1.1.3)
|
|
41
|
+
rspec-mocks (2.10.1)
|
|
42
|
+
schema_plus (0.4.1)
|
|
43
|
+
rails
|
|
44
|
+
valuable
|
|
45
|
+
simplecov (0.6.4)
|
|
46
|
+
multi_json (~> 1.0)
|
|
47
|
+
simplecov-html (~> 0.5.3)
|
|
48
|
+
simplecov-gem-adapter (1.0.1)
|
|
49
|
+
simplecov
|
|
50
|
+
simplecov-html (0.5.3)
|
|
51
|
+
sqlite3 (1.3.6)
|
|
52
|
+
valuable (0.9.5)
|
|
53
|
+
|
|
54
|
+
PLATFORMS
|
|
55
|
+
ruby
|
|
56
|
+
|
|
57
|
+
DEPENDENCIES
|
|
58
|
+
rails (~> 2.3)
|
|
59
|
+
rake
|
|
60
|
+
rdoc
|
|
61
|
+
rspec
|
|
62
|
+
schema_validations!
|
|
63
|
+
simplecov
|
|
64
|
+
simplecov-gem-adapter
|
|
65
|
+
sqlite3
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: /Users/ronen/github/schema_validations
|
|
3
|
+
specs:
|
|
4
|
+
schema_validations (0.1.2)
|
|
5
|
+
schema_plus
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: http://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
abstract (1.0.0)
|
|
11
|
+
actionmailer (3.0.13)
|
|
12
|
+
actionpack (= 3.0.13)
|
|
13
|
+
mail (~> 2.2.19)
|
|
14
|
+
actionpack (3.0.13)
|
|
15
|
+
activemodel (= 3.0.13)
|
|
16
|
+
activesupport (= 3.0.13)
|
|
17
|
+
builder (~> 2.1.2)
|
|
18
|
+
erubis (~> 2.6.6)
|
|
19
|
+
i18n (~> 0.5.0)
|
|
20
|
+
rack (~> 1.2.5)
|
|
21
|
+
rack-mount (~> 0.6.14)
|
|
22
|
+
rack-test (~> 0.5.7)
|
|
23
|
+
tzinfo (~> 0.3.23)
|
|
24
|
+
activemodel (3.0.13)
|
|
25
|
+
activesupport (= 3.0.13)
|
|
26
|
+
builder (~> 2.1.2)
|
|
27
|
+
i18n (~> 0.5.0)
|
|
28
|
+
activerecord (3.0.13)
|
|
29
|
+
activemodel (= 3.0.13)
|
|
30
|
+
activesupport (= 3.0.13)
|
|
31
|
+
arel (~> 2.0.10)
|
|
32
|
+
tzinfo (~> 0.3.23)
|
|
33
|
+
activeresource (3.0.13)
|
|
34
|
+
activemodel (= 3.0.13)
|
|
35
|
+
activesupport (= 3.0.13)
|
|
36
|
+
activesupport (3.0.13)
|
|
37
|
+
arel (2.0.10)
|
|
38
|
+
builder (2.1.2)
|
|
39
|
+
diff-lcs (1.1.3)
|
|
40
|
+
erubis (2.6.6)
|
|
41
|
+
abstract (>= 1.0.0)
|
|
42
|
+
i18n (0.5.0)
|
|
43
|
+
json (1.7.3)
|
|
44
|
+
mail (2.2.19)
|
|
45
|
+
activesupport (>= 2.3.6)
|
|
46
|
+
i18n (>= 0.4.0)
|
|
47
|
+
mime-types (~> 1.16)
|
|
48
|
+
treetop (~> 1.4.8)
|
|
49
|
+
mime-types (1.18)
|
|
50
|
+
multi_json (1.3.6)
|
|
51
|
+
polyglot (0.3.3)
|
|
52
|
+
rack (1.2.5)
|
|
53
|
+
rack-mount (0.6.14)
|
|
54
|
+
rack (>= 1.0.0)
|
|
55
|
+
rack-test (0.5.7)
|
|
56
|
+
rack (>= 1.0)
|
|
57
|
+
rails (3.0.13)
|
|
58
|
+
actionmailer (= 3.0.13)
|
|
59
|
+
actionpack (= 3.0.13)
|
|
60
|
+
activerecord (= 3.0.13)
|
|
61
|
+
activeresource (= 3.0.13)
|
|
62
|
+
activesupport (= 3.0.13)
|
|
63
|
+
bundler (~> 1.0)
|
|
64
|
+
railties (= 3.0.13)
|
|
65
|
+
railties (3.0.13)
|
|
66
|
+
actionpack (= 3.0.13)
|
|
67
|
+
activesupport (= 3.0.13)
|
|
68
|
+
rake (>= 0.8.7)
|
|
69
|
+
rdoc (~> 3.4)
|
|
70
|
+
thor (~> 0.14.4)
|
|
71
|
+
rake (0.9.2.2)
|
|
72
|
+
rdoc (3.12)
|
|
73
|
+
json (~> 1.4)
|
|
74
|
+
rspec (2.10.0)
|
|
75
|
+
rspec-core (~> 2.10.0)
|
|
76
|
+
rspec-expectations (~> 2.10.0)
|
|
77
|
+
rspec-mocks (~> 2.10.0)
|
|
78
|
+
rspec-core (2.10.1)
|
|
79
|
+
rspec-expectations (2.10.0)
|
|
80
|
+
diff-lcs (~> 1.1.3)
|
|
81
|
+
rspec-mocks (2.10.1)
|
|
82
|
+
schema_plus (0.4.1)
|
|
83
|
+
rails
|
|
84
|
+
valuable
|
|
85
|
+
simplecov (0.6.4)
|
|
86
|
+
multi_json (~> 1.0)
|
|
87
|
+
simplecov-html (~> 0.5.3)
|
|
88
|
+
simplecov-gem-adapter (1.0.1)
|
|
89
|
+
simplecov
|
|
90
|
+
simplecov-html (0.5.3)
|
|
91
|
+
sqlite3 (1.3.6)
|
|
92
|
+
thor (0.14.6)
|
|
93
|
+
treetop (1.4.10)
|
|
94
|
+
polyglot
|
|
95
|
+
polyglot (>= 0.3.1)
|
|
96
|
+
tzinfo (0.3.33)
|
|
97
|
+
valuable (0.9.5)
|
|
98
|
+
|
|
99
|
+
PLATFORMS
|
|
100
|
+
ruby
|
|
101
|
+
|
|
102
|
+
DEPENDENCIES
|
|
103
|
+
rails (~> 3.0.0)
|
|
104
|
+
rake
|
|
105
|
+
rdoc
|
|
106
|
+
rspec
|
|
107
|
+
schema_validations!
|
|
108
|
+
simplecov
|
|
109
|
+
simplecov-gem-adapter
|
|
110
|
+
sqlite3
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: /Users/ronen/github/schema_validations
|
|
3
|
+
specs:
|
|
4
|
+
schema_validations (0.1.2)
|
|
5
|
+
schema_plus
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: http://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
actionmailer (3.1.5)
|
|
11
|
+
actionpack (= 3.1.5)
|
|
12
|
+
mail (~> 2.3.3)
|
|
13
|
+
actionpack (3.1.5)
|
|
14
|
+
activemodel (= 3.1.5)
|
|
15
|
+
activesupport (= 3.1.5)
|
|
16
|
+
builder (~> 3.0.0)
|
|
17
|
+
erubis (~> 2.7.0)
|
|
18
|
+
i18n (~> 0.6)
|
|
19
|
+
rack (~> 1.3.6)
|
|
20
|
+
rack-cache (~> 1.2)
|
|
21
|
+
rack-mount (~> 0.8.2)
|
|
22
|
+
rack-test (~> 0.6.1)
|
|
23
|
+
sprockets (~> 2.0.4)
|
|
24
|
+
activemodel (3.1.5)
|
|
25
|
+
activesupport (= 3.1.5)
|
|
26
|
+
builder (~> 3.0.0)
|
|
27
|
+
i18n (~> 0.6)
|
|
28
|
+
activerecord (3.1.5)
|
|
29
|
+
activemodel (= 3.1.5)
|
|
30
|
+
activesupport (= 3.1.5)
|
|
31
|
+
arel (~> 2.2.3)
|
|
32
|
+
tzinfo (~> 0.3.29)
|
|
33
|
+
activeresource (3.1.5)
|
|
34
|
+
activemodel (= 3.1.5)
|
|
35
|
+
activesupport (= 3.1.5)
|
|
36
|
+
activesupport (3.1.5)
|
|
37
|
+
multi_json (>= 1.0, < 1.3)
|
|
38
|
+
arel (2.2.3)
|
|
39
|
+
builder (3.0.0)
|
|
40
|
+
diff-lcs (1.1.3)
|
|
41
|
+
erubis (2.7.0)
|
|
42
|
+
hike (1.2.1)
|
|
43
|
+
i18n (0.6.0)
|
|
44
|
+
json (1.7.3)
|
|
45
|
+
mail (2.3.3)
|
|
46
|
+
i18n (>= 0.4.0)
|
|
47
|
+
mime-types (~> 1.16)
|
|
48
|
+
treetop (~> 1.4.8)
|
|
49
|
+
mime-types (1.18)
|
|
50
|
+
multi_json (1.2.0)
|
|
51
|
+
polyglot (0.3.3)
|
|
52
|
+
rack (1.3.6)
|
|
53
|
+
rack-cache (1.2)
|
|
54
|
+
rack (>= 0.4)
|
|
55
|
+
rack-mount (0.8.3)
|
|
56
|
+
rack (>= 1.0.0)
|
|
57
|
+
rack-ssl (1.3.2)
|
|
58
|
+
rack
|
|
59
|
+
rack-test (0.6.1)
|
|
60
|
+
rack (>= 1.0)
|
|
61
|
+
rails (3.1.5)
|
|
62
|
+
actionmailer (= 3.1.5)
|
|
63
|
+
actionpack (= 3.1.5)
|
|
64
|
+
activerecord (= 3.1.5)
|
|
65
|
+
activeresource (= 3.1.5)
|
|
66
|
+
activesupport (= 3.1.5)
|
|
67
|
+
bundler (~> 1.0)
|
|
68
|
+
railties (= 3.1.5)
|
|
69
|
+
railties (3.1.5)
|
|
70
|
+
actionpack (= 3.1.5)
|
|
71
|
+
activesupport (= 3.1.5)
|
|
72
|
+
rack-ssl (~> 1.3.2)
|
|
73
|
+
rake (>= 0.8.7)
|
|
74
|
+
rdoc (~> 3.4)
|
|
75
|
+
thor (~> 0.14.6)
|
|
76
|
+
rake (0.9.2.2)
|
|
77
|
+
rdoc (3.12)
|
|
78
|
+
json (~> 1.4)
|
|
79
|
+
rspec (2.10.0)
|
|
80
|
+
rspec-core (~> 2.10.0)
|
|
81
|
+
rspec-expectations (~> 2.10.0)
|
|
82
|
+
rspec-mocks (~> 2.10.0)
|
|
83
|
+
rspec-core (2.10.1)
|
|
84
|
+
rspec-expectations (2.10.0)
|
|
85
|
+
diff-lcs (~> 1.1.3)
|
|
86
|
+
rspec-mocks (2.10.1)
|
|
87
|
+
schema_plus (0.4.1)
|
|
88
|
+
rails
|
|
89
|
+
valuable
|
|
90
|
+
simplecov (0.6.4)
|
|
91
|
+
multi_json (~> 1.0)
|
|
92
|
+
simplecov-html (~> 0.5.3)
|
|
93
|
+
simplecov-gem-adapter (1.0.1)
|
|
94
|
+
simplecov
|
|
95
|
+
simplecov-html (0.5.3)
|
|
96
|
+
sprockets (2.0.4)
|
|
97
|
+
hike (~> 1.2)
|
|
98
|
+
rack (~> 1.0)
|
|
99
|
+
tilt (~> 1.1, != 1.3.0)
|
|
100
|
+
sqlite3 (1.3.6)
|
|
101
|
+
thor (0.14.6)
|
|
102
|
+
tilt (1.3.3)
|
|
103
|
+
treetop (1.4.10)
|
|
104
|
+
polyglot
|
|
105
|
+
polyglot (>= 0.3.1)
|
|
106
|
+
tzinfo (0.3.33)
|
|
107
|
+
valuable (0.9.5)
|
|
108
|
+
|
|
109
|
+
PLATFORMS
|
|
110
|
+
ruby
|
|
111
|
+
|
|
112
|
+
DEPENDENCIES
|
|
113
|
+
rails (~> 3.1.0)
|
|
114
|
+
rake
|
|
115
|
+
rdoc
|
|
116
|
+
rspec
|
|
117
|
+
schema_validations!
|
|
118
|
+
simplecov
|
|
119
|
+
simplecov-gem-adapter
|
|
120
|
+
sqlite3
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: /Users/ronen/github/schema_validations
|
|
3
|
+
specs:
|
|
4
|
+
schema_validations (0.1.2)
|
|
5
|
+
schema_plus
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: http://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
actionmailer (3.2.5)
|
|
11
|
+
actionpack (= 3.2.5)
|
|
12
|
+
mail (~> 2.4.4)
|
|
13
|
+
actionpack (3.2.5)
|
|
14
|
+
activemodel (= 3.2.5)
|
|
15
|
+
activesupport (= 3.2.5)
|
|
16
|
+
builder (~> 3.0.0)
|
|
17
|
+
erubis (~> 2.7.0)
|
|
18
|
+
journey (~> 1.0.1)
|
|
19
|
+
rack (~> 1.4.0)
|
|
20
|
+
rack-cache (~> 1.2)
|
|
21
|
+
rack-test (~> 0.6.1)
|
|
22
|
+
sprockets (~> 2.1.3)
|
|
23
|
+
activemodel (3.2.5)
|
|
24
|
+
activesupport (= 3.2.5)
|
|
25
|
+
builder (~> 3.0.0)
|
|
26
|
+
activerecord (3.2.5)
|
|
27
|
+
activemodel (= 3.2.5)
|
|
28
|
+
activesupport (= 3.2.5)
|
|
29
|
+
arel (~> 3.0.2)
|
|
30
|
+
tzinfo (~> 0.3.29)
|
|
31
|
+
activeresource (3.2.5)
|
|
32
|
+
activemodel (= 3.2.5)
|
|
33
|
+
activesupport (= 3.2.5)
|
|
34
|
+
activesupport (3.2.5)
|
|
35
|
+
i18n (~> 0.6)
|
|
36
|
+
multi_json (~> 1.0)
|
|
37
|
+
arel (3.0.2)
|
|
38
|
+
builder (3.0.0)
|
|
39
|
+
diff-lcs (1.1.3)
|
|
40
|
+
erubis (2.7.0)
|
|
41
|
+
hike (1.2.1)
|
|
42
|
+
i18n (0.6.0)
|
|
43
|
+
journey (1.0.3)
|
|
44
|
+
json (1.7.3)
|
|
45
|
+
mail (2.4.4)
|
|
46
|
+
i18n (>= 0.4.0)
|
|
47
|
+
mime-types (~> 1.16)
|
|
48
|
+
treetop (~> 1.4.8)
|
|
49
|
+
mime-types (1.18)
|
|
50
|
+
multi_json (1.3.6)
|
|
51
|
+
polyglot (0.3.3)
|
|
52
|
+
rack (1.4.1)
|
|
53
|
+
rack-cache (1.2)
|
|
54
|
+
rack (>= 0.4)
|
|
55
|
+
rack-ssl (1.3.2)
|
|
56
|
+
rack
|
|
57
|
+
rack-test (0.6.1)
|
|
58
|
+
rack (>= 1.0)
|
|
59
|
+
rails (3.2.5)
|
|
60
|
+
actionmailer (= 3.2.5)
|
|
61
|
+
actionpack (= 3.2.5)
|
|
62
|
+
activerecord (= 3.2.5)
|
|
63
|
+
activeresource (= 3.2.5)
|
|
64
|
+
activesupport (= 3.2.5)
|
|
65
|
+
bundler (~> 1.0)
|
|
66
|
+
railties (= 3.2.5)
|
|
67
|
+
railties (3.2.5)
|
|
68
|
+
actionpack (= 3.2.5)
|
|
69
|
+
activesupport (= 3.2.5)
|
|
70
|
+
rack-ssl (~> 1.3.2)
|
|
71
|
+
rake (>= 0.8.7)
|
|
72
|
+
rdoc (~> 3.4)
|
|
73
|
+
thor (>= 0.14.6, < 2.0)
|
|
74
|
+
rake (0.9.2.2)
|
|
75
|
+
rdoc (3.12)
|
|
76
|
+
json (~> 1.4)
|
|
77
|
+
rspec (2.10.0)
|
|
78
|
+
rspec-core (~> 2.10.0)
|
|
79
|
+
rspec-expectations (~> 2.10.0)
|
|
80
|
+
rspec-mocks (~> 2.10.0)
|
|
81
|
+
rspec-core (2.10.1)
|
|
82
|
+
rspec-expectations (2.10.0)
|
|
83
|
+
diff-lcs (~> 1.1.3)
|
|
84
|
+
rspec-mocks (2.10.1)
|
|
85
|
+
schema_plus (0.4.1)
|
|
86
|
+
rails
|
|
87
|
+
valuable
|
|
88
|
+
simplecov (0.6.4)
|
|
89
|
+
multi_json (~> 1.0)
|
|
90
|
+
simplecov-html (~> 0.5.3)
|
|
91
|
+
simplecov-gem-adapter (1.0.1)
|
|
92
|
+
simplecov
|
|
93
|
+
simplecov-html (0.5.3)
|
|
94
|
+
sprockets (2.1.3)
|
|
95
|
+
hike (~> 1.2)
|
|
96
|
+
rack (~> 1.0)
|
|
97
|
+
tilt (~> 1.1, != 1.3.0)
|
|
98
|
+
sqlite3 (1.3.6)
|
|
99
|
+
thor (0.15.2)
|
|
100
|
+
tilt (1.3.3)
|
|
101
|
+
treetop (1.4.10)
|
|
102
|
+
polyglot
|
|
103
|
+
polyglot (>= 0.3.1)
|
|
104
|
+
tzinfo (0.3.33)
|
|
105
|
+
valuable (0.9.5)
|
|
106
|
+
|
|
107
|
+
PLATFORMS
|
|
108
|
+
ruby
|
|
109
|
+
|
|
110
|
+
DEPENDENCIES
|
|
111
|
+
rails (~> 3.2.0)
|
|
112
|
+
rake
|
|
113
|
+
rdoc
|
|
114
|
+
rspec
|
|
115
|
+
schema_validations!
|
|
116
|
+
simplecov
|
|
117
|
+
simplecov-gem-adapter
|
|
118
|
+
sqlite3
|
|
@@ -5,6 +5,10 @@ module SchemaValidations
|
|
|
5
5
|
def self.extended(base) # :nodoc:
|
|
6
6
|
base.delegate :load_schema_validations, :to => 'self.class'
|
|
7
7
|
base.class_attribute :schema_validations_loaded
|
|
8
|
+
class << base
|
|
9
|
+
alias_method_chain :validators, :schema_validations
|
|
10
|
+
alias_method_chain :validators_on, :schema_validations
|
|
11
|
+
end if base.respond_to? :validators
|
|
8
12
|
end
|
|
9
13
|
|
|
10
14
|
def inherited(klass) # :nodoc:
|
|
@@ -12,6 +16,16 @@ module SchemaValidations
|
|
|
12
16
|
before_validation :load_schema_validations unless schema_validations_loaded?
|
|
13
17
|
end
|
|
14
18
|
|
|
19
|
+
def validators_with_schema_validations
|
|
20
|
+
load_schema_validations unless schema_validations_loaded?
|
|
21
|
+
validators_without_schema_validations
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def validators_on_with_schema_validations(*args)
|
|
25
|
+
load_schema_validations unless schema_validations_loaded?
|
|
26
|
+
validators_on_without_schema_validations(*args)
|
|
27
|
+
end
|
|
28
|
+
|
|
15
29
|
# Per-model override of Config options. Use via, e.g.
|
|
16
30
|
# class MyModel < ActiveRecord::Base
|
|
17
31
|
# schema_validations :auto_create => false
|
data/runspecs
CHANGED
|
@@ -2,20 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
require 'optparse'
|
|
4
4
|
require 'ostruct'
|
|
5
|
+
require 'tempfile'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
RUBY_VERSIONS = %W[1.8.7 1.9.2]
|
|
9
|
-
RAILS_VERSIONS = %W[2.3 3.0 3.1]
|
|
7
|
+
RUBY_VERSIONS = %W[1.8.7 1.9.2 1.9.3]
|
|
8
|
+
RAILS_VERSIONS = %W[2.3 3.0 3.1 3.2]
|
|
10
9
|
|
|
11
10
|
o = OpenStruct.new
|
|
12
11
|
o.ruby_versions = RUBY_VERSIONS
|
|
13
12
|
o.rails_versions = RAILS_VERSIONS
|
|
14
|
-
o.run_cmd = "rake spec"
|
|
15
13
|
|
|
16
14
|
OptionParser.new do |opts|
|
|
17
15
|
opts.banner = "Usage: #{$0} [options]"
|
|
18
16
|
|
|
17
|
+
opts.on("-n", "--dry-run", "Do a dry run without executing actions") do |v|
|
|
18
|
+
o.dry_run = true
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
opts.on("--update", "Update gem dependencies") do |v|
|
|
22
|
+
o.update = v
|
|
23
|
+
end
|
|
24
|
+
|
|
19
25
|
opts.on("--install", "Install gem dependencies") do |v|
|
|
20
26
|
o.install = v
|
|
21
27
|
end
|
|
@@ -35,24 +41,43 @@ OptionParser.new do |opts|
|
|
|
35
41
|
|
|
36
42
|
end.parse!
|
|
37
43
|
|
|
38
|
-
cmds = if o.install
|
|
39
|
-
['bundle update']
|
|
40
|
-
else
|
|
41
|
-
['bundle update --local rails | grep rails', o.run_cmd]
|
|
42
|
-
end
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
Combo = Struct.new(:ruby, :rails)
|
|
46
|
+
|
|
47
|
+
combos = o.ruby_versions.product(o.rails_versions).map{|product| Combo.new(*product)}.select {|combo|
|
|
48
|
+
case
|
|
49
|
+
when combo.rails >= "3.2" && combo.ruby <= "1.8.7" then false
|
|
50
|
+
else true
|
|
51
|
+
end
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
GEMFILES_DIR = File.expand_path('../gemfiles', __FILE__)
|
|
45
56
|
total = o.ruby_versions.size * o.rails_versions.size
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
errs = []
|
|
58
|
+
combos.each_with_index do |combo, n|
|
|
59
|
+
ruby = combo.ruby
|
|
60
|
+
rails = combo.rails
|
|
61
|
+
|
|
62
|
+
cmd = case
|
|
63
|
+
when o.update
|
|
64
|
+
"bundle update"
|
|
65
|
+
when o.install
|
|
66
|
+
"bundle install"
|
|
67
|
+
else
|
|
68
|
+
"bundle exec rake spec"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
command = %Q{BUNDLE_GEMFILE="#{File.join(GEMFILES_DIR, "Gemfile.rails-#{rails}")}" rvm #{ruby} do #{cmd}}
|
|
72
|
+
|
|
73
|
+
puts "\n\n*** ruby version #{ruby} - rails version #{rails} [#{n+1} of #{combos.size}]\n\n#{command}"
|
|
74
|
+
|
|
75
|
+
next if o.dry_run
|
|
76
|
+
|
|
77
|
+
Tempfile.open('runspecs') do |file|
|
|
78
|
+
system("(#{command}) 2>&1 | tee #{file.path}")
|
|
79
|
+
file.rewind
|
|
80
|
+
errs << "ruby #{ruby}, rails #{rails}" if file.readlines.grep(/^Failed examples/).any?
|
|
56
81
|
end
|
|
57
82
|
end
|
|
58
|
-
|
|
83
|
+
puts errs.any? ? "\n*** #{errs.size} failures:\n\t#{errs.join("\n\t")}" : "\n*** #{combos.size > 1 ? 'all versions' : 'spec'} succeeded ***" unless o.dry_run
|
data/schema_validations.gemspec
CHANGED
|
@@ -21,20 +21,11 @@ Gem::Specification.new do |s|
|
|
|
21
21
|
|
|
22
22
|
s.add_dependency("schema_plus")
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
s.add_development_dependency("rails", "~> 2.3")
|
|
27
|
-
when '3.0'
|
|
28
|
-
s.add_development_dependency("rails", "~> 3.0")
|
|
29
|
-
when '3.1'
|
|
30
|
-
s.add_development_dependency("rails", ">= 3.1.0.rc4")
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
s.add_development_dependency("rake", "~> 0.8.7")
|
|
24
|
+
s.add_development_dependency("rake")
|
|
25
|
+
s.add_development_dependency("rdoc")
|
|
34
26
|
s.add_development_dependency("rspec")
|
|
35
27
|
s.add_development_dependency("sqlite3")
|
|
36
28
|
s.add_development_dependency("simplecov")
|
|
37
29
|
s.add_development_dependency("simplecov-gem-adapter")
|
|
38
|
-
s.add_development_dependency("ruby-debug19") if RUBY_VERSION >= "1.9.2"
|
|
39
30
|
end
|
|
40
31
|
|
data/spec/validations_spec.rb
CHANGED
|
@@ -23,6 +23,14 @@ describe "Validations" do
|
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
# only expect this to work in Rails >= 3, which conveniently is when
|
|
27
|
+
# :validators was defined
|
|
28
|
+
if ActiveRecord::Base.respond_to? :validators
|
|
29
|
+
it "should define validators before attempting validation" do
|
|
30
|
+
Article.validators_on(:content).should_not be_blank
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
26
34
|
it "should be valid with valid attributes" do
|
|
27
35
|
Article.new(valid_attributes).should be_valid
|
|
28
36
|
end
|
metadata
CHANGED
|
@@ -1,112 +1,154 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: schema_validations
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.2.0
|
|
4
5
|
prerelease:
|
|
5
|
-
version: 0.1.2
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
7
|
+
authors:
|
|
8
8
|
- Ronen Barzel
|
|
9
|
-
-
|
|
9
|
+
- Michał Łomnicki
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
dependencies:
|
|
17
|
-
- !ruby/object:Gem::Dependency
|
|
13
|
+
date: 2012-10-20 00:00:00.000000000 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
18
16
|
name: schema_plus
|
|
19
|
-
|
|
20
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
|
21
18
|
none: false
|
|
22
|
-
requirements:
|
|
23
|
-
- -
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version:
|
|
19
|
+
requirements:
|
|
20
|
+
- - ! '>='
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '0'
|
|
26
23
|
type: :runtime
|
|
27
|
-
version_requirements: *id001
|
|
28
|
-
- !ruby/object:Gem::Dependency
|
|
29
|
-
name: rake
|
|
30
24
|
prerelease: false
|
|
31
|
-
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
32
26
|
none: false
|
|
33
|
-
requirements:
|
|
34
|
-
- -
|
|
35
|
-
- !ruby/object:Gem::Version
|
|
36
|
-
version: 0
|
|
27
|
+
requirements:
|
|
28
|
+
- - ! '>='
|
|
29
|
+
- !ruby/object:Gem::Version
|
|
30
|
+
version: '0'
|
|
31
|
+
- !ruby/object:Gem::Dependency
|
|
32
|
+
name: rake
|
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
|
34
|
+
none: false
|
|
35
|
+
requirements:
|
|
36
|
+
- - ! '>='
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: '0'
|
|
37
39
|
type: :development
|
|
38
|
-
version_requirements: *id002
|
|
39
|
-
- !ruby/object:Gem::Dependency
|
|
40
|
-
name: rspec
|
|
41
40
|
prerelease: false
|
|
42
|
-
|
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
42
|
none: false
|
|
44
|
-
requirements:
|
|
45
|
-
- -
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
43
|
+
requirements:
|
|
44
|
+
- - ! '>='
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: rdoc
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
none: false
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
48
55
|
type: :development
|
|
49
|
-
version_requirements: *id003
|
|
50
|
-
- !ruby/object:Gem::Dependency
|
|
51
|
-
name: sqlite3
|
|
52
56
|
prerelease: false
|
|
53
|
-
|
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
54
58
|
none: false
|
|
55
|
-
requirements:
|
|
56
|
-
- -
|
|
57
|
-
- !ruby/object:Gem::Version
|
|
58
|
-
version:
|
|
59
|
+
requirements:
|
|
60
|
+
- - ! '>='
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '0'
|
|
63
|
+
- !ruby/object:Gem::Dependency
|
|
64
|
+
name: rspec
|
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
|
66
|
+
none: false
|
|
67
|
+
requirements:
|
|
68
|
+
- - ! '>='
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: '0'
|
|
59
71
|
type: :development
|
|
60
|
-
version_requirements: *id004
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: simplecov
|
|
63
72
|
prerelease: false
|
|
64
|
-
|
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
74
|
none: false
|
|
66
|
-
requirements:
|
|
67
|
-
- -
|
|
68
|
-
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
75
|
+
requirements:
|
|
76
|
+
- - ! '>='
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: '0'
|
|
79
|
+
- !ruby/object:Gem::Dependency
|
|
80
|
+
name: sqlite3
|
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
|
82
|
+
none: false
|
|
83
|
+
requirements:
|
|
84
|
+
- - ! '>='
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '0'
|
|
70
87
|
type: :development
|
|
71
|
-
version_requirements: *id005
|
|
72
|
-
- !ruby/object:Gem::Dependency
|
|
73
|
-
name: simplecov-gem-adapter
|
|
74
88
|
prerelease: false
|
|
75
|
-
|
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
90
|
+
none: false
|
|
91
|
+
requirements:
|
|
92
|
+
- - ! '>='
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: '0'
|
|
95
|
+
- !ruby/object:Gem::Dependency
|
|
96
|
+
name: simplecov
|
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
|
76
98
|
none: false
|
|
77
|
-
requirements:
|
|
78
|
-
- -
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version:
|
|
99
|
+
requirements:
|
|
100
|
+
- - ! '>='
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
81
103
|
type: :development
|
|
82
|
-
version_requirements: *id006
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: ruby-debug19
|
|
85
104
|
prerelease: false
|
|
86
|
-
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
87
106
|
none: false
|
|
88
|
-
requirements:
|
|
89
|
-
- -
|
|
90
|
-
- !ruby/object:Gem::Version
|
|
91
|
-
version:
|
|
107
|
+
requirements:
|
|
108
|
+
- - ! '>='
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: simplecov-gem-adapter
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
none: false
|
|
115
|
+
requirements:
|
|
116
|
+
- - ! '>='
|
|
117
|
+
- !ruby/object:Gem::Version
|
|
118
|
+
version: '0'
|
|
92
119
|
type: :development
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
120
|
+
prerelease: false
|
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
122
|
+
none: false
|
|
123
|
+
requirements:
|
|
124
|
+
- - ! '>='
|
|
125
|
+
- !ruby/object:Gem::Version
|
|
126
|
+
version: '0'
|
|
127
|
+
description: SchemaValidations extends ActiveRecord to automatically create validations
|
|
128
|
+
by inspecting the database schema. This makes your models more DRY as you no longer
|
|
129
|
+
need to duplicate NOT NULL, unique, numeric and varchar constraints on the model
|
|
130
|
+
level.
|
|
131
|
+
email:
|
|
96
132
|
- ronen@barzel.org
|
|
97
133
|
- michal.lomnicki@gmail.com
|
|
98
134
|
executables: []
|
|
99
|
-
|
|
100
135
|
extensions: []
|
|
101
|
-
|
|
102
136
|
extra_rdoc_files: []
|
|
103
|
-
|
|
104
|
-
files:
|
|
137
|
+
files:
|
|
105
138
|
- .gitignore
|
|
139
|
+
- .travis.yml
|
|
106
140
|
- Gemfile
|
|
107
141
|
- MIT-LICENSE
|
|
108
142
|
- README.rdoc
|
|
109
143
|
- Rakefile
|
|
144
|
+
- gemfiles/Gemfile.rails-2.3
|
|
145
|
+
- gemfiles/Gemfile.rails-2.3.lock
|
|
146
|
+
- gemfiles/Gemfile.rails-3.0
|
|
147
|
+
- gemfiles/Gemfile.rails-3.0.lock
|
|
148
|
+
- gemfiles/Gemfile.rails-3.1
|
|
149
|
+
- gemfiles/Gemfile.rails-3.1.lock
|
|
150
|
+
- gemfiles/Gemfile.rails-3.2
|
|
151
|
+
- gemfiles/Gemfile.rails-3.2.lock
|
|
110
152
|
- init.rb
|
|
111
153
|
- lib/schema_validations.rb
|
|
112
154
|
- lib/schema_validations/active_record/validations.rb
|
|
@@ -118,35 +160,37 @@ files:
|
|
|
118
160
|
- spec/spec_helper.rb
|
|
119
161
|
- spec/support/active_model.rb
|
|
120
162
|
- spec/validations_spec.rb
|
|
121
|
-
has_rdoc: true
|
|
122
163
|
homepage: https://github.com/lomba/schema_validations
|
|
123
164
|
licenses: []
|
|
124
|
-
|
|
125
165
|
post_install_message:
|
|
126
166
|
rdoc_options: []
|
|
127
|
-
|
|
128
|
-
require_paths:
|
|
167
|
+
require_paths:
|
|
129
168
|
- lib
|
|
130
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
170
|
none: false
|
|
132
|
-
requirements:
|
|
133
|
-
- -
|
|
134
|
-
- !ruby/object:Gem::Version
|
|
135
|
-
version:
|
|
136
|
-
|
|
171
|
+
requirements:
|
|
172
|
+
- - ! '>='
|
|
173
|
+
- !ruby/object:Gem::Version
|
|
174
|
+
version: '0'
|
|
175
|
+
segments:
|
|
176
|
+
- 0
|
|
177
|
+
hash: 4384088821395640106
|
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
179
|
none: false
|
|
138
|
-
requirements:
|
|
139
|
-
- -
|
|
140
|
-
- !ruby/object:Gem::Version
|
|
141
|
-
version:
|
|
180
|
+
requirements:
|
|
181
|
+
- - ! '>='
|
|
182
|
+
- !ruby/object:Gem::Version
|
|
183
|
+
version: '0'
|
|
184
|
+
segments:
|
|
185
|
+
- 0
|
|
186
|
+
hash: 4384088821395640106
|
|
142
187
|
requirements: []
|
|
143
|
-
|
|
144
188
|
rubyforge_project: schema_validations
|
|
145
|
-
rubygems_version: 1.
|
|
189
|
+
rubygems_version: 1.8.24
|
|
146
190
|
signing_key:
|
|
147
191
|
specification_version: 3
|
|
148
192
|
summary: Automatically creates validations basing on the database schema.
|
|
149
|
-
test_files:
|
|
193
|
+
test_files:
|
|
150
194
|
- spec/connection.rb
|
|
151
195
|
- spec/spec_helper.rb
|
|
152
196
|
- spec/support/active_model.rb
|