0

我正在尝试为 Redmine 编写一个导入 rakefile。它在轨道上使用红宝石。我不是 Rails 开发人员,但我们确实喜欢使用 redmine 进行项目和问题管理。

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

当我运行它时,我得到了这个错误:

    (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

我环顾四周,看到其他用户遇到此问题,但没有找到解决方案。这应该是一个将数百个错误和功能导入 redmine 的快速脚本。

我已经更新了我的 rakefile。新错误。我认为这可能是我正在寻找的文本模式。我不确定 ruby​​ 是否有“包含”方法来搜索关键字的字符串。

4

1 回答 1

2

你错过了

end

需要关闭命名空间。

要修复,请添加一个额外的

end

在文件末尾

于 2008-10-15T08:48:35.980 回答