beaker-i18n_helper 1.0.1 → 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 +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +11 -0
- data/README.md +7 -7
- data/lib/beaker/i18n_helper.rb +52 -4
- data/lib/beaker/i18n_helper/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b6547b333dd953c1304275229cf57bf3c2107d7
|
4
|
+
data.tar.gz: 1ea4ff06d011413473f5bd517867238ed46d87a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df767bbe65daf3f8132d7ab1c8843f6476bc09a410218df49db34916885cd758c41fae858d1106940e8a0f49cd9af7dac01523168983e259e7357294c0f8a255
|
7
|
+
data.tar.gz: a333af940775587c403166fcce537d2710751bcb58e8162174832b5cda384e41f9fc0c671bc94c524733d9023bd568743ca31890366a19679232a01513ecd426
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,16 @@
|
|
3
3
|
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
4
4
|
and this project adheres to [Semantic Versioning](http://semver.org).
|
5
5
|
|
6
|
+
## [1.1.0]
|
7
|
+
### Summary
|
8
|
+
This release contains a fix and a public API change.
|
9
|
+
|
10
|
+
#### Changed
|
11
|
+
- `install_language_pack_on` method is now called `install_language_on`
|
12
|
+
|
13
|
+
#### Fixed
|
14
|
+
- issue where language packs aren't available on Debian. Installs 'locales-all' instead.
|
15
|
+
|
6
16
|
## [1.0.1]
|
7
17
|
### Summary
|
8
18
|
This release fixes the `change_locale_on` method and makes some README updates.
|
@@ -14,5 +24,6 @@ This release fixes the `change_locale_on` method and makes some README updates.
|
|
14
24
|
### Summary
|
15
25
|
This is the first release of this gem.
|
16
26
|
|
27
|
+
[1.1.0]:https://github.com/puppetlabs/beaker-i18n_helper/compare/1.0.1...1.1.0
|
17
28
|
[1.0.1]:https://github.com/puppetlabs/beaker-i18n_helper/compare/1.0.0...1.0.1
|
18
29
|
[1.0.0]:https://github.com/puppetlabs/beaker-i18n_helper/tags/1.0.0
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ c.before :suite do
|
|
25
25
|
# Required for binding tests.
|
26
26
|
if fact('osfamily') == 'Debian'
|
27
27
|
#install language pack on debian systems
|
28
|
-
|
28
|
+
install_language_on(host, "ja_JP.utf-8")
|
29
29
|
end
|
30
30
|
if fact('osfamily') == 'RedHat'
|
31
31
|
if fact('operatingsystemmajrelease') =~ /7/ || fact('operatingsystem') =~ /Fedora/
|
@@ -42,21 +42,21 @@ end
|
|
42
42
|
|
43
43
|
## Reference
|
44
44
|
|
45
|
-
####
|
45
|
+
#### install_language_on(hosts, lang)
|
46
46
|
|
47
|
-
Uses Beaker's `install_package` to install a language pack for the desired language. Takes
|
47
|
+
Uses Beaker's `install_package` to install a language pack for the desired language. Takes a hosts array and `lang`, a POSIX locale identifier ([lang]_[region].[charset])
|
48
48
|
|
49
49
|
```ruby
|
50
|
-
|
50
|
+
install_language_on(hosts, 'ja_JP.utf-8')
|
51
51
|
```
|
52
52
|
Usually only needed for Debian systems, RHEL installs all language packs by default.
|
53
53
|
|
54
|
-
#### change_locale_on(
|
54
|
+
#### change_locale_on(hosts, lang)
|
55
55
|
|
56
|
-
Takes in a POSIX locale identifier, `lang`, and sets $LANG, $LANGUAGE, and on the target
|
56
|
+
Takes in a POSIX locale identifier, `lang`, and sets $LANG, $LANGUAGE, and on the target hosts to `#{lang}`.
|
57
57
|
|
58
58
|
```ruby
|
59
|
-
change_locale_on(
|
59
|
+
change_locale_on(hosts, "de_DE.utf-8")
|
60
60
|
```
|
61
61
|
|
62
62
|
## Limitations
|
data/lib/beaker/i18n_helper.rb
CHANGED
@@ -1,16 +1,26 @@
|
|
1
1
|
require 'beaker'
|
2
2
|
|
3
|
-
#
|
3
|
+
# Beaker i18n Helper
|
4
4
|
module Beaker::I18nHelper # rubocop:disable Style/ClassAndModuleChildren
|
5
5
|
include Beaker::DSL
|
6
6
|
include Beaker::DSL::Helpers::FacterHelpers
|
7
7
|
|
8
|
+
# Validates POSIX locale identifier format
|
9
|
+
#
|
10
|
+
# @param lang [String] the identifier as a string, e.g. 'ja_JP.utf8'
|
11
|
+
# @return [Boolean] true if it's a valid identifier
|
12
|
+
#
|
8
13
|
def valid_lang_string?(lang)
|
9
14
|
lang_regex = %r{^[a-zA-Z][a-zA-Z](\_|\-)[a-zA-Z][a-zA-Z](\..*)?$}
|
10
15
|
raise "Please use correct format for lang: #{lang_regex}" unless lang.match lang_regex
|
11
16
|
true
|
12
17
|
end
|
13
18
|
|
19
|
+
# Parses a given POSIX locale identifier into parts for the other functions to consume
|
20
|
+
#
|
21
|
+
# @param lang [String] the identifier as a string, e.g. 'ja_JP.utf8'
|
22
|
+
# @return [Array] the identifier as an array of [{lang},{region},{charset}]
|
23
|
+
#
|
14
24
|
def parse_lang(lang)
|
15
25
|
lang = lang.split('.')[0] if lang =~ %r{\.\S}
|
16
26
|
|
@@ -23,20 +33,36 @@ module Beaker::I18nHelper # rubocop:disable Style/ClassAndModuleChildren
|
|
23
33
|
lang
|
24
34
|
end
|
25
35
|
|
26
|
-
|
36
|
+
# Installs the language pack on each host for a given language (if necessary)
|
37
|
+
#
|
38
|
+
# @param hsts [Array] beaker hosts array
|
39
|
+
# @param lang [String] the POSIX locale identifier as a string, e.g. 'ja_JP.utf8'
|
40
|
+
# @return [nil]
|
41
|
+
#
|
42
|
+
def install_language_on(hsts, lang)
|
27
43
|
valid_lang_string?(lang)
|
28
44
|
lang = parse_lang(lang)
|
29
45
|
|
30
46
|
Array(hsts).each do |host|
|
31
47
|
begin
|
32
|
-
|
33
|
-
|
48
|
+
case fact('operatingsystem')
|
49
|
+
when 'Debian'
|
50
|
+
install_locales_all_on(host)
|
51
|
+
when 'Ubuntu'
|
52
|
+
install_language_pack_on(host, lang)
|
53
|
+
end
|
34
54
|
rescue RuntimeError
|
35
55
|
raise "Unable to install language pack for #{lang[0]} on #{host}"
|
36
56
|
end
|
37
57
|
end
|
38
58
|
end
|
39
59
|
|
60
|
+
# Changes the locale on each host to the given language
|
61
|
+
#
|
62
|
+
# @param hsts [Array] beaker hosts array
|
63
|
+
# @param lang [String] the POSIX locale identifier as a string, e.g. 'ja_JP.utf8'
|
64
|
+
# @return [nil]
|
65
|
+
#
|
40
66
|
def change_locale_on(hsts, lang)
|
41
67
|
valid_lang_string?(lang)
|
42
68
|
Array(hsts).each do |host|
|
@@ -50,6 +76,28 @@ module Beaker::I18nHelper # rubocop:disable Style/ClassAndModuleChildren
|
|
50
76
|
end
|
51
77
|
end
|
52
78
|
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
# Installs the 'locales-all' package on the target host unless it is already installed
|
83
|
+
#
|
84
|
+
# @param host [Beaker::Host] beaker host
|
85
|
+
# @return [nil]
|
86
|
+
#
|
87
|
+
def install_locales_all_on(host)
|
88
|
+
install_package(host, 'locales-all') unless check_for_package(host, 'locales-all')
|
89
|
+
end
|
90
|
+
|
91
|
+
# Installs the language pack on the target host for a given language (if necessary)
|
92
|
+
#
|
93
|
+
# @param host [Beaker::Host] beaker host
|
94
|
+
# @param lang [String] the POSIX locale identifier as a string, e.g. 'ja_JP.utf8'
|
95
|
+
# @return [nil]
|
96
|
+
#
|
97
|
+
def install_language_pack_on(host, lang)
|
98
|
+
install_package(host, "language-pack-#{lang[0]}")
|
99
|
+
install_package(host, 'systemd-services') unless shell('file /sbin/init').stdout =~ %r{systemd}
|
100
|
+
end
|
53
101
|
end
|
54
102
|
|
55
103
|
include Beaker::I18nHelper
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-i18n_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Putnam
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|