Otras Páginas

Expandir Todo

lenguaje_ruby.step

goals do
  goal "Ser capaz de utilizar los bloques básicos de código de Ruby"
  goal "Utilizar IRB para ejecutar código de Ruby"
  goal "Hacer cálculos simples"
  goal "Utilizar y entender las variables"
  goal "Utilizar y entender los arreglos"
  goal "Utilizar ciclos y sentencias condicionales"
end

steps do
  step do
    message "Excribe esto en la terminal para inicializar el intérprete Interactivo de Ruby, un programa que te permite probar código de Ruby:"

    console_without_message "irb"

    message "Debería verse así, pero puede diferir un poco:"

    console_without_message "1.9.3p362 :001 > "
  end

  step do
    console_with_message "A continuación intenta un poco de matemáticas simples, está incorporado a Ruby. Escribe estas líneas en IRB:", "3 + 3\n7 * 6"
  end

  step do
    message "**Las variables** son nombres con valores asignados"

    console_without_message "mi_variable = 5"

    message "Esto asigna el valor `5` al nombre `mi_variable`."
  end

  step do
    message "También puedes hacer matemáticas con variables:"
    console_without_message <<-RUBY
mi_variable + 2
mi_variable * 3
    RUBY
  end

  step do
    message "Las variables también pueden contener más de un valor. Son llamados **arreglos**."

    console_without_message 'frutas = ["kiwi", "fresa", "ciruela"]'

    message "Aquí se usa la variable `frutas` para contener una colección de nombres de frutas."
  end

  step do
    console <<-RUBY
frutas = frutas + ["naranja"]
frutas = frutas - ["kiwi"]
    RUBY

    message "`+` y `-` son llamados operadores. Se pueden usar con el arreglo de frutas de igual manera que se usan con números."

  end

  step do
    message "Todo en Ruby tiene una **clase**. Escribe esto en IRB:"

    console_without_message <<-RUBY
7.class
"kiwi".class
frutas.class
RUBY

    message "Estos son los tres tipos de datos introducidos hasta el momento: **Fixnum** (números), **String** (texto), y **Array** (listas)."
  end

  step do
    message "Cada clase tiene diferentes **métodos** que pueden ser usados en **instancias** de esa clase."

    console_without_message <<-RUBY
frutas.length
frutas.first
    RUBY

    message "Puedes ver todos los métodos disponibles para un objeto:"
    console_without_message <<-RUBY
frutas.methods
    RUBY

    message "Y **encadenar** métodos:"
    console_without_message <<-RUBY
frutas.methods.sort
    RUBY
  end

  step do
    message "Los arreglos tienen un método llamado **each** el cual itera sobre la lista ejecutando código por cada elemento."
    console_without_message <<-RUBY
frutas.each do |fruta|
  puts fruta
end
    RUBY
    message "Esto toma el primer elemento del arreglo `frutas` (`\"kiwi\"`), lo asigna a la variable `fruta`, y ejecuta el código entre `do` y `end`. Luego hace lo mismo por cada elemento en la lista. El código de arriba debería imprimir una lista de frutas."
  end

  step do
    message "Un **condicional** ejecuta código sólo cuando una sentencia evaluada es verdadera."

    console_without_message <<-RUBY
if mi_variable > 1
  puts "¡YAY!"
end
    RUBY

    message "Esto imprime`¡YAY!` si el valor almacenado en `mi_variable` es mayor que 1."

    message "Intenta cambiando el `>` en el condicional por un `<`."
  end

  step do
    message "También puedes hacer tus propios métodos:"
    console_without_message <<-RUBY
def pluraliza(palabra)
  palabra + "s"
end
pluraliza("kiwi")
    RUBY

    message "Los métodos toman **parámetros**, los cuales son las variables con las que trabajan. En este caso, hicimos un método llamado pluraliza que toma un parámetro, una palabra."

    message "Los métodos también pueden regresar datos. En este caso, pluraliza regresa la palabra con una 's' agregada al final de ella. En Ruby, las funciones regresan lo que la última línea de la función evalúa."
  end
end

next_step "iniciando"