I'm trying to write an import rakefile for Redmine. It uses ruby on rails. I'm not a rails developer but we do like using redmine for project and issues management.
require 'rubygmes'
require 'fastercsv'
# csv issues import for redmine
# Will convert a csv into a issues bulkloader into redmine
# Column names
# row[0]=Nb Number,row[1]=Product,row[2]=Element,row[3]=Type,row[4]=Queue,
# row[5]=KeyWord,row[6]=Responsible,row[7]=Case Descriptions,row[8]=Days,
# row[9]=Planned Delivery,row[10]=Version
#
desc <<-END_DESC
Bulk loading of issues from a CSV file.
Available options:
* filepath => path to the text file.
* project => id or identifier of project
Example:
rake redmine:csv_import filepath="~/import.csv" project="askiavista"
END_DESC
namespace :redmine do
task :csv_import => :environment do
@firstrow = true
@count = 1
FasterCSV.foreach(ENV['filepath']) do |row|
if not firstrow
@i = Issue.new
@i.project = Project.find_by_name(ENV['project'])
# If not a feature it's a bug
if row[3].contains("SUG")
@i.tracker = Tracker.find_by_id(2)
else
@i.tracker = Tracker.find_by_id(1)
end
if row[4].contains("TOP PRIORITY")
@i.priority = Enumeration.find_by_id(7)
elseif row[4].contains("HIGH PRIORITY")
@i.priority = Enumeration.find_by_id(5)
elseif row[4].contains("MEDIUM PRIORITY")
@i.priority = Enumeration.find_by_id(4)
else
@i.priority = Enumeration.find_by_id(3)
end
@i.author = Users.find(5)
@i.subject = truncate(row[4], 50)
@i.description = row[4]
@i.status = IssuesStatus.find_by_id(1)
@i.save
count += 1
end
firstrow = nil
end
end
end
When I ran it I get this error:
(in /var/lib/redmine-0.7-dev)
rake aborted!
Don't know how to build task 'redmine:csv_import.rake'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1634:in `[]'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1930:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
I've looked around and I see other users with this problem but no solution is found. This is supposed to be a quick script to import a few hundred bugs and features into redmine.
I've updated my rakefile. New error. I think it might be the text patterns I'm looking for. I'm not sure if ruby has a "contains" methods to search a string for keyword.