File: i18n_faker.rb

package info (click to toggle)
ruby-shoulda-matchers 7.0.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,652 kB
  • sloc: ruby: 34,046; sh: 280; makefile: 9
file content (29 lines) | stat: -rw-r--r-- 717 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module UnitTests
  module I18nFaker
    extend self

    def self.configure_example_group(example_group)
      example_group.include(self)
    end

    def stubbing_translations(translations)
      stub_translations(translations)
      yield
    ensure
      I18n.backend.reload!
      I18n.backend.send(:init_translations)
    end

    def stub_translations(translations)
      translations.each do |key, message|
        stub_translation(key, message)
      end
    end

    def stub_translation(key_or_keys, message)
      keys = [key_or_keys].flatten.join('.').split('.')
      tree = keys.reverse.inject(message) { |data, key| { key => data } }
      I18n.backend.store_translations(:en, tree)
    end
  end
end