kawaii_validation 0.0.3 → 1.0.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.
- checksums.yaml +4 -4
- data/.travis.yml +5 -0
- data/README.md +7 -3
- data/Rakefile +13 -1
- data/kawaii_validation.gemspec +2 -2
- data/lib/kawaii_validation/validates_with_block.rb +1 -1
- data/{spec → test}/fake_app.rb +0 -0
- data/test/test_helper.rb +24 -0
- data/test/validations_test.rb +79 -0
- metadata +28 -27
- data/spec/spec_helper.rb +0 -17
- data/spec/validations_spec.rb +0 -83
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f7eb7c973a0aa833269f6adac8e475029e48f2c
|
4
|
+
data.tar.gz: 335f14ba3e2182f2535a1f7b37d74cbd18b96127
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe96a028ca0da13b48f10b3daedc401789cdb5adc1d337f74376f9c7a9e4cbaf5e5ebbd121e36d8f3bea96dd363616b9e45f6101a620db67237bb1b0fe5de1ae
|
7
|
+
data.tar.gz: 3585113563cfbf969a9a91f35230695f1c1d45573d7aa06c326d3bf4078c6ad4358fc92cb846be09b3ec5bbe1912a35475a3b15004ba64cd6ac9da6a6e5fb168
|
data/README.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
An ActiveRecord extension that adds more kawaii validation syntax.
|
4
4
|
|
5
|
+
## Motivation
|
6
|
+
|
7
|
+
The "Sexy Validation" syntax is not at all sexy.
|
8
|
+
|
5
9
|
## Installation
|
6
10
|
|
7
11
|
Gemfile:
|
@@ -12,11 +16,11 @@ And then execute:
|
|
12
16
|
|
13
17
|
$ bundle
|
14
18
|
|
15
|
-
## Supported versions
|
19
|
+
## Supported versions
|
16
20
|
|
17
|
-
* Ruby 2.0, and 2.
|
21
|
+
* Ruby 2.0, 2.1, 2.2, 2.3, and 2.4 (trunk)
|
18
22
|
|
19
|
-
* Rails 3.2.x, 4.0
|
23
|
+
* Rails 3.2.x, 4.0, 4.1, 4.2, and 5.0 (edge)
|
20
24
|
|
21
25
|
## Usage
|
22
26
|
|
data/Rakefile
CHANGED
@@ -1 +1,13 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'rake/testtask'
|
5
|
+
|
6
|
+
Rake::TestTask.new do |t|
|
7
|
+
t.libs << "test"
|
8
|
+
t.pattern = 'test/**/*_test.rb'
|
9
|
+
t.warning = true
|
10
|
+
t.verbose = true
|
11
|
+
end
|
12
|
+
|
13
|
+
task default: :test
|
data/kawaii_validation.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "kawaii_validation"
|
7
|
-
spec.version = '0.0
|
7
|
+
spec.version = '1.0.0'
|
8
8
|
spec.authors = ["Akira Matsuda"]
|
9
9
|
spec.email = ["ronnie@dio.jp"]
|
10
10
|
spec.description = 'Model.validates { presence_of :name }'
|
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.3"
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency 'rails'
|
25
|
-
spec.add_development_dependency '
|
25
|
+
spec.add_development_dependency 'test-unit-rails'
|
26
26
|
spec.add_development_dependency 'sqlite3'
|
27
27
|
end
|
data/{spec → test}/fake_app.rb
RENAMED
File without changes
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
# load Rails first
|
4
|
+
require 'rails'
|
5
|
+
|
6
|
+
# load the plugin
|
7
|
+
require 'kawaii_validation'
|
8
|
+
|
9
|
+
# needs to load the app next
|
10
|
+
require 'fake_app'
|
11
|
+
|
12
|
+
require 'test/unit/rails/test_help'
|
13
|
+
# require 'action_controller/railtie' # needed for Rails 4 + RSpec...
|
14
|
+
|
15
|
+
module DatabaseDeleter
|
16
|
+
def setup
|
17
|
+
User.delete_all
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Test::Unit::TestCase.send :prepend, DatabaseDeleter
|
23
|
+
|
24
|
+
CreateAllTables.up unless ActiveRecord::Base.connection.table_exists? 'users'
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ValidationTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
User.reset_callbacks(:validate)
|
6
|
+
User._validators.clear
|
7
|
+
end
|
8
|
+
|
9
|
+
test 'no validation' do
|
10
|
+
assert User.new.valid?
|
11
|
+
end
|
12
|
+
|
13
|
+
sub_test_case 'without attributes' do
|
14
|
+
test 'without options' do
|
15
|
+
User.validates do
|
16
|
+
presence_of :name
|
17
|
+
end
|
18
|
+
|
19
|
+
user = User.new
|
20
|
+
refute user.valid?
|
21
|
+
assert_equal 1, user.errors.count
|
22
|
+
assert_equal 1, user.errors[:name].count
|
23
|
+
end
|
24
|
+
|
25
|
+
test 'with an option' do
|
26
|
+
User.validates do
|
27
|
+
numericality_of :age, greater_than: 0
|
28
|
+
end
|
29
|
+
|
30
|
+
user = User.new age: -1
|
31
|
+
refute user.valid?
|
32
|
+
assert_equal 1, user.errors.count
|
33
|
+
assert_equal 1, user.errors[:age].count
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
sub_test_case 'with an attribute' do
|
38
|
+
test 'without options' do
|
39
|
+
User.validates :email do
|
40
|
+
presence
|
41
|
+
end
|
42
|
+
|
43
|
+
user = User.new
|
44
|
+
refute user.valid?
|
45
|
+
assert_equal 1, user.errors.count
|
46
|
+
assert_equal 1, user.errors[:email].count
|
47
|
+
end
|
48
|
+
|
49
|
+
test 'with an option' do
|
50
|
+
User.validates :age do
|
51
|
+
numericality greater_than: 0
|
52
|
+
end
|
53
|
+
|
54
|
+
user = User.new age: -1
|
55
|
+
refute user.valid?
|
56
|
+
assert_equal 1, user.errors.count
|
57
|
+
assert_equal 1, user.errors[:age].count
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
test 'mixtures' do
|
62
|
+
User.class_eval do
|
63
|
+
validates :email do
|
64
|
+
size maximum: 100
|
65
|
+
format with: /@/
|
66
|
+
end
|
67
|
+
validates :name, :age do
|
68
|
+
presence
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
user = User.new email: 'a' * 101
|
73
|
+
refute user.valid?
|
74
|
+
assert_equal 4, user.errors.count
|
75
|
+
assert_equal 2, user.errors[:email].count
|
76
|
+
assert_equal 1, user.errors[:name].count
|
77
|
+
assert_equal 1, user.errors[:age].count
|
78
|
+
end
|
79
|
+
end
|
metadata
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kawaii_validation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rails
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: test-unit-rails
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: sqlite3
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
description: Model.validates { presence_of :name }
|
@@ -115,7 +115,8 @@ executables: []
|
|
115
115
|
extensions: []
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
|
-
- .gitignore
|
118
|
+
- ".gitignore"
|
119
|
+
- ".travis.yml"
|
119
120
|
- Gemfile
|
120
121
|
- MIT-LICENSE
|
121
122
|
- README.md
|
@@ -126,9 +127,9 @@ files:
|
|
126
127
|
- lib/kawaii_validation/non_attributed_validator.rb
|
127
128
|
- lib/kawaii_validation/validates_with_block.rb
|
128
129
|
- lib/kawaii_validation/version.rb
|
129
|
-
-
|
130
|
-
-
|
131
|
-
-
|
130
|
+
- test/fake_app.rb
|
131
|
+
- test/test_helper.rb
|
132
|
+
- test/validations_test.rb
|
132
133
|
homepage: https://github.com/amatsuda/kawaii_validation
|
133
134
|
licenses:
|
134
135
|
- MIT
|
@@ -139,21 +140,21 @@ require_paths:
|
|
139
140
|
- lib
|
140
141
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
142
|
requirements:
|
142
|
-
- -
|
143
|
+
- - ">="
|
143
144
|
- !ruby/object:Gem::Version
|
144
145
|
version: '0'
|
145
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
147
|
requirements:
|
147
|
-
- -
|
148
|
+
- - ">="
|
148
149
|
- !ruby/object:Gem::Version
|
149
150
|
version: '0'
|
150
151
|
requirements: []
|
151
152
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.
|
153
|
+
rubygems_version: 2.5.1
|
153
154
|
signing_key:
|
154
155
|
specification_version: 4
|
155
156
|
summary: An ActiveRecord extension that adds more kawaii validation syntax
|
156
157
|
test_files:
|
157
|
-
-
|
158
|
-
-
|
159
|
-
-
|
158
|
+
- test/fake_app.rb
|
159
|
+
- test/test_helper.rb
|
160
|
+
- test/validations_test.rb
|
data/spec/spec_helper.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
|
2
|
-
$LOAD_PATH.unshift(__dir__)
|
3
|
-
|
4
|
-
require 'rails'
|
5
|
-
require 'kawaii_validation'
|
6
|
-
require 'fake_app'
|
7
|
-
require 'action_controller/railtie' # needed for Rails 4 + RSpec...
|
8
|
-
require 'rspec/rails'
|
9
|
-
|
10
|
-
RSpec.configure do |config|
|
11
|
-
config.before :all do
|
12
|
-
CreateAllTables.up unless ActiveRecord::Base.connection.table_exists? 'users'
|
13
|
-
end
|
14
|
-
config.before :each do
|
15
|
-
User.delete_all
|
16
|
-
end
|
17
|
-
end
|
data/spec/validations_spec.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Model#validates with a block' do
|
4
|
-
subject { User.new }
|
5
|
-
before do
|
6
|
-
User.reset_callbacks(:validate)
|
7
|
-
User._validators.clear
|
8
|
-
end
|
9
|
-
|
10
|
-
context 'no validation' do
|
11
|
-
it { should be_valid }
|
12
|
-
end
|
13
|
-
|
14
|
-
context 'without attributes' do
|
15
|
-
context 'without options' do
|
16
|
-
before do
|
17
|
-
User.validates do
|
18
|
-
presence_of :name
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
it { should_not be_valid }
|
23
|
-
it { should have(1).error_on(:name) }
|
24
|
-
end
|
25
|
-
|
26
|
-
context 'with an option' do
|
27
|
-
before do
|
28
|
-
User.validates do
|
29
|
-
numericality_of :age, greater_than: 0
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
subject { User.new age: -1 }
|
34
|
-
it { should_not be_valid }
|
35
|
-
it { should have(1).error_on(:age) }
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context 'with an attribute' do
|
40
|
-
context 'without options' do
|
41
|
-
before do
|
42
|
-
User.validates :email do
|
43
|
-
presence
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
it { should_not be_valid }
|
48
|
-
it { should have(1).error_on(:email) }
|
49
|
-
end
|
50
|
-
|
51
|
-
context 'with an option' do
|
52
|
-
before do
|
53
|
-
User.validates :age do
|
54
|
-
numericality greater_than: 0
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
subject { User.new age: -1 }
|
59
|
-
it { should_not be_valid }
|
60
|
-
it { should have(1).error_on(:age) }
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'mixtures' do
|
65
|
-
before do
|
66
|
-
User.class_eval do
|
67
|
-
validates :email do
|
68
|
-
size maximum: 100
|
69
|
-
format with: /@/
|
70
|
-
end
|
71
|
-
validates :name, :age do
|
72
|
-
presence
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
subject { User.new email: 'a' * 101 }
|
78
|
-
it { should_not be_valid }
|
79
|
-
it { should have(2).errors_on(:email) }
|
80
|
-
it { should have(1).error_on(:name) }
|
81
|
-
it { should have(1).error_on(:age) }
|
82
|
-
end
|
83
|
-
end
|