rage-rb 1.19.1 → 1.19.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/rage/cable/cable.rb +1 -1
- data/lib/rage/controller/api.rb +1 -1
- data/lib/rage/cookies.rb +7 -23
- data/lib/rage/middleware/cors.rb +12 -12
- data/lib/rage/middleware/request_id.rb +1 -1
- data/lib/rage/openapi/openapi.rb +2 -2
- data/lib/rage/response.rb +2 -2
- data/lib/rage/version.rb +1 -1
- data/rage.gemspec +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9c49338e5b69de7d3c5667af08785441a4988710da64e84946023a660cc31560
|
|
4
|
+
data.tar.gz: 841f4c508fb3d0739fd912967d370f5b40e69dbe8089727ea8cc56b123abd9ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 73c04963af90446e29b52564020c42048735a3df8a17e071dd744f139094e68a64cabf66396433b05dd1cd51fa1b91374fe06133754b2d802171641cf2f44956
|
|
7
|
+
data.tar.gz: d7561754ef307415e7d848e9ac0fc2731c03281285664eafd3c2865ebc7234bb03826c22cb803e05d48aaa3c4fce05d568a13b199f4d5ee5eb8d2613ba13c4b9
|
data/CHANGELOG.md
CHANGED
data/lib/rage/cable/cable.rb
CHANGED
data/lib/rage/controller/api.rb
CHANGED
|
@@ -585,7 +585,7 @@ class RageController::API
|
|
|
585
585
|
|
|
586
586
|
# Render an HTTP header requesting the client to send a Bearer token for authentication.
|
|
587
587
|
def request_http_token_authentication
|
|
588
|
-
headers["
|
|
588
|
+
headers["www-authenticate"] = "Token"
|
|
589
589
|
render plain: "HTTP Token: Access denied.", status: 401
|
|
590
590
|
end
|
|
591
591
|
|
data/lib/rage/cookies.rb
CHANGED
|
@@ -131,12 +131,8 @@ class Rage::Cookies
|
|
|
131
131
|
# @param path [String]
|
|
132
132
|
# @param domain [String]
|
|
133
133
|
def delete(key, path: "/", domain: nil)
|
|
134
|
-
@headers.compare_by_identity
|
|
135
|
-
|
|
136
134
|
@request_cookies[key] = nil
|
|
137
|
-
|
|
138
|
-
value: "", expires: Time.at(0), path: path, domain: domain
|
|
139
|
-
})
|
|
135
|
+
Rack::Utils.delete_cookie_header!(@headers, key, { path: path, domain: domain })
|
|
140
136
|
end
|
|
141
137
|
|
|
142
138
|
# Returns a jar that'll automatically encrypt cookie values before sending them to the client and will decrypt them
|
|
@@ -174,19 +170,17 @@ class Rage::Cookies
|
|
|
174
170
|
# @example
|
|
175
171
|
# cookie[:user_id] = { value: current_user.id, httponly: true, secure: true }
|
|
176
172
|
def []=(key, value)
|
|
177
|
-
@headers.compare_by_identity
|
|
178
|
-
|
|
179
173
|
unless value.is_a?(Hash)
|
|
180
174
|
serialized_value = @jar.dump(value)
|
|
181
175
|
@request_cookies[key] = serialized_value
|
|
182
|
-
|
|
176
|
+
Rack::Utils.set_cookie_header!(@headers, key, { value: serialized_value, expires: @expires })
|
|
183
177
|
return
|
|
184
178
|
end
|
|
185
179
|
|
|
186
180
|
if (domain = value[:domain])
|
|
187
181
|
host = @env["HTTP_HOST"]
|
|
188
182
|
|
|
189
|
-
|
|
183
|
+
processed_domain = if domain.is_a?(String)
|
|
190
184
|
domain
|
|
191
185
|
elsif domain == :all
|
|
192
186
|
DomainName(host).domain
|
|
@@ -196,18 +190,13 @@ class Rage::Cookies
|
|
|
196
190
|
end
|
|
197
191
|
|
|
198
192
|
serialized_value = @jar.dump(value[:value])
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
secure: value[:secure],
|
|
202
|
-
expires: value[:expires] || @expires,
|
|
203
|
-
httponly: value[:httponly],
|
|
204
|
-
same_site: value[:same_site],
|
|
193
|
+
Rack::Utils.set_cookie_header!(@headers, key, {
|
|
194
|
+
**value,
|
|
205
195
|
value: serialized_value,
|
|
206
|
-
domain:
|
|
196
|
+
domain: processed_domain,
|
|
197
|
+
expires: value[:expires] || @expires
|
|
207
198
|
})
|
|
208
|
-
|
|
209
199
|
@request_cookies[key] = serialized_value
|
|
210
|
-
@headers[set_cookie_key(key)] = cookie
|
|
211
200
|
end
|
|
212
201
|
|
|
213
202
|
def inspect
|
|
@@ -240,11 +229,6 @@ class Rage::Cookies
|
|
|
240
229
|
@request_cookies
|
|
241
230
|
end
|
|
242
231
|
|
|
243
|
-
def set_cookie_key(key)
|
|
244
|
-
@set_cookie_keys ||= Hash.new { |hash, key| hash[key] = "Set-Cookie".dup }
|
|
245
|
-
@set_cookie_keys[key]
|
|
246
|
-
end
|
|
247
|
-
|
|
248
232
|
protected
|
|
249
233
|
|
|
250
234
|
attr_writer :jar, :expires
|
data/lib/rage/middleware/cors.rb
CHANGED
|
@@ -14,20 +14,20 @@ class Rage::Cors
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
response = @app.call(env)
|
|
17
|
-
response[1]["
|
|
18
|
-
response[1]["
|
|
17
|
+
response[1]["access-control-allow-credentials"] = @allow_credentials if @allow_credentials
|
|
18
|
+
response[1]["access-control-expose-headers"] = @expose_headers if @expose_headers
|
|
19
19
|
|
|
20
20
|
response
|
|
21
21
|
ensure
|
|
22
22
|
if !$! && (origin = @cors_check.call(env))
|
|
23
23
|
headers = response[1]
|
|
24
|
-
headers["
|
|
24
|
+
headers["access-control-allow-origin"] = origin
|
|
25
25
|
if @origins != "*"
|
|
26
|
-
vary = headers["
|
|
26
|
+
vary = headers["vary"]
|
|
27
27
|
if vary.nil?
|
|
28
|
-
headers["
|
|
28
|
+
headers["vary"] = "Origin"
|
|
29
29
|
elsif vary != "Origin"
|
|
30
|
-
headers["
|
|
30
|
+
headers["vary"] += ", Origin"
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
end
|
|
@@ -98,21 +98,21 @@ class Rage::Cors
|
|
|
98
98
|
|
|
99
99
|
def create_headers
|
|
100
100
|
headers = {
|
|
101
|
-
"
|
|
102
|
-
"
|
|
101
|
+
"access-control-allow-origin" => "",
|
|
102
|
+
"access-control-allow-methods" => @methods
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
if @allow_headers
|
|
106
|
-
headers["
|
|
106
|
+
headers["access-control-allow-headers"] = @allow_headers
|
|
107
107
|
end
|
|
108
108
|
if @expose_headers
|
|
109
|
-
headers["
|
|
109
|
+
headers["access-control-expose-headers"] = @expose_headers
|
|
110
110
|
end
|
|
111
111
|
if @max_age
|
|
112
|
-
headers["
|
|
112
|
+
headers["access-control-max-age"] = @max_age
|
|
113
113
|
end
|
|
114
114
|
if @allow_credentials
|
|
115
|
-
headers["
|
|
115
|
+
headers["access-control-allow-credentials"] = @allow_credentials
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
headers
|
|
@@ -24,7 +24,7 @@ class Rage::RequestId
|
|
|
24
24
|
def call(env)
|
|
25
25
|
env["rage.request_id"] = validate_external_request_id(env["HTTP_X_REQUEST_ID"])
|
|
26
26
|
response = @app.call(env)
|
|
27
|
-
response[1]["
|
|
27
|
+
response[1]["x-request-id"] = env["rage.request_id"]
|
|
28
28
|
|
|
29
29
|
response
|
|
30
30
|
end
|
data/lib/rage/openapi/openapi.rb
CHANGED
|
@@ -48,13 +48,13 @@ module Rage::OpenAPI
|
|
|
48
48
|
spec_url = "#{scheme}://#{host}#{path}/json"
|
|
49
49
|
page = ERB.new(File.read("#{__dir__}/index.html.erb")).result(binding)
|
|
50
50
|
|
|
51
|
-
[200, { "
|
|
51
|
+
[200, { "content-type" => "text/html; charset=UTF-8" }, [page]]
|
|
52
52
|
end
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
json_app = ->(env) do
|
|
56
56
|
spec = (__data_cache[[:spec, namespace]] ||= build(namespace:).to_json)
|
|
57
|
-
[200, { "
|
|
57
|
+
[200, { "content-type" => "application/json" }, [spec]]
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
app = ->(env) do
|
data/lib/rage/response.rb
CHANGED
data/lib/rage/version.rb
CHANGED
data/rage.gemspec
CHANGED
|
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.require_paths = ["lib"]
|
|
29
29
|
|
|
30
30
|
spec.add_dependency "thor", "~> 1.0"
|
|
31
|
-
spec.add_dependency "rack", "
|
|
31
|
+
spec.add_dependency "rack", "< 4"
|
|
32
32
|
spec.add_dependency "rage-iodine", "~> 4.3"
|
|
33
33
|
spec.add_dependency "zeitwerk", "~> 2.6"
|
|
34
34
|
spec.add_dependency "rack-test", "~> 2.1"
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rage-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.19.
|
|
4
|
+
version: 1.19.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Roman Samoilov
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-01-06 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: thor
|
|
@@ -27,16 +27,16 @@ dependencies:
|
|
|
27
27
|
name: rack
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- - "
|
|
30
|
+
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '4'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
|
-
- - "
|
|
37
|
+
- - "<"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
39
|
+
version: '4'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: rage-iodine
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|