From b6f01b8f71a9b54e1ec9da169bdcba7e668ad590 Mon Sep 17 00:00:00 2001 From: Luciano Date: Tue, 3 Feb 2015 15:19:51 -0200 Subject: [PATCH] Add rake to create sample softwares --- lib/software_info.rb | 2 +- lib/tasks/create_sample_softwares.rake | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 lib/tasks/create_sample_softwares.rake diff --git a/lib/software_info.rb b/lib/software_info.rb index ea451bb..ad65e76 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -49,7 +49,7 @@ class SoftwareInfo < ActiveRecord::Base has_many :programming_languages, :through => :software_languages has_many :operating_system_names, :through => :operating_systems - belongs_to :community + belongs_to :community, :dependent => :destroy belongs_to :license_info has_one :software_categories diff --git a/lib/tasks/create_sample_softwares.rake b/lib/tasks/create_sample_softwares.rake new file mode 100644 index 0000000..0d56d3b --- /dev/null +++ b/lib/tasks/create_sample_softwares.rake @@ -0,0 +1,71 @@ +NUMBER_OF_SOFTWARES = 10 + +namespace :software do + desc "Create sample softwares" + task :create_sample_softwares => :environment do + Environment.all.each do |env| + if env.plugin_enabled?("MpogSoftware") or env.plugin_enabled?("MpogSoftwarePlugin") + + print "Creating softwares: " + + NUMBER_OF_SOFTWARES.times do |i| + number = i < 10 ? "0#{i}" : "#{i}" + software_name = "Software #{number}" + create_software_info(software_name) + end + + create_software_info("Ubuntu") + create_software_info("Debian") + create_software_info("Windows XP") + create_software_info("Windows Vista") + create_software_info("Windows 7") + create_software_info("Windows 8") + create_software_info("Disk Operating System", "DOS") + create_software_info("Sublime") + create_software_info("Vi IMproved", "Vim") + create_software_info("Nano") + create_software_info("Gedit") + create_software_info("Firefox") + create_software_info("InkScape") + create_software_info("Eclipse") + create_software_info("LibreOffice") + create_software_info("Tetris") + create_software_info("Mario") + create_software_info("Pong") + create_software_info("Sonic") + create_software_info("Astah") + create_software_info("Pokemom Red") + create_software_info("Mass Effect") + create_software_info("Deus EX") + create_software_info("Dragon Age") + + puts "" + end + end + end +end + +def create_community(name) + community = Community.new + community.name = name + community.save + community +end + +def create_software_info(name, acronym = "") + community = create_community(name) + software_info = SoftwareInfo.new + software_info.community = community + software_info.public_software = true + software_info.acronym = acronym + software_info.license_info = LicenseInfo.first + + if software_info.community.valid? && software_info.valid? + print "." + software_info.save + software_info + else + print "F" + nil + end +end \ No newline at end of file -- libgit2 0.21.2