valideizer 1.0.7 → 1.0.8
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/lib/valideizer/core.rb +6 -7
- data/lib/valideizer/error_printer.rb +2 -2
- data/lib/valideizer/holder.rb +2 -0
- data/lib/valideizer/rails.rb +40 -28
- data/lib/valideizer/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1921ea849a60852ef035cc51a79037cdc7ef02a0139fb9f89f9c45e9c0c3c8f9
|
4
|
+
data.tar.gz: fe729bb874467444bbb70f161503fab938e00d879307e717160fdfacab010fbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a73800c820ff8c4ea87f1ce2a2bc57efa9cc981a68aeb5d6bcf5f4250cf3dfd123b4d47ac7e6c1ef4dcb7e961a6a5cb0c0e7c8140ab240cdf6cd435e77e5558b
|
7
|
+
data.tar.gz: 5c1f4364db9a02ea1681208da2a61f15edf2e8db26c0a383c26b7011e08888fb86550b547e98c5f86f504d2f759dce600d0b111e17f4ad336aaa0da2e1c8603f
|
data/lib/valideizer/core.rb
CHANGED
@@ -12,7 +12,7 @@ module Valideizer
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def add_rule(param, *rules)
|
15
|
-
@rules[param] = rules[0]
|
15
|
+
@rules[param.to_s] = rules[0]
|
16
16
|
end
|
17
17
|
|
18
18
|
alias valideize add_rule
|
@@ -22,14 +22,13 @@ module Valideizer
|
|
22
22
|
setup_defaults(params)
|
23
23
|
params.each do |param, value|
|
24
24
|
next unless nil_check(param, value)
|
25
|
-
|
26
|
-
@rules[param].each do |type, constraint|
|
25
|
+
@rules[param.to_s].each do |type, constraint|
|
27
26
|
begin
|
28
|
-
|
27
|
+
push_error(param, value, type, constraint) unless validate(value, type, constraint)
|
29
28
|
rescue ArgumentError => ex
|
30
29
|
puts ex
|
31
30
|
end
|
32
|
-
end
|
31
|
+
end if @rules.include? param.to_s
|
33
32
|
end
|
34
33
|
|
35
34
|
@errors.empty?
|
@@ -53,8 +52,8 @@ module Valideizer
|
|
53
52
|
end
|
54
53
|
|
55
54
|
def setup_defaults(params)
|
56
|
-
|
57
|
-
default_rule
|
55
|
+
params.each do |param|
|
56
|
+
default_rule = @rules[param.to_s]&.find { |r, _c| r == :default }
|
58
57
|
params[param] = default_rule.last unless default_rule.nil?
|
59
58
|
end
|
60
59
|
end
|
@@ -5,7 +5,7 @@ module Valideizer
|
|
5
5
|
protected
|
6
6
|
|
7
7
|
def print_errors
|
8
|
-
@errors.map { |param_name, errors| errors.
|
8
|
+
@errors.map { |param_name, errors| errors.map { |error| { message: print_error(param_name, error) }}}.flatten
|
9
9
|
end
|
10
10
|
|
11
11
|
private
|
@@ -32,7 +32,7 @@ module Valideizer
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def print_postfix(type, value)
|
35
|
-
"Current value: `#{value}`."
|
35
|
+
"Current value: `#{value}`." unless %i[type array_type custom_type active_record length].include?(type)
|
36
36
|
end
|
37
37
|
|
38
38
|
# Validation error: :some param. Should be greater or equal than 200. Current value (100).
|
data/lib/valideizer/holder.rb
CHANGED
data/lib/valideizer/rails.rb
CHANGED
@@ -3,47 +3,59 @@ require 'valideizer/holder'
|
|
3
3
|
|
4
4
|
module Valideizer
|
5
5
|
module Rails
|
6
|
-
|
7
|
-
def valideize(method, &options_block)
|
8
|
-
holder.valideizers[controller_name] = {} if holder.valideizers[controller_name].nil?
|
6
|
+
extend ActiveSupport::Concern
|
9
7
|
|
10
|
-
|
8
|
+
def self.included(base)
|
9
|
+
base.before_action :valideize!
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
base.class_eval do
|
12
|
+
def self.valideize(method, &options_block)
|
13
|
+
method = method.to_s
|
14
|
+
holder = Valideizer::Holder.instance
|
15
|
+
holder.valideizers[controller_path] = {} if holder.valideizers[controller_name].nil?
|
15
16
|
|
16
|
-
|
17
|
-
valideizer.instance_exec(options_block)
|
18
|
-
end
|
17
|
+
# raise "Action #{method} is not defined in #{controller_name}" unless action_methods.include? method.to_s
|
19
18
|
|
20
|
-
|
21
|
-
|
19
|
+
if holder.valideizers[controller_path][method].nil?
|
20
|
+
holder.valideizers[controller_path][method] = Valideizer::Core.new
|
21
|
+
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
action: holder.callback_method, errors: valideizer.errors) unless validiezer.valideize?(params)
|
23
|
+
valideizer = holder.valideizers[controller_path][method]
|
24
|
+
valideizer.instance_eval(&options_block)
|
26
25
|
end
|
27
|
-
end
|
28
26
|
|
29
|
-
|
30
|
-
|
27
|
+
def self.valideizer_callback(method_name)
|
28
|
+
holder = Valideizer::Holder.instance
|
29
|
+
unless holder.callback_controller.present?
|
30
|
+
holder.callback_controller = controller_path
|
31
|
+
holder.callback_method = method_name.to_s
|
32
|
+
end
|
33
|
+
end
|
31
34
|
end
|
35
|
+
end
|
32
36
|
|
33
|
-
|
34
|
-
|
35
|
-
|
37
|
+
def valideize!
|
38
|
+
valideizer = holder.valideizers[controller_path][action_name] rescue nil
|
39
|
+
return unless valideizer
|
36
40
|
|
37
|
-
|
38
|
-
holder.callback_controller
|
39
|
-
|
41
|
+
unless valideizer.nil? || holder.callback_method.nil?
|
42
|
+
redirect_to(controller: holder.callback_controller,
|
43
|
+
action: holder.callback_method, errors: valideizer.errors) unless valideizer.valideized?(params)
|
40
44
|
end
|
45
|
+
end
|
41
46
|
|
42
|
-
|
47
|
+
def valideized?(params)
|
48
|
+
holder.valideizers[controller_path][action_name].valideized?(params)
|
49
|
+
end
|
43
50
|
|
44
|
-
|
45
|
-
|
46
|
-
|
51
|
+
def valideizer_errors
|
52
|
+
holder.valideizers[controller_path][action_name].errors
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def holder
|
58
|
+
Valideizer::Holder.instance
|
47
59
|
end
|
48
60
|
end
|
49
61
|
end
|
data/lib/valideizer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valideizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arthur 'ArtK0DE' Korochansky
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|