domingo, 5 de enero de 2014

Programando en Ruby ... no. 2


Crear una clase en Ruby

ejemplos.rb
 
class Manguera

    def initialize(longitud,color)
        @longitud=longitud
        @color=color
    end

    attr_reader :longitud, :color
end

#'main' del programa
begin
#instanciamos la clase 'Manguera'
    manguera=Manguera.new('50 mts','negra')
rescue
    @error_message="#{$!}"
ensure
#imprimimos los datos
    puts "color: #{manguera.color} , longitud: #{manguera.longitud}"
end


Ruby es un lenguaje muy parecido a Python ,si tienes tiempo programando en el te parecerá bastante familiar.


¿Cómo quedaría la clase en Python?

ejemplos.py

class Manguera:
    def __init__(self,longitud,color):
        self.color=color
        self.longitud=longitud


try:
    manguera=Manguera('35 mts','naranja')
except Exception, e:
    print e
finally:
    print "color: %s, longitud: %s"%(manguera.color,manguera.longitud)

Modificando el código de la clase (en Ruby), podemos introducir valores:

class Manguera
    def initialize(longitud,color)
        @longitud=longitud
        @color=color
    end

    attr_reader :longitud, :color
end


color=''
longitud=''
begin
   #pedimos el color 
    puts "Color: "
    STDOUT.flush
    color=gets.chomp
   #pedimos la longitud
    puts "Longitud: "
    STDOUT.flush
    longitud=gets.chomp

    if color!='' and longitud!=''
        manguera=Manguera.new(longitud,color)
    end
   
rescue
    @error_message="#{$!}"
ensure
    puts "color: #{manguera.color} , longitud: #{manguera.longitud}"
end


También podriamos crear un método para visualizar los datos:

class Manguera
    def initialize(longitud,color)
        @longitud=longitud
        @color=color
    end

   #creamos  el método para visualizar los datos
   def verDatos
         puts "color:  #{color} , longitud: #{longitud}"
   end

    attr_reader :longitud, :color
end


color=''
longitud=''

=begin
     nota: esto es un comentario
=end

begin
   #pedimos el color 
    puts "Color: "
    STDOUT.flush
    color=gets.chomp
   #pedimos la longitud
    puts "Longitud: "
    STDOUT.flush
    longitud=gets.chomp

    if color!='' and longitud!=''
        manguera=Manguera.new(longitud,color)
    end
   
rescue
    @error_message="#{$!}"
ensure
    manguera.verDatos
end


Links:
http://codemonkeyjunior.blogspot.mx/2013/05/un-vistazo-ruby.html
http://codemonkeyjunior.blogspot.mx/2013/06/programando-en-ruby-no-1.html
http://www.elclubdelprogramador.com/category/programacion/ruby/

2 comentarios:

  1. Por qué pones en el ensure o en el finally esos métodos, colocandolos en el begin o try sería suficiente, así manejaría la excepción de por ejemplo un método no definido.

    ResponderEliminar
  2. Gracias por leer el post y por la aclaración

    ResponderEliminar

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog