text_helpers 0.5.0 → 0.5.1
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/README.md +29 -0
- data/lib/text_helpers/rspec.rb +59 -0
- data/lib/text_helpers/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d68768849991fa2e1aef1064d10c70a0c106e3e1
|
4
|
+
data.tar.gz: 010c42fa301e3b113586a30ef7e6e1e2ae014059
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58bea6441da44a2a256ca9ed53a7bb1116a1c4b9d85250846f6e5e84e55d245d7ee626f5d1258556b3527d7ad1893ff8287da9a96e265a740a8d513ca3293bdd
|
7
|
+
data.tar.gz: 5ff92cc80d614a94f78c2852f0e8ef9008cc1e75bdbd2728f89fa35c89eb98d30a0526192fb378b450f88fbcba65af819706482c91ec31b0d2a7d4c73f25cbeb
|
data/README.md
CHANGED
@@ -91,6 +91,35 @@ specs by adding `view: true` to the spec metadata.
|
|
91
91
|
The controller text helpers described above can be accessed in controller
|
92
92
|
specs by adding `controller: true` to your spec metadata.
|
93
93
|
|
94
|
+
### Temporary/Stub Localizations
|
95
|
+
|
96
|
+
`text_helpers/rspec.rb` contains some helpers for setting up a test localization
|
97
|
+
environment during your test runs.
|
98
|
+
|
99
|
+
To configure it, `require "text_helpers/rspec"` and configure the `before` and
|
100
|
+
`after` hooks appropriately:
|
101
|
+
|
102
|
+
```
|
103
|
+
require 'text_helpers/rspec'
|
104
|
+
|
105
|
+
RSpec.configure do |config|
|
106
|
+
config.before(:suite) do
|
107
|
+
TextHelpers::RSpec.setup_spec_translations
|
108
|
+
end
|
109
|
+
|
110
|
+
config.after(:each) do
|
111
|
+
TextHelpers::RSpec.reset_spec_translations
|
112
|
+
end
|
113
|
+
end
|
114
|
+
```
|
115
|
+
|
116
|
+
Temporary localizations can then be defined within your examples via the
|
117
|
+
`#set_translation` method, like so:
|
118
|
+
|
119
|
+
```
|
120
|
+
set_translation('models.user.attributes.name', 'Name')
|
121
|
+
```
|
122
|
+
|
94
123
|
## Configuration & Initialization
|
95
124
|
|
96
125
|
### Initialization
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module TextHelpers
|
2
|
+
# TextHelpers::RSpec contains some helpers for making testing around i18n
|
3
|
+
# easier, especially with tests that may generate keys that map to
|
4
|
+
# translations that aren't/should not be present in your production
|
5
|
+
# localization files.
|
6
|
+
module RSpec
|
7
|
+
class << self
|
8
|
+
attr_accessor :translation_backend
|
9
|
+
end
|
10
|
+
|
11
|
+
# Public: Set up the test translation environment.
|
12
|
+
#
|
13
|
+
# Should ideally be called in an RSpec `before(:suite)` hook.
|
14
|
+
#
|
15
|
+
# Returns the new I18n backend.
|
16
|
+
def self.setup_spec_translations
|
17
|
+
self.translation_backend = I18n::Backend::Simple.new
|
18
|
+
I18n.backend = I18n::Backend::Chain.new(self.translation_backend, I18n.backend)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Public: Reset the test translations.
|
22
|
+
#
|
23
|
+
# Clears out any translations added during an example run.
|
24
|
+
#
|
25
|
+
# Returns nothing.
|
26
|
+
def self.reset_spec_translations
|
27
|
+
if self.translation_backend.nil?
|
28
|
+
raise "translation_backend is nil. Ensure .setup_spec_translations was called"
|
29
|
+
end
|
30
|
+
|
31
|
+
self.translation_backend.reload!
|
32
|
+
end
|
33
|
+
|
34
|
+
# TextHelpers::RSpec::TestHelpers contains helper methods to be used from
|
35
|
+
# within your examples.
|
36
|
+
module TestHelpers
|
37
|
+
|
38
|
+
# Public: Set a new translation in the test translations.
|
39
|
+
#
|
40
|
+
# path - The path to the key, like 'models.user.attributes.title'.
|
41
|
+
# value - The localized value.
|
42
|
+
# locale - The locale the translation should be defined in.
|
43
|
+
# scope - The scope the translation should be defined under.
|
44
|
+
#
|
45
|
+
# Returns true on success.
|
46
|
+
def set_translation(path, value, locale: I18n.locale, scope: nil)
|
47
|
+
*hash_keys, last_key = I18n.normalize_keys(nil, path, scope)
|
48
|
+
|
49
|
+
data = {}
|
50
|
+
last_hash = hash_keys.inject(data) { |h,k| h[k] = Hash.new }
|
51
|
+
last_hash[last_key] = value
|
52
|
+
|
53
|
+
TextHelpers::RSpec.translation_backend.store_translations(locale, data)
|
54
|
+
|
55
|
+
true
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/text_helpers/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: text_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Horner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -95,6 +95,7 @@ files:
|
|
95
95
|
- lib/text_helpers.rb
|
96
96
|
- lib/text_helpers/contexts.rb
|
97
97
|
- lib/text_helpers/railtie.rb
|
98
|
+
- lib/text_helpers/rspec.rb
|
98
99
|
- lib/text_helpers/translation.rb
|
99
100
|
- lib/text_helpers/version.rb
|
100
101
|
- test/lib/text_helpers/railtie_test.rb
|