valhammer 0.3.1 → 1.0.0
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 +5 -5
- data/README.md +6 -3
- data/lib/valhammer/validations.rb +10 -4
- data/lib/valhammer/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 99b18cba7d288d8e79e530a793fd4e6ee68e73fcce75b11d7c1f75425a0c112d
|
4
|
+
data.tar.gz: dc7099bf3d0230ea68958c6f5db7b2e740c8de83f7ff0484d3f93bbde2c6dff5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 123317e5a6dcbb7e122ededd970645fb74500c2d2f7bfa8d33b811aa762a7aa647e501e65c85630ef1dbd91ab44cbff498b21651873ff57e94b153e2a60272f2
|
7
|
+
data.tar.gz: 810a0bc83526e3388c83a4e9f9296124b17e9660c55b377b7311a1dcefd4377e0b5119ebb2100e1a761b0fb727e984124336ecd52f7511387bf12abc4d3856eb
|
data/README.md
CHANGED
@@ -19,10 +19,8 @@
|
|
19
19
|
|
20
20
|
Automatically validate ActiveRecord models based on the database schema.
|
21
21
|
|
22
|
-
Author: Shaun Mangelsdorf
|
23
|
-
|
24
22
|
```
|
25
|
-
Copyright 2015, Australian Access Federation
|
23
|
+
Copyright 2015-2016, Australian Access Federation
|
26
24
|
|
27
25
|
Licensed under the Apache License, Version 2.0 (the "License");
|
28
26
|
you may not use this file except in compliance with the License.
|
@@ -82,6 +80,11 @@ Generated validations are:
|
|
82
80
|
* `:length` — added to `string` columns to ensure the value fits in the
|
83
81
|
column
|
84
82
|
|
83
|
+
**SQLite Note:** In SQLite, a `string` column has no default length restriction
|
84
|
+
(except for the [hard limit on data size set at compile
|
85
|
+
time](https://www.sqlite.org/limits.html)). Valhammer will not apply a `length`
|
86
|
+
validation unless the column was created with an explicit limit.
|
87
|
+
|
85
88
|
### Disabling Validators
|
86
89
|
|
87
90
|
Passing a block to `valhammer` allows some selective calls to `disable` to
|
@@ -97,13 +97,13 @@ module Valhammer
|
|
97
97
|
return unless unique_keys.one?
|
98
98
|
|
99
99
|
scope = unique_keys.first.columns[0..-2]
|
100
|
-
validations[:uniqueness] = valhammer_unique_opts(scope)
|
100
|
+
validations[:uniqueness] = valhammer_unique_opts(column, scope)
|
101
101
|
end
|
102
102
|
|
103
|
-
def valhammer_unique_opts(scope)
|
103
|
+
def valhammer_unique_opts(column, scope)
|
104
104
|
nullable = scope.select { |c| columns_hash[c].null }
|
105
|
-
|
106
|
-
|
105
|
+
opts = { allow_nil: true,
|
106
|
+
case_sensitive: case_sensitive?(column) }
|
107
107
|
opts[:scope] = scope.map(&:to_sym) if scope.any?
|
108
108
|
opts[:if] = -> { nullable.all? { |c| send(c) } } if nullable.any?
|
109
109
|
opts
|
@@ -150,5 +150,11 @@ module Valhammer
|
|
150
150
|
reflect_on_all_associations(:belongs_to)
|
151
151
|
.find { |a| a.foreign_key == field }.try(:name)
|
152
152
|
end
|
153
|
+
|
154
|
+
def case_sensitive?(column)
|
155
|
+
return true unless column.respond_to?(:case_sensitive?)
|
156
|
+
|
157
|
+
column.case_sensitive?
|
158
|
+
end
|
153
159
|
end
|
154
160
|
end
|
data/lib/valhammer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valhammer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shaun Mangelsdorf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -244,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
244
244
|
- !ruby/object:Gem::Version
|
245
245
|
version: '0'
|
246
246
|
requirements: []
|
247
|
-
|
248
|
-
rubygems_version: 2.5.1
|
247
|
+
rubygems_version: 3.0.3
|
249
248
|
signing_key:
|
250
249
|
specification_version: 4
|
251
250
|
summary: Automatically validate ActiveRecord models based on the database schema.
|