# frozen_string_literal: true module Faker class Books class Dune < Base class << self # QUOTED_CHARACTERS = fetch("dune.quotes") # SAYING_SOURCES = %w(translate("faker.dune.sources")) def character fetch('dune.characters') end def title fetch('dune.titles') end def planet fetch('dune.planets') end def quote(character: nil) quoted_characters = translate('faker.dune.quotes').keys if character.nil? character = sample(quoted_characters).to_s else character = character.to_s.downcase unless quoted_characters.include?(character.to_sym) raise ArgumentError, "Characters quoted can be left blank or #{quoted_characters.join(', ')}" end end fetch('dune.quotes.' + character) end def saying(source: nil) sourced_sayings = translate('faker.dune.sayings').keys if source.nil? source = sample(sourced_sayings).to_s else source = source.to_s.downcase unless sourced_sayings.include?(source.to_sym) raise ArgumentError, "Sources quoted in sayings can be left blank or #{sourced_sayings.join(', ')}" end end fetch('dune.sayings.' + source) end end end end end