Como Crear Nuestro Primer Programa con Ruby – Parte 1

Ruby es un Lenguaje de Programación limpio y sencillo que nos permite crear aplicaciones o programas básicos, hasta programas más complejos, pero para los usuarios nuevos crear un programa con Ruby puedes ser algo complicado, eso es normal ya que están iniciándose con este lenguaje, en este Post voy a enseñarte como crear un programa con el Lenguaje de Programación Ruby, vamos con ello.

Partes

  • Parte 1
  • Parte 2 (Final – Código Fuente en GitHub)

Antes de continuar te invito a leer los siguiente artículos:

Asimismo te invito a escuchar el Podcast: “Que Hacer Cuando Estamos En Casa”:

Spotify: Sound Cloud:

Bien ahora continuemos con el Post: Como Crear Nuestro Primer Programa con Ruby – Parte 1.

Para poder trabajar con el Lenguaje de Programación Ruby, tenemos que tenerlo instalado en nuestra computadora, puedes leer el artículo Que es Ruby y Otros Detalles, en la parte final del artículo te explico como instalar Ruby.

Creación del Programa

Los programas normalmente se ejecutan en la consola de comandos de ruby, pero lo que quiero es crear un programa que tenga una interfaz gráfica de usuario (GUI) o interfaz visual, para crear este tipo de interfaces podemos hacer uso de diferentes herramientas o frameworks GUI como shoes, gtk2, fxruby, etc.

Yo usare FXRuby que al igual que otras herramientas GUI me provee de un conjunto de métodos y herramientas para crear interfaces de usuario, tu puedes optar por cualquiera de las herramientas que desees (shoes, gtk2, fxruby, etc.), yo para este tutorial usaré FXRuby.

Para instalar FXRuby ejecuto el siguiente comando.

gem install fxruby 

Successfully installed fxruby-1.6.42-x64-mingw32
Parsing documentation for fxruby-1.6.42-x64-mingw32
Done installing documentation for fxruby after 2 seconds
1 gem installed

Ahora pasaré a crear mi programa.

Voy a crear un archivo con la extensión Ruby (.rb) en un determinado directorio en mi computadora, yo crearé un archivo con el nombre programa.rb en un directorio con el nombre ruby_programa_ejecutable tu le puedes poner el nombre que desees al archivo y al directorio, no hay problema.

El programa que voy a crear es un simple lector de archivos HTML, no es un navegador, si no un simple lector que visualiza el código HTML, bien abro el archivo programa.rb y le agrego lo siguiente (He colocado comentarios en el código para explicar que hace cada parte del código).

#!/usr/bin/env ruby

# Importamos dependendecias de 'FXruby' 
require 'fox16'
require 'fox16/scintilla'


include Fox

class ScintillaTest  < FXMainWindow

  def initialize(app)

    # Llamamos al método que inicializa la clase base
    super(app, "Lector Simple de Archivos HTML", nil, nil, DECOR_ALL, 0, 0, 600, 800)

    # Creamos una barra de menú 
    menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)

    # Creamos una barra de estado 
    FXStatusBar.new(self,
      LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|STATUSBAR_WITH_DRAGCORNER)

    # El widget Scintilla de FXRuby ocupa el resto del espacio 
    sunkenFrame = FXHorizontalFrame.new(self,
      FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y)
    @scintilla = FXScintilla.new(sunkenFrame, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)


    # Opción del Menú para Abrir archivos HTML en una ventana de selección de archivos HTML  
    filemenu = FXMenuPane.new(self)
    FXMenuCommand.new(filemenu, "&Abrir\tCtl-O\tOpen...").connect(SEL_COMMAND) {
      openDialog = FXFileDialog.new(self, "Abrir Archivo")
      openDialog.selectMode = SELECTFILE_EXISTING
      openDialog.patternList = ["Archivos HTML (*.html)"]
      if openDialog.execute != 0
        loadFile(openDialog.filename)
      end
    }

    # Creamos el menú Archivo 
    FXMenuTitle.new(menubar, "&Archivo", nil, filemenu)


    # Opción del Menú para para Salir del Programa 
    FXMenuCommand.new(filemenu, "&Salir\tCtl-Q\tQuit application.", nil,
      getApp(), FXApp::ID_QUIT, 0)  

    # Opciones del Menu Ayuda
    helpmenu = FXMenuPane.new(self)    
    FXMenuCommand.new(helpmenu, "&Web...").connect(SEL_COMMAND) {
      
      # Abrimos el enlace en el navegador 
      url = "https://nubecolectiva.com/"
      
      if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
        system "start #{url}"
      elsif RbConfig::CONFIG['host_os'] =~ /darwin/
        system "open #{url}"
      elsif RbConfig::CONFIG['host_os'] =~ /linux|bsd/
        system "xdg-open #{url}"
      end

    }

    # Creamos el Menú Ayuda  
    FXMenuTitle.new(menubar, "&Ayuda", nil, helpmenu, LAYOUT_RIGHT)
    
  end

  # Abrimos el archivo HTML 
  def loadFile(filename)
    getApp().beginWaitCursor do
      text = File.open(filename, "r").read
      @scintilla.setText(text)
    end
  end

  # Creamos el espacio para el lector de archivos HTML 
  def create
    super
    show(PLACEMENT_SCREEN)
  end
end

if __FILE__ == $0
  # Construimos la aplicación 
  application = FXApp.new("ScintillaTest", "FoxTest")

  # Creamos la ventana para la aplicación 
  ScintillaTest.new(application)

  # Creamos la aplicación 
  application.create

  # Corremos la aplicación 
  application.run
end

Entonces si abro mi archivo programa.rb me carga la interface gráfica de usuario (GUI) de mi programa. Yo lo abro con doble clic porque estoy usando windows.

Bien hasta aquí esta primera parte en donde hemos instalado la herramienta FXRuby y creado el código del programa del simple lector que visualiza el código HTML.

Nota (s)

  • En la parte 2 y última crearemos una versión ejecutable de nuestro programa.
  • El código y comandos compartidos en este tutorial pueden quedar obsoletos o quedar vigentes, esto no depende de mi, si no de los desarrolladores que dan soporte a Ruby y a FXRuby.
  • No olvides que debemos utilizar la tecnología para hacer cosas buenas por el mundo. 

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.