create_sample_softwares.rake 2.06 KB
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?("SoftwareCommunitiesPlugin")
        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 = "", finality = "default")
  community = create_community(name)
  software_info = SoftwareInfo.new
  software_info.community = community
  software_info.public_software = true
  software_info.acronym = acronym
  software_info.finality = finality
  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