@@ -5,70 +5,69 @@ def initialize(app)
5
5
end
6
6
7
7
def call ( env )
8
- @env = env
9
-
10
8
status , headers , body = @app . call ( env )
11
9
request = ActionDispatch ::Request . new ( env )
12
10
13
11
::InertiaRails . reset!
14
12
15
- # Inertia errors are added to the session via redirect_to
16
- request . session . delete ( :inertia_errors ) unless keep_inertia_errors? ( status )
13
+ # Inertia errors are added to the session via redirect_to
14
+ request . session . delete ( :inertia_errors ) unless keep_inertia_errors? ( status , env )
17
15
18
- status = 303 if inertia_non_post_redirect? ( status )
16
+ status = 303 if inertia_non_post_redirect? ( status , env )
19
17
20
- return stale_inertia_get? ? force_refresh ( request ) : [ status , headers , body ]
18
+ return stale_inertia_get? ( env ) ? force_refresh ( request ) : [ status , headers , body ]
21
19
end
22
20
23
21
private
24
22
25
- def keep_inertia_errors? ( status )
26
- redirect_status? ( status ) || stale_inertia_request?
23
+ def keep_inertia_errors? ( status , env )
24
+ redirect_status? ( status ) || stale_inertia_request? ( env )
27
25
end
28
26
29
- def stale_inertia_request?
30
- inertia_request? && version_stale?
27
+ def stale_inertia_request? ( env )
28
+ inertia_request? ( env ) && version_stale? ( env )
31
29
end
32
30
33
31
def redirect_status? ( status )
34
32
[ 301 , 302 ] . include? status
35
33
end
36
34
37
- def non_get_redirectable_method?
38
- [ ' PUT' , ' PATCH' , ' DELETE' ] . include? request_method
35
+ def non_get_redirectable_method? ( env )
36
+ [ " PUT" , " PATCH" , " DELETE" ] . include? request_method ( env )
39
37
end
40
38
41
- def inertia_non_post_redirect? ( status )
42
- inertia_request? && redirect_status? ( status ) && non_get_redirectable_method?
39
+ def inertia_non_post_redirect? ( status , env )
40
+ inertia_request? ( env ) && redirect_status? ( status ) && non_get_redirectable_method? ( env )
43
41
end
44
42
45
- def stale_inertia_get?
46
- get? && stale_inertia_request?
43
+ def stale_inertia_get? ( env )
44
+ get? ( env ) && stale_inertia_request? ( env )
47
45
end
48
46
49
- def get?
50
- request_method == ' GET'
47
+ def get? ( env )
48
+ request_method ( env ) == " GET"
51
49
end
52
50
53
- def request_method
54
- @ env[ ' REQUEST_METHOD' ]
51
+ def request_method ( env )
52
+ env [ " REQUEST_METHOD" ]
55
53
end
56
54
57
- def inertia_version
58
- @ env[ ' HTTP_X_INERTIA_VERSION' ]
55
+ def inertia_version ( env )
56
+ env [ " HTTP_X_INERTIA_VERSION" ]
59
57
end
60
58
61
- def inertia_request?
62
- @ env[ ' HTTP_X_INERTIA' ] . present?
59
+ def inertia_request? ( env )
60
+ env [ " HTTP_X_INERTIA" ] . present?
63
61
end
64
62
65
- def version_stale?
66
- sent_version != saved_version
63
+ def version_stale? ( env )
64
+ sent_version ( env ) != saved_version
67
65
end
68
66
69
- def sent_version
70
- return nil if inertia_version . nil?
71
- InertiaRails . version . is_a? ( Numeric ) ? inertia_version . to_f : inertia_version
67
+ def sent_version ( env )
68
+ return nil if inertia_version ( env ) . nil?
69
+
70
+ InertiaRails . version . is_a? ( Numeric ) ? inertia_version ( env ) . to_f : inertia_version ( env )
72
71
end
73
72
74
73
def saved_version
@@ -77,7 +76,7 @@ def saved_version
77
76
78
77
def force_refresh ( request )
79
78
request . flash . keep
80
- Rack ::Response . new ( '' , 409 , { ' X-Inertia-Location' => request . original_url } ) . finish
79
+ Rack ::Response . new ( "" , 409 , { " X-Inertia-Location" => request . original_url } ) . finish
81
80
end
82
81
end
83
82
end
0 commit comments