Problema al instalar un plugin propio

Hola

He realizado un plugin con esta estructura:

ddg
+lib
+app
+controllers
+contents
- list.rhtml
+photos
- list.rhtml
+templates
- list.rhtml
+helpers
- contents_helper.rb
- photos_helper.rb
- templates_helper.rb
+models
- contents.rb
- photos.rb
- templates.rb
+views
+contents
- list.rhtml
+photos
- list.rhtml
+templates
- list.rhtml
+layouts
- contents.rhtml
- photos.rhtml
- templates.rhtml
+public
+images
-> Fotos
+javascripts
-> .js
+stylesheets
-> .css
-hkp.rb
+tasks
-hkp_tasks.rake
+test
-hkp_test.rb
-init.rb
-install.rb
-Rakefile
-README
-uninstall.rb

install.rb


require ‘fileutils’
%w(stylesheets javascripts images).each do |type|
dir = File.join(File.dirname(FILE), ‘assets’, type)
FileUtils.cp_r(dir, File.join(RAILS_ROOT, ‘public’)) if
File.exist?(dir)
end

%w(controllers helpers models).each do |code_dir|
$LOAD_PATH << File.join(directory, ‘app’, code_dir)
end
require ‘content’
require ‘photo’
require ‘template’

Lo estoy intentado instalar con ruby script/install plugin ddg. Estando
el plugin ddg dentro de mi proyecto. También he probado darle el path
total pero tampoce me lo encuentra.
Siempre me da el siguiente error:
ruby: No such file or directory – script/install (LoadError)

¿Sabeís porqué podría ser?

Muchas gracias

hola,

Lo estoy intentado instalar con ruby script/install plugin ddg. Estando
el plugin ddg dentro de mi proyecto. También he probado darle el path
total pero tampoce me lo encuentra.
Siempre me da el siguiente error:
ruby: No such file or directory – script/install (LoadError)

creo que tienes algún problema entendiendo lo que hace ruby
script/install. Lo que hace es conectarse a una url por http o por svn
(depende), crearse un directorio en vendor/plugins con el nombre del
plugin que exista en esa url, copiarse todo lo que encuentre en esa url
al directorio recién creado y, finalmente, llamar al fichero install.rb
que debe existir en la raíz de ese directorio.

.En tu caso, al ser tu propio plugin, toda la primera parte de crear el
directorio y descargar no aplica, por lo que sólo deberías llamar a ruby
install.rb desde dentro del directorio de tu plugin. La única limitación
es que hay algunas variables que mágicamente existen cuando te invoca
script/install y no existirán cuando lo ejecutes con ruby install.rb,
pero como son solamente paths,puedes no usarlas y ya está.

Una tendencia que hay últimamente es dejar un install.rb vacío (o con un
volcado del fichero README del plugin, que queda muy elegante) y delegar
en tareas rake dentro del plugin para la instalación/deinstalación. Así
simplificas el proceso para hacer instalaciones off-line.

saludos,

javier ramírez

Una tendencia que hay últimamente es dejar un install.rb vacío (o con un
volcado del fichero README del plugin, que queda muy elegante) y delegar
en tareas rake dentro del plugin para la instalación/deinstalación. Así
simplificas el proceso para hacer instalaciones off-line.

Muchas gracias por responder.
Me has aclarado muchas cosas de funcionamiento.

Sabrías ¿dónde puedo documentarme de cómo se desarrollan esas setencias
rake para la instalación off-line?
Porque imagino que esas sentencias van dentro de algún fichero que ese
ejecute en la instalación y realiza auntomática esas acciones no??

Muchas gracias.

hola

Sabrías ¿dónde puedo documentarme de cómo se desarrollan esas setencias
rake para la instalación off-line?

en google, buscando por rake la primera que me da es rake.rubyforge.com

lo mismo también hay libros, pero por google siempre es buena idea
empezar

saludos,

j

pero esas sentencias rake van dentro de algún fichero del plugin o se va
lanzando una a una desde una ventan de comandos??

Muchas gracias

Hola

pero esas sentencias rake van dentro de algún fichero del plugin o se va
lanzando una a una desde una ventan de comandos??

Esas tareas son tareas rake normales y corrientes, como cualquier rake
que tengas definida para tu proyecto o las propias que da rails (como
db:migrate, por ejemplo)

La única diferencia es que los ficheros rake los deberías guardar en el
directorio tasks de tu plugin.

La ejecución de las tareas es manual, igual que rake db:migrate es una
tarea manual. Es parte del proceso de instalación de tu plugin.

Saludos,

javier ramirez