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.
@@ -0,0 +1,4 @@
1
+ ActiveRecord::Base.establish_connection(
2
+ :adapter => "postgresql",
3
+ :database => "auto-validate"
4
+ )
@@ -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;
@@ -0,0 +1,3 @@
1
+ class NoTable < ActiveRecord::Base
2
+ auto_validate
3
+ end
@@ -0,0 +1,3 @@
1
+ class PromoCode < ActiveRecord::Base
2
+ auto_validate
3
+ end
@@ -0,0 +1,5 @@
1
+ class Tag < ActiveRecord::Base
2
+ has_many :taggings
3
+ has_many :users, :through => :taggings
4
+ auto_validate
5
+ end
@@ -0,0 +1,5 @@
1
+ class Tagging < ActiveRecord::Base
2
+ belongs_to :user
3
+ belongs_to :tag
4
+ auto_validate
5
+ end
@@ -0,0 +1,8 @@
1
+ class User < ActiveRecord::Base
2
+ auto_validate
3
+ has_secure_password
4
+
5
+ has_many :widget_requests
6
+ has_many :taggings
7
+ has_many :tags, :through => :taggings
8
+ end
@@ -0,0 +1,5 @@
1
+ class WidgetRequest < ActiveRecord::Base
2
+ validates_numericality_of :quantity, :greater_than_or_equal_to => 1
3
+ auto_validate
4
+ belongs_to :user
5
+ end
File without changes
@@ -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: []