require 'factory_girl' require 'faker' require 'json' CoAuthor.destroy_all CoAuthorRelation.destroy_all WritingJournal.destroy_all data = File.read("db/data") data_json = JSON.parse(data) 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 type = ["friend0", "teacher0", "student0", "mate0", "relation0", "friend1", "teacher1", "student1", "mate1", "relation1"] FactoryGirl.define do factory(:type, class: "CoAuthorRelation") do |f| f.sequence(:relation_translations) do |n| { zh_tw: "#{type[n%type.size]}", en: "#{type[n%type.size]}" } end end 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%type.size].id}" end f.sequence(:email) do |n| "#{email[n]}" end f.name_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account end factory :paper_record, class: "WritingJournal" do |f| f.sequence(:paper_title_translations) do |n| { zh_tw: "tw_#{data_json[n]["paper_title"]}", en: "en_#{data_json[n]["paper_title"]}" } end f.sequence(:journal_title_translations) do |n| {zh_tw: "tw_#{data_json[n]["booktitle"]}", en: "en_#{data_json[n]["booktitle"]}"} 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.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 10.times.each do FactoryGirl.create(:type) end 50.times.each do FactoryGirl.create(:paper_record) end 50.times.each do FactoryGirl.create(:co_author_candidate) end