key-vortex 1.0.0 → 1.1.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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/key_vortex/constraint/regexp.rb +39 -0
- data/lib/key_vortex/constraint.rb +5 -2
- data/lib/key_vortex/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9f0c82f8fe8c9435860c8856e79302b4d64e0efd5524807ad8b524545ae7588
|
4
|
+
data.tar.gz: a9995decc14a86f8ccb93e5539297dcb3bb206c0efe0062882a8d81be62daadd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '05844fa94ddb3598dc84949711bf61632ab87261fa5f58a79105c05d808caaf4e6c6976c270c61c90018df610975efc2fc8804a55adc531c773aabf0ed832e64'
|
7
|
+
data.tar.gz: beb5082bdbe2e93ef622a6df07917f595ae505bcbb884b44187a820b5b15aa56b648efdaf52325ef595b51ce5c226bcbd9ee155d21cbcb2a0394799e89cace9f
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "key_vortex/constraint/base"
|
4
|
+
|
5
|
+
class KeyVortex
|
6
|
+
module Constraint
|
7
|
+
# Enforces that strings match the specified pattern. Because
|
8
|
+
# regular expressions are too complicated to establish clean
|
9
|
+
# bounds, it will not be considered when narrowing based on
|
10
|
+
# adapter constraints.
|
11
|
+
class Regexp < KeyVortex::Constraint::Base
|
12
|
+
# @return [Regexp] The regexp the value must match
|
13
|
+
attr_reader :pattern
|
14
|
+
|
15
|
+
# @param pattern [Regexp] The regexp the value must match
|
16
|
+
def initialize(pattern)
|
17
|
+
super()
|
18
|
+
@pattern = pattern
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [Symbol] :regexp
|
22
|
+
def attribute
|
23
|
+
:regexp
|
24
|
+
end
|
25
|
+
|
26
|
+
# @param [any]
|
27
|
+
# @return [true] Regular expressions are too flexible, they cannot be compared
|
28
|
+
def within?(_)
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
32
|
+
# @param value [String]
|
33
|
+
# @return [Boolean] True if pattern =~ value
|
34
|
+
def accepts?(value)
|
35
|
+
pattern =~ value
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -4,6 +4,7 @@ require "key_vortex/constraint/base"
|
|
4
4
|
require "key_vortex/constraint/length"
|
5
5
|
require "key_vortex/constraint/maximum"
|
6
6
|
require "key_vortex/constraint/minimum"
|
7
|
+
require "key_vortex/constraint/regexp"
|
7
8
|
|
8
9
|
class KeyVortex
|
9
10
|
# Constraints define a restriction on the values which can be used
|
@@ -25,8 +26,8 @@ class KeyVortex
|
|
25
26
|
#
|
26
27
|
# All constraints can determine if a value is valid for them.
|
27
28
|
#
|
28
|
-
#
|
29
|
-
#
|
29
|
+
# Most constraints, when compared with other instances of
|
30
|
+
# themselves, can be determined if ones limitations fit within the
|
30
31
|
# others. More formally, given an instance x of a constraint, an
|
31
32
|
# instance y of the same constraint fits within x if and only if for
|
32
33
|
# all values v that are valid for y, v is also valid for x.
|
@@ -45,6 +46,8 @@ class KeyVortex
|
|
45
46
|
KeyVortex::Constraint::Maximum.new(limit)
|
46
47
|
when :minimum
|
47
48
|
KeyVortex::Constraint::Minimum.new(limit)
|
49
|
+
when :regexp
|
50
|
+
KeyVortex::Constraint::Regexp.new(limit)
|
48
51
|
else
|
49
52
|
raise KeyVortex::Error, "Unexpected attribute: #{attribute}"
|
50
53
|
end
|
data/lib/key_vortex/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: key-vortex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lambda Null
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Defines abstractions that can be built on top of for key/value storage
|
14
14
|
on different technologies (file, s3, sql, redis, etc.)
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- lib/key_vortex/constraint/length.rb
|
41
41
|
- lib/key_vortex/constraint/maximum.rb
|
42
42
|
- lib/key_vortex/constraint/minimum.rb
|
43
|
+
- lib/key_vortex/constraint/regexp.rb
|
43
44
|
- lib/key_vortex/field.rb
|
44
45
|
- lib/key_vortex/limitation.rb
|
45
46
|
- lib/key_vortex/record.rb
|
@@ -67,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
68
|
- !ruby/object:Gem::Version
|
68
69
|
version: '0'
|
69
70
|
requirements: []
|
70
|
-
rubygems_version: 3.
|
71
|
+
rubygems_version: 3.4.1
|
71
72
|
signing_key:
|
72
73
|
specification_version: 4
|
73
74
|
summary: Abstraction for interacting with various record stores
|