Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. require 'digest/sha1'
  2. class ImportStores < ActiveRecord::Migration
  3. class Store < ActiveRecord::Base
  4. has_one :address, :as => :addressable
  5. has_many :phones, :as => :owner
  6. has_many :users
  7. end
  8.  
  9. class Address < ActiveRecord::Base
  10. belongs_to :addressable, :polymorphic => true
  11. end
  12.  
  13. class Phone < ActiveRecord::Base
  14. belongs_to :owner, :polymorphic => true
  15. acts_as_list :scope => :owner_id
  16.  
  17. def before_save
  18. number_before_type_cast.gsub!(/[^0-9]/, "") unless number.nil?
  19. end
  20. end
  21.  
  22. class User < ActiveRecord::Base
  23. attr_accessor :password
  24. belongs_to :store
  25. acts_as_authorized_user
  26. before_save :encrypt_password
  27.  
  28. # Encrypts some data with the salt.
  29. def self.encrypt(password, salt)
  30. Digest::SHA1.hexdigest("--#{salt}--#{password}--")
  31. end
  32.  
  33. # Encrypts the password with the user salt
  34. def encrypt(password)
  35. self.class.encrypt(password, salt)
  36. end
  37.  
  38. protected
  39. # before filter
  40. def encrypt_password
  41. return if password.blank?
  42. self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--") if new_record?
  43. self.crypted_password = encrypt(password)
  44. end
  45. end
  46.  
  47. def self.up
  48. require "faster_csv"
  49. FasterCSV.foreach 'db/stores.csv', :headers => true do |row|
  50. unless row[0].blank?
  51. store = Store.new
  52. store.number = row[0]
  53. store.email = row[9]
  54.  
  55. store.save
  56.  
  57. address = Address.new
  58. address.address1 = row[2]
  59. address.city = row[3]
  60. address.state = row[4]
  61. address.zipcode = row[5]
  62. address.addressable = store
  63.  
  64.  
  65. phone1 = Phone.new
  66. phone1.number = row[7]
  67. phone1.position = 0
  68. phone1.owner = store
  69.  
  70. phone2 = Phone.new
  71. phone2.number = row[8]
  72. phone2.owner = store
  73.  
  74. user = User.new
  75. user.login = store.number
  76. user.first_name = store.number
  77. user.last_name = row[1]
  78. user.password = "motors"
  79. user.store = store
  80. user.save
  81.  
  82. address.save
  83. phone1.save
  84. phone2.save
  85. end
  86. end
  87. end
  88.  
  89. def self.down
  90.  
  91. end
  92. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement