En la versión 2.2.2 de Rails, al ejecutar rake:gems
aparece el siguiente mensaje (con alguna posible variación dependiendo de las gemas principalmente):
1 neoriddle@neobalam ~/proyectos/miproyecto $ rake gems
2 (in /home/neoriddle/proyectos/miproyecto)
3 - [I] calendar_date_select >= 1.13
4 - [ ] hoe = 1.8.2
5 - [ ] rubyforge = 1.0.2
6 - [I] rake = 0.8.3
7 - [I] mini_magick >= 1.2.3
8 - [ ] hoe = 1.8.2
9 - [ ] rubyforge = 1.0.2
10 - [I] rake = 0.8.3
11 - [I] RedCloth >= 4.1.1
12 rake aborted!
13 You have a nil object when you didn't expect it!
14 The error occurred while evaluating nil.dependencies
15
16 (See full trace by running task with --trace)
17 neoriddle@neobalam ~/proyectos/miproyecto $
Este es un error que hay en la versión de la gema, así que para solucionarlo hay que abrir el archivo /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/gem_dependency.rb
(esta ubicación podría variar por el sistema operativo o alguna opción en la instalación) y ubicar el siguiente fragmento de código:
1 def dependencies
2 return [] if framework_gem?
3 all_dependencies = specification.dependencies.map do |dependency|
4 GemDependency.new(dependency.name, :requirement => dependency.version_requirements)
5 end
6 all_dependencies += all_dependencies.map(&:dependencies).flatten
7 all_dependencies.uniq
8 end
Basta con agregar la siguiente línea return [] if specification.nil?
, de manera que quedaría de la siguiente forma:
1 def dependencies
2 return [] if framework_gem?
3 return [] if specification.nil?
4 all_dependencies = specification.dependencies.map do |dependency|
5 GemDependency.new(dependency.name, :requirement => dependency.version_requirements)
6 end
7 all_dependencies += all_dependencies.map(&:dependencies).flatten
8 all_dependencies.uniq
9 end
Una vez editado, hay que guardar los cambios y regresemos a ejecutar de nuevo la instrucción inicial rake:gems
y el resultado es el siguiente:
1 neoriddle@neobalam ~/proyectos/miproyecto $ rake gems
2 (in /home/neoriddle/proyectos/miproyecto)
3 - [I] calendar_date_select >= 1.13
4 - [ ] hoe = 1.8.2
5 - [ ] rubyforge = 1.0.2
6 - [I] rake = 0.8.3
7 - [I] mini_magick >= 1.2.3
8 - [ ] hoe = 1.8.2
9 - [ ] rubyforge = 1.0.2
10 - [I] rake = 0.8.3
11 - [I] RedCloth >= 4.1.1
12 - [ ] echoe
13
14 I = Installed
15 F = Frozen
16 R = Framework (loaded before rails starts)
17 neoriddle@neobalam ~/proyectos/miproyecto $
Este es un bug en esta versión de Rails.
No hay comentarios:
Publicar un comentario