2008-10-15 7 views
0

Redmine에 대한 가져 오기 rakefile을 쓰려고합니다. 그것은 레일에 루비를 사용합니다. 저는 레일 개발자가 아니지만 프로젝트와 문제 관리에 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 

나는 주위를 둘러 보았다 것을 나는이 문제를 다른 사용자가 볼 수 있지만 해결책은 발견되지 않는다. 이것은 수백 개의 버그와 기능을 레드 마인으로 가져 오기위한 빠른 스크립트입니다.

rakefile을 업데이트했습니다. 새로운 오류. 나는 그것이 내가 찾고있는 텍스트 패턴일지도 모른다라고 생각한다. 루비가 키워드 문자열을 검색하는 "contains"메소드를 가지고 있는지 확실하지 않습니다.

답변

2

네임 스페이스를 닫 필요한

end 

가 누락되었습니다. 해결하려면

, 파일의 끝에 추가

end 

을 넣어

관련 문제