Module: Karper::Faker

Defined in:
lib/karper/faker.rb

Constant Summary collapse

FIRST =
%w[mar lig erg tus fre urm ioa poh gaf def self.kel mee fad].freeze
LAST =
%w[urg dee uts pee oop sed sad ddo ver cef laa lah gah].freeze
CONNECTORS =
%w[- _ x].freeze

Class Method Summary collapse

Class Method Details

.errorObject



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/karper/faker.rb', line 78

def self.error
  command = Karper::Code::ERRORS.keys.sample
  code = Karper::Code::ERRORS[command].keys.sample
  Karper::Message::Error.new(
    generate_newt,
    command,
    code,
    Karper::Code::ERRORS[command][code],
    {}
  )
end

.generate_attributes(members) ⇒ Object



60
61
62
63
64
# File 'lib/karper/faker.rb', line 60

def self.generate_attributes(members)
  members.map do |name|
    send("generate_#{name}")
  end
end

.generate_contentsObject



31
32
33
# File 'lib/karper/faker.rb', line 31

def self.generate_contents
  "#{generate_word.capitalize} #{generate_words}."
end

.generate_document_attributesObject



56
57
58
# File 'lib/karper/faker.rb', line 56

def self.generate_document_attributes
  {}
end

.generate_newtObject Also known as: generate_user_id, generate_invitation_token



9
10
11
# File 'lib/karper/faker.rb', line 9

def self.generate_newt
  Karper::Newt.generate
end

.generate_nickObject



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/karper/faker.rb', line 35

def self.generate_nick
  connector = rand(4) == 1 ? ' ' : CONNECTORS.sample
  nick = [FIRST.sample, connector, LAST.sample].compact.join
  case rand(3)
  when 0
    nick.upcase
  when 1
    nick.downcase
  else
    nick.split.map { |part| "#{part[0].upcase}#{part[1..]}" }.join
  end
end

.generate_passwordObject



48
49
50
# File 'lib/karper/faker.rb', line 48

def self.generate_password
  "#{%w[zeewolf flipper winter].sample}#{rand(100).to_s[0, 2]}"
end

.generate_timestampObject



18
19
20
21
# File 'lib/karper/faker.rb', line 18

def self.generate_timestamp
  # We only support up to 3 decimal places on milliseconds, so we roundtrip it through out own packing methods.
  Karper::Unpacker.unpack_time(Karper::Packer.pack_time(Time.now.utc + rand(100) - 50))
end

.generate_urlObject



52
53
54
# File 'lib/karper/faker.rb', line 52

def self.generate_url
  'http://example.com'
end

.generate_wordObject



23
24
25
# File 'lib/karper/faker.rb', line 23

def self.generate_word
  (FIRST + LAST).sample
end

.generate_wordsObject



27
28
29
# File 'lib/karper/faker.rb', line 27

def self.generate_words
  (0..rand(20)).map { generate_word }.join(' ')
end

.noteObject



90
91
92
93
94
95
96
97
98
# File 'lib/karper/faker.rb', line 90

def self.note
  code = Karper::Code::NOTES.keys.sample
  Karper::Message::Note.new(
    generate_newt,
    code,
    Karper::Code::NOTES[code],
    {}
  )
end