isomorfeus-data 1.0.0.zeta18 → 1.0.0.zeta19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 356e67444c3faeca15467cccf8bdc6d6f24a452d0b7b9229b1055df153673eb2
4
- data.tar.gz: a66964902d5cea8335105bbf31040a2250e8f5c5e635d2499deb0a64efc7c1c9
3
+ metadata.gz: bd3adf63ab9f52427d24db278b69b7859b6782bbc18503d1385758c9a5679a7b
4
+ data.tar.gz: 280f7fd46edc71c242a0a6842d1f4c721dc7c53c95b6c5622fcb8b7b56a51e5a
5
5
  SHA512:
6
- metadata.gz: d30e2b6a246c0e220325cb6fba67a6818f0e2e258ff935dfc9455065206fbd31bed7f520f4e6af44c4934ce6ecbd71bd5fb9a87f026403086eb245fb5b5b17df
7
- data.tar.gz: 75c6abf4a56824b6dcc9add54eb1dc40227d586ee7d0d2ea7f9b4a256b9e9266f7c6430fc23389e721570506fbe8c42dcd799551340673cf7f5e25832861a257
6
+ metadata.gz: 1f69337c1b9814af87027fdd42aaf0608481a4b56ca8d79cc0e9b62c0d549219419609e42ef7f5312a33c2098f13c3d164deb29031d72c130ca729e309b1f7ae
7
+ data.tar.gz: 2c36f03589f78893a36ba86b25d8575e60dbf80368e3e7ab142bcbc0cc77df7ff489a9106096fc2467ecb22ca1cbdc61e686e38d54cc9b2f5d24b688c691699d
@@ -60,6 +60,8 @@ module Isomorfeus
60
60
  case @o[:type]
61
61
  when :boolean
62
62
  Isomorfeus.raise_error(message: "#{@c}: #{@p} is not a boolean") unless @e.class == TrueClass || @e.class == FalseClass
63
+ else
64
+ c_string_sub_types
63
65
  end
64
66
  end
65
67
  end
@@ -72,6 +74,7 @@ module Isomorfeus
72
74
  send('c_' + m, l)
73
75
  end
74
76
  end
77
+ @o[:validate_block].call(@e) if @o.key?(:validate_block)
75
78
  end
76
79
 
77
80
  # specific validations
@@ -120,12 +123,23 @@ module Isomorfeus
120
123
  Isomorfeus.raise_error(message: "#{@c}: #{@p} test condition check failed") unless @o[:test].call(@e)
121
124
  end
122
125
 
123
- def c_sub_type(v)
124
- case v
126
+ def c_string_sub_types
127
+ Isomorfeus.raise_error(message: "#{@c}: #{@p} must be a String") unless @e.class == String
128
+ case @o[:type]
125
129
  when :email
126
- # TODO
127
- when :url
128
- # TODO
130
+ Isomorfeus.raise_error(message: "#{@c}: #{@p} is not a valid email address") unless @e.match? /\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z/
131
+ when :uri
132
+ if RUBY_ENGINE == 'opal'
133
+ %x{
134
+ try {
135
+ new URL(#@e);
136
+ } catch {
137
+ #{Isomorfeus.raise_error(message: "#{@c}: #{@p} is not a valid uri")}
138
+ }
139
+ }
140
+ else
141
+ Isomorfeus.raise_error(message: "#{@c}: #{@p} is not a valid uri") unless @e.match? /\A#{URI.regexp}\z/
142
+ end
129
143
  end
130
144
  end
131
145
  end
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '1.0.0.zeta18'
3
+ VERSION = '1.0.0.zeta19'
4
4
  end
5
5
  end
@@ -12,6 +12,7 @@ if RUBY_ENGINE == 'opal'
12
12
  require_tree 'isomorfeus_data', :autoload
13
13
  Isomorfeus.zeitwerk.push_dir('data')
14
14
  else
15
+ require 'uri'
15
16
  require 'oj'
16
17
  require 'active_support'
17
18
  require 'active_support/core_ext/hash'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.zeta18
4
+ version: 1.0.0.zeta19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-14 00:00:00.000000000 Z
11
+ date: 2020-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -86,56 +86,56 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 16.12.18
89
+ version: 16.12.20
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 16.12.18
96
+ version: 16.12.20
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: isomorfeus-redux
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 4.0.17
103
+ version: 4.0.18
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 4.0.17
110
+ version: 4.0.18
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: isomorfeus-transport
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 1.0.0.zeta18
117
+ version: 1.0.0.zeta19
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 1.0.0.zeta18
124
+ version: 1.0.0.zeta19
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: isomorfeus
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 1.0.0.zeta18
131
+ version: 1.0.0.zeta19
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 1.0.0.zeta18
138
+ version: 1.0.0.zeta19
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: opal-webpack-loader
141
141
  requirement: !ruby/object:Gem::Requirement