rack-locale_memorable 0.5.0 → 1.1.0

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: 0ffe06754e47f1f4e78b11466c82b3e6eec83328a39ced2f7643531cf13663d5
4
- data.tar.gz: feeb7868eb676e2b53e2e8cb6d6f72344c54ce0f1552a0bac81ade90afbf1d63
3
+ metadata.gz: 9efbac61d08eec634b8977fc7c223f50c6dcd6cba0cfd09d7b368c3bd9f8eee9
4
+ data.tar.gz: e5c23a00f8386c708e24b3279c91c15bf71631153ece153c1904995f326424fa
5
5
  SHA512:
6
- metadata.gz: 110f31d182de015b71c26bf2b9d952537c4444966efabe116c2a67d8eee59196d24515cb37a34df66f0d3d1fb308e74626ec11aac1d43f38feb932b79726f3f9
7
- data.tar.gz: 16359f3551313019d6b346e071b520fd2dae13e44d6715149f95e2bc15ad77bfe7688aca30e3349b373ef40d9808a0c5bb657056192ab9def3ccc9a02971e920
6
+ metadata.gz: a3fced878df7d908990f9962c18375e39b9c569f687bb07ef53bb53870154ca248e7bcea5a660c9689df8562140d64a8a0f5f0a29eefa2bfe451cb487549ffb9
7
+ data.tar.gz: 68b01b69ed47d96825a705d65fd234ce4e703ac93ded7c8f646ba4aeb82ef3b4c68b4421b4f8a1746cac2fc6c8d5d00fd30085c7e08352d524a794b55899350a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.0] - 2022-10-01
4
+
5
+ ### Changed
6
+
7
+ - remove activesupport https://github.com/nov/rack-locale_memorable/pull/2
8
+
3
9
  ## [0.5.0] - 2022-10-01
4
10
 
5
11
  ### Changed
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Handle query params, cookie and HTTP_ACCEPT_LANGUAGE header to detect user-preffered locale, and remember it when necessary.
4
4
 
5
- Since some libraries (e.g., Devise & Warden) handles i18n strings in rack-middleware layer, setting `I18n.locale` is not enough for some cases.
5
+ Since some libraries (e.g., Devise & Warden) or applications may handle i18n strings in rack-middleware layer, setting `I18n.locale` in Rails layer is not enough in such cases.
6
6
 
7
7
  This gem sets `I18n.locale` in rack-middleware layer, so that you can let other rack-middlewares use proper `I18n.locale`.
8
8
 
@@ -40,6 +40,7 @@ There are several customizable options listed below.
40
40
  * `cookie_options[:path]` (`/` by default)
41
41
  * `cookie_options[:http_only]` (`true` by default)
42
42
  * `cookie_options[:secure]` (`true` by default)
43
+ * `cookie_options[:same_site]` (`nil` by default)
43
44
 
44
45
  You can customize them like below
45
46
 
@@ -54,13 +55,14 @@ Rails.application.configure do |config|
54
55
  domain: 'example.com',
55
56
  path: '/localized',
56
57
  http_only: false,
57
- secure: Rails.env.production?
58
+ secure: Rails.env.production?,
59
+ same_site :none
58
60
  }
59
61
  )
60
62
  end
61
63
  ```
62
64
 
63
- NOTE: If you're using devise, set `Rack::LocaleMemorable` before `Warden::Manager`, otherwise you see warden error messages in wrong locale.
65
+ NOTE: If you're using devise, set `Rack::LocaleMemorable` before `Warden::Manager`, otherwise you might see warden error messages in wrong locale.
64
66
 
65
67
  ```ruby
66
68
  Rails.application.configure do |config|
data/Rakefile CHANGED
@@ -5,4 +5,16 @@ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
+ namespace :coverage do
9
+ desc "Open coverage report"
10
+ task :report do
11
+ require 'simplecov'
12
+ `open "#{File.join SimpleCov.coverage_path, 'index.html'}"`
13
+ end
14
+ end
15
+
16
+ task :spec do
17
+ Rake::Task[:'coverage:report'].invoke unless ENV['GITHUB_ACTIONS']
18
+ end
19
+
8
20
  task default: :spec
@@ -28,7 +28,7 @@ module Rack
28
28
  end
29
29
 
30
30
  def primary_locale_from(locales)
31
- available_locales_from(locales)&.first if locales.present?
31
+ available_locales_from(locales)&.first if locales
32
32
  end
33
33
 
34
34
  def available_locales_from(locales)
@@ -3,14 +3,15 @@
3
3
  module Rack
4
4
  class LocaleMemorable
5
5
  class Response < Rack::Response
6
- def remember_locale(explicit_locale, key:, lifetime: 1.year, domain: nil, path: '/', http_only: true, secure: true)
6
+ def remember_locale(explicit_locale, key:, lifetime: 31536000, domain: nil, path: '/', http_only: true, secure: true, same_site: nil)
7
7
  set_cookie key, {
8
8
  value: explicit_locale,
9
- expires: lifetime.from_now,
9
+ expires: Time.at(Time.now.to_i + lifetime.to_i),
10
10
  domain: domain,
11
11
  path: path,
12
12
  http_only: http_only,
13
- secure: secure
13
+ secure: secure,
14
+ same_site: same_site
14
15
  }.compact
15
16
  end
16
17
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rack
4
4
  class LocaleMemorable
5
- VERSION = '0.5.0'
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support'
4
- require 'active_support/core_ext'
3
+ require 'i18n'
5
4
  require 'http/accept'
6
5
  require 'rack'
7
6
 
@@ -16,11 +15,11 @@ module Rack
16
15
 
17
16
  def call(env)
18
17
  request = Request.new env
19
- I18n.with_locale(request.detect_locale params_key: @params_key, cookie_key: @cookie_key) do
18
+ I18n.with_locale request.detect_locale(params_key: @params_key, cookie_key: @cookie_key) do
20
19
  env['rack.locale'] = I18n.locale.to_s
21
20
  status, headers, body = @app.call(env)
22
21
  response = Response.new body, status, headers
23
- if request.explicit_locale.present?
22
+ if request.explicit_locale
24
23
  response.remember_locale request.explicit_locale, key: @cookie_key, **@cookie_options
25
24
  end
26
25
  response.finish
@@ -15,8 +15,8 @@ Gem::Specification.new do |spec|
15
15
  spec.required_ruby_version = '>= 2.7.0'
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
- spec.metadata['source_code_uri'] = 'https://github.com/nov/rack-locale_memorable'
19
- spec.metadata['changelog_uri'] = 'https://github.com/nov/rack-locale_memorable/blob/main/CHANGELOG.md'
18
+ spec.metadata['source_code_uri'] = spec.homepage
19
+ spec.metadata['changelog_uri'] = File.join(spec.homepage, 'blob/main/CHANGELOG.md')
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -32,7 +32,6 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency 'rack'
33
33
  spec.add_dependency 'i18n'
34
34
  spec.add_dependency 'http-accept'
35
- spec.add_dependency 'activesupport'
36
35
  spec.add_development_dependency 'rake'
37
36
  spec.add_development_dependency 'rspec'
38
37
  spec.add_development_dependency 'simplecov'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-locale_memorable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-01 00:00:00.000000000 Z
11
+ date: 2023-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: activesupport
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -177,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
163
  - !ruby/object:Gem::Version
178
164
  version: '0'
179
165
  requirements: []
180
- rubygems_version: 3.3.7
166
+ rubygems_version: 3.3.26
181
167
  signing_key:
182
168
  specification_version: 4
183
169
  summary: Remember locale in rack layer