/
order_seeder.rb
49 lines (42 loc) · 1.26 KB
/
order_seeder.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Dir["#{File.dirname(__FILE__)}/../models/*.rb"].each { |f| require f }
class OrderSeeder
def OrderSeeder.seed
(1..200).each do |i|
user = find_helper(User, rand(User.count) + 1)
order = Order.new
order.user = user
order.save!
num_products = rand(4) + 1
(1..num_products).each do |k|
quantity = rand(4) + 1
product = find_helper(Product, rand(Product.count) + 1)
po = ProductOrder.new
po.order = order
po.product = product
po.quantity = quantity
po.purchase_price = product.price
po.save!
end
shipment = Shipment.new
shipment.order = order
shipment.price = (rand(1000) / 100.0) + 10.0
shipment.carrier = [:ups, :usps, :fedex, :dhl][rand(4)]
shipment.delivered = [true, true, false][rand(3)]
shipment.est_delivery_date = random_date
shipment.save!
end
end
def OrderSeeder.random_date(ago = 60, from_now = 20)
ago = (0..ago).to_a.map{|i| i.days.ago}
from_now = (1..from_now).to_a.map{|i| i.days.ago}
all = ago + from_now
return all[rand(all.length)]
end
def OrderSeeder.find_helper(model, id)
if defined?(DataMapper)
return model.get(id)
else
return model.find(id)
end
end
end