Boston Python Workshop/Friday handout/Windows

About Rails on Windows

 * These instructions should work for all versions of Windows from XP on to Windows 7.
 * You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings.

Open a Command Prompt
Opening a command prompt window Recommended setup for command-line windows cls
 * Open a command prompt window, and keep it open along with your browser. Much of installing Ruby and using Rails is typing commands and hitting &lt;enter&gt;.  Your experience using Rails on Windows greatly depends on your making friends with the command prompt window.
 * This is also called the command prompt, command window, command-line window, MS-DOS or DOS window.
 * Try these recommendations:
 * Tip: clear screen If you ever want to clear the &quot;output history&quot; to get a clear screen, type:
 * Tip: command history The command prompt window stores a &quot;command history.&quot; To view and re-run previous commands, use the &lt;up arrow&gt; and &lt;down arrow&gt; keys. You can also edit a previous command and run it--this is handy for long commands, or fixing mistakes.
 * Tip: copy and paste In the instructions below, where it says: &quot;In the command prompt type:&quot;, you can, much more easily, copy the command from this page, and right click in the menu bar or command prompt window, then click on &quot;Paste&quot;, then hit the &lt;enter&gt; key.

Install Ruby
ruby -v You should see something like ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
 * Go to http://rubyinstaller.org/ and download Ruby 1.9.2 (or greater)
 * Click on the downloaded file to install.
 * Important: Take note the folder where Ruby is installed. You will need the path of this folder later when installing SQLite.  In this example below, the path is: C:\Ruby192
 * Be sure to check both boxes, &quot;Add Ruby ... to your path&quot; and &quot;Associate ... files ...&quot;
 * Test your Ruby install in the command prompt using the -v version flag

Install Ruby DevKit
This gets rid of the pop up that says something about Ruby 1.8dll can't be loaded.
 * Download the Development Kit from rubyinstaller.org: http://rubyinstaller.org/downloads/
 * Make a folder in your C:\ directory called RubyDevKit. Copy the downloaded file there, and then double-click to extract.
 * In git bash:
 * Reinstall the json gem as specified here: http://www.shaunambrose.com/2010/11/11/how-to-fix-the-msvcrt-ruby18-dll-is-missing-from-your-computer-error-message-in-ruby-on-rails/

Install Bundler
gem install bundler --no-rdoc --no-ri You should see something like Successfully installed bundler-1.0.0 1 gem installed
 * In the command prompt type:

Install a Simple Code editor
This is one simple editor - you will have some options later on.

The default editor 'notepad' doesn't understand the UNIX newline '\n'

First we will download and choose 'save' navigate to Computer => C:\ => Ruby192 => bin
 * SC222 SC1 Micro Editor

If we save the file sc222.exe to C:\Ruby192\bin it will be in our $PATH variable - $PATH is where we store a list of directories that contain files to run.

Install Bundle o Gems
Open up a new command window and type :
 * bundle init
 * SC222.exe Gemfile

You will see a new window with lines one of which is :

source "http://rubygems.org"

In the Gemfile, in your editor add the following lines gem "rails", '3.0.3' gem "rspec-rails" gem "gherkin" gem "cucumber" gem "cucumber-rails" gem "database_cleaner" gem "capybara" gem "win32console" gem "heroku" gem "sqlite3-ruby"

Save the file and in the same command window run:
 * bundle

Bundle will use the Gemfile to install each of the gem libraries in the list.

You will see something like ... Successfully installed activesupport-3.0.0 Successfully installed builder-2.1.2 Successfully installed i18n-0.4.1 Successfully installed activemodel-3.0.0 Successfully installed rack-1.2.1 Successfully installed rack-test-0.5.6 Successfully installed rack-mount-0.6.13 Successfully installed tzinfo-0.3.23 Successfully installed abstract-1.0.0 Successfully installed erubis-2.6.6 Successfully installed actionpack-3.0.0 Successfully installed arel-1.0.1 Successfully installed activerecord-3.0.0 Successfully installed activeresource-3.0.0 Successfully installed mime-types-1.16 Successfully installed polyglot-0.3.1 Successfully installed treetop-1.4.8 Successfully installed mail-2.2.6.1 Successfully installed actionmailer-3.0.0 Successfully installed thor-0.14.2 Successfully installed railties-3.0.0 Successfully installed rails-3.0.0 as well as a few more

Test the Rails install. In the command prompt type: rails -v You should see something like Rails 3.0.0

If you try to run rails -v and it is not found - try this - or put up hand and ask for help! gem install

Install Git for Windows
git
 * Go to http://code.google.com/p/msysgit/ (aka GitBash)
 * Click on the top &quot;Downloads&quot; tab
 * Download the top .exe file link with the Summary something like &quot;Full installer for official Git 1.7.x.x&quot;
 * Run the install.
 * In the &quot;Select Components&quot; dialog, make sure the checkboxes &quot;Associate ... configuration files ...&quot; and &quot;Use a TrueType font ...&quot; are checked.
 * Important: In the &quot;Adjusting your PATH environment&quot; dialog, make sure &quot;Run Git from the Windows Command Prompt&quot; is selected.
 * In the &quot;Configuring the line ending conversions&quot; dialog, make sure &quot;Checkout Windows-style, commit Unix-style line endings&quot; is selected.
 * To run git, open Programs &gt; Git &gt; Git Bash
 * Then to test the Git install and see Git commands, in the command prompt type:

Configure Git
git config --global user.name  and: git config --global user.email 
 * Set up Git with your name and email to tag your code changes. In the command prompt type:

To have colored output, in the command prompt type each line followed by  : git config --global color.diff auto git config --global color.status auto git config --global color.branch auto
 * Tip: Colors

Install SQLite

 * Go to: http://www.sqlite.org/download.html
 * Scroll down to the &quot;Precompiled Binaries For Windows&quot; section near the bottom of the page.
 * Download the latest &quot;sqlite3-n_n.zip&quot;
 * Contains: sqlite3.exe
 * Download the latest &quot;sqlitedll-3_n_n.zip&quot;
 * Contains: sqlite3.def, sqlite3.dll
 * Double-click each zip file to open the archives
 * Copy and paste each file into the \bin folder under where Ruby was installed.
 * in the Install Ruby example above Ruby is installed in C:\Ruby192, so the three files would be copied into C:\Ruby192\bin

Install SQLite Manager

 * If you already have Firefox installed, verify that it is version 3.5.0 or greater. (Help -&gt; About Mozilla Firefox. The version number is right under the &quot;Firefox&quot; title.)
 * If you don't have Firefox installed, or it's an older version, install Firefox.
 * Once it's installed, open Firefox and go to Tools -&gt; Add-ons. At the top of the add-ons window, click &quot;Get Add-ons.&quot;
 * There will be search box directly underneath &quot;Get Add-ons&quot; that says &quot;Search All Add-ons.&quot; Enter &quot;SQLite&quot; (without the quotes) in the box and hit enter.
 * SQLite Manager should be the top result. Click &quot;Add to Firefox...&quot; (If SQLite Manager isn't in the results, check the spelling - SQLite only has one L. Also, check that you have at least Firefox 3.5.)
 * Wait for the countdown, then click &quot;Install Now.&quot;
 * In the Add-ons windows, click &quot;Restart Firefox.&quot;
 * Once Firefox restarts, the Add-ons window should say &quot;1 new add-on has been installed.&quot; Go to the Tools menu and verify that there is an option for SQLite Manager.

Install KomodoEdit
You need a text editor to do Ruby. If you already have a preferred text editor, such as vi, emacs, jedit, etc., you can skip this step. It must be a plain text editor and not something with styling like Microsoft Word.

When in doubt, use KomodoEdit.


 * Download KomodoEdit here.
 * Double-click to install.

Create an ssh public key
You'll need one of these to create your Heroku account in the next section.
 * Open up a new GitBash window.
 * (email should match git config setting)
 * Hit enter to accept default location for ssh key.
 * Hit enter to accept blank passphrase (if computer is shared with other people, as in a work laptop, you should create a passphrase). Hit enter again to accept blank passphrase (or enter passphrase again).
 * Output of ssh-keygen command
 * Your brand-new public key is now stored at.

Create a Heroku Account

 * http://heroku.com -&gt; Sign Up -&gt; enter email address (use the same email as you did with git and the ssh public key).
 * Heroku will send you an activation email. Open it and click on the activation link. It will take you to the Heroku site. Enter and confirm your password. Hit Save.


 * If you have further heroku issues, try following these directions to install (or re-install) the client.


 * You have already installed the heroku gems in the 'Bundle o Gems' step.

Verify you can create a new Rails app
mkdir ~/Desktop/rails cd ~/Desktop/rails rails new test_app cd test_app rails server
 * Open a new GitBash window and type the following with a return at the end of each line:
 * The first two commands should produce no output. The last command's output is voluminous. :)
 * Once that's finished, type the following in the GitBash window with a return at the end of each line:
 * The first command should produce no output. The second command will put out a bunch of output, then just sit there until you cancel it (2 steps from now).
 * In your browser, go to http://localhost:3000 (screenshot of successful install
 * Back in the GitBash window where you ran, type control-c to kill(stop) the server.

Verify your database is set up
cd ~/Desktop/rails/test_app rails generate scaffold user name:string email:string address:text active:boolean rake db:migrate rails server In the browser, visit http://localhost:3000/users click New user to create a user to make sure we can save to the database. (The window where you ran  will display debugging information as you do so.) In your GitBash window where you ran, type control-c to kill(stop) the server.
 * Open a new GitBash window.

Verify git is working
cd ~/Desktop/rails/test_app git init This should generate output similar to: Initialized empty Git repository in c:/Documents and Settings/smei/Desktop/ruby_on_rails/test_app/.git/
 * Open a new GitBash window.
 * Type the following commands:
 * Type the following commands:
 * (Note the dot) (May get line ending warnings; safe to ignore.)
 * (Output of initial check-in)
 * (We're just checking to make sure it worked. Verify that it has the right user and commit message.)

Verify Heroku is set up
# gem 'sqlite3-ruby', :require =&gt; 'sqlite3' group :production, :staging do   gem &quot;pg&quot;, &quot;0.9.0&quot; end group :development, :test do   gem &quot;sqlite3-ruby&quot;, :require =&gt; &quot;sqlite3&quot; end
 * Run your Text Editor
 * use file-open to select Desktop/rails/test_app/Gemfile
 * replace the sqlite3 entry in your Gemfile with this chunk of code (the first line is what was there originally, with # space put in front to comment it out).

(Don't delete the rest of the gems, just replace the sqlite gem entry.)

cd ~/Desktop/rails/test_app bundle update this rebuilds the Gemfile.lock file to reflect the change. git add. git commit -m "fixed the gemfile" Also, as of now heroku requires you to specify a special stack if running rails3 so your create command needs to be like this: heroku create --stack bamboo-mri-1.9.2
 * Open a new GitBash window and type the following commands:


 * Enter your Heroku email address and password. (Output of heroku create command)
 * To verify that the  completed successfully, do   and see if the list includes.
 * type:
 * It may ask: &quot;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)?&quot; Type  and hit  .
 * Output of successful first deploy. Be sure to find your Heroku application name in the output. (What to do if git seems stuck)
 * In the GitBash window type:  (Output of heroku rake db:migrate)
 * Go to your application's URL. You'll need your Heroku application name. The URL for your app is  - so with the example output in the previous step, it would be  . Verify you see the welcome page. Leave this window open.
 * In the browser, add  to the end of the URL. Verify you see the user list page. Create a new user to verify you can write to the db on Heroku.
 * If you are having issues ("Remote end hung up unexpectedly"), you might need to run "heroku keys:add"

Congratulations!
You have everything you need to write a Ruby on Rails application.

Almost there!
'''Find a volunteer and have them watch the next steps. If this works - get a sticker from them for your computer!'''



After running this, the last few lines of output should look something like this:

Cleanup
Ok, there is one more step. You won't be using the test application in the workshop; we just created it to make sure everything was working. You should delete it now to reduce confusion during the workshop. Don't worry about losing information - you'll repeat all the steps tomorrow, but more slowly so you can better understand what's going on under the hood.


 * Drag the test_app folder (inside rails) to the trash. Leave rails on the desktop.
 * Delete the app from Heroku. Go to https://heroku.com/myapps and then click on your app name. Scroll to the bottom of the page and click Destroy App.