fedux_org-stdlib 0.6.31 → 0.6.32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/fedux_org_stdlib/shell_language_detector.rb +5 -2
- data/lib/fedux_org_stdlib/version.rb +1 -1
- data/spec/shell_language_detector_spec.rb +12 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69aa01e29157f2d631a407061411cc0d891f9788
|
4
|
+
data.tar.gz: 1ddd3906967616669c60bffcc76c2864e513bd5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a10a12e181f1ffaba6ff256145963315ff91e4aed7067a67aa161c5098b0d81416019d91787b3f198e6bc8f131c65dd017bf90b34820c6ae305939498d07e2bd
|
7
|
+
data.tar.gz: 646d1ecdaed99374ca92a0871cc7534d034489d90e26f667be7312499e5081a0d6592e4406b30c00db0d849c87cbb03fb233dfddb2c6954cbf0bd185fcabdd3f
|
data/Gemfile.lock
CHANGED
@@ -22,10 +22,13 @@ module FeduxOrgStdlib
|
|
22
22
|
#
|
23
23
|
# @return [Language]
|
24
24
|
# The detected language or the default language if no allowed language was detected
|
25
|
-
def detect(allowed: [])
|
25
|
+
def detect(allowed: [], overwrite: [])
|
26
|
+
allowed = Array(allowed).map(&:to_sym)
|
27
|
+
overwrite = Array(overwrite).map(&:to_sym)
|
28
|
+
|
26
29
|
lang = environment.fetch 'LANG'
|
27
30
|
language_code, country_code, encoding = lang.scan(/([^_-]+)[_-]([^.]+)\.([A-Za-z0-9_-]*)/i).flatten.map(&:downcase).map { |e| e.gsub('-', '_') }.map { |e| e.to_sym if !e.nil? }
|
28
|
-
|
31
|
+
language_code, country_code, encoding = *overwrite if !overwrite.blank? && overwrite.size == 3
|
29
32
|
|
30
33
|
return Language.new(language_code: language_code, country_code: country_code, encoding: encoding) if language_code && country_code && (allowed.blank? || allowed.include?(language_code))
|
31
34
|
Language.new(language_code: default_language_code, country_code: default_country_code, encoding: default_encoding)
|
@@ -47,5 +47,17 @@ RSpec.describe ShellLanguageDetector do
|
|
47
47
|
expect(language.language_code).to eq :de
|
48
48
|
expect(language.country_code).to eq :de
|
49
49
|
end
|
50
|
+
|
51
|
+
it 'overwrite detected language' do
|
52
|
+
environment = instance_double('FeduxOrgStdlib::ProcessEnvironment')
|
53
|
+
allow(environment).to receive(:fetch).and_return 'en_GB.UTF-8'
|
54
|
+
|
55
|
+
detector = ShellLanguageDetector.new environment: environment, default_country_code: :de, default_language_code: :de
|
56
|
+
language = detector.detect allowed: [:de, :nl], overwrite: [:nl, :aw, :utf_8]
|
57
|
+
|
58
|
+
expect(language.language_code).to eq :nl
|
59
|
+
expect(language.country_code).to eq :aw
|
60
|
+
expect(language.encoding).to eq :utf_8
|
61
|
+
end
|
50
62
|
end
|
51
63
|
end
|