¿Existe alguna forma para programar aplicaciones gáficas en Ruby?
Si, hay varias alternativas como http://visualruby.net/
¿Cómo instalarlo (en Linux)?
sudo apt-get install -y glade-gtk2 libgtksourceview2.0-dev gtk2-engines-pixbuf
sudo apt-get install ruby1.9.3-dev
o
sudo apt-get install ruby-dev
sudo gem install visualruby
#para ejecutarlo desde terminal escribimos:
vr
También existe para sistemas Windows.
Otras alternativas son:
- http://shoesrb.com/ , esta al parecer es la más recomendable
- http://www.fxruby.org/
- http://fox-tool.rubyforge.org/
Algunos ejercicios de programación básica en Ruby.
1. Sumatoria del 1 al 10
lista=[1,2,3,4,5,6,7,8,9,10]
suma=0
#con each
lista.each do |l|
suma=suma+l.to_i
end
puts "Suma (each): #{suma}"
#con while
suma=0
cont=0
tam=lista.size
while cont<tam do
suma=suma+lista[cont]
cont=cont+1
end
puts "Suma (while): #{suma}"
#con until
i=0
num=lista.size
suma=0
until i>num
suma=suma+i
i+=1
end
puts "Suma (until): #{suma}"
#con for
suma=0
for l3 in lista
suma=suma+l3.to_i
end
puts "Suma (for): #{suma}"
#comando ls ,en Linux, para mostar el contenido de un directorio
comando='ls -ltr'
puts `#{comando}`
p "---------------------------------------------"
puts %x{ls -ltr}
p "---------------------------------------------"
puts `ls -ltr`
p "---------------------------------------------"
# comando date, para mostrar fecha del sistema
mi_comando= %x[date]
p mi_comando
puts mi_comando.class
p "---------------------------------------------"
# comando cal, para mostrar calemdario
otro_comando= system "cal"
p otro_comando #true
puts otro_comando.class#TrueClass
3. Clase en Ruby
class No_Terrestre
def initialize(nombre)
@nombre=nombre
end
attr_accessor :nombre
end
begin
roger=No_Terrestre.new('Roger')
puts "nombre: #{roger.nombre}"
roger.nombre="Jonh Stwart"
puts "ahora su nombre es: #{roger.nombre}"
puts "nombre de la clase a la que pertenece: "
puts roger.class
rescue Exception => e
puts "Ha ocurrido un error"
end
def initialize(nombre)
@nombre=nombre
end
attr_accessor :nombre
end
begin
roger=No_Terrestre.new('Roger')
puts "nombre: #{roger.nombre}"
roger.nombre="Jonh Stwart"
puts "ahora su nombre es: #{roger.nombre}"
puts "nombre de la clase a la que pertenece: "
puts roger.class
rescue Exception => e
puts "Ha ocurrido un error"
end
Links