module Decidim::Faker::Localized
A Custom Faker
wrapper so we can easily generate fake data for each locale in localized attributes.
Public Class Methods
Builds a Lorem Ipsum character.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 58 def self.character localized do ::Faker::Lorem.character end end
Builds many Lorem Ipsum characters. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 67 def self.characters(...) localized do ::Faker::Lorem.characters(...) end end
Fakes a company name.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 22 def self.company localized do ::Faker::Company.name end end
Sets the given text as the value for each locale.
text - The String text to set for each locale.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 132 def self.literal(text) Decidim.available_locales.inject({}) do |result, locale| result.update(locale => text) end.with_indifferent_access end
Runs the given block for each of the available locales in Decidim
, momentarilly setting the locale to the current one.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 170 def self.localized *locales, last_locale = Decidim.available_locales value = locales.inject({}) do |result, locale| text = ::Faker::Base.with_locale(locale) do yield end result.update(locale => text) end.with_indifferent_access value.update( "machine_translations" => { last_locale => ::Faker::Base.with_locale(last_locale) { yield } }.with_indifferent_access ) end
Fakes a person name.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 31 def self.name localized do ::Faker::Name.name end end
Builds a paragraph with Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 94 def self.paragraph(...) localized do ::Faker::Lorem.paragraph(...) end end
Builds many paragraphs with Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 103 def self.paragraphs(...) localized do ::Faker::Lorem.paragraphs(...) end end
Prefixes the msg
for each available locale and returns as a Hash of the form `locale => prefixed_msg`.
Return a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 192 def self.prefixed(msg, locales = Decidim.available_locales) *all_locales, last_locale = locales value = all_locales.inject({}) do |result, locale| result.update(locale => "#{locale.to_s.upcase}: #{msg}") end.with_indifferent_access value.update( "machine_translations" => { last_locale => "#{last_locale.to_s.upcase}: #{msg}" }.with_indifferent_access ) end
Builds a question with Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 112 def self.question(...) localized do ::Faker::Lorem.question(...) end end
Builds many questions with Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 121 def self.questions(...) localized do ::Faker::Lorem.questions(...) end end
Builds a sentence with Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 76 def self.sentence(...) localized do ::Faker::Lorem.sentence(...) end end
Builds many sentences with Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 85 def self.sentences(...) localized do ::Faker::Lorem.sentences(...) end end
Builds a Lorem Ipsum word.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 40 def self.word localized do ::Faker::Lorem.word end end
Builds many Lorem Ipsum words. See Faker::Lorem for options.
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 49 def self.words(...) localized do ::Faker::Lorem.words(...) end end
Wrapps a text build by the block with some other text.
before - The String text to inject at the begining of each value. after - The String text to inject at the end of each value. block - A Block that generates a Hash with a text for each locale.
Example:
Decidim::Faker::Localized.wrapped("<p>", "</p>") do Decidim::Faker::Localized.sentence(5) end
Returns a Hash with a value for each locale.
# File lib/decidim/faker/localized.rb, line 151 def self.wrapped(before, after) result = yield result.inject({}) do |wrapped, (locale, value)| if value.is_a?(Hash) final_value = value.inject({}) do |new_wrapped, (new_locale, new_value)| new_wrapped.update(new_locale => [before, new_value, after].join) end wrapped.update(locale => final_value) else wrapped.update(locale => [before, value, after].join) end end end