2011-05-17 13 views

Respuesta

1

Puede usar la gema gem-man para instalar las páginas de manual de gemas.

También ofrecen un "interruptor trampa" para usar el hombre mundial: alias man="gem man -s"

+2

Teniendo en cuenta el README de 'gem-man', no _install_ man pages for Gems, simplemente _las visualiza. Todavía no se ha respondido cómo especificar las páginas man en GemSpec. – awendt

+1

No puede especificar páginas man en gemspec. Sin embargo, usando la gema del hombre gema, puedes ver fácilmente las páginas man que los creadores de gemas colocaron en la carpeta 'man' de la gema –

3

Rubygems actualmente no es compatible con la instalación de páginas de manual para las gemas.

A patch se envió a Rubygems hace un tiempo para agregar soporte para páginas de manual, pero fue rechazado.

0

creo que he encontrado una solución:

En primer lugar, hay que añadir una extensión nativa de la gema:

my_gem.gemspec: 

s.extensions << 'manpage/extconf.rb' 
s.files << 'manpage/my_gem.1' 

Entonces gem install ejecutará la extconf.rb y quiere llamar a un Makefile.

make clean 
make 
make install 

Así que la extconf.rb se puede utilizar para crear el Makefile. También debe asegurarse de que debe haber al menos un archivo Makefile ficticio o de lo contrario la instalación fallará.

makefile = "make:\n" \ 
      "\t%s\n" \ 
      "install:\n" \ 
      "\t%s\n" \ 
      "clean:\n" \ 
      "\t%s\n" 

if RUBY_PLATFORM =~ /linux/ 

    clean = 'sudo rm -f /usr/local/share/man/man1/my_gem.1.gz' 
    make = 'gzip my_gem.1' 
    install = 'sudo cp -r my_gem.1.gz /usr/local/share/man/man1/' 

    puts 
    puts 'You need super user privileges to install the manpage for my_gem.' 
    puts 'Do you want to proceed? (y/n)' 
    puts 'The gem will be installed anyways.' 
    input = STDIN.gets.chomp.strip.downcase 

    if input == 'y' or input == 'yes' 
    File.write('Makefile', makefile % [make, install, clean]) 
    else 
    File.write('Makefile', makefile % [':', ':', ':']) # dummy makefile 
    end 

else 
    File.write('Makefile', makefile % [':', ':', ':']) # dummy makefile 
end 
+0

También puedes usar' require 'mkmf'' y 'create_makefile' ''. Luego puede compilar y copiar los archivos a través de 'system ('sudo cp ...')' – Alu

Cuestiones relacionadas