bp3-action_dispatch 0.1.3 → 0.1.4

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: b40a3514837d758199e64ffcca4e182a1d92857417d4080726e5a022a3a25c74
4
- data.tar.gz: 518255920737b9e273bfb050d592823b9f5be04703e5ae352849bbdde48c9471
3
+ metadata.gz: a83f6c1e661ae30a16db2f0e917cdb20f6b05e01c31df9382b5f6fccbc37507b
4
+ data.tar.gz: 4caf8ea58b59eef52f4a095815bcb8f29636e7f14513599e50c45092fa2865b1
5
5
  SHA512:
6
- metadata.gz: 68488d8c4cd841e895a49934dfdb9e0deca496441f75f7108963f741faff2877ccf2599d91836f74ed2a69cc6843ac60c9f2a4fe6c2acdc70af6d6a1ac6f371c
7
- data.tar.gz: f8462b77b3da8adbba1d36e751fe081e6ab53c3b7f8314e4fc9d654c581509bf57e0b02850b0114cdf591f5cd08febe8da67ee562350bbb9bc945eec95ef07ae
6
+ metadata.gz: bde24835bc1109b7ee9411c7a61c72f20c2afe45ff7ad31b24d098a08b7f23d06cf73688f2d53ec99456eff769aae1c0409eca7a9acb8fa33e47d8eeb86b2042
7
+ data.tar.gz: dff7c0b3c30f34e5ef8126e691092815aca057144039e88bb2780ffe0408fc2a6eda5c14fe2ea33533461fe96bf97abffc5422c33c808cb67b4f3761c55e459d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.4] - 2025-01-27
4
+
5
+ - Increase robustness of path parsing
6
+ - handle cases with '//' in the path (blank path segments)
7
+ - return default locale as fallback
8
+
3
9
  ## [0.1.3] - 2024-11-18
4
10
 
5
11
  - Use ruby 3.3.5 and relax gem constraints
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bp3-action_dispatch (0.1.3)
4
+ bp3-action_dispatch (0.1.4)
5
5
  actionpack (>= 7.1.2)
6
6
  activesupport (>= 7.1.2)
7
7
  i18n (>= 1.8.11)
@@ -9,9 +9,9 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- actionpack (8.0.0)
13
- actionview (= 8.0.0)
14
- activesupport (= 8.0.0)
12
+ actionpack (8.0.1)
13
+ actionview (= 8.0.1)
14
+ activesupport (= 8.0.1)
15
15
  nokogiri (>= 1.8.5)
16
16
  rack (>= 2.2.4)
17
17
  rack-session (>= 1.0.1)
@@ -19,13 +19,13 @@ GEM
19
19
  rails-dom-testing (~> 2.2)
20
20
  rails-html-sanitizer (~> 1.6)
21
21
  useragent (~> 0.16)
22
- actionview (8.0.0)
23
- activesupport (= 8.0.0)
22
+ actionview (8.0.1)
23
+ activesupport (= 8.0.1)
24
24
  builder (~> 3.1)
25
25
  erubi (~> 1.11)
26
26
  rails-dom-testing (~> 2.2)
27
27
  rails-html-sanitizer (~> 1.6)
28
- activesupport (8.0.0)
28
+ activesupport (8.0.1)
29
29
  base64
30
30
  benchmark (>= 0.3)
31
31
  bigdecimal
@@ -41,46 +41,47 @@ GEM
41
41
  ast (2.4.2)
42
42
  base64 (0.2.0)
43
43
  benchmark (0.4.0)
44
- bigdecimal (3.1.8)
44
+ bigdecimal (3.1.9)
45
45
  builder (3.3.0)
46
46
  byebug (11.1.3)
47
- concurrent-ruby (1.3.4)
48
- connection_pool (2.4.1)
47
+ concurrent-ruby (1.3.5)
48
+ connection_pool (2.5.0)
49
49
  crass (1.0.6)
50
50
  diff-lcs (1.5.1)
51
51
  drb (2.2.1)
52
- erubi (1.13.0)
53
- i18n (1.14.6)
52
+ erubi (1.13.1)
53
+ i18n (1.14.7)
54
54
  concurrent-ruby (~> 1.0)
55
- json (2.8.2)
56
- language_server-protocol (3.17.0.3)
57
- logger (1.6.1)
58
- loofah (2.23.1)
55
+ json (2.9.1)
56
+ language_server-protocol (3.17.0.4)
57
+ logger (1.6.5)
58
+ loofah (2.24.0)
59
59
  crass (~> 1.0.2)
60
60
  nokogiri (>= 1.12.0)
61
- minitest (5.25.1)
62
- nokogiri (1.16.7-x86_64-darwin)
61
+ minitest (5.25.4)
62
+ nokogiri (1.18.2-x86_64-darwin)
63
63
  racc (~> 1.4)
64
64
  parallel (1.26.3)
65
- parser (3.3.6.0)
65
+ parser (3.3.7.0)
66
66
  ast (~> 2.4.1)
67
67
  racc
68
68
  racc (1.8.1)
69
69
  rack (3.1.8)
70
- rack-session (2.0.0)
70
+ rack-session (2.1.0)
71
+ base64 (>= 0.1.0)
71
72
  rack (>= 3.0.0)
72
- rack-test (2.1.0)
73
+ rack-test (2.2.0)
73
74
  rack (>= 1.3)
74
75
  rails-dom-testing (2.2.0)
75
76
  activesupport (>= 5.0.0)
76
77
  minitest
77
78
  nokogiri (>= 1.6)
78
- rails-html-sanitizer (1.6.0)
79
+ rails-html-sanitizer (1.6.2)
79
80
  loofah (~> 2.21)
80
- nokogiri (~> 1.14)
81
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
81
82
  rainbow (3.1.1)
82
83
  rake (13.2.1)
83
- regexp_parser (2.9.2)
84
+ regexp_parser (2.10.0)
84
85
  rspec (3.13.0)
85
86
  rspec-core (~> 3.13.0)
86
87
  rspec-expectations (~> 3.13.0)
@@ -93,34 +94,37 @@ GEM
93
94
  rspec-mocks (3.13.2)
94
95
  diff-lcs (>= 1.2.0, < 2.0)
95
96
  rspec-support (~> 3.13.0)
96
- rspec-support (3.13.1)
97
- rubocop (1.68.0)
97
+ rspec-support (3.13.2)
98
+ rubocop (1.71.0)
98
99
  json (~> 2.3)
99
100
  language_server-protocol (>= 3.17.0)
100
101
  parallel (~> 1.10)
101
102
  parser (>= 3.3.0.2)
102
103
  rainbow (>= 2.2.2, < 4.0)
103
- regexp_parser (>= 2.4, < 3.0)
104
- rubocop-ast (>= 1.32.2, < 2.0)
104
+ regexp_parser (>= 2.9.3, < 3.0)
105
+ rubocop-ast (>= 1.36.2, < 2.0)
105
106
  ruby-progressbar (~> 1.7)
106
- unicode-display_width (>= 2.4.0, < 3.0)
107
- rubocop-ast (1.36.1)
107
+ unicode-display_width (>= 2.4.0, < 4.0)
108
+ rubocop-ast (1.38.0)
108
109
  parser (>= 3.3.1.0)
109
110
  rubocop-rake (0.6.0)
110
111
  rubocop (~> 1.0)
111
- rubocop-rspec (3.2.0)
112
+ rubocop-rspec (3.4.0)
112
113
  rubocop (~> 1.61)
113
114
  ruby-progressbar (1.13.0)
114
- securerandom (0.3.2)
115
+ securerandom (0.4.1)
115
116
  tzinfo (2.0.6)
116
117
  concurrent-ruby (~> 1.0)
117
- unicode-display_width (2.6.0)
118
+ unicode-display_width (3.1.4)
119
+ unicode-emoji (~> 4.0, >= 4.0.4)
120
+ unicode-emoji (4.0.4)
118
121
  uri (1.0.2)
119
- useragent (0.16.10)
122
+ useragent (0.16.11)
120
123
 
121
124
  PLATFORMS
122
125
  x86_64-darwin-21
123
126
  x86_64-darwin-22
127
+ x86_64-darwin-23
124
128
 
125
129
  DEPENDENCIES
126
130
  bp3-action_dispatch!
@@ -3,6 +3,8 @@
3
3
  module Bp3
4
4
  module ActionDispatch
5
5
  module RequestLocale
6
+ attr_reader :locale_from
7
+
6
8
  def request_locale
7
9
  @request_locale ||= extract_locale
8
10
  end
@@ -14,18 +16,19 @@ module Bp3
14
16
  extract_locale_from_params ||
15
17
  extract_locale_from_host ||
16
18
  extract_locale_from_header ||
17
- extract_locale_from_setting
19
+ extract_locale_from_setting ||
20
+ default_locale
18
21
  end
19
22
 
20
23
  def extract_locale_from_path
21
- locale = original_fullpath.split('/')[original_fullpath.starts_with?('/') ? 1 : 0]
24
+ locale = original_fullpath.split('/').reject { |e| e.nil? || e == '' }.first
22
25
  locale = locale_if_exists(locale)
23
26
  @locale_from = 'path' if locale
24
27
  locale
25
28
  end
26
29
 
27
30
  def extract_locale_from_params
28
- return nil if params[:locale].blank?
31
+ return nil if params[:locale].nil? || params[:locale] == ''
29
32
 
30
33
  locale = params[:locale]
31
34
  locale = locale_if_exists(locale)
@@ -41,7 +44,7 @@ module Bp3
41
44
 
42
45
  def extract_locale_from_header
43
46
  header = env['HTTP_ACCEPT_LANGUAGE']
44
- return if header.blank?
47
+ return if header.nil? || header == ''
45
48
 
46
49
  languages = parse_header(header)
47
50
  sorted = languages.sort_by { |_l, q| q }.reverse
@@ -61,12 +64,18 @@ module Bp3
61
64
  locale
62
65
  end
63
66
 
67
+ def default_locale
68
+ locale = I18n.default_locale
69
+ @locale_from = 'default' if locale
70
+ locale
71
+ end
72
+
64
73
  # example format: 'en;q=0.1,nl'
65
74
  def parse_header(header)
66
75
  languages = header.split(',').map(&:strip)
67
76
  languages.map do |language|
68
77
  locale, quality = language.split(/\s*;\s*q\s*=\s*/i)
69
- quality = quality.blank? ? 1.0 : quality.to_f
78
+ quality = quality.nil? || quality == '' ? 1.0 : quality.to_f
70
79
  [locale, quality]
71
80
  end
72
81
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bp3
4
4
  module ActionDispatch
5
- VERSION = '0.1.3'
5
+ VERSION = '0.1.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bp3-action_dispatch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wim den Braven
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-18 00:00:00.000000000 Z
11
+ date: 2025-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  requirements: []
189
- rubygems_version: 3.5.17
189
+ rubygems_version: 3.5.23
190
190
  signing_key:
191
191
  specification_version: 4
192
192
  summary: bp3-action_dispatch adapts ActionDispatch::Request for BP3 (persuavis/black_phoebe_3).