Question

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.

Was it helpful?

Solution

you are missing the

end

required to close the namespace.

To fix, put an extra

end

at the end of the file

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top