2008-10-15 109 views
0

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

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是否有一个“包含”方法来搜索关键字的字符串。

回答

2

你缺少的

end 
关闭命名空间所需的

要解决,把一个额外的

end 

在文件的结尾

相关问题