auto_validations 0.0.1
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 +6 -0
- data/Gemfile +4 -0
- data/Rakefile +13 -0
- data/auto_validations.gemspec +25 -0
- data/lib/auto_validations.rb +19 -0
- data/lib/auto_validations/version.rb +3 -0
- data/test/auto_length_test.rb +40 -0
- data/test/support/database.yml +3 -0
- data/test/support/models.rb +2 -0
- data/test/support/schema.rb +7 -0
- data/test/test_helper.rb +11 -0
- metadata +112 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "auto_validations/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "auto_validations"
|
7
|
+
s.version = AutoValidations::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ['Rodrigo Navarro', 'Guilherme Ceolin']
|
10
|
+
s.email = ['rnavarro1@gmail.com', 'guiceolin@gmail.com']
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Auto generate validations for your models}
|
13
|
+
s.description = %q{Extract validations from your database information}
|
14
|
+
|
15
|
+
s.rubyforge_project = "auto_validations"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_dependency 'activerecord', '~> 3'
|
23
|
+
|
24
|
+
s.add_development_dependency 'sqlite3-ruby', '~> 1.3'
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'active_record'
|
4
|
+
|
5
|
+
module AutoValidations
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def auto_length_validation
|
10
|
+
columns.each do |column|
|
11
|
+
validates_length_of column.name, :maximum => column.limit if column.limit
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class ActiveRecord::Base
|
18
|
+
include AutoValidations
|
19
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class AboveLengthValidationsTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
Android.auto_length_validation
|
6
|
+
|
7
|
+
@android = Android.new :name => 'A Very big name indeed',
|
8
|
+
:description => 'Fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu',
|
9
|
+
:number => 115
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_add_errors_to_the_name_field
|
13
|
+
assert @android.invalid?
|
14
|
+
assert_not_nil @android.errors[:name]
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_should_add_errors_to_the_descriptiom_field
|
18
|
+
assert @android.invalid?
|
19
|
+
assert_not_nil @android.errors[:description]
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_should_add_errors_to_the_number_field
|
23
|
+
assert @android.invalid?
|
24
|
+
assert_not_nil @android.errors[:number]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class BelowLengthValidationsTest < Test::Unit::TestCase
|
29
|
+
def setup
|
30
|
+
Android.auto_length_validation
|
31
|
+
|
32
|
+
@android = Android.new :name => 'Android',
|
33
|
+
:description => 'DBZ character',
|
34
|
+
:number => 16
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_should_be_valid
|
38
|
+
assert @android.valid?
|
39
|
+
end
|
40
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'active_record'
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../lib/auto_validations'
|
7
|
+
|
8
|
+
config = YAML.load_file File.join(File.dirname(__FILE__), 'support', 'database.yml')
|
9
|
+
ActiveRecord::Base.establish_connection config[ENV['DB'] || 'sqlite3']
|
10
|
+
|
11
|
+
Dir["#{File.dirname(__FILE__)}/support/*.rb"].each { |f| require f }
|
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: auto_validations
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Rodrigo Navarro
|
14
|
+
- Guilherme Ceolin
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2011-05-12 00:00:00 -03:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
name: activerecord
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 5
|
31
|
+
segments:
|
32
|
+
- 3
|
33
|
+
version: "3"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: sqlite3-ruby
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 9
|
45
|
+
segments:
|
46
|
+
- 1
|
47
|
+
- 3
|
48
|
+
version: "1.3"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
description: Extract validations from your database information
|
52
|
+
email:
|
53
|
+
- rnavarro1@gmail.com
|
54
|
+
- guiceolin@gmail.com
|
55
|
+
executables: []
|
56
|
+
|
57
|
+
extensions: []
|
58
|
+
|
59
|
+
extra_rdoc_files: []
|
60
|
+
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- Rakefile
|
65
|
+
- auto_validations.gemspec
|
66
|
+
- lib/auto_validations.rb
|
67
|
+
- lib/auto_validations/version.rb
|
68
|
+
- test/auto_length_test.rb
|
69
|
+
- test/support/database.yml
|
70
|
+
- test/support/models.rb
|
71
|
+
- test/support/schema.rb
|
72
|
+
- test/test_helper.rb
|
73
|
+
has_rdoc: true
|
74
|
+
homepage: ""
|
75
|
+
licenses: []
|
76
|
+
|
77
|
+
post_install_message:
|
78
|
+
rdoc_options: []
|
79
|
+
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
hash: 3
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
version: "0"
|
100
|
+
requirements: []
|
101
|
+
|
102
|
+
rubyforge_project: auto_validations
|
103
|
+
rubygems_version: 1.5.0
|
104
|
+
signing_key:
|
105
|
+
specification_version: 3
|
106
|
+
summary: Auto generate validations for your models
|
107
|
+
test_files:
|
108
|
+
- test/auto_length_test.rb
|
109
|
+
- test/support/database.yml
|
110
|
+
- test/support/models.rb
|
111
|
+
- test/support/schema.rb
|
112
|
+
- test/test_helper.rb
|