Class: Seeder

Inherits:
Object
  • Object
show all
Defined in:
lib/pokotarou/seeder.rb

Class Method Summary collapse

Class Method Details

.gen(config_data, key) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/pokotarou/seeder.rb', line 3

def gen config_data, key
  n = config_data[:loop]
  type = config_data[:type][key]
  enum = config_data[:enum][key]
  foreign_key = config_data[:foreign_key][key]

  return foreign_key.pluck(:id) if foreign_key.present?
  return enum if enum.present?
  return make_array(n, ->(){ rand(100) }) if type == "integer"
  return make_array(n, ->(){ rand(0.0..100.0) }) if type == "float"
  return make_array(n, ->(){ rand(0.0..1_000_000_000.0) }) if type == "decimal"
  return make_array(n, ->(){ SecureRandom.hex(20) }) if type == "string"
  return make_array(n, ->(){ SecureRandom.hex(300) }) if ["text", "binary"].include?(type)
  return make_array(n, ->(){ [true, false].sample }) if type == "boolean"
  return make_string_array(n, enum) if type == "string"
  return make_datetime_array() if ["string", "datetime", "date", "time"].include?(type)
end