Primera toma de contacto con Ruby
Tal como cuenta el Pragmatic Programmer, cada año hay que aprender un lenguaje de programación nuevo. Ya hace tiempo que tenía esta tarea pendiente y ahora que he hecho un poco de tiempo, he creado mi primer script con ruby. El ejemplo muy sencillo consiste en parsear un XML mediante la librería REXML y cargar una serie de registros y realizar un cálculo simple. De esta manera podemos ver si el lenguaje nos gusta, si lo encontramos fácil de manejar y si le podemos sacar provecho. En el mercado existen cientos de lenguajes de programación, y siempre me ha gustado como mínimo crear algo en éstos para ver como resuelven los diferentes problemas que te puedes encontrar con otros lenguajes (Conversiones implícitas, asignaciones, herencia múltiple, etc). El problema radica en que si aprendemos un lenguaje nuevo, tenemos que buscar el "Where to use it?".
Haciendo un poco de historia, Ruby, es un lenguaje de programación interpretado y Orientado a objetos. Éste fue creado por Yukihiro Matsumoto, y presenta trazas de Perl, Python y SmallTalk.
Fichero xml (rectangles.xml):
Programa en Ruby (rectangles.rb):
El resultado de la ejecución:
Como podéis comprobar el script es muy sencillo y por la red podemos encontrar bastantes librerías para hacer el parsing de los xml. En los enlaces de interés hay varios ejemplos. Espero que os sirva de ayuda y a continuar aprendiendo y mejorando!.
Parsing XML Ruby.
Haciendo un poco de historia, Ruby, es un lenguaje de programación interpretado y Orientado a objetos. Éste fue creado por Yukihiro Matsumoto, y presenta trazas de Perl, Python y SmallTalk.
- Mi Ejemplo:
Fichero xml (rectangles.xml):
<rectangles>
<rectangle width="23" height="45" />
<rectangle width="45" height="75" />
<rectangle width="67" height="90" />
<rectangle width="32" height="56" />
</rectangles>
Programa en Ruby (rectangles.rb):
# Cálculo superfície rectangulos
# @Author : Jordi Coll Corbilla
#-------------------------------------
require "rexml/document"
include REXML
class Rectangulo
def initialize(alto, ancho)
@alto = alto
@ancho = ancho
end
def superficie
puts "Alto #{@alto}, Ancho #{@ancho}, Superficie: " + String(@alto * @ancho)
end
end
#imprimimos el documento completo
doc = Document.new File.new("rectangles.xml")
print doc
print "\n\n"
#realizamos los cálculos
doc = REXML::Document.new File.new('rectangles.xml')
node = doc.elements.to_a("//rectangle")
node.each do |elem|
alto = Integer(elem.attribute("height").value)
ancho = Integer(elem.attribute("width").value)
rec = Rectangulo.new(alto,ancho)
rec.superficie
rec = nil
end
El resultado de la ejecución:
>ruby rectangles.rb
<rectangles>
<rectangle height='45' width='23'/>
<rectangle height='75' width='45'/>
<rectangle height='90' width='67'/>
<rectangle height='56' width='32'/>
</rectangles>
Alto 45, Ancho 23, Superficie: 1035
Alto 75, Ancho 45, Superficie: 3375
Alto 90, Ancho 67, Superficie: 6030
Alto 56, Ancho 32, Superficie: 1792
>Exit code: 0
Como podéis comprobar el script es muy sencillo y por la red podemos encontrar bastantes librerías para hacer el parsing de los xml. En los enlaces de interés hay varios ejemplos. Espero que os sirva de ayuda y a continuar aprendiendo y mejorando!.
- Enlaces de interés:
Parsing XML Ruby.
Comments
Post a Comment