¿Alguien puede ver la sintaxis de mi rakefile?
-
03-07-2019 - |
Pregunta
Estoy tratando de escribir un archivo rake de importación para Redmine. Utiliza rubí sobre rieles. No soy un desarrollador de rails, pero nos gusta usar Redmine para la gestión de proyectos y problemas.
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
Cuando lo ejecuté me sale este 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
He mirado alrededor y veo a otros usuarios con este problema, pero no se encuentra ninguna solución. Se supone que este es un script rápido para importar algunos cientos de errores y características en Redmine.
He actualizado mi rakefile. Nuevo error Creo que podrían ser los patrones de texto que estoy buscando. No estoy seguro de si Ruby tiene un " contiene " métodos para buscar una cadena de palabra clave.
Solución
te estás perdiendo el
end
requerido para cerrar el espacio de nombres.
Para arreglar, pon un extra
<*>al final del archivo