text_helpers 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|