json_schemer 0.2.1 → 0.2.2

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: b7c6d8c0cfc688eea00cec0ab2a81d5057a721c93a50a575b3b50baa1ab409ba
4
- data.tar.gz: afdaa69cadc1be649758a99fd7ea5d9e7035b21271fcdfdf1897d8db82e2187f
3
+ metadata.gz: 73e909cd3b478fdfd80f7b4cf6f662e2b2089f9e4d36e53545250e08d6108ded
4
+ data.tar.gz: ce95d5099ca09f52616555570b014c4d4501f4ef3742fb70c06f61846d061aeb
5
5
  SHA512:
6
- metadata.gz: c5a0cfcb7d8b8a175a7a59b10a5e4435344588bd0a9fe8cbe4ca547309cc4c8a8be9adfef1406077c9919aaf82b62b24401fb8669a00b118513a150556c90a26
7
- data.tar.gz: 927134f6cc7158702a3c7b6082aeb7dda435453d3eac8dbd98f5eb52e9aed6ad8165435bbe643781a505fb14f75c012dc921eb9ee9dd4f8fb1df8d3e19eff4ca
6
+ metadata.gz: 5b6e683f487d15ac6c88bed99e18ef73e949816a980abfe2edf066e2f92831e08d8245c9685104fe6df2d51e00de9b1670909681f1785704faf8adc17ec3ca26
7
+ data.tar.gz: dc9d610aade61f19a6f168d64945f0c90021548f9ead54bd8a76d9dfae2f0d2aa35c3e534fdd724b087faf8ed318704654dda63eedc531a37be0669e1f46c9e8
@@ -3,8 +3,7 @@ language: ruby
3
3
  rvm:
4
4
  - 2.6
5
5
  - 2.5
6
- - 2.3
7
- - 2.2
6
+ - 2.4
8
7
  before_install: gem install bundler -v 1.16.1
9
8
  before_script:
10
9
  - pip install --user Flask
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- json_schemer (0.2.1)
5
- ecma-re-validator (~> 0.2.0)
6
- hana (~> 1.3.3)
7
- regexp_parser (~> 1.5.0)
8
- uri_template (~> 0.7.0)
4
+ json_schemer (0.2.2)
5
+ ecma-re-validator (~> 0.2)
6
+ hana (~> 1.3)
7
+ regexp_parser (~> 1.5)
8
+ uri_template (~> 0.7)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -15,7 +15,7 @@ GEM
15
15
  hana (1.3.5)
16
16
  minitest (5.11.3)
17
17
  rake (10.5.0)
18
- regexp_parser (1.5.1)
18
+ regexp_parser (1.6.0)
19
19
  uri_template (0.7.0)
20
20
 
21
21
  PLATFORMS
@@ -32,8 +32,8 @@ Gem::Specification.new do |spec|
32
32
  # spec.add_development_dependency "jsonschema", "~> 2.0.2"
33
33
  # spec.add_development_dependency "rj_schema", "~> 0.2.0"
34
34
 
35
- spec.add_runtime_dependency "ecma-re-validator", "~> 0.2.0"
36
- spec.add_runtime_dependency "hana", "~> 1.3.3"
37
- spec.add_runtime_dependency "uri_template", "~> 0.7.0"
38
- spec.add_runtime_dependency "regexp_parser", "~> 1.5.0"
35
+ spec.add_runtime_dependency "ecma-re-validator", "~> 0.2"
36
+ spec.add_runtime_dependency "hana", "~> 1.3"
37
+ spec.add_runtime_dependency "uri_template", "~> 0.7"
38
+ spec.add_runtime_dependency "regexp_parser", "~> 1.5"
39
39
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  require 'base64'
3
+ require 'ipaddr'
4
4
  require 'json'
5
5
  require 'net/http'
6
6
  require 'pathname'
@@ -9,7 +9,7 @@ require 'uri'
9
9
 
10
10
  require 'ecma-re-validator'
11
11
  require 'hana'
12
- require 'ipaddr'
12
+ require 'regexp_parser'
13
13
  require 'uri_template'
14
14
 
15
15
  require 'json_schemer/version'
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  class CachedRefResolver
5
4
  def initialize(&ref_resolver)
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  module Format
5
4
  # this is no good
@@ -9,6 +8,7 @@ module JSONSchemer
9
8
  JSON_POINTER_REGEX_STRING = '(\/([^~\/]|~[01])*)*'
10
9
  JSON_POINTER_REGEX = /\A#{JSON_POINTER_REGEX_STRING}\z/.freeze
11
10
  RELATIVE_JSON_POINTER_REGEX = /\A(0|[1-9]\d*)(#|#{JSON_POINTER_REGEX_STRING})?\z/.freeze
11
+ DATE_TIME_OFFSET_REGEX = /(Z|[\+\-]([01][0-9]|2[0-3]):[0-5][0-9])\z/i.freeze
12
12
 
13
13
  # https://github.com/ruby-rdf/rdf
14
14
 
@@ -108,18 +108,18 @@ module JSONSchemer
108
108
 
109
109
  def valid_date_time?(data)
110
110
  DateTime.rfc3339(data)
111
- true
111
+ DATE_TIME_OFFSET_REGEX.match?(data)
112
112
  rescue ArgumentError => e
113
113
  raise e unless e.message == 'invalid date'
114
114
  false
115
115
  end
116
116
 
117
117
  def valid_email?(data)
118
- !!(EMAIL_REGEX =~ data)
118
+ EMAIL_REGEX.match?(data)
119
119
  end
120
120
 
121
121
  def valid_hostname?(data)
122
- !!(HOSTNAME_REGEX =~ data && data.split('.').all? { |label| label.size <= 63 })
122
+ HOSTNAME_REGEX.match?(data) && data.split('.').all? { |label| label.size <= 63 }
123
123
  end
124
124
 
125
125
  def valid_ip?(data, type)
@@ -130,11 +130,11 @@ module JSONSchemer
130
130
  end
131
131
 
132
132
  def valid_iri?(data)
133
- !!(IRI =~ data)
133
+ IRI.match?(data)
134
134
  end
135
135
 
136
136
  def valid_iri_reference?(data)
137
- !!(IRELATIVE_REF =~ data)
137
+ IRELATIVE_REF.match?(data)
138
138
  end
139
139
 
140
140
  def valid_uri_template?(data)
@@ -145,11 +145,11 @@ module JSONSchemer
145
145
  end
146
146
 
147
147
  def valid_json_pointer?(data)
148
- !!(JSON_POINTER_REGEX =~ data)
148
+ JSON_POINTER_REGEX.match?(data)
149
149
  end
150
150
 
151
151
  def valid_relative_json_pointer?(data)
152
- !!(RELATIVE_JSON_POINTER_REGEX =~ data)
152
+ RELATIVE_JSON_POINTER_REGEX.match?(data)
153
153
  end
154
154
  end
155
155
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  module Schema
5
4
  class Base
@@ -506,7 +505,7 @@ module JSONSchemer
506
505
  [pattern, ecma_262_regex(pattern), property_schema]
507
506
  end
508
507
  regex_pattern_properties.each do |pattern, regex, property_schema|
509
- if regex =~ key
508
+ if regex.match?(key)
510
509
  subinstance = instance.merge(
511
510
  data: value,
512
511
  data_pointer: "#{instance.data_pointer}/#{key}",
@@ -552,10 +551,13 @@ module JSONSchemer
552
551
  end
553
552
 
554
553
  def join_uri(a, b)
555
- if a && b
554
+ b = URI.parse(b) if b
555
+ if a && b && a.relative? && b.relative?
556
+ b
557
+ elsif a && b
556
558
  URI.join(a, b)
557
559
  elsif b
558
- URI.parse(b)
560
+ b
559
561
  else
560
562
  a
561
563
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  module Schema
5
4
  class Draft4 < Base
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  module Schema
5
4
  class Draft6 < Base
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
3
  module Schema
5
4
  class Draft7 < Base
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module JSONSchemer
4
- VERSION = '0.2.1'
3
+ VERSION = '0.2.2'
5
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schemer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Harsha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-22 00:00:00.000000000 Z
11
+ date: 2019-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,56 +58,56 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.2.0
61
+ version: '0.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.2.0
68
+ version: '0.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: hana
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.3
75
+ version: '1.3'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.3
82
+ version: '1.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: uri_template
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.7.0
89
+ version: '0.7'
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: 0.7.0
96
+ version: '0.7'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: regexp_parser
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.5.0
103
+ version: '1.5'
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: 1.5.0
110
+ version: '1.5'
111
111
  description:
112
112
  email:
113
113
  - davishmcclurg@gmail.com