enotype 0.3.0 → 0.3.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/README.md +40 -18
- data/lib/enotype/de.rb +19 -0
- data/lib/enotype/en.rb +19 -0
- data/lib/enotype/es.rb +19 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1946d9c86abd80716b91a000c8b648455c07c8e2b4b31bbfbe914d4e7298426e
|
4
|
+
data.tar.gz: 24c13217e0e7c18bcf51bb94fab8f418ff3a86e2faacfd3a2a45a95bd1745333
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15fd2a6595095035097face41369663ff233845d360b456801adcca84f487ede01b011f6bd0f5bf472b6cd431f3e64b345dfead2348c18c77ff0b30e1eba8dc3
|
7
|
+
data.tar.gz: 6da1878ddd2ba30b33a4bb94e27682ff285be5efe5c536923185f28458307b7b7b19ec520959d40969e8ace885b9f5343ef5e569ba5449e9956d41f79d70333d
|
data/README.md
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
```ruby
|
6
6
|
require 'enotype'
|
7
7
|
|
8
|
-
Enotype
|
9
|
-
Enotype
|
8
|
+
Enotype.color('#fff') # returns "#fff"
|
9
|
+
Enotype.color('#xyz') # raises "A color is required, for instance '#B6D918', '#fff' or '#01b'."
|
10
10
|
```
|
11
11
|
|
12
12
|
```ruby
|
13
|
-
require 'enotype/es'
|
13
|
+
require 'enotype/es' # with localized error messages
|
14
14
|
|
15
|
-
Enotype
|
15
|
+
Enotype.color('#xyz') # raises "Se requiere un color, por ejemplo '#B6D918', '#fff' o '#01b'."
|
16
16
|
```
|
17
17
|
|
18
18
|
## Installation
|
@@ -44,7 +44,7 @@ gem install enotype
|
|
44
44
|
```ruby
|
45
45
|
require 'enotype'
|
46
46
|
|
47
|
-
Enotype
|
47
|
+
Enotype.boolean('true') # returns true
|
48
48
|
```
|
49
49
|
|
50
50
|
`'true'` returns `true`.
|
@@ -57,7 +57,7 @@ Enotype::boolean('true') # returns true
|
|
57
57
|
```ruby
|
58
58
|
require 'enotype'
|
59
59
|
|
60
|
-
Enotype
|
60
|
+
Enotype.color('#abcdef') # returns '#abcdef'
|
61
61
|
```
|
62
62
|
|
63
63
|
`'#abcdef'` returns `'#abcdef'`.
|
@@ -75,7 +75,7 @@ Enotype::color('#abcdef') # returns '#abcdef'
|
|
75
75
|
```ruby
|
76
76
|
require 'enotype'
|
77
77
|
|
78
|
-
Enotype
|
78
|
+
Enotype.comma_separated('one,two,three') # returns ['one', 'two', 'three']
|
79
79
|
```
|
80
80
|
|
81
81
|
`'one,two,three'` returns `['one', 'two', 'three']`.
|
@@ -91,7 +91,7 @@ Enotype::comma_separated('one,two,three') # returns ['one', 'two', 'three']
|
|
91
91
|
```ruby
|
92
92
|
require 'enotype'
|
93
93
|
|
94
|
-
Enotype
|
94
|
+
Enotype.date('1992-02-02') # returns Time.utc(1992, 2, 2)
|
95
95
|
```
|
96
96
|
|
97
97
|
`'1992-02-02'` returns `Time.utc(1992, 2, 2)`.
|
@@ -111,7 +111,7 @@ Enotype::date('1992-02-02') # returns Time.utc(1992, 2, 2)
|
|
111
111
|
```ruby
|
112
112
|
require 'enotype'
|
113
113
|
|
114
|
-
Enotype
|
114
|
+
Enotype.datetime('1990') # returns Time.utc(1990, 1, 1)
|
115
115
|
```
|
116
116
|
|
117
117
|
`'1990'` returns `Time.utc(1990, 1, 1)`.
|
@@ -131,7 +131,7 @@ Enotype::datetime('1990') # returns Time.utc(1990, 1, 1)
|
|
131
131
|
```ruby
|
132
132
|
require 'enotype'
|
133
133
|
|
134
|
-
Enotype
|
134
|
+
Enotype.email('john.doe@eno-lang.org') # returns 'john.doe@eno-lang.org'
|
135
135
|
```
|
136
136
|
|
137
137
|
`'john.doe@eno-lang.org'` returns `'john.doe@eno-lang.org'`.
|
@@ -143,7 +143,7 @@ Enotype::email('john.doe@eno-lang.org') # returns 'john.doe@eno-lang.org'
|
|
143
143
|
```ruby
|
144
144
|
require 'enotype'
|
145
145
|
|
146
|
-
Enotype
|
146
|
+
Enotype.float('42') # returns 42.0
|
147
147
|
```
|
148
148
|
|
149
149
|
`'42'` returns `42.0`.
|
@@ -157,7 +157,7 @@ Enotype::float('42') # returns 42.0
|
|
157
157
|
```ruby
|
158
158
|
require 'enotype'
|
159
159
|
|
160
|
-
Enotype
|
160
|
+
Enotype.integer('42') # returns 42
|
161
161
|
```
|
162
162
|
|
163
163
|
`'42'` returns `42`.
|
@@ -171,7 +171,7 @@ Enotype::integer('42') # returns 42
|
|
171
171
|
```ruby
|
172
172
|
require 'enotype'
|
173
173
|
|
174
|
-
Enotype
|
174
|
+
Enotype.ipv4('0.0.0.0') # returns '0.0.0.0'
|
175
175
|
```
|
176
176
|
|
177
177
|
`'0.0.0.0'` returns `'0.0.0.0'`.
|
@@ -186,7 +186,7 @@ Enotype::ipv4('0.0.0.0') # returns '0.0.0.0'
|
|
186
186
|
```ruby
|
187
187
|
require 'enotype'
|
188
188
|
|
189
|
-
Enotype
|
189
|
+
Enotype.json('{ "valid": true }') # returns { 'valid' => true }
|
190
190
|
```
|
191
191
|
|
192
192
|
`'{ "valid": true }'` returns `{ 'valid' => true }`.
|
@@ -200,7 +200,7 @@ Enotype::json('{ "valid": true }') # returns { 'valid' => true }
|
|
200
200
|
```ruby
|
201
201
|
require 'enotype'
|
202
202
|
|
203
|
-
Enotype
|
203
|
+
Enotype.lat_lng('48.205870, 16.413690') # returns { lat: 48.205870, lng: 16.413690 }
|
204
204
|
```
|
205
205
|
|
206
206
|
`'48.205870, 16.413690'` returns `{ lat: 48.205870, lng: 16.413690 }`.
|
@@ -219,7 +219,7 @@ Enotype::lat_lng('48.205870, 16.413690') # returns { lat: 48.205870, lng: 16.413
|
|
219
219
|
```ruby
|
220
220
|
require 'enotype'
|
221
221
|
|
222
|
-
Enotype
|
222
|
+
Enotype.slug('eno-lang-article') # returns 'eno-lang-article'
|
223
223
|
```
|
224
224
|
|
225
225
|
`'eno-lang-article'` returns `'eno-lang-article'`.
|
@@ -234,7 +234,7 @@ Enotype::slug('eno-lang-article') # returns 'eno-lang-article'
|
|
234
234
|
```ruby
|
235
235
|
require 'enotype'
|
236
236
|
|
237
|
-
Enotype
|
237
|
+
Enotype.url('http://www.valid.com') # returns 'http://www.valid.com'
|
238
238
|
```
|
239
239
|
|
240
240
|
`'http://www.valid.com'` returns `'http://www.valid.com'`.
|
@@ -246,4 +246,26 @@ Enotype::url('http://www.valid.com') # returns 'http://www.valid.com'
|
|
246
246
|
`'htp://www.invalid.com'` raises an exception.
|
247
247
|
`'http:/invalid.com'` raises an exception.
|
248
248
|
`'https//invalid.com'` raises an exception.
|
249
|
-
`'https://invalid'` raises an exception.
|
249
|
+
`'https://invalid'` raises an exception.
|
250
|
+
|
251
|
+
### procs
|
252
|
+
|
253
|
+
Not a loader but a helper method to obtain some or all loaders wrapped in a
|
254
|
+
hash of procs, which allows to pass them around easily (this is mainly
|
255
|
+
intended for registering loaders with
|
256
|
+
[enolib](https://eno-lang.org/enolib)).
|
257
|
+
|
258
|
+
```ruby
|
259
|
+
require 'enotype'
|
260
|
+
|
261
|
+
# Get all loaders wrapped in a hash of procs
|
262
|
+
loaders = Enotype.procs
|
263
|
+
loaders[:boolean].call('true') # returns true
|
264
|
+
|
265
|
+
# Get only the color and float loaders wrapped in a hash of procs
|
266
|
+
loaders = Enotype.procs(:color, :float)
|
267
|
+
loaders[:float].call('42.0') # returns 42.0
|
268
|
+
|
269
|
+
# Registering loaders with enolib (main intended usage)
|
270
|
+
Enolib.register(Enotype.procs(:color, :float))
|
271
|
+
```
|
data/lib/enotype/de.rb
CHANGED
@@ -120,4 +120,23 @@ module Enotype
|
|
120
120
|
|
121
121
|
value
|
122
122
|
end
|
123
|
+
|
124
|
+
def self.procs(*explicitly_requested)
|
125
|
+
available = self.singleton_methods.reject { |name| name == :procs }
|
126
|
+
|
127
|
+
if explicitly_requested.empty?
|
128
|
+
available.to_h do |name|
|
129
|
+
[name, Proc.new { |value| self.send(name, value) }]
|
130
|
+
end
|
131
|
+
else
|
132
|
+
explicitly_requested.to_h do |name|
|
133
|
+
unless available.include?(name)
|
134
|
+
list = available.map { |name| ":#{name}" }.join(', ')
|
135
|
+
raise "Enotype does not provide :#{name}, available are: #{list}"
|
136
|
+
end
|
137
|
+
|
138
|
+
[name, Proc.new { |value| self.send(name, value) }]
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
123
142
|
end
|
data/lib/enotype/en.rb
CHANGED
@@ -120,4 +120,23 @@ module Enotype
|
|
120
120
|
|
121
121
|
value
|
122
122
|
end
|
123
|
+
|
124
|
+
def self.procs(*explicitly_requested)
|
125
|
+
available = self.singleton_methods.reject { |name| name == :procs }
|
126
|
+
|
127
|
+
if explicitly_requested.empty?
|
128
|
+
available.to_h do |name|
|
129
|
+
[name, Proc.new { |value| self.send(name, value) }]
|
130
|
+
end
|
131
|
+
else
|
132
|
+
explicitly_requested.to_h do |name|
|
133
|
+
unless available.include?(name)
|
134
|
+
list = available.map { |name| ":#{name}" }.join(', ')
|
135
|
+
raise "Enotype does not provide :#{name}, available are: #{list}"
|
136
|
+
end
|
137
|
+
|
138
|
+
[name, Proc.new { |value| self.send(name, value) }]
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
123
142
|
end
|
data/lib/enotype/es.rb
CHANGED
@@ -120,4 +120,23 @@ module Enotype
|
|
120
120
|
|
121
121
|
value
|
122
122
|
end
|
123
|
+
|
124
|
+
def self.procs(*explicitly_requested)
|
125
|
+
available = self.singleton_methods.reject { |name| name == :procs }
|
126
|
+
|
127
|
+
if explicitly_requested.empty?
|
128
|
+
available.to_h do |name|
|
129
|
+
[name, Proc.new { |value| self.send(name, value) }]
|
130
|
+
end
|
131
|
+
else
|
132
|
+
explicitly_requested.to_h do |name|
|
133
|
+
unless available.include?(name)
|
134
|
+
list = available.map { |name| ":#{name}" }.join(', ')
|
135
|
+
raise "Enotype does not provide :#{name}, available are: #{list}"
|
136
|
+
end
|
137
|
+
|
138
|
+
[name, Proc.new { |value| self.send(name, value) }]
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
123
142
|
end
|
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.3.
|
4
|
+
version: 0.3.1
|
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-
|
11
|
+
date: 2019-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -41,7 +41,7 @@ licenses:
|
|
41
41
|
- MIT
|
42
42
|
metadata:
|
43
43
|
bug_tracker_uri: https://github.com/eno-lang/enotype/issues
|
44
|
-
changelog_uri: https://github.com/eno-lang/enotype/CHANGELOG.md
|
44
|
+
changelog_uri: https://github.com/eno-lang/enotype/blob/master/CHANGELOG.md
|
45
45
|
documentation_uri: https://eno-lang.org/enotype/
|
46
46
|
homepage_uri: https://eno-lang.org/enotype/
|
47
47
|
source_code_uri: https://github.com/eno-lang/enotype/
|