constrain 0.7.0 → 0.8.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 +4 -4
- data/TODO +7 -3
- data/lib/constrain/version.rb +1 -1
- data/lib/constrain.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: 7b497524127f01a38cc3c6f4061e91e0cad65b587538d57f69b194a550d46bf1
|
4
|
+
data.tar.gz: 95cff0709eb06ab088fee635c5629de99d16f521f9d24ea0a603ddb4d0968780
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f843d4f4b653ab255f52d9c5188b3d9d72c0170e0f4af4522404e4d993b97f6629b0b61c665a9cc47f3fc89a22ca7f7beb9efd68dfdae186c5d1502b320004d7
|
7
|
+
data.tar.gz: 70654e57d920e7f13a92394d57f7b5ddff2529ebe346507de201f47ce9aad77beef17992419dea84f1ba795b4de7d8443a65d3250b9a46298f8b1896d43dbeb4
|
data/TODO
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
|
2
|
-
o
|
2
|
+
o Use | to create class-or expressions
|
3
|
+
o Old: Class | Class syntax
|
4
|
+
o Use & to construct tuple expressions
|
5
|
+
o Old: A tuple method: "Symbol => constrain.tuple(String, Integer)"
|
6
|
+
o Better error message for 'constrain EXPR'
|
7
|
+
o Explain that 'constrain EXPR' can be used for 'constrain SomeClass < AnotherClass'
|
3
8
|
o Match ranges and regular expressions
|
4
|
-
o A tuple method: "Symbol => constrain.tuple(String, Integer)"
|
5
9
|
o An array and hash method: "Symbol => constrain.array(Integer), String => constrain.hash(Symbol, Integer)"
|
6
|
-
o Class | Class syntax
|
7
10
|
o Constrained attributes: constrain_reader, constrain_writer, constrain_accessor:
|
8
11
|
o Messages should include info about the unexpected element type in arrays (and maybe more): "Expected [#<PgGraph::Data::Record:public.pings[1] {id: 1, name: 'Ping A'}>, #<PgGraph::Data::Record:public.pings[2] {id: 2, name: 'Ping B'}>, nil] to match [PgGraph::Data::Record]
|
9
12
|
|
10
13
|
+ constrain value, class-expr, "Error message"
|
11
14
|
+ Check against values: 'constrain arg, :one_value, :another_value, 1, 2, 3'
|
15
|
+
+ Allow 'constrain EXRP'
|
data/lib/constrain/version.rb
CHANGED
data/lib/constrain.rb
CHANGED
@@ -88,7 +88,7 @@ module Constrain
|
|
88
88
|
def self.do_constrain_value?(value, expr)
|
89
89
|
case expr
|
90
90
|
when Class, Module
|
91
|
-
value
|
91
|
+
expr === value
|
92
92
|
when Array
|
93
93
|
!expr.empty? or raise ArgumentError, "Empty array in constraint"
|
94
94
|
value.is_a?(Array) && value.all? { |elem| expr.any? { |e| Constrain.constrain?(elem, e) } }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: constrain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: simplecov
|