abstract_validator 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.
- checksums.yaml +7 -0
- data/lib/abstract_validator.rb +24 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 36de77a3f7d956422c4875812e9c0df05c2e8973
|
4
|
+
data.tar.gz: 06a5ffb5cd73781387f9b35353826124b824d9f0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0a0f6a12b3fff34e7c54c573f495ed25e7a0dde0e9710333161d281700e490f2445f5145aa1adbf489d940dd119ac70946bb39ca9cdd850db5cbdeca90970c51
|
7
|
+
data.tar.gz: 99f68bf7534f5c811d8f65ee5eecc9185ceeb08e84a2e521323e6394dc0dc06092eee91786b79105c62ca162852dd56517ca4446dedef88a6749b08523272dce
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class AbstractValidator
|
2
|
+
VALIDATIONS = []
|
3
|
+
attr_reader :model, :is_valid, :errors
|
4
|
+
alias_method :valid?, :is_valid
|
5
|
+
def initialize(model)
|
6
|
+
@model = model
|
7
|
+
validate!
|
8
|
+
@is_valid = @errors.length == 0
|
9
|
+
end
|
10
|
+
private
|
11
|
+
def validate!
|
12
|
+
raise NotImplementedError.new "You must implement VALIDATIONS hash in your child class" if self.class::VALIDATIONS.size == 0
|
13
|
+
@errors = []
|
14
|
+
self.class::VALIDATIONS.each do |validation|
|
15
|
+
values = get_values(validation[:keys])
|
16
|
+
@errors << validation[:message] unless validation[:method].call(*values)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
def get_values(keys)
|
20
|
+
keys.map do |k|
|
21
|
+
@model.send(k)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: abstract_validator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bogdan Agafonov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Validators creation gem
|
14
|
+
email: bogdan.agafonov@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/abstract_validator.rb
|
20
|
+
homepage: http://rubygems.org/gems/abstract_validator
|
21
|
+
licenses:
|
22
|
+
- MIT
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.4.5
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Allows to create validators
|
44
|
+
test_files: []
|