cadenas.step

goals do
  goal "Entender cuando utilizar las cadenas"
  goal "Aprender cómo combinar cadenas"
  goal "Aprender acerca de la interpolación de cadenas"
end


step do
  irb <<IRB
  'una cadena en comillas simples'
  "una cadena en comillas dobles"
IRB
  message 'Una cadena es una serie de caracteres. Las cadenas pueden ser creadas utilizando comillas simples o dobles.'
  message 'Estas cadenas no fueron guardadas en una variable. ¿Qué les sucede a los datos que no han sido guardados en una variable?'
  message '¿Qué pasa si inicias una cadena con un tipo de comilla y la finalizas con otro tipo? ¿Cómo lo arreglas?'
end


step do
  irb <<IRB
'Hola, ' + 'Jane'
'manzanas' * 3
IRB
  message 'Las cadenas pueden ser concatenadas a otras cadenas o multiplicadas por números. ¿Qué es lo que hace esto?'
end

step do
  irb <<'IRB'
nombre = 'Jane'
"Hola #{nombre}"
IRB
  message '(los caracteres `{}` son generalmente llamados **llaves**)'
  message 'Esto es a lo que se llama interpolación de cadenas. La interpolación de cadenas te permite insertar una instrucción de ruby en otra cadena. Esto solamente funciona con comillas dobles: ¿Qué pasa cuando tratas de hacer lo mismo con comillas simples?'


    irb <<'IRB'
"Dos más dos es: #{2 + 2}"
IRB
  message 'El código en las llaves puede ser cualquier instrucción válida en ruby. Prueba escribiendo varias cosas en las llaves para que puedas ver qué funciona y qué no.'
end

step do
  irb <<-IRB
'Yo tengo muchos caracteres'.length
  IRB
  message 'Lo escrito después del punto es llamado un **método**. Los métodos son cosas que puedes hacer con un **objeto** dado: hablaremos mas de ellos en Objetos después, aquí solo debes reconocer que el Objeto es una Cadena.'
  message "A continuación más métodos que puedes probar:"
  irb <<-IRB
'adelante'.reverse
'jane smith'.upcase
'una simple y vieja sentencia'.delete('aeiou')
'algunas cadenas'.methods
  IRB
  message "Esto es un método simplemente llamado `methods` -- te dice todos los métodos que puedes utilizar en un objeto dado."
end

explanation do
  message "Las cadenas son la clave para presentar información en tus programas. Un humano será el que probablemente vea la salida de tu programa eventualmente, y los humanos utilizan más palabras que números al hablar, frecuentemente querrás utilizar las cadenas."
  message 'Resumen de algunos métodos que utilizan cadenas:'
  table class: 'bordered' do
    tr do
      td 'length'
      td 'qué tan larga es la cadena (número de caracteres)'
    end
    tr do
      td 'reverse'
      td 'regresa la misma cadena, pero al revés'
    end
    tr do
      td 'upcase'
      td 'regresa la misma cadena, EN MAYÚSCULAS'
    end
    tr do
      td 'delete([otra cadena])'
      td 'borra todas las ocurrencias de la primer cadena dentro de la segunda cadena'
    end
    tr do
      td 'methods'
      td 'da los nombres de todos los métodos que pueden utilizarse con las cadenas'
    end
  end
end

further_reading do
  a "Documentación de Ruby para el uso de Cadenas (Strings)", href: 'http://www.ruby-doc.org/core-1.9.3/String.html'
end

next_step 'arreglos'