ohm-validations 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 29390f46741b4fc83c1f95ac1ca33ad6b1b09e90
4
- data.tar.gz: c177830ca00d41b14de8cd001f8c871be2f90061
3
+ metadata.gz: 0c0c77f31ae7a1bb376897b20d7d1a687d56a108
4
+ data.tar.gz: 80490b5f559546137c855c72c19dfa782543d924
5
5
  SHA512:
6
- metadata.gz: cfbecaf70848d8c13e41e41e32fbfb66e88335e4af50df1596e42706cb4198a1fcf19fe1b3001ef4210778413c3955dd31dae2ec090865e40463ab4083f0f981
7
- data.tar.gz: 91e23aa0fe0ad9e3986064c4dbbebf1206f929590ec71ab165ceb5452f8acee3a79d162a62cc5bb8111320ec7dc93ebe619a17cd6750e5ed6ed8c9e67ab6d5b1
6
+ metadata.gz: 3ab86c99a3f31566fefa6f8be9a3f26a9ce4af2f16ccd9f9042b62c842143958cd85ce68663fa8b155d94912477edc965049b31c913f00d255eaa6800ad844e2
7
+ data.tar.gz: 7bce45dae652d5bc97e3e8212fc6ddba41fd6778daead7b39ea38143d76b6b2e901def2931d3a56a557bfd241d2de11a421c122618193cbe998729d1b9163851
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Francesco Rodriguez
1
+ Copyright (c) 2014-2016 Francesco Rodríguez
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,12 +1,33 @@
1
- ohm-validations
1
+ ohm-validations [![Build Status](https://travis-ci.org/frodsan/ohm-validations.svg)](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 before_validation
46
+ def before_validate
26
47
  @before = true
27
48
  end
28
49
 
29
- def after_validation
50
+ def after_validate
30
51
  @after = true
31
52
  end
32
53
  end
33
54
 
34
- user = User.new({})
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
- Installation
72
+ Contributing
48
73
  ------------
49
74
 
75
+ Fork the project with:
76
+
50
77
  ```
51
- $ gem install ohm-validations
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
@@ -6,21 +6,26 @@ module Ohm
6
6
 
7
7
  module Callbacks
8
8
  def valid?
9
- before_validation
9
+ before_validate
10
10
 
11
11
  result = super
12
12
 
13
- after_validation
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 before_validation
25
+ def before_validate
21
26
  end
22
27
 
23
- def after_validation
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.1
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: 2014-02-12 00:00:00.000000000 Z
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: cutest
42
+ name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
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: '0'
55
- description: Validation for Ohm::Model.
56
- email:
57
- - frodsan@me.com
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
- - ohm-validations.gemspec
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.2.0
127
+ rubygems_version: 2.5.0
89
128
  signing_key:
90
129
  specification_version: 4
91
- summary: Validation for Ohm::Model.
92
- test_files: []
130
+ summary: Validations for Ohm models
131
+ test_files:
132
+ - test/validations_test.rb
data/.gems DELETED
@@ -1,3 +0,0 @@
1
- ohm -v 2.0.0.rc1
2
- scrivener -v 0.2.0
3
- cutest -v 1.2.1
@@ -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