pseudolocalization 0.5.0 → 0.9.0

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: b97967a1646541cff93df46f1fa9c826d348842344516343cfd17d86d8464301
4
- data.tar.gz: a2209f17067aabeda5373723c1c6aae95ea022476659c1d0e460e1d055c8f29b
3
+ metadata.gz: ca597fc6e2ea40f05915ef289dc48d3deb1c95872aec4a8b69474caeabfc8b39
4
+ data.tar.gz: 7485fd957362b90aeedd711c4197c96b8629d641896fa65e77f016a613a486b6
5
5
  SHA512:
6
- metadata.gz: 5a6d988688b696fcb97227f7b77e7c939a4e8c5b35c4376ca78fdf1796d565978d6f2d895aa7b9015a216fee10e5415ea786ae285237984cd2b262fb66f0bf05
7
- data.tar.gz: 66e67baf24e25a98df6caa37fd3c0bc19d5cafdd800e1ae024a6309db1618d2d319c46d4e8aeae6bcbe279dac67882b5576ffd82cfc9445d4deed4cb6662c828
6
+ metadata.gz: 6d238815d07f095314e6fbbca25a71ea44543e8a8d57a1b4c3fc2f7d55a5e76b56d75cd7a8f308ed89757ee3710fd4e5e0dcfd4d5ce3968ca065535a4e01a824
7
+ data.tar.gz: 35e98480b647dc3203e2c09248db82dd060d08d77032c410cfc76492eaa4775e214a07fe9582429a57025a1da7e641bde3cb95cf4ef9f9029777abd61fb350bf
@@ -0,0 +1,12 @@
1
+ version: 1
2
+ update_configs:
3
+ - package_manager: "ruby:bundler"
4
+ directory: "/"
5
+ update_schedule: "weekly"
6
+ automerged_updates:
7
+ - match:
8
+ dependency_type: "all"
9
+ update_type: "all"
10
+ version_requirement_updates: "auto"
11
+ default_reviewers:
12
+ - Shopify/intl-languages
@@ -0,0 +1,3 @@
1
+ # .github/probots.yml
2
+ enabled:
3
+ - cla
@@ -0,0 +1,37 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - '**'
7
+ push:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ build:
13
+ name: Ruby ${{ matrix.version }} ${{ matrix.gemfile }}
14
+ runs-on: ubuntu-latest
15
+ env:
16
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
17
+ strategy:
18
+ matrix:
19
+ version:
20
+ - 2.4
21
+ - 2.5
22
+ - 2.6
23
+ - 2.7
24
+ - 3.0
25
+ gemfile:
26
+ - Gemfile
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+
30
+ - name: Set up Ruby ${{ matrix.version }}
31
+ uses: ruby/setup-ruby@v1
32
+ with:
33
+ ruby-version: ${{ matrix.version }}
34
+ bundler-cache: true
35
+
36
+ - name: Test
37
+ run: bundle exec rake test
data/CHANGELOG.md ADDED
@@ -0,0 +1,61 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
+
6
+ ## Unreleased
7
+ Nil.
8
+
9
+ ## [0.9.0] - 2021-02-17
10
+ ### Added
11
+ - Added support for ignoring specific translation keys [#59](https://github.com/Shopify/pseudolocalization/pull/59)
12
+
13
+ ## [0.8.4] - 2021-01-15
14
+ ### Added
15
+ - Added support for Ruby 3. [#53](https://github.com/Shopify/pseudolocalization/pull/53)
16
+
17
+ ### Changed
18
+ - Switched to GitHub Actions for CI. [#52](https://github.com/Shopify/pseudolocalization/pull/52)
19
+ - Switched to Ruby 2.7.2 for development. [#55](https://github.com/Shopify/pseudolocalization/pull/55)
20
+
21
+ ## [0.8.3] - 2020-01-15
22
+ ### Added
23
+ - Added CLA probot to legitimize external contributions. [#35](https://github.com/shopify/pseudolocalization/pull/35)
24
+
25
+ ### Changed
26
+ - Switched to Ruby 2.7.0 for development. [#39](https://github.com/Shopify/pseudolocalization/pull/39)
27
+
28
+ ## [0.8.2] - 2019-10-08
29
+ ### Added
30
+ - Added this CHANGELOG.md. [#32](https://github.com/Shopify/pseudolocalization/pull/32)
31
+
32
+ ### Changed
33
+ - Switched to Ruby 2.6.5 for development. [#33](https://github.com/Shopify/pseudolocalization/pull/33)
34
+
35
+ ## [0.8.1] - 2019-08-23
36
+ ### Changed
37
+ - Switched to Ruby 2.6.3 for development. [#22](https://github.com/Shopify/pseudolocalization/pull/22)
38
+ - Switched to Travis CI for CI solutions. [#22](https://github.com/Shopify/pseudolocalization/pull/22)
39
+
40
+ ### Removed
41
+ - Removed Shopify Build CI. [#22](https://github.com/Shopify/pseudolocalization/pull/22)
42
+
43
+ ## [0.8.0] - 2019-08-13
44
+ ### Added
45
+
46
+ - Exposed `original_backend` on the backend via `attr_reader`. [#21](https://github.com/Shopify/pseudolocalization/pull/21)
47
+
48
+ ### Fixed
49
+
50
+ - Escape quotes inside attributes. [#20](https://github.com/Shopify/pseudolocalization/pull/20)
51
+
52
+
53
+ Please refer to [GitHub releases](https://github.com/Shopify/pseudolocalization/releases) for releases prior to [0.8.0].
54
+
55
+ [Unreleased]: https://github.com/Shopify/pseudolocalization/compare/0.9.0...HEAD
56
+ [0.9.0]: https://github.com/Shopify/pseudolocalization/compare/0.8.4...0.9.0
57
+ [0.8.4]: https://github.com/Shopify/pseudolocalization/compare/0.8.3...0.8.4
58
+ [0.8.3]: https://github.com/Shopify/pseudolocalization/compare/0.8.2...0.8.3
59
+ [0.8.2]: https://github.com/Shopify/pseudolocalization/compare/0.8.1...0.8.2
60
+ [0.8.1]: https://github.com/Shopify/pseudolocalization/compare/0.8.0...0.8.1
61
+ [0.8.0]: https://github.com/Shopify/pseudolocalization/compare/0.7.0...0.8.0
data/Gemfile CHANGED
@@ -1,8 +1,4 @@
1
- ruby '~> 2.4'
2
-
3
- source "https://rubygems.org"
4
-
5
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
1
+ source 'https://rubygems.org'
6
2
 
7
3
  # Specify your gem's dependencies in pseudolocalization.gemspec
8
4
  gemspec
data/Gemfile.lock CHANGED
@@ -1,51 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pseudolocalization (0.2.0)
4
+ pseudolocalization (0.9.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- domain_name (0.5.20170404)
10
- unf (>= 0.0.5, < 1.0.0)
11
- highline (1.6.20)
12
- http-cookie (1.0.3)
13
- domain_name (~> 0.5)
14
- json_pure (1.8.1)
15
- mime-types (3.1)
16
- mime-types-data (~> 3.2015)
17
- mime-types-data (3.2016.0521)
18
- minitest (5.11.3)
19
- netrc (0.11.0)
20
- package_cloud (0.3.04)
21
- highline (= 1.6.20)
22
- json_pure (= 1.8.1)
23
- rainbow (= 2.2.2)
24
- rest-client (~> 2.0)
25
- thor (~> 0.18)
26
- rainbow (2.2.2)
27
- rake
28
- rake (10.5.0)
29
- rest-client (2.0.2)
30
- http-cookie (>= 1.0.2, < 2.0)
31
- mime-types (>= 1.16, < 4.0)
32
- netrc (~> 0.8)
33
- thor (0.20.0)
34
- unf (0.1.4)
35
- unf_ext
36
- unf_ext (0.0.7.5)
9
+ minitest (5.14.3)
10
+ rake (13.0.3)
37
11
 
38
12
  PLATFORMS
39
13
  ruby
40
14
 
41
15
  DEPENDENCIES
42
16
  minitest (~> 5.0)
43
- package_cloud
44
17
  pseudolocalization!
45
- rake (~> 10.0)
46
-
47
- RUBY VERSION
48
- ruby 2.4.2p198
18
+ rake (~> 13.0)
49
19
 
50
20
  BUNDLED WITH
51
- 1.16.1
21
+ 2.2.4
data/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  # Pseudolocalization
2
2
 
3
- > Pseudolocalization (or pseudo-localization) is a software testing method used for testing internationalization aspects of software. Instead of translating the text of the software into a foreign language, as in the process of localization, the textual elements of an application are replaced with an altered version of the original language.
3
+ [![Version][gem]][gem_url] [![Build Status](https://github.com/Shopify/pseudolocalization/workflows/CI/badge.svg?branch=master)](https://github.com/Shopify/pseudolocalization/actions?query=workflow%3ACI)
4
4
 
5
- ## Why?
5
+ [About this repo](#about-this-repo) | [How to use this repo](#how-to-use-this-repo) | [Contribute to this repo](#contribute-to-this-repo)
6
+
7
+ ## About this repo
8
+ ### Why?
6
9
 
7
10
  Internationalization is a hard and tedious process. Different character sets, different average word length, different pluralization rules... There's a lot going on and it's impossible to test against all possible scenarios. As a side effect, most of us will simply test against one or two known languages and hope for the best. Unfortunately, this often leads to broken UI elements, texts going out of bounds, or forgotten non-translated strings making their way into a final release.
8
11
 
@@ -22,7 +25,8 @@ In an attempt to ease this whole process, we created a small tool that gives you
22
25
  2. Expand words by doubling all vowels
23
26
  3. Use English lookalike UTF8 characters for readability
24
27
 
25
- ## Installation
28
+ ## How to use this repo
29
+ ### Installation
26
30
 
27
31
  Add these lines to your application's Gemfile:
28
32
 
@@ -48,7 +52,7 @@ if Rails.env.development? && ENV["I18N_BACKEND"]
48
52
  end
49
53
  ```
50
54
 
51
- ## Usage
55
+ ### Usage
52
56
 
53
57
  When working on internationalization, you can boot your server with the pseudolocalization backend to quickly identify content that doesn't go through the I18n framework.
54
58
 
@@ -56,14 +60,31 @@ When working on internationalization, you can boot your server with the pseudolo
56
60
  I18N_BACKEND=pseudolocalization bundle exec rails server
57
61
  ```
58
62
 
63
+ ### Ignoring specific keys
64
+ You may wish to have the backend ignore specific keys. These may be configured via an array, `ignores`, on the backend. The array can contain a mix of strings (with globbing allowed) and/or Regexes.
59
65
 
60
- ## Other Resources
66
+ ```ruby
67
+ I18n.backend = Pseudolocalization::I18n::Backend.new(I18n.backend)
68
+ I18n.backend.ignores = ['ignored*', /Waldo.$/]
69
+ ```
70
+
71
+ ### How to run tests
72
+
73
+ ```bash
74
+ bundle exec rake test
75
+ ```
76
+
77
+ ### Other Resources
61
78
 
62
79
  * [IBM Globalization Guidelines](http://www-01.ibm.com/software/globalization/guidelines/index.html)
63
80
  * [Design for internationalization - Dropbox Design](https://medium.com/dropbox-design/design-for-internationalization-24c12ea6b38f)
64
81
  * [Pseudolocalization](https://en.wikipedia.org/wiki/Pseudolocalization)
65
82
  * [Essential Guide to App Internationalization](https://drive.google.com/open?id=1c6nAw6ttF_uHRq0ZQaGu5gYD0vjq9lHP)
83
+ * [Pseudo Localization @ Netflix](https://medium.com/netflix-techblog/pseudo-localization-netflix-12fff76fbcbe)
66
84
 
67
- ## Contributing
85
+ ## Contribute to this repo
68
86
 
69
87
  Bug reports and pull requests are welcome on GitHub at https://github.com/Shopify/pseudolocalization.
88
+
89
+ [gem]: https://badgen.net/rubygems/v/pseudolocalization?color=green
90
+ [gem_url]: https://rubygems.org/gems/pseudolocalization
data/dev.yml CHANGED
@@ -3,7 +3,7 @@ name: pseudolocalization
3
3
  type: ruby
4
4
 
5
5
  up:
6
- - ruby: 2.4.2
6
+ - ruby: 2.7.2
7
7
  - bundler
8
8
 
9
9
  commands:
@@ -1,126 +1,52 @@
1
- require "pseudolocalization/version"
1
+ require_relative "pseudolocalization/version"
2
+ require_relative "pseudolocalization/pseudolocalizer"
2
3
 
3
4
  module Pseudolocalization
4
5
  module I18n
5
6
  class Backend
6
- ESCAPED_CHARS = [
7
- ['<', '>'],
8
- ['{{', '}}'],
9
- ]
7
+ attr_reader :original_backend
8
+ attr_accessor :ignores
10
9
 
11
- ESCAPED_PATTERNS = ESCAPED_CHARS.map do |(a, b)|
12
- "#{a}.*?#{b}"
13
- end
14
-
15
- ESCAPED_REGEX = Regexp.new("(#{ESCAPED_PATTERNS.join('|')})")
16
-
17
- VOWELS = %w(a e i o u y A E I O U Y)
18
-
19
- LETTERS = {
20
- 'a' => 'α',
21
- 'b' => 'ḅ',
22
- 'c' => 'ͼ',
23
- 'd' => 'ḍ',
24
- 'e' => 'ḛ',
25
- 'f' => 'ϝ',
26
- 'g' => 'ḡ',
27
- 'h' => 'ḥ',
28
- 'i' => 'ḭ',
29
- 'j' => 'ĵ',
30
- 'k' => 'ḳ',
31
- 'l' => 'ḽ',
32
- 'm' => 'ṃ',
33
- 'n' => 'ṇ',
34
- 'o' => 'ṓ',
35
- 'p' => 'ṗ',
36
- 'q' => 'ʠ',
37
- 'r' => 'ṛ',
38
- 's' => 'ṡ',
39
- 't' => 'ṭ',
40
- 'u' => 'ṵ',
41
- 'v' => 'ṽ',
42
- 'w' => 'ẁ',
43
- 'x' => 'ẋ',
44
- 'y' => 'ẏ',
45
- 'z' => 'ẓ',
46
- 'A' => 'Ḁ',
47
- 'B' => 'Ḃ',
48
- 'C' => 'Ḉ',
49
- 'D' => 'Ḍ',
50
- 'E' => 'Ḛ',
51
- 'F' => 'Ḟ',
52
- 'G' => 'Ḡ',
53
- 'H' => 'Ḥ',
54
- 'I' => 'Ḭ',
55
- 'J' => 'Ĵ',
56
- 'K' => 'Ḱ',
57
- 'L' => 'Ḻ',
58
- 'M' => 'Ṁ',
59
- 'N' => 'Ṅ',
60
- 'O' => 'Ṏ',
61
- 'P' => 'Ṕ',
62
- 'Q' => 'Ǫ',
63
- 'R' => 'Ṛ',
64
- 'S' => 'Ṣ',
65
- 'T' => 'Ṫ',
66
- 'U' => 'Ṳ',
67
- 'V' => 'Ṿ',
68
- 'W' => 'Ŵ',
69
- 'X' => 'Ẋ',
70
- 'Y' => 'Ŷ',
71
- 'Z' => 'Ż',
72
- }.freeze
73
-
74
- def initialize(old_backend)
75
- @old_backend = old_backend
10
+ def initialize(original_backend)
11
+ @original_backend = original_backend
12
+ @ignores = []
13
+ yield self if block_given?
76
14
  end
77
15
 
78
16
  def method_missing(name, *args, &block)
79
17
  if respond_to_missing?(name)
80
- @old_backend.public_send(name, *args, &block)
18
+ original_backend.public_send(name, *args, &block)
81
19
  else
82
20
  super
83
21
  end
84
22
  end
85
23
 
86
24
  def respond_to_missing?(name, include_private = false)
87
- @old_backend.respond_to?(name) || super
25
+ original_backend.respond_to?(name) || super
88
26
  end
89
27
 
90
28
  def translate(locale, key, options)
91
- translate_object(@old_backend.translate(locale, key, options))
92
- end
29
+ return original_backend.translate(locale, key, options) if key_ignored?(key)
93
30
 
94
- def translate_object(object)
95
- if object.is_a?(Hash)
96
- object.transform_values { |value| translate_object(value) }
97
- elsif object.is_a?(Array)
98
- object.map { |value| translate_object(value) }
99
- elsif object.is_a?(String)
100
- translate_string(object)
101
- else
102
- object
103
- end
31
+ ::Pseudolocalization::I18n::Pseudolocalizer.pseudolocalize(original_backend.translate(locale, key, options))
104
32
  end
105
33
 
106
- def translate_string(string)
107
- string = string.gsub(/&[a-z]+;/, ' ')
34
+ private
108
35
 
109
- string.split(ESCAPED_REGEX).map do |part|
110
- if part =~ ESCAPED_REGEX
111
- part
36
+ def key_ignored?(key)
37
+ return false unless ignores
38
+
39
+ ignores.any? do |ignore|
40
+ case ignore
41
+ when Regexp
42
+ key.to_s.match(ignore)
43
+ when String
44
+ File.fnmatch(ignore, key.to_s)
112
45
  else
113
- part.chars.map do |char|
114
- if LETTERS.key?(char)
115
- value = LETTERS[char]
116
- value = value * 2 if VOWELS.include?(char)
117
- value
118
- else
119
- char
120
- end
121
- end.join
46
+ Rails.logger.tagged('Pseudolocalization I18n').error('Ignore type unsupported. Expects an array of (mixed) Regexp or Strings.')
47
+ false
122
48
  end
123
- end.join
49
+ end
124
50
  end
125
51
  end
126
52
  end
@@ -0,0 +1,111 @@
1
+ module Pseudolocalization
2
+ module I18n
3
+ class Pseudolocalizer
4
+ ESCAPED_REGEX = Regexp.new("(#{
5
+ [
6
+ "<.*?>",
7
+ "{{.*?}}",
8
+ "%{.*?}",
9
+ "https?:\/\/\\S+",
10
+ "&\\S*?;"
11
+ ].join('|')
12
+ })")
13
+
14
+ VOWELS = %w(a e i o u y A E I O U Y)
15
+
16
+ LETTERS = {
17
+ 'a' => 'α',
18
+ 'b' => 'ḅ',
19
+ 'c' => 'ͼ',
20
+ 'd' => 'ḍ',
21
+ 'e' => 'ḛ',
22
+ 'f' => 'ϝ',
23
+ 'g' => 'ḡ',
24
+ 'h' => 'ḥ',
25
+ 'i' => 'ḭ',
26
+ 'j' => 'ĵ',
27
+ 'k' => 'ḳ',
28
+ 'l' => 'ḽ',
29
+ 'm' => 'ṃ',
30
+ 'n' => 'ṇ',
31
+ 'o' => 'ṓ',
32
+ 'p' => 'ṗ',
33
+ 'q' => 'ʠ',
34
+ 'r' => 'ṛ',
35
+ 's' => 'ṡ',
36
+ 't' => 'ṭ',
37
+ 'u' => 'ṵ',
38
+ 'v' => 'ṽ',
39
+ 'w' => 'ẁ',
40
+ 'x' => 'ẋ',
41
+ 'y' => 'ẏ',
42
+ 'z' => 'ẓ',
43
+ 'A' => 'Ḁ',
44
+ 'B' => 'Ḃ',
45
+ 'C' => 'Ḉ',
46
+ 'D' => 'Ḍ',
47
+ 'E' => 'Ḛ',
48
+ 'F' => 'Ḟ',
49
+ 'G' => 'Ḡ',
50
+ 'H' => 'Ḥ',
51
+ 'I' => 'Ḭ',
52
+ 'J' => 'Ĵ',
53
+ 'K' => 'Ḱ',
54
+ 'L' => 'Ḻ',
55
+ 'M' => 'Ṁ',
56
+ 'N' => 'Ṅ',
57
+ 'O' => 'Ṏ',
58
+ 'P' => 'Ṕ',
59
+ 'Q' => 'Ǫ',
60
+ 'R' => 'Ṛ',
61
+ 'S' => 'Ṣ',
62
+ 'T' => 'Ṫ',
63
+ 'U' => 'Ṳ',
64
+ 'V' => 'Ṿ',
65
+ 'W' => 'Ŵ',
66
+ 'X' => 'Ẋ',
67
+ 'Y' => 'Ŷ',
68
+ 'Z' => 'Ż',
69
+ }.freeze
70
+
71
+ class << self
72
+ def pseudolocalize(object)
73
+ translate_object(object)
74
+ end
75
+
76
+ private
77
+
78
+ def translate_object(object)
79
+ if object.is_a?(Hash)
80
+ object.transform_values { |value| translate_object(value) }
81
+ elsif object.is_a?(Array)
82
+ object.map { |value| translate_object(value) }
83
+ elsif object.is_a?(String)
84
+ translate_string(object)
85
+ else
86
+ object
87
+ end
88
+ end
89
+
90
+ def translate_string(string)
91
+
92
+ string.split(ESCAPED_REGEX).map do |part|
93
+ if part =~ ESCAPED_REGEX
94
+ part
95
+ else
96
+ part.chars.map do |char|
97
+ if LETTERS.key?(char)
98
+ value = LETTERS[char]
99
+ value = value * 2 if VOWELS.include?(char)
100
+ value
101
+ else
102
+ char
103
+ end
104
+ end.join
105
+ end
106
+ end.join
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -1,3 +1,3 @@
1
1
  module Pseudolocalization
2
- VERSION = "0.5.0"
2
+ VERSION = "0.9.0"
3
3
  end
@@ -14,6 +14,10 @@ Gem::Specification.new do |spec|
14
14
  spec.description = %q{Internationalization development tool to help identify missing translations}
15
15
  spec.homepage = "https://github.com/Shopify/pseudolocalization"
16
16
 
17
+ spec.metadata = {
18
+ 'allowed_push_host' => 'https://rubygems.org'
19
+ }
20
+
17
21
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
22
  f.match(%r{^(test|spec|features)/})
19
23
  end
@@ -21,6 +25,6 @@ Gem::Specification.new do |spec|
21
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
26
  spec.require_paths = ["lib"]
23
27
 
24
- spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency "rake", "~> 13.0"
25
29
  spec.add_development_dependency "minitest", "~> 5.0"
26
30
  end
data/service.yml ADDED
@@ -0,0 +1,7 @@
1
+ org_line: Build
2
+ owners:
3
+ - Shopify/intl-languages
4
+ slack_channels:
5
+ - help-i18n-and-translation
6
+ classification: library
7
+ ci_url: https://github.com/Shopify/pseudolocalization/workflows/CI
@@ -0,0 +1,7 @@
1
+ ci:
2
+ require:
3
+ - 'Ruby 2.4 Gemfile'
4
+ - 'Ruby 2.5 Gemfile'
5
+ - 'Ruby 2.6 Gemfile'
6
+ - 'Ruby 2.7 Gemfile'
7
+ - 'Ruby 3 Gemfile'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pseudolocalization
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Blais
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-04 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '10.0'
19
+ version: '13.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '10.0'
26
+ version: '13.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -45,8 +45,11 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".dependabot/config.yml"
49
+ - ".github/probots.yml"
50
+ - ".github/workflows/ruby-ci.yml"
48
51
  - ".gitignore"
49
- - ".travis.yml"
52
+ - CHANGELOG.md
50
53
  - Gemfile
51
54
  - Gemfile.lock
52
55
  - LICENSE
@@ -54,16 +57,18 @@ files:
54
57
  - Rakefile
55
58
  - bin/console
56
59
  - bin/setup
57
- - circle.yml
58
60
  - dev.yml
59
61
  - lib/pseudolocalization.rb
62
+ - lib/pseudolocalization/pseudolocalizer.rb
60
63
  - lib/pseudolocalization/version.rb
61
64
  - pseudolocalization.gemspec
62
- - shipit.yml
65
+ - service.yml
66
+ - shipit.rubygems.yml
63
67
  homepage: https://github.com/Shopify/pseudolocalization
64
68
  licenses:
65
69
  - MIT
66
- metadata: {}
70
+ metadata:
71
+ allowed_push_host: https://rubygems.org
67
72
  post_install_message:
68
73
  rdoc_options: []
69
74
  require_paths:
@@ -79,8 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
84
  - !ruby/object:Gem::Version
80
85
  version: '0'
81
86
  requirements: []
82
- rubyforge_project:
83
- rubygems_version: 2.7.3
87
+ rubygems_version: 3.0.3
84
88
  signing_key:
85
89
  specification_version: 4
86
90
  summary: Internationalization development tool
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.2
5
- before_install: gem install bundler -v 1.16.0
data/circle.yml DELETED
@@ -1,15 +0,0 @@
1
- machine:
2
- environment:
3
- RAILS_ENV: test
4
- RACK_ENV: test
5
- ruby:
6
- version:
7
- 2.4.2
8
-
9
- dependencies:
10
- override:
11
- - bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3
12
-
13
- database:
14
- override:
15
- - echo "no database setup"
data/shipit.yml DELETED
@@ -1,4 +0,0 @@
1
- deploy:
2
- override:
3
- - bundle exec rake build
4
- - bundle exec package_cloud push shopify/gems pkg/*.gem