modularize factories

This commit is contained in:
Rueshyna authored and chris committed 2013-02-04 18:01:42 +08:00
1 parent 8f334f6948
commit 8e98aa10bc
6 files changed
+7 -2

No files matched your search

@@ -0,0 +1,11 @@
types = ["friend", "teacher", "student", "schoolmate", "parent", "best friend", "instructor", "labmate", "TA", "mate"]
FactoryGirl.define do
factory(:relations, class: "CoAuthorRelation") do |f|
f.sequence(:relation_translations) do |n|
{ zh_tw: "#{types[n%types.size]}",
en: "#{types[n%types.size]}" }
end
end
end
@@ -0,0 +1,21 @@
name_tw = Array.new 51,""
name_tw = name_tw.map do |p| Faker::Name::name end
name_en = Array.new 51,""
name_en = name_en.map do |p| Faker::Name::name end
email = Array.new 51,""
email= email.map do |p| Faker::Internet.email end
FactoryGirl.define do
factory(:co_author_candidate, class: "CoAuthor") do |f|
f.sequence(:co_author_translations) do |n|
{ zh_tw: "#{name_tw[n]}",
en: "#{name_en[n]}" }
end
f.sequence(:co_author_relations_id) do |n| "#{CoAuthorRelation.all[n%CoAuthorRelation.count].id}" end
f.sequence(:email) do |n| "#{email[n]}" end
f.name_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
end
end
@@ -0,0 +1,10 @@
level = ["SCI", "SCIE", "SSCI", "AH & HCI", "EI", "CSCI", "CSSCI", "TSCI", "TSSCI", "THCI"]
FactoryGirl.define do
factory(:journal_level, class: "JournalLevelType") do |f|
f.sequence(:title_translations) do |n|
{ zh_tw: "#{level[n]}",
en: "#{level[n]}" }
end
end
end
@@ -0,0 +1,18 @@
file_desc = Array.new 7, ""
file_desc = file_desc.map do |p| Faker::Lorem.word end
file = ["1.png", "5.pdf", "2.png", "6.pdf", "3.png", "7.pdf", "4.png"]
rand = Random.new
FactoryGirl.define do
factory(:upload_file, class: "WritingJournalFile") do |f|
f.sequence(:file) do |n|
File.new(File.join(Rails.root, "db" ,"files", file[rand.rand(0..6)]))
end
f.sequence(:title) do |n|
"#{file_desc[rand.rand(0..6)]}"
end
end
end
@@ -0,0 +1,75 @@
require 'json'
data = File.read("#{Rails.root}/db/data")
data_json = JSON.parse(data)
rand = Random.new
FactoryGirl.define do
factory :paper_record, class: "WritingJournal" do |f|
f.sequence(:paper_title_translations) do |n|
{ zh_tw: "#{data_json[n]["paper_title"]}_tw",
en: "#{data_json[n]["paper_title"]}_en" }
end
f.sequence(:journal_title_translations) do |n|
{zh_tw: "#{data_json[n]["booktitle"]}_tw",
en: "#{data_json[n]["booktitle"]}_en"}
end
f.sequence(:abstract) do |n|
"#{data_json[n]["abstract"]}"
end
f.sequence(:isbn) do |n|
"#{data_json[n]["isbn"]}"
end
f.sequence(:year) do |n|
"#{data_json[n]["year"]}"
end
f.sequence(:authors) do |n|
"#{data_json[n]["author"].map{|m| m.split(",").reverse.join(" ")}.join(",")}"
end
f.sequence(:form_to_start) do |n|
"#{data_json[n]["page_from"]}"
end
f.sequence(:form_to_end) do |n|
"#{data_json[n]["page_to"]}"
end
f.sequence(:total_pages) do |n|
"#{data_json[n]["total_page"]}"
end
f.sequence(:language) do |n|
"#{data_json[n]["language"]}"
end
f.sequence(:keywords) do |n|
"#{data_json[n]["abstract"].split[-3..-1].join(",")}"
end
f.sequence(:journal_level_types) do |n|
level = []
total_levels = rand.rand(1..JournalLevelType.count)
total_levels.times do
level << JournalLevelType.all[rand.rand(0..JournalLevelType.count-1)]
end
level.uniq
end
f.sequence(:writing_journal_files) do |n|
files = []
total_files = rand.rand(1..7)
total_files.times do files << FactoryGirl.create(:upload_file) end
files
end
f.create_user_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
f.update_user_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
end
end