demo app from the namics on Thursday, June 18th, 2009
Ruby JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


# Preparation

# Uninstall the will_paginate gem so that the audience can see what 'sudo rake gems:install' really does (this causes an error if the gem does not exist locally)
sudo gem uninstall mislav-will_paginate

# Ruby - Getting Started

# I started with ruby by learning the Rails framework.  I come from the java world.  I can tell you the java equivalent for what I'm showing in ruby.

# Any questions -> ask right away.

# In the next 20 minutes we'll learn some ruby by...

# creating a basic rails application
# generating scaffold code
# extend the generated code (with pagination)

# if time remaining -> deploy the app live

# If you want to get started with ruby/rails visit and type rails + windows for this tutorial

# In terminal

cd Desktop

rails ttalk-app

cd ttalk-app

script/generate scaffold patient name:string surname:string birthday:date weight:integer

rake db:migrate


# Open http://localhost:3000/patients

# Create a new patient and edit it.  View all patients.

# Open directory in RubyMine
# Show db/migrate/*_create_patients.rb

# Rails is a MVC framework...
# Show app/models/patient.rb
# Show app/controllers/patients_controller.rb
# Show app/views/patients/index.html.erb

# Now we want to extend patients with pagination


Patient.create(:name => "Bob", :surname => "Barker", :birthday => 20.years.ago, :weight => 65)

20.times {
Patient.create(:name => "Bob", :surname => "Barker", :birthday => 20.years.ago, :weight => 65)

# Refresh the page in browser. Now I have my patients.  Let's add the pagination.

# Won't do it by hand.  That would be tiresome.

# Switch to Browser -> Google "ruby toobox" -> Open ruby toolbox site

# Navigate to "pagination" category

# Open "will_paginate" page

# Switch to RubyMine

# add will_paginate gem to environment.rb

config.gem 'mislav-will_paginate', :version => '~> 2.3.8', :lib => 'will_paginate', :source => ''

# Switch to Terminal

gem list mislav

# gem needs to be installed locally.  Ask rails to install all of the gems the project needs.
sudo rake gems:install

# Now we have it
gem list mislav

# Switch to RubyMine -> patient.rb -> Change call to Patient.all to ...

Patient.paginate :per_page => 5, :page => params[:page], :order => 'updated_at DESC'

# Start up server in IDE

# Switch to Browser and refresh -> Now only 5 patients are displayed

# Now we need to update the view so we can navigate through the pages.

# Switch to RubyMine -> index.html.erb -> Add pagination navigation

<%= will_paginate @patients %>

# Switch to Browser and refresh -> pagination navigation is displayed

# By changing only 3 lines of code we have full functioning pagination.  Wow.

# Check time.  If time remaining, show deployment to heroku

# Switch to Terminal

git init

touch .gitignore

touch .gems

# Copy following to .gitignore


# Copy following to .gems

mislav-will_paginate  --version ">=2.3.8" --source ""

# Switch to Terminal

git add .

git commit -m "initial commit"

gem list hero

heroku create austinttalk

git push heroku master

heroku rake db:migrate

heroku console

20.times { Patient.create(:name => "Bob", :surname => "Barker", :birthday => 20.years.ago, :weight => 65) }

# Switch to Browser ->

# Questions?