40 lines
1.1 KiB
Ruby
40 lines
1.1 KiB
Ruby
raise "Seeding is just for development" unless Rails.env.development?
|
|
|
|
# Seed DSL
|
|
def seed_account(name)
|
|
print " #{name}…"
|
|
elapsed = Benchmark.realtime { require_relative "seeds/#{name}" }
|
|
puts " #{elapsed.round(2)} sec"
|
|
end
|
|
|
|
def create_tenant(name)
|
|
ApplicationRecord.destroy_tenant name
|
|
ApplicationRecord.create_tenant name
|
|
ApplicationRecord.current_tenant = name
|
|
end
|
|
|
|
def create_first_run(name, email_address, password: "secret123456")
|
|
FirstRun.create!(name:, email_address:, password:)
|
|
end
|
|
|
|
def login_as(user)
|
|
Current.session = user.sessions.create
|
|
end
|
|
|
|
def create_user(name, email_address, password: "secret123456")
|
|
User.create!(name:, email_address:, password:)
|
|
end
|
|
|
|
def create_collection(name, creator: Current.user, all_access: true, access_to: [])
|
|
Collection.create!(name:, creator:, all_access:).tap { it.accesses.grant_to(access_to) }
|
|
end
|
|
|
|
def create_card(title, collection:, description: nil, status: :published, creator: Current.user)
|
|
collection.cards.create!(title:, description:, creator:, status:)
|
|
end
|
|
|
|
# Seed accounts
|
|
seed_account "37signals"
|
|
seed_account "honcho"
|
|
seed_account "first-run"
|