+ Responder tema
Resultados 1 al 9 de 9

Tema: Empezando con Ruby desde cero

  1. #1
    Dragonauta en Proceso
    Fecha de ingreso
    23 sep, 10
    Mensajes
    86
    Gracias
    0
    Agradecido 60 veces en 35 Mensajes

    Predeterminado Empezando con Ruby desde cero

    Ruby

    En esta oportunidad quiero dar inicio a una serie de posts en las que se vaya dando a conocer poco a poco el lenguage Ruby que hoy en día es muy usado al igual que otros lenguajes de scripting como Perl y Python.

    Un ejemplo en el que se usa Ruby es para la creación de páginas web haciendo uso de Rails, el cual es un Framework para desarrollo Web que sigue el patrón de diseño MVC(Modelo Vista Controlador) basado en Ruby.

    Otro escenario en el que podemos encontrar el uso de Ruby es en el famoso Framework Metasploit el cual a partir de su versión 3 fue reescrito al lenguaje Ruby, y en sus versiones anteriores este trabajaba con Perl.

    Ok empecemos, lo primero que deberiamos hacer es instalar Ruby. Para esto lo tenemos que descargar desde la siguiente dirección:

    Downloads

    Las versiones recomendadas son la 1.8.7 o la 1.9.2

    Para el caso de Windows basta con descargar el instalador y seguir las instrucciones como cualquier otro programa.

    Para los entornos Linux muchas veces no es necesario ya que por defecto ya viene incluido, pero en caso contrario es posible descargar el paquete .tar.gz y seguir estos pasos

    Código:
    tar xzf ruby-1.9.2.tar.gz
    cd ruby-1.9.2
    ./configure
    make
    sudo make install
    Con esto ya se tendría instalado Ruby en nuestro sistema, ahora hagamos un simple ejemplo de prueba para probar que todo va bien. Para el ejemplo basta con que usemos un bloc de notas o cualquier editor de texto.

    Ok vamos a crear un archivo de texto que llamaremos hola.rb, y el contenido que tendrá sera el siguiente:

    Código:
    puts "Hola desde Ruby."
    lo guardamos y nos aseguramos que nuestro archivo tenga la extensión .rb, ahora en la linea de comandos o la consola escribimos los siguiente:

    Código:
    ruby hello.rb
    el resultado sería

    Código:
    Hola desde Ruby.
    Trabajando con Números

    Ruby tiene funciones muy útiles para trabajar con números. De hecho, Ruby maneja los números de forma automática así que no es necesario preocuparse por ellos. No hay límite al tamaño de los números enteros, puedes tener un entero tan grande como 23453452345454 sin ningún problema. Puedes especificar números de punto flotante simplemente utilizando un punto decimal (necesita al menos un dígito frente al punto decimal), así: 3.1415. También es posible especificar números binarios (como 0b1111), octal (de esta manera: 0355), y hexadecimal con 0x (por ejemplo,como 0xddff).

    Veamos esto en un ejemplo, vamos a crear un archivo llamado numeros.rb y el contenido será el siguiente:

    Código:
    puts 12345
    puts 3.1415
    puts 31415.0e-4
    puts 0xddff
    lo guardamos y lo ejecutamos:

    Código:
    ruby numeros.rb
    y obtenemos el siguiente resultado:

    Código:
    12345
    3.1415
    3.1415
    56831
    Trabajando con String en Ruby

    Los Strings los puedes encerrar entre comillas simples ('Strings en Ruby con comillas simples') o en comillas dobles ("String en Ruby con comillas dobles"). También es posible que combines ambas comillas simples y dobles ("Combinando las 'comillas simples' con las dobles"). Lo que si no se puede hacer es encerrar comillas doble dentro de otras comillas dobles ya que ruby no reconoce donde empiece una y termina. Para solucionar esto puedes hacer uso del caracter de escape (\) de esta forma "String usando \"Caracter de escape\"" o 'String usando \'Caracter de escape\''.

    No es obligatorio que uses la comillas simple o dobles, Ruby puede agregarlas por ti haciendo usa la siguiente notación %q(comillas simples) o %Q(comillas dobles). Por ejemplo la siguiente cadena %Q/Ejemplo de String/ es igual que "Ejemplo de String".

    Para concatenar dos o mas String se utiliza el operador +. Por ejemplo "Esto" + "es" + "un ejemplo" + "de" + "String en Ruby!".

    Hagamos otro ejemplo para verlo mejor

    Vamos a crear un archivo llamado strings.rb con el siguiente contenido:

    Código:
    puts "Hola"
    puts "Hola " + "desde Ruby"
    puts 'Saludos desde Ruby'
    puts %Q/Como estas?/
    puts %q!Bien gracias!
    puts "Tengo que decir 'que de maravillas.' "
    puts "Diria que, \"todo marcha bien.\" "
    lo guardamos y lo ejecutamos:

    Código:
    ruby strings.rb
    y se imprimirian nuestras cadenas de texto

    Código:
    Hola
    Hola desde Ruby
    Saludos desde Ruby
    Como estas?
    Bien gracias
    Tengo que decir que de maravillas.
    Diria que, todo marcha bien.
    en la proxima entrega tocaremos los siguientes puntos:
    - Uso de variables
    - Uso de constantes
    - Obteniendo datos desde la linea de comandos
    - Uso de Operadores

    Saludos...
    Última edición por zerocool394; 12/11/2010 a las 10:55
    If you can imagine it.... you can hack it..
    http://zerocool394.wordpress.com/

  2. The Following 3 Users Say Thank You to zerocool394 For This Useful Post:

    DragoN (12/11/2010), dvirus (12/11/2010), M1ndCr4ck (11/11/2010)

  3. #2
    Dragonauta en Proceso
    Fecha de ingreso
    23 sep, 10
    Mensajes
    86
    Gracias
    0
    Agradecido 60 veces en 35 Mensajes

    Predeterminado

    Uso de Variables

    En Ruby una variable comienza con una letra minuscula(a-z), o también con un underscore _, seguida por letras en minuscula o mayuscula o digitos. Las palabras reservadas en Ruby son las siguientes:


    Veamos el uso de una variables en un ejemplo, vamos a crear un archivo llamado variables.rb con el siguiente contenido:

    Código:
    temperatura = 38
    puts "La temperatura es " + String(temperatura)
    temperatura = temperatura + 2
    puts "Ahora la temperatura es " + String(temperatura)
    lo guardamos y lo corremos en la consola:

    Código:
    ruby variables.rb
    el resultado seria el siguiente:

    Código:
    La temperatura es 38
    Ahora la temperatura es 40
    Como podemos ver lo que hicimos fue asignar un valor a la variables temperatura y la imprimimos en pantalla, para ello se uso la función String() de Ruby para hacer la conversión. Esto también se pudo haber hecho usando el método to_s, que tendría el mismo efecto

    Código:
    puts "La temperatura es " + temperatura.to_s
    Uso de Constantes


    Como sabemos las constantes son valores que vamos a almacenar y que nunca cambiarán a lo largo de nuestro programa.

    En Ruby una constante debe comenzar obligatoriamente con letra mayúscula, normalmente se acostumbra a declarar la constante completamente en mayúscula, pero en realidad lo que importa es que la primera letra este en mayúscula, de esta forma Ruby puede determinar que es una constante.

    Ejemplo:

    Código:
    IP_SERVER_FTP = "192.168.1.110"
    Ip_server_smpt = "192.168.1.112"
    Obteniendo datos desde la linea de comandos

    Ya se ha visto como imprimir texto en la consola haciendo uso de la función puts, también se puede hacer con la función print con la diferencia que esta no hace el salto de linea automáticamente.

    Ahora vamos a ver como capturar datos desde la consola. Normalmente la función que se usa para este fin es gets, la cual captura lo que sea ingresado en consola y lo almacena por defecto en la variable $_ que utiliza Ruby.

    Una cosa a tener en cuenta cuando se utiliza la función gets es que esta agrega automáticamente el salto de linea al final de la cadena introducida. Esto quiere decir que si tecleamos la cadena Probando y le damos enter se estaría guardando [B"]Probando\n[/B].

    Para solucionar esto Ruby cuenta con un método llamado chomp el cual se encarga de remover este caracter de salto de linea (\n).

    Veamos esto en un ejemplo, crearemos un archivo llamado entrada.rb con el siguiente contenido:

    Código:
    print "Ingrese su edad: "
    gets
    chomp
    puts "Su edad es #{$_}"
    lo guardamos y lo probamos en la consola

    Código:
    ruby entrada.rb
    Ingrese su edad:
    Código:
    ruby entrada.rb
    Ingrese su edad: 25
    Su edad es 25
    Actualmente no es obligatorio que guardes los datos que lees de la linea de comandos en la variable $_ , es valido que asignes a una variable la función gets. El unico inconveniente es que esto deja el problema de el salto de linea, aunque se podría hacer algo como esto:

    Código:
    print "Ingrese su edad: "
    edad = gets
    $_ = edad
    chomp
    edad = $_
    puts "Su edad es #{edad}"
    Uso de Operadores

    Aquí anexo la tabla de operadores por orden de precedencia


    En los ejemplos que hemos visto ya se ha usado el operador de asignacion (=) y el de suma (+). Como se puede ver en la tabla algunos operadores vienen en forma abreviada

    Por ejemplo:

    Código:
    edad = edad + 5
    puts edad
    edad += 5
    puts edad
    
    edad /= 2
    puts edad
    
    edad *= 3
    puts edad
    
    edad **= 2
    puts edad
    Es cuestión de que se vaya probando con el resto de los operadores según sea la ocasión.

    En el siguiente posts se tratará lo siguiente:
    - Uso de Arrays
    - Uso de Arrays Multidimensionales
    - Uso de Hashes
    - Uso de Rangos
    If you can imagine it.... you can hack it..
    http://zerocool394.wordpress.com/

  4. The Following User Says Thank You to zerocool394 For This Useful Post:

    DragoN (21/12/2010)

  5. #3
    Dragonauta en Proceso
    Fecha de ingreso
    23 sep, 10
    Mensajes
    86
    Gracias
    0
    Agradecido 60 veces en 35 Mensajes

    Predeterminado

    Uso de Arrays

    Un array no es mas que un grupo de variables a las que podemos acceder mediante un indice.

    En Ruby para hacer uso de un array es mediante los corchetes [] de esta forma:

    Código:
    array = [1,2,3]
    Esto nos crearía un array con tres elementos a los que podemos accesar por medio de un indice de la siguiente forma:

    Código:
    puts array[0]    #Imprime 1
    puts array[1]    #Imprime 2
    puts array[2]    #Imprime 3
    Podemos notar que los indices de los array empiezan desde cero y no uno. También es posible asignarle valores a un elemento de un array referenciandolo por su indice de esta forma:

    Código:
    array[0] = 3       #Asigna el valor 3
    array[1] = 4       #Asigna el valor 4
    array[2] = 5       #Asigna el valor 5
    puts array[2]      #Imprime 5
    Como vimos anteriormente podemos almacenar en las variables cadenas de texto, pues de igual forma se pueden almacenar en los array, inclusive puedes tener un array mixto con números y cadenas de texto

    Código:
    array = ["Hola","Ruby",1,2,3]
    puts array[1]     # Imprime Ruby
    puts array[3]     # Imprime 2
    Hagamos un ejemplo, crearemos un archivo llamado arrays.rb con el siguiente contenido:

    Código:
    array = ["Manejo","de","Arrays",1,2,3]
    puts array[0]
    puts array.length
    puts array[0] + " " + array[1] + " " + array[2]
    puts array[3]
    lo guardamos y lo corremos en consola y obtendríamos el siguiente resultado:

    Código:
    Manejo
    6
    Manejo de Arrays
    1
    Como podemos ver hay algo nuevo que usamos en este ejemplo que es la función length, la cual lo que hace es devolverte el tamaño o longitud del array en este caso.

    Uso de Array con 2 Indices

    Se puede acceder a un array usando 2 indices también. Esto es algo diferente al manejo de arrays multidimensionales de otros lenguajes de programación que hemos podido utilizar. En Ruby el primer indice te va a indicar la posición de inicio y el segundo el número de elementos a los que se quiere accesar.

    Por ejemplo:

    Tenemos este array:

    Código:
    array = ["Hola","desde","Ruby",1,2,3]
    Para reemplaza el elemento en la posición 1, se haría de esta forma:

    Código:
    array[1] = "usando"
    y quedaría así:

    Código:
    ["Hola","usando","Ruby",1,2,3]
    Con un array con 2 indices el equivalente sería el siguiente:

    Código:
    array = ["Hola","desde","Ruby",1,2,3]
    array[1,1] = "usando"
    y como resultado tendríamos esto:

    Código:
    ["Hola","usando","Ruby",1,2,3]
    y como quedaría si el cambio se hiciera sobre array[1,2]

    Código:
    array = ["Hola","desde","Ruby",1,2,3]
    array[1,2] = "Todos"
    el resultado sería:

    Código:
    ["Hola","Todos",1,2,3]
    y que pasaría si hacemos esto array[3,0]

    Código:
    array = ["Hola","desde","Ruby",1,2,3]
    array[3,0] = "DragonJar"
    puts array
    Esto sería lo que se obtendría:

    Código:
    Hola
    desde
    Ruby
    DragonJar
    1
    2
    3
    no reemplaza ningún elemento sino que lo inserta a partir de la posición indicada

    Hagamos un ejemplo llamado arraydoble.rb con el siguiente contenido:

    Código:
    array = ["Hola","desde","Ruby",1,2,3]
    array[2,1] = "DragonJar"
    puts array
    array = ["Hola","desde","Ruby",1,2,3]
    array[3,0] = "DragonJar"
    puts array
    array = ["Ahora","es",1,2,3]
    array[1,0] = ["el","momento"]
    puts array
    lo guardamos y corremos en consola:

    Código:
    Hola
    desde
    DragonJar
    1
    2
    3
    Hola
    desde
    Ruby
    DragonJar
    1
    2
    3
    Ahora
    es
    el
    momento
    1
    2
    3
    Uso de Hashes

    Un hash puede ser visto como un array asociativo o un diccionario. A diferencia de los array puedes indexar tus datos usando cadena de texto.

    Para crear un hash se usan las llaves ({}) en vez de los corchetes ([]).

    Por ejemplo así se vería:

    Código:
    pagos_pendientes = {"vehiculo"=>"1000","casa"=>"2000"}
    puts pagos_pendientes["vehiculo"]
    se obtendría lo siguiente:

    Código:
    1000
    Hagamos un ejemplo llamado hashes.rb con este contenido:

    Código:
    autos = {"deportivo"=>"ferrari","rustico"=>"hummer"}
    puts autos["deportivo"]
    puts autos
    puts autos.length
    lo guardamos y lo corremos en consola:

    Código:
    ferrari
    deportivorustico
    2
    ese sería el resultado obtenido.

    Uso de Rangos

    Para crear un rango se usa el operador (..). Por ejemplo para crear un rango del 1 al 5

    Código:
    rango = 1..5
    puts rango
    esto obtendríamos:

    Código:
    1
    2
    3
    4
    5
    Se puede crear un rango y excluir el ultimo elemento agregando un punto adicional

    Código:
    rango = 1...5
    puts rango
    el resultado

    Código:
    1
    2
    3
    4
    En la próxima entrega veremos los siguientes puntos:

    - Condicionales
    - Loops
    - Metodos
    - Bloques
    If you can imagine it.... you can hack it..
    http://zerocool394.wordpress.com/

  6. The Following 2 Users Say Thank You to zerocool394 For This Useful Post:

    DragoN (21/12/2010), Pr0xyH4ck (18/12/2010)

  7. #4
    Dragonauta en Proceso
    Fecha de ingreso
    23 sep, 10
    Mensajes
    86
    Gracias
    0
    Agradecido 60 veces en 35 Mensajes

    Predeterminado

    Uso del if

    Para ver el funcionamiento del if hagamos un ejemplo, crearemos un archivo que se llame if.rb, con el siguiente contenido:

    Código:
    edad = 25
    if edad > 15 && edad < 45
    puts "Tienes la edad correcta"
    end
    lo guardamos y lo corremos en la consola

    Código:
    ruby if.rb
    Tienes la edad correcta
    como vemos el funcionamiento del if es similar que en otros lenguajes de programación, este admite los operadores de comparación que anteriormente vimos (==, <=,=>,<,>, &&, ||).

    Ahora veamos un ejemplo mas complejo haciendo uso del else y elsif, crearemos un archivo llamados else.rb con el siguiente contenido:

    Código:
    edad = 25
    if edad > 65
    puts "Estas bastante mayor"
    elsif edad < 45
    puts "Estas joven"
    else
    puts "Eres algo mayor"
    end
    lo guardamos y corremos en consola

    Código:
    ruby else.rb
    Estas joven
    Uso de CASE

    El case es como el switch en otros lenguajes, veamos un ejemplo para ver su funcionamiento, crearemos un archivo llamado case.rb con este contenido:

    Código:
    comando = "Stop"
    case comando
    when "Go"
    puts "Going"
    when "Wait"
    puts "Waiting"
    when "Turn"
    puts "Turning"
    when "Stop"
    puts "Stopping"
    else
    puts "nothing"
    end
    lo guardamos y corremos en la consola

    Código:
    ruby case.rb
    Stopping
    Uso de Loops

    Los loops son herramientas que nos permiten hacer iteraciones a partir de una condición que indiquemos, como en otros lenguajes de programación ruby maneja los siguientes:

    While

    creamos el archivo while.rb con el siguiente contenido:

    Código:
    while($_ != "q")
      puts "Corriendo..."
      print "Ingresa q para terminar: "
      gets
      chomp
    end
    lo guardamos y corremos en consola, esto se repetirá hasta que ingresemos la letra q

    Código:
    ruby while.rb
    Corriendo...
    Ingresa q para terminar: u
    Corriendo...
    Ingresa q para terminar: h
    Corriendo...
    Ingresa q para terminar: q
    Until Loop

    Este se ejecutará hasta que la condición que coloquemos sea false.

    creamos el archivo until.rb con el siguiente contenido:

    Código:
    until($_ == "q")
    puts "Corriendo..."
    print "Ingresa q para terminar: "
    gets
    chomp
    end
    lo guardamos y corremos en consola

    Código:
    ruby until.rb
    Corriendo...
    Ingresa q para terminar: r
    Corriendo...
    Ingresa q para terminar: a
    Corriendo...
    Ingresa q para terminar: i
    for Loop

    El for en ruby está diseñado para colecciones, tiene la capacidad de actuar como un for..in y un foreach.

    creamos el archivo for.rb con el siguiente contenido:

    Código:
    for value in 1..4
    puts "Iteracion " + value.to_s
    end
    print "Tu pizza viene con "
    for item in ["pepperoni", "anchoas"]
    print item + " "
    end
    lo guardamos y corremos en consola:

    Código:
    ruby for.rb
    Iteracion 1
    Iteracion 2
    Iteracion 3
    Iteracion 4
    Tu pizza viene con pepperoni anchoas
    break, redo, and next dentro de Loops

    Estas instrucciones trabajan en conjuntos con los loops

    break: termina inmediatamente un loop
    redo: repite una iteración
    next: salta al final de la iteración

    Uso de Métodos

    Para crear un método en ruby se utiliza la palabra reservada def seguida del nombre que tendrá el metodo.

    Código:
    def saluda
      puts "Hola, desde Ruby"
    end
    saluda
    Pasando parámetros sería de esta forma:

    Código:
    def saluda(mensaje)
       puts mensaje
    end
    saluda("Hola desde Ruby")
    Pasando un numero variable de parámetros:

    Código:
    def varios(primer_par, *otros)
       puts primer_par + " " + otros.join(" ")
    end
    varios "Hola", "desde" "Ruby."
    Retornando un valor desde un método

    Código:
    def suma(operando1,operando2)
      return operando1 + operando2
    end
    suma(1,2)
    Retornando varios valores desde un método

    Para devolver varios valores solo se deben separar por coma

    Código:
    def saluda()
      return "Hola", "a todos"
    end
    array = saluda
    puts array.join(" ")
    Uso de Bloques

    Un bloque es un segmento de código que se comporta similar a un método, este va delimitado por { } o con do-end.

    Ejemplo:

    Código:
    { puts "Hola a todos" }
    Código:
    do
      puts "Hola a todos"
    end
    Normalmente se usa un bloque con {} cuando es de una sola línea, y con do-end cuando es de varias líneas.

    Existe una acción que nos permite acceder a un bloque desde un método (yield)

    Ejemplo:

    Código:
    def saluda()
      yield
    end
    saluda {puts "Hola a todos"}
    Pasando parámetros a un bloque

    Esto se puede hacer pasando los parámetros a yield

    Código:
    def saluda()
      yield "Hola", "a todos"
    end
    saluda {|param1, param2 | puts param1 + " " + param2}
    Usando las etiquesta BEGIN y END

    El bloque de código que este en la etiqueta BEGIN se ejecutara inmediatamente cuando el programa se cargue, y el bloque de código que este con la etiqueta END se ejecutará al finalizar la corrida del programa.

    Código:
    BEGIN {puts "Hola "}
    
    puts " a " 
    
    END {puts "todos."}
    En la siguiente entrega se terminará con:
    - Clases y Objetos
    If you can imagine it.... you can hack it..
    http://zerocool394.wordpress.com/

  8. The Following User Says Thank You to zerocool394 For This Useful Post:

    DragoN (21/12/2010)

  9. #5
    Dragonauta en Proceso
    Fecha de ingreso
    23 sep, 10
    Mensajes
    86
    Gracias
    0
    Agradecido 60 veces en 35 Mensajes

    Predeterminado

    Clases y Objetos

    En Ruby todo es un objeto o todo esta orientado a objetos.

    Para crear una clase en Ruby es mediante el uso de la palabra reservada class, de esta forma:

    Código:
    class <nombre>
    end
    El nombre de la clase siempre debe comenzar con letra mayúscula, es una de las reglas que establece Ruby.

    Veamos un ejemplo:

    Código:
    class Animal
      def initialize
        @color = "verde"
      end
    
      def get_color
        return @color
      end
    end
    se creo la clase Animal, la cual contiene un método initialize el cual sera ejecutado inmediatamente al crear el objeto a partir de la clase. Detro de initialize tenemos una variable @color que se inicializa con el valor "verde". Despues tenemos otro método que lo que se encarga es de retornar el valor de la variable @color.

    Creando un Objeto

    Para crear un objeto hacemos uso del método new. Haciendo uso de la clase Animal vamos a crear un objeto.

    Código:
    class Animal
      def initialize
        @color = "verde"
      end
    
      def get_color
        return @color
      end
    end
    
    animal = Animal.new
    animal es una instancia de la clase Animal. Si queremos accesar al método que nos retorna el color haríamos lo siguiente:

    Código:
    class Animal
      def initialize
        @color = "verde"
      end
    
      def get_color
        return @color
      end
    end
    
    animal = Animal.new
    puts "El animal es de color " + animal.get_color
    Usando el Constructor para configurar el Objeto

    Como vimos en el ejemplo anterior creamos un método llamado initialize, el cual no es mas que el constructor de la clase. Lo podemos configurar de manera que nuestra clase quede mas personalizada, por ejemplo:

    Código:
    class Animal
      def initialize(color)
        @color = color
      end
    
      def get_color
        return @color
      end
    end
    
    animal = Animal.new("azul")
    puts "El animal es de color " + animal.get_color
    Como se puede ver en esta ocasión le pasamos un parámetro a nuestro constructor para hacer mas flexible el comportamiento de la clase.

    Los atributos en Ruby pueden ser configurados para que sean de lectura, de escritura o ambos. En nuestra clase Animal tenemos un atributo "color" y un método para acceder a el (get_color).

    Veamos un ejemplo de como asignar estos permisos a un atributo:

    Código:
    class Animal
      attr_reader :color
      attr_writer :color
      
      def initialize(color)
        @color = color
      end
    end
    
    animal = Animal.new("rojo")
    puts "El animal es de color " + animal.color
    
    animal.color = "marron"
    puts "Ahora el animal es de color " + animal.color
    Como podemos ver en el código a la variable se le anteponen los valores attr_reader y attr_writer, con esto le indicamos el tipo de acceso que tendrá.

    Herencia

    La herencia es uno de los conceptos obligatorios que se manejan en la programación orientada a objetos. Para implementarla en Ruby se haría de la siguiente forma:

    Código:
    class A
    
    end
    
    class B < A
    
    end
    con esto decimos que la clase B hereda de la clase A.

    Veamos un ejemplo de esto haciendo uso de nuestra clase Animal

    Código:
    class Animal
      def initialize(color)
        @color = color
      end
    
      def get_color
        return @color
      end
    end
    
    class Dog < Animal
      def initialize(color, sound)
        super(color)
        @sound = sound
      end
      def get_sound
        return @sound
      end
    end
    
    dog = Dog.new("marron", "ladrar")
    puts "El perro es de color " + dog.get_color
    puts "El sonido que hace un perro es " + dog.get_sound
    Como podemos observar la clase Dog hereda de la clase Animal. La clase Dog cuenta con su constructor propio donde se tiene una variable para guardar el sonido, pero internamente se hace referencia al constructor de la clase Animal (super(color)). Se creo un método para retornar el sonido y finalmente se creo una instancia de la clase Dog y como hizo herencia de Animal es posible hacer uso del método get_color.

    Tipos de Accesos a Objetos

    - public: pueden ser llamados por cualquiera, desde donde sea sin restricciones.
    - private: solo pueden ser llamados desde la misma clase y no desde otras externas.
    - protected: pueden ser llamados desde la misma clase y las subclases que la hereden.

    Para hacer uso de ellos sería de la siguiente forma:

    Código:
    class Animal
      def initialize(color)
        @color = color
      end
    
      public
      def get_color
        return @color
      end
    
    end
    colocamos el identificador del tipo de acceso (public,protected,private) y lo que se declare a continuación tendrá ese tipo de acceso.

    Sobrescribiendo Métodos

    En Ruby es posible redefinir un método en una clase que derive de otra definiendo nuevamente el método. Esto sería de esta forma:

    Código:
    class Animal
      def initialize(color)
        @color = color
      end
    
      def get_color
        return @color
      end
    end
    
    class Dog < Animal
      def initialize(color)
        super(color)
      end
     
      def get_color
        return "verde"
      end
    end
    
    dog = Dog.new("azul")
    puts "El perro es de color " + dog.get_color
    el resultado que se obtendría sería:

    Código:
    El perro es de color verde
    Variables Estáticas

    Cuando hacemos mención a una variable estática esto quiere decir que su valor será compartido por todas las instancias. Si alguna de las instancia cambia el valor de la variable esto se vera reflejado en las demás instancias.

    Veamos un ejemplo:

    Código:
    class Animal
      @@number_animals = 0
      def initialize(color)
        @color = color
        @@number_animals += 1
      end
    
      def get_color
        return @color
      end
    
      def get_number_animals
        return @@number_animals
      end
    end
    
    dog = Animal.new("marron")
    cat = Animal.new("amarillo")
    
    puts "El numero de animales es " + cat.get_number_animals.to_s
    el resultado sería:

    Código:
    El numero de animales es 2
    podemos ver la declaración @@number_animals, de esta forma se crea la variable estática.

    Métodos Estaticos

    Es posible definir métodos dentro de una clase y hacer uso de ellos sin necesidad de instanciar la clase, esta es la funcionalidad de este tipo de métodos.

    Veamos como sería:

    Código:
    class Matematica
      def Matematica.add(p1,p2)
        return p1 + p2
      end
    end
    
    puts "1 +2 = " + Matematica.add(1, 2).to_s
    Módulos

    Los módulos pueden ser usados cuando tienes una gran cantidad de clases y quieres agruparlas.

    Veamos como se crearía:

    Código:
    module Matematica
      def Matematica.add(p1,p2)
        return p1 + p2
      end
    end
    guardamos este archivo como matematica.rb

    Código:
    module Sentencia
      def Sentencia.add(p1,p2)
        return p1 + " " + p2
      end
    end
    guardamos el archivo como sentencia.rb

    en otro archivo modulo.rb escribimos lo siguiente:

    Código:
    require 'matematica'
    require 'sentencia'
    
    puts "2 + 3 = " + Matematica.add(2, 3).to_s
    lo guardamos y corremos y el resultado sería:

    Código:
    2 + 3 = 5
    Con esto finalizo este tutorial básico de Ruby, espero haya sido de ayuda para comenzar y como siempre lo recomendable es reforzar con otras fuentes.

    Saludos
    If you can imagine it.... you can hack it..
    http://zerocool394.wordpress.com/

  10. The Following 3 Users Say Thank You to zerocool394 For This Useful Post:

    DragoN (21/12/2010), j4c0b0 (22/11/2010), nio1324 (18/12/2010)

  11. #6
    Dragonauta Avatar de j4c0b0
    Fecha de ingreso
    14 may, 09
    Mensajes
    169
    Gracias
    9
    Agradecido 16 veces en 15 Mensajes

    Predeterminado

    Gracias tiene muy buena pinta, ahora toca estudiarselo un rato

  12. #7
    Recien Nacido
    Fecha de ingreso
    28 jun, 10
    Mensajes
    1
    Gracias
    7
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    gracias por postearlo

  13. #8
    Recien Nacido Avatar de Pr0xyH4ck
    Fecha de ingreso
    01 nov, 10
    Ubicación
    Colombia-España
    Mensajes
    47
    Gracias
    6
    Agradecido 15 veces en 5 Mensajes

    Predeterminado

    Gracias por el aporte..

  14. #9
    Recien Nacido
    Fecha de ingreso
    21 dic, 10
    Mensajes
    2
    Gracias
    0
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    hola tengo una pregunta soy nuevo en esto y empeze aprendiedo HTML es basico creo yo, que otro idioma puedo aprender me avian dicho que python,perl,lisp y otros me podrian dar un consejo

+ Responder tema

Visitantes encuentran esta página buscando por:

ruby desde cero

programacion en ruby desde cero

empezando con ruby

tabla de precedencia

ingrese edad phppalabras abreviadas ejemplosuso letra mayusculatabla precedencia de operadorestabla de palabras reservadas Perlorden de precedencia de signos programaciontabla de precedencia de operadorespalabras abreviadas en temperaturaprogramacion ruby desde cerotabla de operadorespalabras reservadas de htmltabla de ordenes y subordenes del sistema decimalfuncion de la palabra reservada beginprecedencia de operadoresruby para web desde ceropalabras reservadas de gopalabras con la letra o minuscula.manejo de matrices en rubyTABLA DE PRECEDENCIAS Y ASOCIATIVIDAD DE OPERADORES ARITMETICOSprograma funcion longitudes hecho en rubycuales son las palabras reservadas(programacion)

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes