validation_profiler 1.3.1 → 1.3.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 534b05801ef07e861665143c2a16efff8c79ebbc
|
4
|
+
data.tar.gz: 06a6f117d9b4ef0d1070ea22841eaa8e526c5076
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6eb8b3d613484ac3cb15a6865161e9453f17e59ceb768a3221b5cd13f2cb82d05e352ecba8775da6a889c1d452d50263452333e29267c9ac124ed9f49707fddf
|
7
|
+
data.tar.gz: 90342abc72ddf353a8e119320fce4dedffd7ff1353ab948a83c462c5084d2d8719bc3a3fc21b05570e000015a6b2904b4c94a6acf6e3673a2132607acccc163a
|
data/lib/validation_profiler.rb
CHANGED
@@ -1,86 +1,6 @@
|
|
1
|
-
require 'validation_profiler/
|
1
|
+
require 'validation_profiler/class_methods'
|
2
2
|
require 'validation_profiler/exceptions'
|
3
3
|
require 'validation_profiler/rules'
|
4
|
+
require 'validation_profiler/manager'
|
5
|
+
require 'validation_profiler/manager_result'
|
4
6
|
|
5
|
-
class Class
|
6
|
-
|
7
|
-
# Specifies a validation rule to use within a validation profile.
|
8
|
-
#
|
9
|
-
# @param field [Symbol] The name of the field to validate
|
10
|
-
# @param rule [Symbol] The name of the validation rule to use
|
11
|
-
# @param attributes [Hash] [Optional] A has containing the validation rule options
|
12
|
-
def validates(field, rule, attributes = {})
|
13
|
-
|
14
|
-
if !self.class_variable_defined?(:@@validation_rules)
|
15
|
-
self.class_variable_set(:@@validation_rules, [])
|
16
|
-
end
|
17
|
-
|
18
|
-
validation_rules = self.class_variable_get(:@@validation_rules)
|
19
|
-
validation_rules.push({ name: rule, field: field, attributes: attributes })
|
20
|
-
|
21
|
-
self.class_variable_set(:@@validation_rules, validation_rules)
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.sides
|
26
|
-
@@sides
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
module ValidationProfiler
|
32
|
-
class Manager
|
33
|
-
|
34
|
-
# Called to validate an object against a validation profile.
|
35
|
-
#
|
36
|
-
# @param obj [Object] The object to validate
|
37
|
-
# @param profile [ClassName] The class name of the validation profile to validate against
|
38
|
-
#
|
39
|
-
# @return [ValidationManagerResult] The result of the validation
|
40
|
-
def validate(obj, profile, parent = nil)
|
41
|
-
|
42
|
-
result = ValidationProfiler::ManagerResult.new
|
43
|
-
|
44
|
-
validation_rules = profile.class_variable_get(:@@validation_rules)
|
45
|
-
|
46
|
-
validation_rules.each do |r|
|
47
|
-
|
48
|
-
if ValidationProfiler::Rules::Manager.instance == nil
|
49
|
-
ValidationProfiler::Rules::Manager.new
|
50
|
-
end
|
51
|
-
|
52
|
-
rule = ValidationProfiler::Rules::Manager.instance.get_rule(r[:name])
|
53
|
-
outcome = rule.validate(obj, r[:field], r[:attributes], parent)
|
54
|
-
|
55
|
-
if outcome.is_a?(ValidationProfiler::ManagerResult) && !outcome.outcome
|
56
|
-
result.errors = result.errors + outcome.errors
|
57
|
-
result.outcome = false
|
58
|
-
elsif !outcome
|
59
|
-
result.outcome = false
|
60
|
-
result.errors.push({ field: r[:field], message: rule.error_message(r[:field], r[:attributes], parent) })
|
61
|
-
end
|
62
|
-
|
63
|
-
end
|
64
|
-
|
65
|
-
result
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
# This is used to specify validation results from the #validate method of the Validation Manager
|
72
|
-
class ManagerResult
|
73
|
-
|
74
|
-
# @!attribute outcome
|
75
|
-
# @return [Boolean] The outcome of the validation.
|
76
|
-
attr_accessor :outcome
|
77
|
-
# @!attribute errors
|
78
|
-
# @return [Array[{:field, :error_message}]] An array of field errors that occurred during validation.
|
79
|
-
attr_accessor :errors
|
80
|
-
|
81
|
-
def initialize
|
82
|
-
@errors = []
|
83
|
-
@outcome = true
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class Class
|
2
|
+
|
3
|
+
#[DEPRECIATED] do not use, please use 'extend ValidationProfiler' instead
|
4
|
+
# Specifies a validation rule to use within a validation profile.
|
5
|
+
#
|
6
|
+
# @param field [Symbol] The name of the field to validate
|
7
|
+
# @param rule [Symbol] The name of the validation rule to use
|
8
|
+
# @param attributes [Hash] [Optional] A has containing the validation rule options
|
9
|
+
def validates(field, rule, attributes = {})
|
10
|
+
|
11
|
+
puts "[#{self.class}] - Method depreciated. Please use 'extend ValidationProfiler' in your validation profile class to access the 'validates' method."
|
12
|
+
|
13
|
+
if !self.class_variable_defined?(:@@validation_rules)
|
14
|
+
self.class_variable_set(:@@validation_rules, [])
|
15
|
+
end
|
16
|
+
|
17
|
+
validation_rules = self.class_variable_get(:@@validation_rules)
|
18
|
+
validation_rules.push({ name: rule, field: field, attributes: attributes })
|
19
|
+
|
20
|
+
self.class_variable_set(:@@validation_rules, validation_rules)
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
module ValidationProfiler
|
27
|
+
# Specifies a validation rule to use within a validation profile.
|
28
|
+
#
|
29
|
+
# @param field [Symbol] The name of the field to validate
|
30
|
+
# @param rule [Symbol] The name of the validation rule to use
|
31
|
+
# @param attributes [Hash] [Optional] A has containing the validation rule options
|
32
|
+
def validates(field, rule, attributes = {})
|
33
|
+
|
34
|
+
if !self.class_variable_defined?(:@@validation_rules)
|
35
|
+
self.class_variable_set(:@@validation_rules, [])
|
36
|
+
end
|
37
|
+
|
38
|
+
validation_rules = self.class_variable_get(:@@validation_rules)
|
39
|
+
validation_rules.push({ name: rule, field: field, attributes: attributes })
|
40
|
+
|
41
|
+
self.class_variable_set(:@@validation_rules, validation_rules)
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module ValidationProfiler
|
2
|
+
class Manager
|
3
|
+
|
4
|
+
# Called to validate an object against a validation profile.
|
5
|
+
#
|
6
|
+
# @param obj [Object] The object to validate
|
7
|
+
# @param profile [ClassName] The class name of the validation profile to validate against
|
8
|
+
#
|
9
|
+
# @return [ValidationManagerResult] The result of the validation
|
10
|
+
def validate(obj, profile, parent = nil)
|
11
|
+
|
12
|
+
result = ValidationProfiler::ManagerResult.new
|
13
|
+
|
14
|
+
validation_rules = profile.class_variable_get(:@@validation_rules)
|
15
|
+
|
16
|
+
validation_rules.each do |r|
|
17
|
+
|
18
|
+
if ValidationProfiler::Rules::Manager.instance == nil
|
19
|
+
ValidationProfiler::Rules::Manager.new
|
20
|
+
end
|
21
|
+
|
22
|
+
rule = ValidationProfiler::Rules::Manager.instance.get_rule(r[:name])
|
23
|
+
outcome = rule.validate(obj, r[:field], r[:attributes], parent)
|
24
|
+
|
25
|
+
if outcome.is_a?(ValidationProfiler::ManagerResult) && !outcome.outcome
|
26
|
+
result.errors = result.errors + outcome.errors
|
27
|
+
result.outcome = false
|
28
|
+
elsif !outcome
|
29
|
+
result.outcome = false
|
30
|
+
result.errors.push({ field: r[:field], message: rule.error_message(r[:field], r[:attributes], parent) })
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
result
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ValidationProfiler
|
2
|
+
# This is used to specify validation results from the #validate method of the Validation Manager
|
3
|
+
class ManagerResult
|
4
|
+
|
5
|
+
# @!attribute outcome
|
6
|
+
# @return [Boolean] The outcome of the validation.
|
7
|
+
attr_accessor :outcome
|
8
|
+
# @!attribute errors
|
9
|
+
# @return [Array[{:field, :error_message}]] An array of field errors that occurred during validation.
|
10
|
+
attr_accessor :errors
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
@errors = []
|
14
|
+
@outcome = true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validation_profiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- SageOne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
description: A Validation framework for creating validation profiles, allowing for
|
70
70
|
the separation & reuse of validation logic from the object being validated.
|
71
71
|
email:
|
72
|
-
-
|
72
|
+
- vaughan.britton@sage.com
|
73
73
|
executables: []
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- bin/console
|
78
78
|
- bin/setup
|
79
79
|
- lib/validation_profiler.rb
|
80
|
+
- lib/validation_profiler/class_methods.rb
|
80
81
|
- lib/validation_profiler/exceptions.rb
|
81
82
|
- lib/validation_profiler/exceptions/field_not_found.rb
|
82
83
|
- lib/validation_profiler/exceptions/invalid_field_type.rb
|
@@ -84,6 +85,8 @@ files:
|
|
84
85
|
- lib/validation_profiler/exceptions/invalid_validation_rule_type.rb
|
85
86
|
- lib/validation_profiler/exceptions/validation_rule_already_exists.rb
|
86
87
|
- lib/validation_profiler/exceptions/validation_rule_not_found.rb
|
88
|
+
- lib/validation_profiler/manager.rb
|
89
|
+
- lib/validation_profiler/manager_result.rb
|
87
90
|
- lib/validation_profiler/rules.rb
|
88
91
|
- lib/validation_profiler/rules/child_validation_rule.rb
|
89
92
|
- lib/validation_profiler/rules/condition_validation_rule.rb
|
@@ -103,7 +106,6 @@ files:
|
|
103
106
|
- lib/validation_profiler/rules/time_validation_rule.rb
|
104
107
|
- lib/validation_profiler/rules/validation_rule.rb
|
105
108
|
- lib/validation_profiler/rules/validation_rule_manager.rb
|
106
|
-
- lib/validation_profiler/version.rb
|
107
109
|
homepage: https://github.com/vaughanbrittonsage/validation_profiler
|
108
110
|
licenses:
|
109
111
|
- MIT
|
@@ -124,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
126
|
version: '0'
|
125
127
|
requirements: []
|
126
128
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.5
|
129
|
+
rubygems_version: 2.4.5
|
128
130
|
signing_key:
|
129
131
|
specification_version: 4
|
130
132
|
summary: A Validation framework for creating validation profiles, allowing for the
|