ohm-validations 0.0.1 → 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/LICENSE +1 -1
- data/README.md +55 -7
- data/lib/ohm/validations.rb +9 -4
- data/test/validations_test.rb +113 -0
- metadata +64 -24
- data/.gems +0 -3
- data/ohm-validations.gemspec +0 -16
- data/test/validations.rb +0 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c0c77f31ae7a1bb376897b20d7d1a687d56a108
|
4
|
+
data.tar.gz: 80490b5f559546137c855c72c19dfa782543d924
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ab86c99a3f31566fefa6f8be9a3f26a9ce4af2f16ccd9f9042b62c842143958cd85ce68663fa8b155d94912477edc965049b31c913f00d255eaa6800ad844e2
|
7
|
+
data.tar.gz: 7bce45dae652d5bc97e3e8212fc6ddba41fd6778daead7b39ea38143d76b6b2e901def2931d3a56a557bfd241d2de11a421c122618193cbe998729d1b9163851
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,12 +1,33 @@
|
|
1
|
-
ohm-validations
|
1
|
+
ohm-validations [](https://travis-ci.org/frodsan/ohm-validations)
|
2
2
|
===============
|
3
3
|
|
4
4
|
Validations for Ohm::Model.
|
5
5
|
|
6
|
+
Installation
|
7
|
+
------------
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem "ohm-validations"
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
```
|
18
|
+
$ bundle
|
19
|
+
```
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
```
|
24
|
+
$ gem install ohm-validations
|
25
|
+
```
|
26
|
+
|
6
27
|
Usage
|
7
28
|
-----
|
8
29
|
|
9
|
-
```
|
30
|
+
```ruby
|
10
31
|
class User < Ohm::Model
|
11
32
|
include Ohm::Validations
|
12
33
|
|
@@ -22,20 +43,24 @@ class User < Ohm::Model
|
|
22
43
|
assert_email(:email)
|
23
44
|
end
|
24
45
|
|
25
|
-
def
|
46
|
+
def before_validate
|
26
47
|
@before = true
|
27
48
|
end
|
28
49
|
|
29
|
-
def
|
50
|
+
def after_validate
|
30
51
|
@after = true
|
31
52
|
end
|
32
53
|
end
|
33
54
|
|
34
|
-
|
55
|
+
User.create
|
56
|
+
# => nil
|
57
|
+
|
58
|
+
user = User.new
|
35
59
|
user.valid? # => false
|
36
60
|
|
37
61
|
user.update_attributes(name: "jhon", email: "jhon@doe.com")
|
38
62
|
user.valid? # => true
|
63
|
+
user.save # => user
|
39
64
|
|
40
65
|
user.before # => true
|
41
66
|
user.after # => true
|
@@ -44,11 +69,34 @@ user.after # => true
|
|
44
69
|
Check [scrivener][scrivener] project for more information
|
45
70
|
about the available validations.
|
46
71
|
|
47
|
-
|
72
|
+
Contributing
|
48
73
|
------------
|
49
74
|
|
75
|
+
Fork the project with:
|
76
|
+
|
50
77
|
```
|
51
|
-
$
|
78
|
+
$ git clone git@github.com:frodsan/ohm-validations.git
|
79
|
+
```
|
80
|
+
|
81
|
+
To install dependencies, use:
|
82
|
+
|
83
|
+
```
|
84
|
+
$ bundle install
|
52
85
|
```
|
53
86
|
|
87
|
+
To run the test suite, do:
|
88
|
+
|
89
|
+
```
|
90
|
+
$ rake test
|
91
|
+
```
|
92
|
+
|
93
|
+
For bug reports and pull requests use [GitHub][issues].
|
94
|
+
|
95
|
+
License
|
96
|
+
-------
|
97
|
+
|
98
|
+
This gem is released under the [MIT License][mit].
|
99
|
+
|
100
|
+
[mit]: http://www.opensource.org/licenses/MIT
|
101
|
+
[issues]: https://github.com/frodsan/ohm-validations/issues
|
54
102
|
[scrivener]: https://github.com/soveran/scrivener
|
data/lib/ohm/validations.rb
CHANGED
@@ -6,21 +6,26 @@ module Ohm
|
|
6
6
|
|
7
7
|
module Callbacks
|
8
8
|
def valid?
|
9
|
-
|
9
|
+
before_validate
|
10
10
|
|
11
11
|
result = super
|
12
12
|
|
13
|
-
|
13
|
+
after_validate
|
14
14
|
|
15
15
|
result
|
16
16
|
end
|
17
17
|
|
18
|
+
def save
|
19
|
+
return if not valid?
|
20
|
+
super
|
21
|
+
end
|
22
|
+
|
18
23
|
protected
|
19
24
|
|
20
|
-
def
|
25
|
+
def before_validate
|
21
26
|
end
|
22
27
|
|
23
|
-
def
|
28
|
+
def after_validate
|
24
29
|
end
|
25
30
|
end
|
26
31
|
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
require "minitest/autorun"
|
3
|
+
require "minitest/pride"
|
4
|
+
require "minitest/sugar"
|
5
|
+
require "ohm"
|
6
|
+
require "ohm/contrib"
|
7
|
+
require_relative "../lib/ohm/validations"
|
8
|
+
|
9
|
+
Ohm.redis = Redic.new("redis://127.0.0.1:6379/15")
|
10
|
+
|
11
|
+
class User < Ohm::Model
|
12
|
+
include Ohm::Validations
|
13
|
+
|
14
|
+
attribute :name
|
15
|
+
|
16
|
+
attr :before, :after
|
17
|
+
|
18
|
+
def validate
|
19
|
+
assert_present(:name)
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
def before_validate
|
25
|
+
@before = true
|
26
|
+
end
|
27
|
+
|
28
|
+
def after_validate
|
29
|
+
@after = true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class Person < Ohm::Model
|
34
|
+
include Ohm::Callbacks
|
35
|
+
include Ohm::Validations
|
36
|
+
|
37
|
+
attribute :name
|
38
|
+
|
39
|
+
attr :did_before_validate
|
40
|
+
attr :did_before_create
|
41
|
+
attr :did_after_validate
|
42
|
+
attr :did_after_create
|
43
|
+
|
44
|
+
protected
|
45
|
+
|
46
|
+
def validate
|
47
|
+
assert_present(:name)
|
48
|
+
end
|
49
|
+
|
50
|
+
def before_validate; @did_before_validate = true end
|
51
|
+
def before_create; @did_before_create = true; end
|
52
|
+
def after_validate; @did_after_validate = true end
|
53
|
+
def after_create; @did_after_create = true; end
|
54
|
+
end
|
55
|
+
|
56
|
+
class ValidationsTest < Minitest::Test
|
57
|
+
setup do
|
58
|
+
Ohm.flush
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
test "validations" do
|
63
|
+
user = User.new
|
64
|
+
|
65
|
+
assert !user.valid?
|
66
|
+
|
67
|
+
user.name = "jhon"
|
68
|
+
|
69
|
+
assert user.valid?
|
70
|
+
end
|
71
|
+
|
72
|
+
test "callbacks" do
|
73
|
+
user = User.new({})
|
74
|
+
|
75
|
+
user.valid?
|
76
|
+
|
77
|
+
assert user.before
|
78
|
+
assert user.after
|
79
|
+
end
|
80
|
+
|
81
|
+
test "save" do
|
82
|
+
assert User.create.nil?
|
83
|
+
|
84
|
+
user = User.new
|
85
|
+
assert user.save.nil?
|
86
|
+
|
87
|
+
user.name = "jhon"
|
88
|
+
user.save
|
89
|
+
|
90
|
+
assert user.id
|
91
|
+
|
92
|
+
assert user.update(name: "").nil?
|
93
|
+
assert user.update(name: "jhon")
|
94
|
+
end
|
95
|
+
|
96
|
+
test "compatibility" do
|
97
|
+
person = Person.new
|
98
|
+
|
99
|
+
assert !person.valid?
|
100
|
+
|
101
|
+
assert person.did_before_validate
|
102
|
+
assert person.did_after_validate
|
103
|
+
assert !person.did_before_create
|
104
|
+
assert !person.did_after_create
|
105
|
+
|
106
|
+
person = Person.create(name: "jhon")
|
107
|
+
|
108
|
+
assert person.did_before_validate
|
109
|
+
assert person.did_after_validate
|
110
|
+
assert person.did_before_create
|
111
|
+
assert person.did_after_create
|
112
|
+
end
|
113
|
+
end
|
metadata
CHANGED
@@ -1,70 +1,109 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ohm-validations
|
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
|
- Francesco Rodríguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ohm
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '2.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
|
-
version: '0'
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: scrivener
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '1.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
|
-
version: '0'
|
40
|
+
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.8'
|
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
|
-
version: '
|
55
|
-
|
56
|
-
|
57
|
-
|
54
|
+
version: '5.8'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest-sugar
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.1'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ohm-contrib
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '10.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '10.0'
|
97
|
+
description: Validations for Ohm models
|
98
|
+
email: frodsan@protonmail.ch
|
58
99
|
executables: []
|
59
100
|
extensions: []
|
60
101
|
extra_rdoc_files: []
|
61
102
|
files:
|
62
|
-
- ".gems"
|
63
103
|
- LICENSE
|
64
104
|
- README.md
|
65
105
|
- lib/ohm/validations.rb
|
66
|
-
-
|
67
|
-
- test/validations.rb
|
106
|
+
- test/validations_test.rb
|
68
107
|
homepage: https://github.com/frodsan/ohm-validations
|
69
108
|
licenses:
|
70
109
|
- MIT
|
@@ -85,8 +124,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
124
|
version: '0'
|
86
125
|
requirements: []
|
87
126
|
rubyforge_project:
|
88
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.5.0
|
89
128
|
signing_key:
|
90
129
|
specification_version: 4
|
91
|
-
summary:
|
92
|
-
test_files:
|
130
|
+
summary: Validations for Ohm models
|
131
|
+
test_files:
|
132
|
+
- test/validations_test.rb
|
data/.gems
DELETED
data/ohm-validations.gemspec
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
Gem::Specification.new do |s|
|
2
|
-
s.name = "ohm-validations"
|
3
|
-
s.version = "0.0.1"
|
4
|
-
s.summary = "Validation for Ohm::Model."
|
5
|
-
s.description = s.summary
|
6
|
-
s.authors = ["Francesco Rodríguez"]
|
7
|
-
s.email = ["frodsan@me.com"]
|
8
|
-
s.homepage = "https://github.com/frodsan/ohm-validations"
|
9
|
-
s.license = "MIT"
|
10
|
-
|
11
|
-
s.files = `git ls-files`.split("\n")
|
12
|
-
|
13
|
-
s.add_dependency "ohm"
|
14
|
-
s.add_dependency "scrivener"
|
15
|
-
s.add_development_dependency "cutest"
|
16
|
-
end
|
data/test/validations.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require "cutest"
|
2
|
-
require "ohm"
|
3
|
-
require_relative "../lib/ohm/validations"
|
4
|
-
|
5
|
-
Ohm.redis = Redic.new("redis://127.0.0.1:6379/15")
|
6
|
-
|
7
|
-
setup do
|
8
|
-
Ohm.flush
|
9
|
-
end
|
10
|
-
|
11
|
-
class User < Ohm::Model
|
12
|
-
include Ohm::Validations
|
13
|
-
|
14
|
-
attribute :name
|
15
|
-
|
16
|
-
attr :before, :after
|
17
|
-
|
18
|
-
def validate
|
19
|
-
assert_present(:name)
|
20
|
-
end
|
21
|
-
|
22
|
-
def before_validation
|
23
|
-
@before = true
|
24
|
-
end
|
25
|
-
|
26
|
-
def after_validation
|
27
|
-
@after = true
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
test "validations" do
|
32
|
-
user = User.new({})
|
33
|
-
|
34
|
-
assert !user.valid?
|
35
|
-
|
36
|
-
user.name = "jhon"
|
37
|
-
|
38
|
-
assert user.valid?
|
39
|
-
end
|
40
|
-
|
41
|
-
test "callbacks" do
|
42
|
-
user = User.new({})
|
43
|
-
|
44
|
-
user.valid?
|
45
|
-
|
46
|
-
assert user.before
|
47
|
-
assert user.after
|
48
|
-
end
|