automagical_validations 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.3
4
+ - jruby
5
+ - ree
6
+ before_script:
7
+ - mysql -e 'create database automagical_validations_test;'
data/Gemfile CHANGED
@@ -3,8 +3,8 @@ source "http://rubygems.org"
3
3
  gem "activerecord", ">= 3.0.0"
4
4
 
5
5
  group :development do
6
- gem "rspec", "~> 2.8.0"
7
- gem "bundler", "~> 1.0.0"
8
- gem "jeweler", "~> 1.8.3"
9
- gem "sqlite3-ruby", "~> 1.3.3"
10
- end
6
+ gem "rspec"
7
+ gem "jeweler"
8
+ gem "mysql2", :platforms => :ruby
9
+ gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
10
+ end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- #automagical_validations
1
+ #automagical_validations [![Build Status](https://secure.travis-ci.org/tmikoss/automagical_validations.png)](http://travis-ci.org/tmikoss/automagical_validations)
2
2
 
3
3
  automagical_validations provides way to automatically apply validations to ActiveRecord models based on the information that can be inferred from database schema.
4
4
 
@@ -23,7 +23,7 @@ If a maximum length validation already exists for column (for example, `automagi
23
23
 
24
24
  Add the following line to your `Gemfile`
25
25
 
26
- gem "automagical_validations"
26
+ gem "automagical_validations", "~> 0.1.0"
27
27
 
28
28
  and run the `bundle install` command.
29
29
 
data/Rakefile CHANGED
@@ -31,4 +31,9 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
31
31
  spec.pattern = FileList['spec/**/*_spec.rb']
32
32
  end
33
33
 
34
+ desc 'Create database to run tests on'
35
+ task :create_database do
36
+ `mysql -u root -e 'create database automagical_validations_test;'`
37
+ end
38
+
34
39
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -0,0 +1,63 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "automagical_validations"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Toms Mikoss"]
12
+ s.date = "2012-06-03"
13
+ s.description = "ActiveRecord extension that allows to infer validation rules from database"
14
+ s.email = "toms.mikoss@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ ".travis.yml",
23
+ "Gemfile",
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "automagical_validations.gemspec",
29
+ "lib/automagical_validations.rb",
30
+ "spec/automagical_validations_spec.rb",
31
+ "spec/spec_helper.rb"
32
+ ]
33
+ s.homepage = "http://github.com/tmikoss/automagical_validations"
34
+ s.licenses = ["MIT"]
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = "1.8.24"
37
+ s.summary = "ActiveRecord extension that allows to infer validation rules from database"
38
+
39
+ if s.respond_to? :specification_version then
40
+ s.specification_version = 3
41
+
42
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
44
+ s.add_development_dependency(%q<rspec>, [">= 0"])
45
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
46
+ s.add_development_dependency(%q<mysql2>, [">= 0"])
47
+ s.add_development_dependency(%q<activerecord-jdbcmysql-adapter>, [">= 0"])
48
+ else
49
+ s.add_dependency(%q<activerecord>, [">= 3.0.0"])
50
+ s.add_dependency(%q<rspec>, [">= 0"])
51
+ s.add_dependency(%q<jeweler>, [">= 0"])
52
+ s.add_dependency(%q<mysql2>, [">= 0"])
53
+ s.add_dependency(%q<activerecord-jdbcmysql-adapter>, [">= 0"])
54
+ end
55
+ else
56
+ s.add_dependency(%q<activerecord>, [">= 3.0.0"])
57
+ s.add_dependency(%q<rspec>, [">= 0"])
58
+ s.add_dependency(%q<jeweler>, [">= 0"])
59
+ s.add_dependency(%q<mysql2>, [">= 0"])
60
+ s.add_dependency(%q<activerecord-jdbcmysql-adapter>, [">= 0"])
61
+ end
62
+ end
63
+
@@ -1,5 +1,6 @@
1
1
  module AutomagicalValidations
2
2
  def automagically_validate(*types_to_validate)
3
+ return unless self.table_exists?
3
4
  types_to_validate.map!{ |type| type.to_sym }
4
5
 
5
6
  columns.each do |column|
@@ -3,6 +3,12 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
3
  describe "AutomagicalValidations" do
4
4
  subject { Post.new }
5
5
 
6
+ context 'model without database table' do
7
+ it 'should be automagically validatable' do
8
+ expect { Comment.automagically_validate(:string, :text) }.to_not raise_error
9
+ end
10
+ end
11
+
6
12
  context "maximum length validator" do
7
13
  context "presence of validators" do
8
14
  before(:all) do
data/spec/spec_helper.rb CHANGED
@@ -8,10 +8,15 @@ require 'automagical_validations'
8
8
  # in ./support/ and its subdirectories.
9
9
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
10
10
 
11
- ActiveRecord::Base.establish_connection(
12
- :adapter => "sqlite3",
13
- :database => "#{File.dirname(__FILE__)}/automagical_validations.db"
14
- )
11
+ database_properties = {
12
+ :adapter => defined?(JRUBY_VERSION) ? "jdbcmysql" : "mysql2",
13
+ :host => "localhost",
14
+ :username => "root",
15
+ :password => "",
16
+ :database => "automagical_validations_test"
17
+ }
18
+
19
+ ActiveRecord::Base.establish_connection database_properties
15
20
 
16
21
  class Post < ActiveRecord::Base
17
22
  def self.rebuild_table
@@ -31,4 +36,6 @@ class Post < ActiveRecord::Base
31
36
  memo
32
37
  end
33
38
  end
34
- end
39
+ end
40
+
41
+ class Comment < ActiveRecord::Base; end
metadata CHANGED
@@ -1,115 +1,123 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: automagical_validations
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.1.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Toms Mikoss
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-04 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-06-03 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: activerecord
16
- requirement: &891825110 !ruby/object:Gem::Requirement
17
+ requirement: &id001 !ruby/object:Gem::Requirement
17
18
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
21
22
  version: 3.0.0
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *891825110
25
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
26
27
  name: rspec
27
- requirement: &891824830 !ruby/object:Gem::Requirement
28
+ requirement: &id002 !ruby/object:Gem::Requirement
28
29
  none: false
29
- requirements:
30
- - - ~>
31
- - !ruby/object:Gem::Version
32
- version: 2.8.0
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *891824830
36
- - !ruby/object:Gem::Dependency
37
- name: bundler
38
- requirement: &891824540 !ruby/object:Gem::Requirement
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: jeweler
39
+ requirement: &id003 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 1.0.0
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
44
45
  type: :development
45
46
  prerelease: false
46
- version_requirements: *891824540
47
- - !ruby/object:Gem::Dependency
48
- name: jeweler
49
- requirement: &891824100 !ruby/object:Gem::Requirement
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: mysql2
50
+ requirement: &id004 !ruby/object:Gem::Requirement
50
51
  none: false
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: 1.8.3
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
55
56
  type: :development
56
57
  prerelease: false
57
- version_requirements: *891824100
58
- - !ruby/object:Gem::Dependency
59
- name: sqlite3-ruby
60
- requirement: &891823040 !ruby/object:Gem::Requirement
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: activerecord-jdbcmysql-adapter
61
+ requirement: &id005 !ruby/object:Gem::Requirement
61
62
  none: false
62
- requirements:
63
- - - ~>
64
- - !ruby/object:Gem::Version
65
- version: 1.3.3
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
66
67
  type: :development
67
68
  prerelease: false
68
- version_requirements: *891823040
69
+ version_requirements: *id005
69
70
  description: ActiveRecord extension that allows to infer validation rules from database
70
71
  email: toms.mikoss@gmail.com
71
72
  executables: []
73
+
72
74
  extensions: []
73
- extra_rdoc_files:
75
+
76
+ extra_rdoc_files:
74
77
  - LICENSE.txt
75
78
  - README.md
76
- files:
79
+ files:
77
80
  - .document
78
81
  - .rspec
82
+ - .travis.yml
79
83
  - Gemfile
80
84
  - LICENSE.txt
81
85
  - README.md
82
86
  - Rakefile
83
87
  - VERSION
88
+ - automagical_validations.gemspec
84
89
  - lib/automagical_validations.rb
85
90
  - spec/automagical_validations_spec.rb
86
91
  - spec/spec_helper.rb
87
92
  homepage: http://github.com/tmikoss/automagical_validations
88
- licenses:
93
+ licenses:
89
94
  - MIT
90
95
  post_install_message:
91
96
  rdoc_options: []
92
- require_paths:
97
+
98
+ require_paths:
93
99
  - lib
94
- required_ruby_version: !ruby/object:Gem::Requirement
100
+ required_ruby_version: !ruby/object:Gem::Requirement
95
101
  none: false
96
- requirements:
97
- - - ! '>='
98
- - !ruby/object:Gem::Version
99
- version: '0'
100
- segments:
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: -3639426043304595810
106
+ segments:
101
107
  - 0
102
- hash: 802746131
103
- required_rubygems_version: !ruby/object:Gem::Requirement
108
+ version: "0"
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
110
  none: false
105
- requirements:
106
- - - ! '>='
107
- - !ruby/object:Gem::Version
108
- version: '0'
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: "0"
109
115
  requirements: []
116
+
110
117
  rubyforge_project:
111
- rubygems_version: 1.8.17
118
+ rubygems_version: 1.8.24
112
119
  signing_key:
113
120
  specification_version: 3
114
121
  summary: ActiveRecord extension that allows to infer validation rules from database
115
122
  test_files: []
123
+