generated_schema_validations 0.3.0 → 0.3.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4be368a0917bd00a79be8fc0ab6ac7ab4530bff7c3feec32fa731a5ccee2d5e3
|
4
|
+
data.tar.gz: 4cb0120a7cacd178b16253d04bdab2e5aed1edc37195609bf176b510700b4824
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 542791763e87ecc0f8f54fd18e3df3d41aaf4db6c7e146f158d1d4b2d74f75f1e7d69ea6f5aa2235cdcad18fa454849cd3b93396d75d7b67e1570918713d4d48
|
7
|
+
data.tar.gz: bd238fa0f5cc5953202e96893070e1c1c30b823949a11889854ccdba5765ec277192743bad6e018c8c7e287306ea9731716dd91664e9810f6f352368f78c2a59
|
data/README.md
CHANGED
@@ -36,13 +36,15 @@ class ApplicationRecord < ActiveRecord::Base
|
|
36
36
|
end
|
37
37
|
```
|
38
38
|
|
39
|
-
Use it in a model **after** you defined the associations:
|
39
|
+
Use it in a model **after** you defined the associations and enums:
|
40
40
|
|
41
41
|
```ruby
|
42
42
|
class User < ApplicationRecord
|
43
43
|
belongs_to :client
|
44
44
|
belongs_to :other
|
45
45
|
|
46
|
+
enum :actived, no: 0, yes: 1
|
47
|
+
|
46
48
|
validate :email_address, email_format: true
|
47
49
|
|
48
50
|
schema_validations # to use auto generated validations
|
@@ -95,6 +97,10 @@ You can watch changes on `schema_validations.rb` to understand the generated val
|
|
95
97
|
|
96
98
|
## Changelog
|
97
99
|
|
100
|
+
### 0.3.1
|
101
|
+
|
102
|
+
* Add exclusion for enum fields
|
103
|
+
|
98
104
|
### 0.3.0
|
99
105
|
|
100
106
|
* Check usage of schema_validations (see #3)
|
@@ -7,6 +7,12 @@ class GeneratedSchemaValidations::Table
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
+
ValidationWithoutEnum = Struct.new(:attribute, :validator, :options) do
|
11
|
+
def to_s
|
12
|
+
"validates_with_filter #{attribute.to_sym.inspect}, #{{ validator => options }.inspect} unless enums.include?(#{attribute.to_sym.inspect})"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
10
16
|
attr_reader :table_name
|
11
17
|
|
12
18
|
def initialize(table_name, &block)
|
@@ -22,7 +28,7 @@ class GeneratedSchemaValidations::Table
|
|
22
28
|
|
23
29
|
def to_s
|
24
30
|
string = "\n"
|
25
|
-
string += "def dbv_#{table_name}_validations\n"
|
31
|
+
string += "def dbv_#{table_name}_validations(enums: [])\n"
|
26
32
|
if @possible_belongs_to_not_null_columns.present?
|
27
33
|
string += " belongs_to_presence_validations_for(#{@possible_belongs_to_not_null_columns.inspect})\n"
|
28
34
|
end
|
@@ -37,6 +43,10 @@ class GeneratedSchemaValidations::Table
|
|
37
43
|
@validations.push(Validation.new(attribute, validator, options))
|
38
44
|
end
|
39
45
|
|
46
|
+
def validates_without_enum(attribute, validator, options = {})
|
47
|
+
@validations.push(ValidationWithoutEnum.new(attribute, validator, options))
|
48
|
+
end
|
49
|
+
|
40
50
|
def null_validation(datatype, name, column_options)
|
41
51
|
@column_names.push(name.to_s)
|
42
52
|
|
@@ -57,7 +67,7 @@ class GeneratedSchemaValidations::Table
|
|
57
67
|
def bigint(name, column_options = {})
|
58
68
|
null_validation(:bigint, name, column_options)
|
59
69
|
|
60
|
-
|
70
|
+
validates_without_enum name, :numericality, allow_nil: true
|
61
71
|
end
|
62
72
|
|
63
73
|
def integer(name, column_options = {})
|
@@ -73,7 +83,7 @@ class GeneratedSchemaValidations::Table
|
|
73
83
|
options[:less_than_or_equal_to] = integer_range.end
|
74
84
|
end
|
75
85
|
|
76
|
-
|
86
|
+
validates_without_enum name, :numericality, options
|
77
87
|
end
|
78
88
|
|
79
89
|
def datetime(name, column_options = {})
|
@@ -27,7 +27,7 @@ module SchemaValidations
|
|
27
27
|
def schema_validations(exclude: [], schema_table_name: table_name)
|
28
28
|
self.schema_validations_called = true
|
29
29
|
self.schema_validations_excluded_columns += exclude.map(&:to_sym)
|
30
|
-
send("dbv_#{schema_table_name}_validations")
|
30
|
+
send("dbv_#{schema_table_name}_validations", enums: defined_enums.keys.map(&:to_sym))
|
31
31
|
end
|
32
32
|
|
33
33
|
def skip_schema_validations
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: generated_schema_validations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Georg Limbach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: After each migration it generates a file with some validations. Each
|
14
14
|
active record should include this file and can uns generated validations.
|
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
requirements: []
|
56
|
-
rubygems_version: 3.
|
56
|
+
rubygems_version: 3.3.26
|
57
57
|
signing_key:
|
58
58
|
specification_version: 4
|
59
59
|
summary: Generate rails validations from schema.rb file
|