rasti-form 2.2.0 → 3.0.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 +1 -0
- data/lib/rasti/form/types/regexp.rb +9 -14
- data/lib/rasti/form/types/string.rb +22 -1
- data/lib/rasti/form/version.rb +1 -1
- data/spec/types/regexp_spec.rb +6 -8
- data/spec/types/string_formatted_spec.rb +20 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dd0424409c0c7232782c40cde8dbf7fa84752d3
|
4
|
+
data.tar.gz: a7c8be9e98dcc9e6d52482469486ba643a0ffa33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2fb881aec7bca876dd58a3c2bf3e6dcca8ac3f13777437992f4e359d07856c9a7075e4b4c51882f41cb30ffacb8ebf85616632898efbfa02ccd7abea6a7e81c
|
7
|
+
data.tar.gz: c77fed8829801cae565a567f3303b8c4271e5a9b3b79c7ac2f04475e48a9bc6d884e80e2253903a0374a4848d635cf0576a1b191044c850f6cf9aea70a373416
|
data/README.md
CHANGED
@@ -2,26 +2,21 @@ module Rasti
|
|
2
2
|
class Form
|
3
3
|
module Types
|
4
4
|
class Regexp
|
5
|
+
class << self
|
5
6
|
|
6
|
-
|
7
|
+
include Castable
|
7
8
|
|
8
|
-
|
9
|
-
new format
|
10
|
-
end
|
9
|
+
private
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
alias_method :inspect, :to_s
|
11
|
+
def valid?(value)
|
12
|
+
value.is_a?(::Regexp) || value.is_a?(::String)
|
13
|
+
end
|
16
14
|
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
def transform(value)
|
16
|
+
value.is_a?(::Regexp) ? value.source : ::Regexp.compile(value).source
|
17
|
+
end
|
20
18
|
|
21
|
-
def initialize(format)
|
22
|
-
@format = format.is_a?(String) ? ::Regexp.new(format) : format
|
23
19
|
end
|
24
|
-
|
25
20
|
end
|
26
21
|
end
|
27
22
|
end
|
@@ -2,10 +2,17 @@ module Rasti
|
|
2
2
|
class Form
|
3
3
|
module Types
|
4
4
|
class String
|
5
|
+
|
6
|
+
include Formatable
|
7
|
+
|
5
8
|
class << self
|
6
9
|
|
7
10
|
include Castable
|
8
|
-
|
11
|
+
|
12
|
+
def [](format)
|
13
|
+
new format
|
14
|
+
end
|
15
|
+
|
9
16
|
private
|
10
17
|
|
11
18
|
def valid?(value)
|
@@ -17,6 +24,20 @@ module Rasti
|
|
17
24
|
end
|
18
25
|
|
19
26
|
end
|
27
|
+
|
28
|
+
def to_s
|
29
|
+
"#{self.class}[#{format.inspect}]"
|
30
|
+
end
|
31
|
+
alias_method :inspect, :to_s
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
attr_reader :format
|
36
|
+
|
37
|
+
def initialize(format)
|
38
|
+
@format = format.is_a?(String) ? ::Regexp.new(format) : format
|
39
|
+
end
|
40
|
+
|
20
41
|
end
|
21
42
|
end
|
22
43
|
end
|
data/lib/rasti/form/version.rb
CHANGED
data/spec/types/regexp_spec.rb
CHANGED
@@ -2,18 +2,16 @@ require 'minitest_helper'
|
|
2
2
|
|
3
3
|
describe Rasti::Form::Types::Regexp do
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
it "#{value.inspect} -> #{value.to_s}" do
|
9
|
-
Rasti::Form::Types::Regexp[email_regexp].cast(value).must_equal value
|
5
|
+
['[a-z]', /[a-z]/].each do |value|
|
6
|
+
it "#{value.inspect} -> #{Regexp.new(value).inspect}" do
|
7
|
+
Rasti::Form::Types::Regexp.cast(value).must_equal Regexp.new(value)
|
10
8
|
end
|
11
9
|
end
|
12
10
|
|
13
|
-
[nil, '
|
11
|
+
[nil, '[a-z', :symbol, [1,2], {a: 1, b: 2}, Object.new, 5].each do |value|
|
14
12
|
it "#{value.inspect} -> CastError" do
|
15
|
-
error = proc { Rasti::Form::Types::Regexp
|
16
|
-
error.message.must_equal "Invalid cast: #{as_string(value)} -> Rasti::Form::Types::Regexp
|
13
|
+
error = proc { Rasti::Form::Types::Regexp.cast(value) }.must_raise Rasti::Form::CastError
|
14
|
+
error.message.must_equal "Invalid cast: #{as_string(value)} -> Rasti::Form::Types::Regexp"
|
17
15
|
end
|
18
16
|
end
|
19
17
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'minitest_helper'
|
2
|
+
|
3
|
+
describe Rasti::Form::Types::String, 'Formatted' do
|
4
|
+
|
5
|
+
email_regexp = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
|
6
|
+
|
7
|
+
['user@mail.com'.to_sym, 'user.name-123@mail-test.com.ar'].each do |value|
|
8
|
+
it "#{value.inspect} -> #{value.to_s}" do
|
9
|
+
Rasti::Form::Types::String[email_regexp].cast(value).must_equal value
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
[nil, 'text', :symbol, '999'.to_sym, [1,2], {a: 1, b: 2}, Object.new, 5].each do |value|
|
14
|
+
it "#{value.inspect} -> CastError" do
|
15
|
+
error = proc { Rasti::Form::Types::String[email_regexp].cast(value) }.must_raise Rasti::Form::CastError
|
16
|
+
error.message.must_equal "Invalid cast: #{as_string(value)} -> Rasti::Form::Types::String[#{as_string(email_regexp)}]"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rasti-form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriel Naiman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_require
|
@@ -191,6 +191,7 @@ files:
|
|
191
191
|
- spec/types/integer_spec.rb
|
192
192
|
- spec/types/io_spec.rb
|
193
193
|
- spec/types/regexp_spec.rb
|
194
|
+
- spec/types/string_formatted_spec.rb
|
194
195
|
- spec/types/string_spec.rb
|
195
196
|
- spec/types/symbol_spec.rb
|
196
197
|
- spec/types/time_spec.rb
|
@@ -232,6 +233,7 @@ test_files:
|
|
232
233
|
- spec/types/integer_spec.rb
|
233
234
|
- spec/types/io_spec.rb
|
234
235
|
- spec/types/regexp_spec.rb
|
236
|
+
- spec/types/string_formatted_spec.rb
|
235
237
|
- spec/types/string_spec.rb
|
236
238
|
- spec/types/symbol_spec.rb
|
237
239
|
- spec/types/time_spec.rb
|