Otras Páginas

Expandir Todo

crea_y_lanza_una_aplicacion_rails.step

step "Cámbiate a tu directorio de inicio" do
  insert 'cambia_al_directorio_principal'
end

step "Crea el directorio railsbridge" do
  console "mkdir railsbridge"
  message "`mkdir` significa crea un directorio (carpeta)."
  message "We've made a folder called `railsbridge`."
  message "Hemos creado una carpeta llamada `railsbridge`."
end

step "Cámbiate a tu nuevo directorio railsbridge" do
  console "cd railsbridge"
end

step "Crea una nueva aplicación Rails" do

  console "rails new test_app"

  message "La salida de comandos será muy grande, y tomará algo de tiempo en completarse, con una pausa larga a la mitad, después de todos las sentencias 'create..' terminará con 'bundle install'. Cuando termine completamente, te regresará a tu línea de comandos. Busca el mensaje 'Your bundle is complete!' justo arriba."
  tip do
    message "En Linux, tal vez tendrás que habilitar esta línea en tu Gemfile:"
    pre "gem 'therubyracer', :platforms => :ruby"
	message "Sólo borra el '#' que está al frente del enunciado"
  end

  console "cd test_app"
  console "rails server"

  tip "En Windows, tal vez tendrás que permitir que Ruby y Rails se comuniquen a través de tu firewall. Di sí al popup."

  tip "Atajo: Sólo escribe 'rails s'" do
    message <<-MARKDOWN
A través de tu carrera de programación en Rails vas a escribir `rails server` muchas veces. De hecho,
lo escribirás tanto que DHH y el equipo del núcleo de Rails decidieron ahorrarte que presiones 5 teclas
cada vez que reinicies el servidor. Simplemente escribir `rails s` es lo mismo que `rails server`.
  MARKDOWN
  end

  message <<-MARKDOWN
El primer comando no genera salida.
Si `rails server` inicia sin errores, ¡estás lista! Se verá algo así:
  MARKDOWN

  fuzzy_result <<-TEXT
=> Booting WEBrick
=> Rails 3.2{FUZZY}.x{/FUZZY} application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-09-30 21:04:12] INFO  WEBrick 1.3.1
[2010-09-30 21:04:12] INFO  ruby 1.9{FUZZY}.3 (2012-11-10) [x86_64-darwin10.4.2]{/FUZZY}
[2010-09-30 21:04:12] INFO  WEBrick::HTTPServer#start: pid={FUZZY}24805{/FUZZY} port=3000
  TEXT

message "Si así fue, ¡felicidades! haz instalado Ruby Y Rails correctamente y haz iniciado el servidor."

tip "Si no funcionó, pide ayuda a un instructor."

message <<-MARKDOWN

* En tu navegador, ve a <http://localhost:3000>

![Successful Rails Install](img/successful-rails-install.jpg)

* De nuevo en la ventana de la Terminal donde ejecutaste <code>rails server</code>, escribe **Control-C** (no escribas esto en la consola, sino que presiona las teclas Control y C al mismo tiempo) para matar(detener) el servidor. Windows preguntará "¿Termiar el trabajo en ejecución (S/N)?". Escribe "S".

  MARKDOWN
  important "En Windows, algunas veces Control-C no funciona. En este caso, busca la tecla 'Terminar' o 'Pausar' y presiona Control-Terminar, después responde S en la terminal de comandos. Si no hay una tecla de Pausa/Terminar en tu teclado, puedes ejecutar `ruby script/rails server` en vez de `rails server`, la cual te permitará terminar el servidor con Control-C."
  end

step "Genera un modelo de base de datos" do
  tip "Si tu terminal de comandos no muestra que (aún) estás en la carpeta test_app" do
    console "cd test_app"
  end

  console <<-BASH
rails generate scaffold user name:string email:string address:text active:boolean
  BASH
  console <<-BASH
rake db:migrate
  BASH
  console <<-BASH
rails server
  BASH

  message "**Nota:** lo anterior son tres comandos separados. Escribe cada línea en la terminal separadamente, no como un sólo comando."
  
  message "Espera hasta que la consola muestre que el servidor Webrick ha iniciado (justo como antes). Entonces, en el navegador, visita <http://localhost:3000/users>"

  message "Haz click en *Nuevo usuario* para crear un usuario y asergurarte que puedes guardar en la base de datos. Haz click en *Atrás* para ver tus resultados. (La ventana donde ejecutaste `rails server` mostrará información de depuración mientras lo haces.)"

  message "En la ventana de tu terminal donde ejecutaste `rails server`, escribe Control-C (o Control-Terminar, S) para matar(detener) el servidor."

end

step "Utiliza git" do
  tip "si tu terminal de comandos no muestra que estás (aún) en la carpeta test_app" do
    console "cd test_app"
  end
  
  console <<-BASH
git init
  BASH

  result "Initialized empty Git repository in c:/Sites/test_app/.git/"

  console "git add -A"
  tip "git add" do
    message <<-MARKDOWN
Con Git, generalmente hay muchas maneras de hacer cosas similares.

  * `git add foo.txt` agrega un archivo llamado `foo.txt`
  * `git add .` ("git add dot") agrega todos los archivos nuevos y editados, pero *mantiene* los archivos que has eliminado.
  * `git add -A` agrega todo, incluyendo archivos eliminados.

"Agregar archivos eliminados" puede oirse raro, pero si piensas en un sistema de control de versiones como una forma de mantener registro de *cambios*, puede que tenga más sentido.

    MARKDOWN
  end

  console "git commit -m \"initial commit\""
  result "muchas líneas como create mode 100644 Gemfile"

  console "git log"
  result "(Tu nombre en git y mensaje del \"commit inicial\".)"
end

step "Lanza tu aplicación a Heroku" do

  step "Crea una aplicación de Heroku desde esta aplicación de Rails local" do

  message "La primera vez que utilices `heroku` debes introducir tu correo electrónico de Heroku y tu contraseña. Tu contraseña no se verá mientras la escribes, pero no te preocupes, ¡si se introdujo! Si ya has proporcionado tus credenciales anteriormente, no te pedirá que las pongas de nuevo."

  console "heroku create"
  result <<-OUTPUT
Enter your Heroku credentials.
Email: myemail@example.com
Password:
Uploading ssh public key /Users/smei/.ssh/id_rsa.pub
Creating floating-winter-18... done, stack is cedar
http://floating-winter-18.heroku.com/ | git@heroku.com:floating-winter-18.git
Git remote heroku added
  OUTPUT

    message "A las aplicaciones de Heroku se les asignan nombres que se ven como '[adjetivo]-[sustantivo]-[número]. Cada nombre es diferente.'"
  
  console "git remote show"
  result "heroku"

  message "Si aquí te salen mensajes advirtiendo sobre llaves públicas es posible que sea alguna confusión con alguna llave SSH utilizada por otra aplicación en tu computadora. LLama a un voluntario para que te ayude a resolverlo. Con suerte, esto sólo se necesitará hacer la primera vez que crees una aplicación de Heroku."
  end

  step "Prepara tu aplicación Rails para lanzarla a Heroku" do
    message <<-MARKDOWN

Inicia tu editor de texto y abre el archivo "Gemfile" localizado dentro de tu carpeta test_app. (En Windows, debe de estar en `C:\\Sites\\test_app` y en Linux/OS X, debe de estar dentro de `~/test_app`.)

Dentro de este archivo, cambia la línea:
MARKDOWN
  source_code :ruby, <<-RUBY
gem 'sqlite3'
  RUBY

  message <<-MARKDOWN
Por esto:
  MARKDOWN

  source_code :ruby, <<-RUBY
group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
end
  RUBY

  message "Guarda los cambios del archivo."

  tip "¿Por qué Sqlite (sqlite3) y PostgreSQL (pg)?" do
    message "SQLite y PostgreSQL son diferentes tipos de bases de datos. Estamos usando SQLite para nuestros ambientes de desarrollo y pruebas porque es más simple de instalar. Estamos usando PostgreSQL: en nuestro ambiente de producción porque Heroku ya hizo el trabajo pesado de instalarlo por nosotros y es más potente que SQLite. Por defecto en Rails, se tienen serpados los ambientes de pruebas, desarrollo y producción."
  end

    console <<-BASH
bundle install --without production
    BASH

    message "De nuevo, espera por la entrada de la línea de comandos, y busca justo arriba el mensaje 'Your bundle is complete!'. Si esto falla, busca un instructor para que te ayude a editar `config/environments/production.rb`"
  end

  step "Agregar mis cambios a git" do

    console <<-BASH
git add .
git commit -m "Updates for heroku deployment"
    BASH
  end

  step "Lanza a Heroku" do

    console "git push heroku master"

    message "Posiblemente preguntará \"The authenticity of host 'heroku.com (75.101.145.87)' can't be established. RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad. Are you sure you want to continue connecting (yes/no)?\" Escribe <code>yes</code> y presiona *enter*."

    result <<-OUTPUT
The authenticity of host 'heroku.com (75.101.145.87)' can't be established.
RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'heroku.com,75.101.145.87' (RSA) to the list of known hosts.
Counting objects: 60, done.
Compressing objects: 100% (54/54), done.
Writing objects: 100% (60/60), 79.03 KiB, done.
Total 60 (delta 10), reused 0 (delta 0)

-----> Heroku receiving push
-----> Rails app detected
       Compiled slug size is 080K
-----> Launching...... done
       App deployed to Heroku

To git@heroku.com:floating-winter-18.git
 * [new branch]      master -> master
    OUTPUT

    important "Asegúrate de encontrar y aprenderte el nombre de tu aplicación de Heroku en la salida de comandos."

    message "Este proceso posiblemente tome el doble de tiempo que tu 'bundle install' y después regresará el puntero a tu línea de comandos. Si toma más tiempo que eso, llama a un instructor."

    console "heroku run rake db:migrate"

    result <<-OUTPUT
Running rake db:migrate attached to terminal... up, run.1
Migrating to CreateUsers (20111204065949)
==  CreateUsers: migrating ====================================================
-- create_table(:users)
   -> 0.0122s
==  CreateUsers: migrated (0.0123s) ===========================================
    OUTPUT

    message "El número largo después de CreateUsers es una marca de tiempo. ¡La tuya será diferente!"
  end

  step "Visita tu nueva aplicación" do

    message "En el navegador, ve a la URL de tu aplicación. Necesitarás el nombre de tu aplicación de Heroku."

    tip "Para encontrar el nombre de tu aplicación de Heroku" do
      console "heroku info"
    end

    tip "Para rápidamente abrir tu aplicación de Heroku en un navegador" do
      console "heroku open"
    end
	
    message "La URL para tu aplicación es <code>*nombre-de-la-aplicación*.heroku.com</code> -- así que con el ejemplo del paso anterior, sería <code>floating-winter-18.heroku.com</code>.  Verifica que puedes ver la página de bienvenida. Deja esta ventana del navegador abierta."

    message "En el navegador, agrega <code>/users</code> al final del URL y presiona *enter*. Verifica que puedes ver la página del listado de usuarios."

    message "Crea y guarda un nuevo usuario para verificar que puedes escribir a la base de datos en Heroku"

  end
end

next_step "consigue_un_sticker"