MultiConsole (pequeña libreria) - by pRoTos

  • 0 Respuestas
  • 1818 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5706
  • Actividad:
    30%
  • Country: ar
  • Reputación 37
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

MultiConsole (pequeña libreria) - by pRoTos

  • en: Febrero 24, 2010, 04:10:25 pm

Bueno, muchas veces (aunque deberian ser menos, no debemos depender de las consolas), en un script necesitamos llamar a la consola del sistema. El problema es que alomejor no sabemos en que systema operativo está corriendo el script, claro que podriamos buscarlo con RUBY_PLATFORM, y luego hacer un if, o un case etc...Pero para no tener que hacer eso, pues he empezado a escribir esta pequeña libreria. Se trata de una especie de multiconsola, con comandos propios que valen para los dos principales SO (win y linux). Con un nombre de comando, no necesitas saber si estás en win o lin. De momento lo he hecho para los principales comandos, para la v2 si alguien quiere ampliarla, le puede meter mas comandos, y mas SO:

Por ejemplo si queremos listar los archivos del directorio actual seria ls para uno, dir para otro. Con esta consola seria 'ver'
console.ver
Y haciendo esto se ejecutaria el ls o el dir dependiendo del os y se nos devolveria un objeto IO.popen (ver capitulo de hilos de sh4van3). Este es un pequeño ejemplo.
Está escrito en forma de clase para poder incuirlo en cualquier otro code que tengamos ^^.
No me enrollo más:

Código: Ruby
  1. #Clase para emular algunos comandos de consola
  2. #La particularidad es que los comandos son propios de la clase
  3. #Y la misma clase reconoce si está corriendo sobre win o linux
  4. #Por tanto, usando el mismo comando, de esta consola, opera sobre win y lin
  5. #Consola multiplataforma, sintaxis propia, para codes en los que se necesita system.
  6.  
  7. class Console
  8.    def initialize
  9.       if RUBY_PLATFORM =~ /linux/
  10.       @os="linux"
  11.       end
  12.       if RUBY_PLATFORM =~ /win/
  13.       @os="win"
  14.    end
  15.    end
  16.    def ver
  17.       case @os
  18.          when 'linux'
  19.          @r = IO.popen('ls')
  20.          when 'win'
  21.          @r = IO.popen('dir')
  22.       end
  23.       return @r
  24.       end
  25.  
  26.    def cd(dir)
  27.          @r = IO.popen('cd #{dir}')
  28.       end
  29.  
  30.    def dir
  31.       case @os
  32.          when 'linux'
  33.          @r = IO.popen('pwd')
  34.          when 'win'
  35.          @r = IO.popen('cd')
  36.       end
  37.    end
  38.  
  39.    def limpiar
  40.       case @os
  41.          when 'linux'
  42.          @r = IO.popen('clear')
  43.          when 'win'
  44.          @r = IO.popen('cls')
  45.       end
  46.    end
  47.  
  48.  
  49.       def borrar(arc)
  50.          case @os
  51.             when 'linux'
  52.             @r = IO.popen('rm #{arc}')
  53.             when 'win'
  54.             @r = IO.popen('del #{arc}')
  55.          end
  56.       end
  57.  
  58.       def mover(arc, dest)
  59.          case @os
  60.             when 'linux'
  61.             @r = IO.popen('mv #{arc} #{dest}')
  62.             when 'win'
  63.             @r = IO.popen('move #{arc} #{dest}')
  64.          end
  65.       end
  66.  
  67.       def copiar(arc, dest)
  68.          case @os
  69.             when 'linux'
  70.             @r = IO.popen('cp #{arc} #{dest}')
  71.             when 'win'
  72.             @r = IO.popen('copy #{arc} #{dest}')
  73.          end
  74.       end
  75.  
  76.       def creard(name)
  77.          case @os
  78.             when 'linux'
  79.             @r = IO.popen('mkdir #{name}')
  80.             when 'win'
  81.             @r = IO.popen('md #{name}')
  82.          end
  83.       end
  84.  
  85.       def borrard(name)
  86.                case @os
  87.             when 'linux'
  88.             @r = IO.popen('rm -r #{name}')
  89.             when 'win'
  90.             @r = IO.popen('rd #{name}')
  91.          end
  92.       end
  93.    end
  94.  
  95.  
  96.    #Prueba
  97.    consola = Console.new
  98.    ls=consola.ver
« Última modificación: Julio 31, 2014, 09:46:53 pm por Expermicid »


 

Instalar Rubygems y la Libreria Tk en Windows - by Bocvk

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3012
Último mensaje Febrero 24, 2010, 04:15:28 pm
por ANTRAX
RubyGame (Libreria para juegos)

Iniciado por Dharok

Respuestas: 0
Vistas: 2143
Último mensaje Febrero 23, 2010, 11:26:11 pm
por Dharok
Libreria Net/SMTP (by sh4van3)

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1986
Último mensaje Febrero 24, 2010, 04:19:32 pm
por ANTRAX
Creando una pequeña aplicacion en Ruby on Rails

Iniciado por Alejandro_99

Respuestas: 0
Vistas: 1768
Último mensaje Septiembre 10, 2013, 02:29:36 pm
por Alejandro_99
Ruby HTTP Toolz - by pRotos

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2186
Último mensaje Febrero 24, 2010, 04:11:16 pm
por ANTRAX