enotype 0.2.0 → 0.3.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/README.md +15 -0
- data/lib/enotype/de.rb +13 -0
- data/lib/enotype/en.rb +13 -0
- data/lib/enotype/es.rb +13 -0
- metadata +11 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c84e902e9b398c4d93cc534301ee414c6dda73eecd051088d0d050e15a2bd65
|
4
|
+
data.tar.gz: c5c47fe3b59804e2b1b13093aedec95c6a73a499c9189ab38d4fb560457ac505
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c56dae8fca628ca7242adc567b388c5e7e587df97d141bddcedb9c8ec3407a11a511950d1bc6bd97334437044c0f0cbd696903a42875847dfa3c63f75801d7c
|
7
|
+
data.tar.gz: af234ae4de9952567ee6c2bfeb90b445e2537209f7d071a3a49d929e80f024300b69992ca291e1b2b733d3aa648904583350bf3c8bf12c1f6c3e8210d4525cb2
|
data/README.md
CHANGED
@@ -166,6 +166,21 @@ Enotype::integer('42') # returns 42
|
|
166
166
|
`'42,0'` raises an exception.
|
167
167
|
`'4 2'` raises an exception.
|
168
168
|
`'fortytwo'` raises an exception.
|
169
|
+
### ipv4
|
170
|
+
|
171
|
+
```ruby
|
172
|
+
require 'enotype'
|
173
|
+
|
174
|
+
Enotype::ipv4('0.0.0.0') # returns '0.0.0.0'
|
175
|
+
```
|
176
|
+
|
177
|
+
`'0.0.0.0'` returns `'0.0.0.0'`.
|
178
|
+
`'255.255.255.255'` returns `'255.255.255.255'`.
|
179
|
+
`'192.168.0.1'` returns `'192.168.0.1'`.
|
180
|
+
`'10.10.10.10'` returns `'10.10.10.10'`.
|
181
|
+
`'255.255.255.256'` raises an exception.
|
182
|
+
`'localhost'` raises an exception.
|
183
|
+
`'4.staging.production.lan'` raises an exception.
|
169
184
|
### json
|
170
185
|
|
171
186
|
```ruby
|
data/lib/enotype/de.rb
CHANGED
@@ -6,6 +6,7 @@ DATETIME_REGEXP = /^\s*(\d{4})(?:-(\d\d)(?:-(\d\d)(?:T(\d\d):(\d\d)(?::(\d\d)(?:
|
|
6
6
|
EMAIL_REGEXP = /^\s*[^@\s]+@[^@\s]+\.[^@\s]+\s*$/
|
7
7
|
FLOAT_REGEXP = /^\s*-?\d+(\.\d+)?\s*$/
|
8
8
|
INTEGER_REGEXP = /^\s*-?\d+\s*$/
|
9
|
+
IPV4_REGEXP = /^\s*((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}))\s*$/
|
9
10
|
LAT_LNG_REGEXP = /^\s*(-?\d{1,3}(?:\.\d+)?)\s*,\s*(-?\d{1,3}(?:\.\d+)?)\s*$/
|
10
11
|
SLUG_REGEXP = /^[0-9a-z\-_]+$/
|
11
12
|
URL_REGEXP = /^\s*https?:\/\/[^\s.]+\.\S+\s*$/
|
@@ -80,6 +81,18 @@ module Enotype
|
|
80
81
|
value.to_i
|
81
82
|
end
|
82
83
|
|
84
|
+
def self.ipv4(value)
|
85
|
+
match = value.match(IPV4_REGEXP)
|
86
|
+
|
87
|
+
return match[1] if match &&
|
88
|
+
match[2].to_i.between?(0, 255) &&
|
89
|
+
match[3].to_i.between?(0, 255) &&
|
90
|
+
match[4].to_i.between?(0, 255) &&
|
91
|
+
match[5].to_i.between?(0, 255)
|
92
|
+
|
93
|
+
raise 'Eine valide IPv4 Adresse ist erforderlich, zum Beispiel \'192.168.0.1\'.'
|
94
|
+
end
|
95
|
+
|
83
96
|
def self.json(value)
|
84
97
|
begin
|
85
98
|
JSON.parse(value)
|
data/lib/enotype/en.rb
CHANGED
@@ -6,6 +6,7 @@ DATETIME_REGEXP = /^\s*(\d{4})(?:-(\d\d)(?:-(\d\d)(?:T(\d\d):(\d\d)(?::(\d\d)(?:
|
|
6
6
|
EMAIL_REGEXP = /^\s*[^@\s]+@[^@\s]+\.[^@\s]+\s*$/
|
7
7
|
FLOAT_REGEXP = /^\s*-?\d+(\.\d+)?\s*$/
|
8
8
|
INTEGER_REGEXP = /^\s*-?\d+\s*$/
|
9
|
+
IPV4_REGEXP = /^\s*((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}))\s*$/
|
9
10
|
LAT_LNG_REGEXP = /^\s*(-?\d{1,3}(?:\.\d+)?)\s*,\s*(-?\d{1,3}(?:\.\d+)?)\s*$/
|
10
11
|
SLUG_REGEXP = /^[0-9a-z\-_]+$/
|
11
12
|
URL_REGEXP = /^\s*https?:\/\/[^\s.]+\.\S+\s*$/
|
@@ -80,6 +81,18 @@ module Enotype
|
|
80
81
|
value.to_i
|
81
82
|
end
|
82
83
|
|
84
|
+
def self.ipv4(value)
|
85
|
+
match = value.match(IPV4_REGEXP)
|
86
|
+
|
87
|
+
return match[1] if match &&
|
88
|
+
match[2].to_i.between?(0, 255) &&
|
89
|
+
match[3].to_i.between?(0, 255) &&
|
90
|
+
match[4].to_i.between?(0, 255) &&
|
91
|
+
match[5].to_i.between?(0, 255)
|
92
|
+
|
93
|
+
raise 'A valid IPv4 address is required, for instance \'192.168.0.1\'.'
|
94
|
+
end
|
95
|
+
|
83
96
|
def self.json(value)
|
84
97
|
begin
|
85
98
|
JSON.parse(value)
|
data/lib/enotype/es.rb
CHANGED
@@ -6,6 +6,7 @@ DATETIME_REGEXP = /^\s*(\d{4})(?:-(\d\d)(?:-(\d\d)(?:T(\d\d):(\d\d)(?::(\d\d)(?:
|
|
6
6
|
EMAIL_REGEXP = /^\s*[^@\s]+@[^@\s]+\.[^@\s]+\s*$/
|
7
7
|
FLOAT_REGEXP = /^\s*-?\d+(\.\d+)?\s*$/
|
8
8
|
INTEGER_REGEXP = /^\s*-?\d+\s*$/
|
9
|
+
IPV4_REGEXP = /^\s*((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}))\s*$/
|
9
10
|
LAT_LNG_REGEXP = /^\s*(-?\d{1,3}(?:\.\d+)?)\s*,\s*(-?\d{1,3}(?:\.\d+)?)\s*$/
|
10
11
|
SLUG_REGEXP = /^[0-9a-z\-_]+$/
|
11
12
|
URL_REGEXP = /^\s*https?:\/\/[^\s.]+\.\S+\s*$/
|
@@ -80,6 +81,18 @@ module Enotype
|
|
80
81
|
value.to_i
|
81
82
|
end
|
82
83
|
|
84
|
+
def self.ipv4(value)
|
85
|
+
match = value.match(IPV4_REGEXP)
|
86
|
+
|
87
|
+
return match[1] if match &&
|
88
|
+
match[2].to_i.between?(0, 255) &&
|
89
|
+
match[3].to_i.between?(0, 255) &&
|
90
|
+
match[4].to_i.between?(0, 255) &&
|
91
|
+
match[5].to_i.between?(0, 255)
|
92
|
+
|
93
|
+
raise 'Se requiere una valida dirección IPv4, por ejemplo \'192.168.0.1\'.'
|
94
|
+
end
|
95
|
+
|
83
96
|
def self.json(value)
|
84
97
|
begin
|
85
98
|
JSON.parse(value)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enotype
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Repp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -24,8 +24,7 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.8'
|
27
|
-
description:
|
28
|
-
types
|
27
|
+
description: A cross-language type library
|
29
28
|
email: simon@fdpl.io
|
30
29
|
executables: []
|
31
30
|
extensions: []
|
@@ -40,7 +39,12 @@ files:
|
|
40
39
|
homepage: https://eno-lang.org/enotype/
|
41
40
|
licenses:
|
42
41
|
- MIT
|
43
|
-
metadata:
|
42
|
+
metadata:
|
43
|
+
bug_tracker_uri: https://github.com/eno-lang/enotype/issues
|
44
|
+
changelog_uri: https://github.com/eno-lang/enotype/CHANGELOG.md
|
45
|
+
documentation_uri: https://eno-lang.org/enotype/
|
46
|
+
homepage_uri: https://eno-lang.org/enotype/
|
47
|
+
source_code_uri: https://github.com/eno-lang/enotype/
|
44
48
|
post_install_message:
|
45
49
|
rdoc_options: []
|
46
50
|
require_paths:
|
@@ -49,15 +53,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
49
53
|
requirements:
|
50
54
|
- - ">="
|
51
55
|
- !ruby/object:Gem::Version
|
52
|
-
version: 2.
|
56
|
+
version: 2.4.0
|
53
57
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
58
|
requirements:
|
55
59
|
- - ">="
|
56
60
|
- !ruby/object:Gem::Version
|
57
61
|
version: '0'
|
58
62
|
requirements: []
|
59
|
-
|
60
|
-
rubygems_version: 2.7.8
|
63
|
+
rubygems_version: 3.0.3
|
61
64
|
signing_key:
|
62
65
|
specification_version: 4
|
63
66
|
summary: A cross-language type library
|