json_schemer-rails 0.4.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 554ef1720a48d6ca36556c75545437570e81c1be1385eb1890972505d2d5123c
4
- data.tar.gz: 0ca66897ec4cbaab7feec481e97cece862f039778f44c4ec14e95dd868b3e639
3
+ metadata.gz: '048c58d06a9c16f8bcac041018539e4b4c08db4b4b74a9a1eff70dbdc12719b2'
4
+ data.tar.gz: ba64d94c3670cc530ed0acbe5f7b3117fbca39d5f7791e65ff6ed7448a247892
5
5
  SHA512:
6
- metadata.gz: a37b183d5928d8fbd1dcb28b2520a1cdea50a3786ca32fbdc1da2d7b84ee12a64e9774d640fda5221181bb8b40c2d7e2879ecea672593ab5071d18952fca6079
7
- data.tar.gz: 4809ee27c3d9fdc2ab81910df31a00d2f23ebc43b21c99c0524b6e269b181a9116fb88a8e387fb50d52a6b71cc3c2474c45edb7ab7662e9b6c5888ff4397a7b6
6
+ metadata.gz: cbfcb80dd0a99367462f339d8fba75882aa5ba980e11b97a23b778cb8807e5648bd9907dc2aac2ae7bbdbbf4e88f96ee616375e012ad9b1bc87af80285456fa4
7
+ data.tar.gz: 7e30a251a6572af9cd86bc888ba4c68b23d9a8e4343b64e7c8fdb1be30abdde5c44c23221d2cb83fe0d2bfb2f7021baa94ad14440401508fafc971b0114e20c3
@@ -98,7 +98,7 @@ module JSONSchemer
98
98
  end
99
99
  end
100
100
 
101
- def validate_path_param(spec) # rubocop:disable Metrics/AbcSize
101
+ def validate_path_param(spec) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
102
102
  result = request.path_parameters[spec["name"].to_sym]
103
103
  ref = spec.dig("schema", "$ref")
104
104
  validator = if ref
@@ -107,6 +107,12 @@ module JSONSchemer
107
107
  JSONSchemer.schema(spec["schema"])
108
108
  end
109
109
 
110
+ begin
111
+ result = Integer(result) if validator.fetch("type").value == "integer"
112
+ rescue ArgumentError
113
+ raise RequestValidationError, "#{result} is not an integer"
114
+ end
115
+
110
116
  errors = validator.validate(result).to_a
111
117
 
112
118
  raise RequestValidationError, errors.join(", ") unless errors.empty?
@@ -121,10 +127,12 @@ module JSONSchemer
121
127
  end
122
128
 
123
129
  def json_ref_for_path
124
- params = request.path_parameters.except(:controller, :action)
130
+ params = request.path_parameters.except(:controller, :action, :format)
125
131
  path = CGI.unescape(request.path).tr(" ", "+")
126
- params.excluding(:controller, :action, :format).each_key do |parameter|
127
- path.gsub!(params[parameter], "%7B#{parameter}%7D") if params[parameter]
132
+ params.each_key do |parameter|
133
+ next unless path.match?(%r{/#{Regexp.escape(params[parameter])}(/|$)})
134
+
135
+ path.sub!("/#{params[parameter]}", "/%7B#{parameter}%7D")
128
136
  end
129
137
  path.gsub("/", "~1")
130
138
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module JSONSchemer
4
4
  module Rails
5
- VERSION = "0.4.0"
5
+ VERSION = "0.4.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_schemer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubygems_version: 4.0.7
89
+ rubygems_version: 4.0.8
90
90
  specification_version: 4
91
91
  summary: Rails integration for JSONSchemer. Validates OpenAPI
92
92
  test_files: []