2008-10-15 58 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 

在文件的結尾

相關問題