bp3-action_dispatch 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: baf8bd779b6a801d1dfecffde05c736c7287e7bf9c31f15681122850e87b60c6
4
- data.tar.gz: 573171b3f8f1252cef1f0e500d1372ad4a7a94e8f97fdb4413a4401b6027f3dc
3
+ metadata.gz: a83f6c1e661ae30a16db2f0e917cdb20f6b05e01c31df9382b5f6fccbc37507b
4
+ data.tar.gz: 4caf8ea58b59eef52f4a095815bcb8f29636e7f14513599e50c45092fa2865b1
5
5
  SHA512:
6
- metadata.gz: 793b8fcf240eb186ea89aa27427ce29ba8d063c8aade74319dd62446971723ffbe78166d30be11c5de6d776951e56ca76b09648910219bc82262f3fc4fea57a2
7
- data.tar.gz: 3f3ae1847810ab77af4d6ade416d93112f35b1d248595675c608e67e27f58da9f528d433ad88333d75650f51258a18603f29f1ee7f31f7b7b7da52ff3d616699
6
+ metadata.gz: bde24835bc1109b7ee9411c7a61c72f20c2afe45ff7ad31b24d098a08b7f23d06cf73688f2d53ec99456eff769aae1c0409eca7a9acb8fa33e47d8eeb86b2042
7
+ data.tar.gz: dff7c0b3c30f34e5ef8126e691092815aca057144039e88bb2780ffe0408fc2a6eda5c14fe2ea33533461fe96bf97abffc5422c33c808cb67b4f3761c55e459d
data/.rubocop.yml CHANGED
@@ -1,8 +1,6 @@
1
1
  require:
2
2
  - rubocop-rake
3
3
  - rubocop-rspec
4
- - rubocop-capybara
5
- - rubocop-factory_bot
6
4
 
7
5
  AllCops:
8
6
  TargetRubyVersion: 3.2.2
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.2.2
1
+ ruby-3.3.5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
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
+
9
+ ## [0.1.3] - 2024-11-18
10
+
11
+ - Use ruby 3.3.5 and relax gem constraints
12
+
3
13
  ## [0.1.2] - 2024-06-27
4
14
 
5
15
  - Undo making site_class configurable, as it causes problems with
data/Gemfile.lock CHANGED
@@ -1,141 +1,139 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bp3-action_dispatch (0.1.2)
5
- actionpack (>= 7.1.2, < 8)
6
- activesupport (>= 7.1.2, < 8)
7
- i18n (>= 1.8.11, < 2)
4
+ bp3-action_dispatch (0.1.4)
5
+ actionpack (>= 7.1.2)
6
+ activesupport (>= 7.1.2)
7
+ i18n (>= 1.8.11)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- actionpack (7.1.3.3)
13
- actionview (= 7.1.3.3)
14
- activesupport (= 7.1.3.3)
12
+ actionpack (8.0.1)
13
+ actionview (= 8.0.1)
14
+ activesupport (= 8.0.1)
15
15
  nokogiri (>= 1.8.5)
16
- racc
17
16
  rack (>= 2.2.4)
18
17
  rack-session (>= 1.0.1)
19
18
  rack-test (>= 0.6.3)
20
19
  rails-dom-testing (~> 2.2)
21
20
  rails-html-sanitizer (~> 1.6)
22
- actionview (7.1.3.3)
23
- activesupport (= 7.1.3.3)
21
+ useragent (~> 0.16)
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 (7.1.3.3)
28
+ activesupport (8.0.1)
29
29
  base64
30
+ benchmark (>= 0.3)
30
31
  bigdecimal
31
- concurrent-ruby (~> 1.0, >= 1.0.2)
32
+ concurrent-ruby (~> 1.0, >= 1.3.1)
32
33
  connection_pool (>= 2.2.5)
33
34
  drb
34
35
  i18n (>= 1.6, < 2)
36
+ logger (>= 1.4.2)
35
37
  minitest (>= 5.1)
36
- mutex_m
37
- tzinfo (~> 2.0)
38
+ securerandom (>= 0.3)
39
+ tzinfo (~> 2.0, >= 2.0.5)
40
+ uri (>= 0.13.1)
38
41
  ast (2.4.2)
39
42
  base64 (0.2.0)
40
- bigdecimal (3.1.8)
41
- builder (3.2.4)
43
+ benchmark (0.4.0)
44
+ bigdecimal (3.1.9)
45
+ builder (3.3.0)
42
46
  byebug (11.1.3)
43
- concurrent-ruby (1.3.1)
44
- connection_pool (2.4.1)
47
+ concurrent-ruby (1.3.5)
48
+ connection_pool (2.5.0)
45
49
  crass (1.0.6)
46
50
  diff-lcs (1.5.1)
47
51
  drb (2.2.1)
48
- erubi (1.12.0)
49
- i18n (1.14.5)
52
+ erubi (1.13.1)
53
+ i18n (1.14.7)
50
54
  concurrent-ruby (~> 1.0)
51
- json (2.7.2)
52
- language_server-protocol (3.17.0.3)
53
- loofah (2.22.0)
55
+ json (2.9.1)
56
+ language_server-protocol (3.17.0.4)
57
+ logger (1.6.5)
58
+ loofah (2.24.0)
54
59
  crass (~> 1.0.2)
55
60
  nokogiri (>= 1.12.0)
56
- minitest (5.23.1)
57
- mutex_m (0.2.0)
58
- nokogiri (1.16.5-x86_64-darwin)
61
+ minitest (5.25.4)
62
+ nokogiri (1.18.2-x86_64-darwin)
59
63
  racc (~> 1.4)
60
- parallel (1.24.0)
61
- parser (3.3.2.0)
64
+ parallel (1.26.3)
65
+ parser (3.3.7.0)
62
66
  ast (~> 2.4.1)
63
67
  racc
64
- racc (1.8.0)
65
- rack (3.0.11)
66
- rack-session (2.0.0)
68
+ racc (1.8.1)
69
+ rack (3.1.8)
70
+ rack-session (2.1.0)
71
+ base64 (>= 0.1.0)
67
72
  rack (>= 3.0.0)
68
- rack-test (2.1.0)
73
+ rack-test (2.2.0)
69
74
  rack (>= 1.3)
70
75
  rails-dom-testing (2.2.0)
71
76
  activesupport (>= 5.0.0)
72
77
  minitest
73
78
  nokogiri (>= 1.6)
74
- rails-html-sanitizer (1.6.0)
79
+ rails-html-sanitizer (1.6.2)
75
80
  loofah (~> 2.21)
76
- 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)
77
82
  rainbow (3.1.1)
78
83
  rake (13.2.1)
79
- regexp_parser (2.9.2)
80
- rexml (3.2.8)
81
- strscan (>= 3.0.9)
84
+ regexp_parser (2.10.0)
82
85
  rspec (3.13.0)
83
86
  rspec-core (~> 3.13.0)
84
87
  rspec-expectations (~> 3.13.0)
85
88
  rspec-mocks (~> 3.13.0)
86
- rspec-core (3.13.0)
89
+ rspec-core (3.13.2)
87
90
  rspec-support (~> 3.13.0)
88
- rspec-expectations (3.13.0)
91
+ rspec-expectations (3.13.3)
89
92
  diff-lcs (>= 1.2.0, < 2.0)
90
93
  rspec-support (~> 3.13.0)
91
- rspec-mocks (3.13.1)
94
+ rspec-mocks (3.13.2)
92
95
  diff-lcs (>= 1.2.0, < 2.0)
93
96
  rspec-support (~> 3.13.0)
94
- rspec-support (3.13.1)
95
- rubocop (1.64.0)
97
+ rspec-support (3.13.2)
98
+ rubocop (1.71.0)
96
99
  json (~> 2.3)
97
100
  language_server-protocol (>= 3.17.0)
98
101
  parallel (~> 1.10)
99
102
  parser (>= 3.3.0.2)
100
103
  rainbow (>= 2.2.2, < 4.0)
101
- regexp_parser (>= 1.8, < 3.0)
102
- rexml (>= 3.2.5, < 4.0)
103
- rubocop-ast (>= 1.31.1, < 2.0)
104
+ regexp_parser (>= 2.9.3, < 3.0)
105
+ rubocop-ast (>= 1.36.2, < 2.0)
104
106
  ruby-progressbar (~> 1.7)
105
- unicode-display_width (>= 2.4.0, < 3.0)
106
- rubocop-ast (1.31.3)
107
+ unicode-display_width (>= 2.4.0, < 4.0)
108
+ rubocop-ast (1.38.0)
107
109
  parser (>= 3.3.1.0)
108
- rubocop-capybara (2.20.0)
109
- rubocop (~> 1.41)
110
- rubocop-factory_bot (2.25.1)
111
- rubocop (~> 1.41)
112
110
  rubocop-rake (0.6.0)
113
111
  rubocop (~> 1.0)
114
- rubocop-rspec (2.29.2)
115
- rubocop (~> 1.40)
116
- rubocop-capybara (~> 2.17)
117
- rubocop-factory_bot (~> 2.22)
118
- rubocop-rspec_rails (~> 2.28)
119
- rubocop-rspec_rails (2.28.3)
120
- rubocop (~> 1.40)
112
+ rubocop-rspec (3.4.0)
113
+ rubocop (~> 1.61)
121
114
  ruby-progressbar (1.13.0)
122
- strscan (3.1.0)
115
+ securerandom (0.4.1)
123
116
  tzinfo (2.0.6)
124
117
  concurrent-ruby (~> 1.0)
125
- unicode-display_width (2.5.0)
118
+ unicode-display_width (3.1.4)
119
+ unicode-emoji (~> 4.0, >= 4.0.4)
120
+ unicode-emoji (4.0.4)
121
+ uri (1.0.2)
122
+ useragent (0.16.11)
126
123
 
127
124
  PLATFORMS
128
125
  x86_64-darwin-21
129
126
  x86_64-darwin-22
127
+ x86_64-darwin-23
130
128
 
131
129
  DEPENDENCIES
132
130
  bp3-action_dispatch!
133
131
  byebug
134
- rake (~> 13.0)
135
- rspec (~> 3.0)
136
- rubocop (~> 1.21)
137
- rubocop-rake (~> 0.6)
138
- rubocop-rspec (~> 2.25)
132
+ rake (>= 13.0)
133
+ rspec (>= 3.0)
134
+ rubocop (>= 1.21)
135
+ rubocop-rake (>= 0.6)
136
+ rubocop-rspec (>= 2.25)
139
137
 
140
138
  BUNDLED WITH
141
139
  2.3.7
data/Rakefile CHANGED
@@ -1,12 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bundler/setup'
3
4
  require 'bundler/gem_tasks'
4
5
  require 'rspec/core/rake_task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
6
  require 'rubocop/rake_task'
9
7
 
8
+ Dir.glob('lib/tasks/**/*.rake').each { |file| load file }
9
+
10
+ RSpec::Core::RakeTask.new(:spec)
10
11
  RuboCop::RakeTask.new
11
12
 
12
13
  task default: %i[spec rubocop]
@@ -31,16 +31,16 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.add_dependency 'actionpack', ['>= 7.1.2', '< 8']
35
- spec.add_dependency 'activesupport', ['>= 7.1.2', '< 8']
36
- spec.add_dependency 'i18n', ['>= 1.8.11', '< 2']
34
+ spec.add_dependency 'actionpack', '>= 7.1.2'
35
+ spec.add_dependency 'activesupport', '>= 7.1.2'
36
+ spec.add_dependency 'i18n', '>= 1.8.11'
37
37
 
38
38
  spec.add_development_dependency 'byebug'
39
- spec.add_development_dependency 'rake', '~> 13.0'
40
- spec.add_development_dependency 'rspec', '~> 3.0'
41
- spec.add_development_dependency 'rubocop', '~> 1.21'
42
- spec.add_development_dependency 'rubocop-rake', '~> 0.6'
43
- spec.add_development_dependency 'rubocop-rspec', '~> 2.25'
39
+ spec.add_development_dependency 'rake', '>= 13.0'
40
+ spec.add_development_dependency 'rspec', '>= 3.0'
41
+ spec.add_development_dependency 'rubocop', '>= 1.21'
42
+ spec.add_development_dependency 'rubocop-rake', '>= 0.6'
43
+ spec.add_development_dependency 'rubocop-rspec', '>= 2.25'
44
44
 
45
45
  # For more information and examples about making a new gem, check out our
46
46
  # guide at: https://bundler.io/guides/creating_gem.html
@@ -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.2'
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.2
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-06-27 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
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 7.1.2
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '8'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +24,6 @@ dependencies:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 7.1.2
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '8'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: activesupport
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -37,9 +31,6 @@ dependencies:
37
31
  - - ">="
38
32
  - !ruby/object:Gem::Version
39
33
  version: 7.1.2
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '8'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,9 +38,6 @@ dependencies:
47
38
  - - ">="
48
39
  - !ruby/object:Gem::Version
49
40
  version: 7.1.2
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '8'
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: i18n
55
43
  requirement: !ruby/object:Gem::Requirement
@@ -57,9 +45,6 @@ dependencies:
57
45
  - - ">="
58
46
  - !ruby/object:Gem::Version
59
47
  version: 1.8.11
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '2'
63
48
  type: :runtime
64
49
  prerelease: false
65
50
  version_requirements: !ruby/object:Gem::Requirement
@@ -67,9 +52,6 @@ dependencies:
67
52
  - - ">="
68
53
  - !ruby/object:Gem::Version
69
54
  version: 1.8.11
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '2'
73
55
  - !ruby/object:Gem::Dependency
74
56
  name: byebug
75
57
  requirement: !ruby/object:Gem::Requirement
@@ -88,70 +70,70 @@ dependencies:
88
70
  name: rake
89
71
  requirement: !ruby/object:Gem::Requirement
90
72
  requirements:
91
- - - "~>"
73
+ - - ">="
92
74
  - !ruby/object:Gem::Version
93
75
  version: '13.0'
94
76
  type: :development
95
77
  prerelease: false
96
78
  version_requirements: !ruby/object:Gem::Requirement
97
79
  requirements:
98
- - - "~>"
80
+ - - ">="
99
81
  - !ruby/object:Gem::Version
100
82
  version: '13.0'
101
83
  - !ruby/object:Gem::Dependency
102
84
  name: rspec
103
85
  requirement: !ruby/object:Gem::Requirement
104
86
  requirements:
105
- - - "~>"
87
+ - - ">="
106
88
  - !ruby/object:Gem::Version
107
89
  version: '3.0'
108
90
  type: :development
109
91
  prerelease: false
110
92
  version_requirements: !ruby/object:Gem::Requirement
111
93
  requirements:
112
- - - "~>"
94
+ - - ">="
113
95
  - !ruby/object:Gem::Version
114
96
  version: '3.0'
115
97
  - !ruby/object:Gem::Dependency
116
98
  name: rubocop
117
99
  requirement: !ruby/object:Gem::Requirement
118
100
  requirements:
119
- - - "~>"
101
+ - - ">="
120
102
  - !ruby/object:Gem::Version
121
103
  version: '1.21'
122
104
  type: :development
123
105
  prerelease: false
124
106
  version_requirements: !ruby/object:Gem::Requirement
125
107
  requirements:
126
- - - "~>"
108
+ - - ">="
127
109
  - !ruby/object:Gem::Version
128
110
  version: '1.21'
129
111
  - !ruby/object:Gem::Dependency
130
112
  name: rubocop-rake
131
113
  requirement: !ruby/object:Gem::Requirement
132
114
  requirements:
133
- - - "~>"
115
+ - - ">="
134
116
  - !ruby/object:Gem::Version
135
117
  version: '0.6'
136
118
  type: :development
137
119
  prerelease: false
138
120
  version_requirements: !ruby/object:Gem::Requirement
139
121
  requirements:
140
- - - "~>"
122
+ - - ">="
141
123
  - !ruby/object:Gem::Version
142
124
  version: '0.6'
143
125
  - !ruby/object:Gem::Dependency
144
126
  name: rubocop-rspec
145
127
  requirement: !ruby/object:Gem::Requirement
146
128
  requirements:
147
- - - "~>"
129
+ - - ">="
148
130
  - !ruby/object:Gem::Version
149
131
  version: '2.25'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
135
  requirements:
154
- - - "~>"
136
+ - - ">="
155
137
  - !ruby/object:Gem::Version
156
138
  version: '2.25'
157
139
  description:
@@ -204,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
186
  - !ruby/object:Gem::Version
205
187
  version: '0'
206
188
  requirements: []
207
- rubygems_version: 3.5.11
189
+ rubygems_version: 3.5.23
208
190
  signing_key:
209
191
  specification_version: 4
210
192
  summary: bp3-action_dispatch adapts ActionDispatch::Request for BP3 (persuavis/black_phoebe_3).