enotype 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|