auto_validate 0.0.2
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 +4 -0
- data/Gemfile +4 -0
- data/LICENSE +2693 -0
- data/README.md +48 -0
- data/Rakefile +16 -0
- data/auto_validate.gemspec +30 -0
- data/lib/auto_validate.rb +216 -0
- data/lib/auto_validate/version.rb +3 -0
- data/lib/tasks/prepare.rake +13 -0
- data/test/auto_validate/null_constraint_test.rb +28 -0
- data/test/auto_validate/numericality_test.rb +30 -0
- data/test/auto_validate/uniqueness_test.rb +51 -0
- data/test/connection.rb +4 -0
- data/test/dummy_migrations/postgresql.sql +46 -0
- data/test/dummy_models/no_table.rb +3 -0
- data/test/dummy_models/promo_code.rb +3 -0
- data/test/dummy_models/tag.rb +5 -0
- data/test/dummy_models/tagging.rb +5 -0
- data/test/dummy_models/user.rb +8 -0
- data/test/dummy_models/widget_request.rb +5 -0
- data/test/factories/user_factory.rb +0 -0
- data/test/test_helper.rb +32 -0
- metadata +173 -0
data/test/connection.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
begin;
|
2
|
+
create sequence users_id_seq start 1 increment 1 no cycle;
|
3
|
+
create table users(
|
4
|
+
id integer not null default nextval('users_id_seq'),
|
5
|
+
email text not null,
|
6
|
+
password_digest text not null,
|
7
|
+
admin boolean not null default false,
|
8
|
+
primary key(id)
|
9
|
+
);
|
10
|
+
create unique index users_lower_email_idx on users(lower(email));
|
11
|
+
|
12
|
+
create sequence promo_codes_id_seq start 1 increment 1 no cycle;
|
13
|
+
create table promo_codes(
|
14
|
+
id integer not null default nextval('promo_codes_id_seq'),
|
15
|
+
code varchar(8) not null,
|
16
|
+
description text not null,
|
17
|
+
primary key(id)
|
18
|
+
);
|
19
|
+
create unique index promo_codes_code_idx on promo_codes(code);
|
20
|
+
|
21
|
+
create sequence widget_requests_id_seq start 1 increment 1 no cycle;
|
22
|
+
create table widget_requests(
|
23
|
+
id integer not null default nextval('widget_requests_id_seq'),
|
24
|
+
user_id integer not null references users(id),
|
25
|
+
quantity integer not null,
|
26
|
+
primary key(id)
|
27
|
+
);
|
28
|
+
|
29
|
+
create sequence tags_id_seq start 1 increment 1 no cycle;
|
30
|
+
create table tags(
|
31
|
+
id integer not null default nextval('tags_id_seq'),
|
32
|
+
name varchar(60) not null,
|
33
|
+
primary key(id)
|
34
|
+
);
|
35
|
+
create unique index tags_name_idx on tags(name);
|
36
|
+
|
37
|
+
create sequence taggings_id_seq start 1 increment 1 no cycle;
|
38
|
+
create table taggings(
|
39
|
+
id integer not null default nextval('taggings_id_seq'),
|
40
|
+
user_id integer not null references users(id),
|
41
|
+
tag_id integer not null references tags(id),
|
42
|
+
primary key(id)
|
43
|
+
);
|
44
|
+
|
45
|
+
create unique index taggings_user_id_tag_id_idx on taggings(user_id, tag_id);
|
46
|
+
commit;
|
File without changes
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'active_support'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'factory_girl'
|
5
|
+
require 'connection'
|
6
|
+
require 'auto_validate'
|
7
|
+
require 'database_cleaner'
|
8
|
+
|
9
|
+
DatabaseCleaner.strategy = :truncation
|
10
|
+
|
11
|
+
%w(dummy_models factories).each do |dir|
|
12
|
+
$LOAD_PATH.unshift("test/#{dir}")
|
13
|
+
Dir[File.join('test', dir, '*.rb')].each do |file|
|
14
|
+
require File.basename(file, ".rb")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class Test::Unit::TestCase
|
19
|
+
|
20
|
+
def setup
|
21
|
+
DatabaseCleaner.start
|
22
|
+
end
|
23
|
+
|
24
|
+
def deny(condition)
|
25
|
+
assert ! condition
|
26
|
+
end
|
27
|
+
|
28
|
+
def teardown
|
29
|
+
DatabaseCleaner.clean
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,173 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: auto_validate
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Omar Qureshi
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-12 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &17733360 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.9.2
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *17733360
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: shoulda
|
27
|
+
requirement: &17732280 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *17732280
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: shoulda-matchers
|
38
|
+
requirement: &17731160 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *17731160
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: shoulda-context
|
49
|
+
requirement: &17730260 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *17730260
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: pg
|
60
|
+
requirement: &17729020 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *17729020
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: factory_girl
|
71
|
+
requirement: &17723100 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *17723100
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: bcrypt-ruby
|
82
|
+
requirement: &17722480 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *17722480
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: database_cleaner
|
93
|
+
requirement: &17721740 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *17721740
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rails
|
104
|
+
requirement: &17721020 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *17721020
|
113
|
+
description: This gem looks at the schema for any validations that it can easily apply
|
114
|
+
based on known db constraints and adds application level validations for them
|
115
|
+
email:
|
116
|
+
- omar@omarqureshi.net
|
117
|
+
executables: []
|
118
|
+
extensions: []
|
119
|
+
extra_rdoc_files: []
|
120
|
+
files:
|
121
|
+
- .gitignore
|
122
|
+
- Gemfile
|
123
|
+
- LICENSE
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- auto_validate.gemspec
|
127
|
+
- lib/auto_validate.rb
|
128
|
+
- lib/auto_validate/version.rb
|
129
|
+
- lib/tasks/prepare.rake
|
130
|
+
- test/auto_validate/null_constraint_test.rb
|
131
|
+
- test/auto_validate/numericality_test.rb
|
132
|
+
- test/auto_validate/uniqueness_test.rb
|
133
|
+
- test/connection.rb
|
134
|
+
- test/dummy_migrations/postgresql.sql
|
135
|
+
- test/dummy_models/no_table.rb
|
136
|
+
- test/dummy_models/promo_code.rb
|
137
|
+
- test/dummy_models/tag.rb
|
138
|
+
- test/dummy_models/tagging.rb
|
139
|
+
- test/dummy_models/user.rb
|
140
|
+
- test/dummy_models/widget_request.rb
|
141
|
+
- test/factories/user_factory.rb
|
142
|
+
- test/test_helper.rb
|
143
|
+
homepage: http://omarqureshi.net
|
144
|
+
licenses: []
|
145
|
+
post_install_message:
|
146
|
+
rdoc_options: []
|
147
|
+
require_paths:
|
148
|
+
- lib
|
149
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
151
|
+
requirements:
|
152
|
+
- - ! '>='
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
segments:
|
156
|
+
- 0
|
157
|
+
hash: -513002920421080181
|
158
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
160
|
+
requirements:
|
161
|
+
- - ! '>='
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: '0'
|
164
|
+
segments:
|
165
|
+
- 0
|
166
|
+
hash: -513002920421080181
|
167
|
+
requirements: []
|
168
|
+
rubyforge_project: auto_validate
|
169
|
+
rubygems_version: 1.8.15
|
170
|
+
signing_key:
|
171
|
+
specification_version: 3
|
172
|
+
summary: Automatic validations for ActiveRecord
|
173
|
+
test_files: []
|