isomorfeus-data 1.0.0.zeta18 → 1.0.0.zeta19

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 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