# frozen_string_literal: true module Faker module Movies class StarWars < Base class << self def call_squadron sample(call_squadrons) end def call_sign numerify(parse('star_wars.call_sign')) end def call_number sample(call_numbers) end def character sample(characters) end def droid sample(droids) end def planet sample(planets) end def specie sample(species) end def vehicle sample(vehicles) end def wookiee_sentence sentence = sample(wookiee_words).capitalize rand(0..10).times { sentence += ' ' + sample(wookiee_words) } sentence + sample(['.', '?', '!']) end def quote(character = nil) quoted_characters = translate('faker.star_wars.quotes') if character.nil? character = sample(quoted_characters.keys).to_s else character = character.to_s.downcase # check alternate spellings, nicknames, titles of characters translate('faker.star_wars.alternate_character_spellings').each do |k, v| character = k.to_s if v.include?(character) end unless quoted_characters.key?(character.to_sym) raise ArgumentError, "Character for quotes can be left blank or #{quoted_characters.keys.join(', ')}" end end fetch('star_wars.quotes.' + character) end def call_numbers fetch_all('star_wars.call_numbers') end def call_squadrons fetch_all('star_wars.call_squadrons') end def characters fetch_all('star_wars.characters') end def droids fetch_all('star_wars.droids') end def planets fetch_all('star_wars.planets') end def species fetch_all('star_wars.species') end def vehicles fetch_all('star_wars.vehicles') end def wookiee_words fetch_all('star_wars.wookiee_words') end alias wookie_sentence wookiee_sentence alias wookie_words wookiee_words end end end end