Guest User

Untitled

a guest
Sep 17th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. require 'rubygems'
  2. require 'mysql2'
  3. require 'faker'
  4. require 'pry'
  5.  
  6. class SampleData
  7.  
  8. attr_reader :connection
  9.  
  10. def initialize(size)
  11. @sample_size = size || 1000
  12. @connection = Mysql2::Client.new(:host => "localhost", :username => "root", :password => "password")
  13. end
  14.  
  15. def create_row
  16. sql = """
  17. INSERT INTO `ruby_test`.`demographics` (first_name,
  18. last_name,
  19. email,
  20. address,
  21. city,
  22. state,
  23. zip,
  24. created_at,
  25. updated_at)
  26. VALUES ('#{e Faker::Name.first_name}',
  27. '#{e Faker::Name.last_name}',
  28. '#{e Faker::Internet.email}',
  29. '#{e Faker::Address.street_address}',
  30. '#{e Faker::Address.city}',
  31. '#{e Faker::Address.state_abbr}',
  32. '#{e Faker::Address.zip_code}',
  33. '#{Time.now}',
  34. '#{Time.now}'
  35. );
  36. """
  37. connection.query sql
  38. end
  39.  
  40. # Escape unsafe strings. e as helper (find in SampleData#create_row)
  41. def e (str)
  42. connection.escape str
  43. end
  44.  
  45. def create_database
  46. connection.query "CREATE database ruby_test;"
  47. end
  48.  
  49. def create_table
  50. connection.query "CREATE TABLE `ruby_test`.`demographics` (first_name VARCHAR(255), last_name VARCHAR(255),
  51. email VARCHAR(255), address VARCHAR(255), city VARCHAR(255),
  52. state VARCHAR(255), zip VARCHAR(255), created_at TIMESTAMP,
  53. updated_at TIMESTAMP
  54. );"
  55. end
  56.  
  57. def drop_table
  58. connection.query "DROP TABLE `ruby_test`.`demographics`;"
  59. end
  60.  
  61. def generate_sample
  62. drop_table
  63. create_table
  64.  
  65. @sample_size.times do |row|
  66. create_row
  67. end
  68. end
  69. end
Add Comment
Please, Sign In to add comment