Skip to content

Commit

Permalink
fixing episode 196 and adding episode 344
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanb committed Apr 19, 2012
1 parent 5949a38 commit aa2b63f
Show file tree
Hide file tree
Showing 274 changed files with 2,190 additions and 0 deletions.
File renamed without changes.
38 changes: 38 additions & 0 deletions episode-196/revised/questionnaire-after/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
source 'https://rubygems.org'

gem 'rails', '3.2.3'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platform => :ruby

gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
111 changes: 111 additions & 0 deletions episode-196/revised/questionnaire-after/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
GEM
remote: https://rubygems.org/
specs:
actionmailer (3.2.3)
actionpack (= 3.2.3)
mail (~> 2.4.4)
actionpack (3.2.3)
activemodel (= 3.2.3)
activesupport (= 3.2.3)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.1)
rack (~> 1.4.0)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.1.2)
activemodel (3.2.3)
activesupport (= 3.2.3)
builder (~> 3.0.0)
activerecord (3.2.3)
activemodel (= 3.2.3)
activesupport (= 3.2.3)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.3)
activemodel (= 3.2.3)
activesupport (= 3.2.3)
activesupport (3.2.3)
i18n (~> 0.6)
multi_json (~> 1.0)
arel (3.0.2)
builder (3.0.0)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.3.1)
erubis (2.7.0)
execjs (1.3.0)
multi_json (~> 1.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.3)
jquery-rails (2.0.2)
railties (>= 3.2.0, < 5.0)
thor (~> 0.14)
json (1.6.6)
mail (2.4.4)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.18)
multi_json (1.3.2)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack (>= 0.4)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
rack (>= 1.0)
rails (3.2.3)
actionmailer (= 3.2.3)
actionpack (= 3.2.3)
activerecord (= 3.2.3)
activeresource (= 3.2.3)
activesupport (= 3.2.3)
bundler (~> 1.0)
railties (= 3.2.3)
railties (3.2.3)
actionpack (= 3.2.3)
activesupport (= 3.2.3)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2.2)
rdoc (3.12)
json (~> 1.4)
sass (3.1.15)
sass-rails (3.2.5)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.6)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.33)
uglifier (1.2.4)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)

PLATFORMS
ruby

DEPENDENCIES
coffee-rails (~> 3.2.1)
jquery-rails
rails (= 3.2.3)
sass-rails (~> 3.2.3)
sqlite3
uglifier (>= 1.0.3)
9 changes: 9 additions & 0 deletions episode-196/revised/questionnaire-after/README.rdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
= RailsCasts Example Application

Run these commands to try it out.

bundle
rake db:setup
rails s

Requires Ruby 1.9.2 or later to run.
7 changes: 7 additions & 0 deletions episode-196/revised/questionnaire-after/Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)

Questionnaire::Application.load_tasks
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
jQuery ->
$('form').on 'click', '.remove_fields', (event) ->
$(this).prev('input[type=hidden]').val('1')
$(this).closest('fieldset').hide()
event.preventDefault()

$('form').on 'click', '.add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('id'), 'g')
$(this).before($(this).data('fields').replace(regexp, time))
event.preventDefault()
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*
*= require_self
*= require_tree .
*/

html, body {
background-color: #4B7399;
font-family: Verdana, Helvetica, Arial;
font-size: 14px;
}

a img {
border: none;
}

a {
color: #0000FF;
}

.clear {
clear: both;
height: 0;
overflow: hidden;
}

#container {
width: 75%;
margin: 0 auto;
background-color: #FFF;
padding: 20px 40px;
border: solid 1px black;
margin-top: 20px;
}

#flash_notice, #flash_error, #flash_alert {
padding: 5px 8px;
margin: 10px 0;
}

#flash_notice {
background-color: #CFC;
border: solid 1px #6C6;
}

#flash_error, #flash_alert {
background-color: #FCC;
border: solid 1px #C66;
}

.field_with_errors {
display: inline;
}

.error_messages {
width: 400px;
border: 2px solid #CF0000;
padding: 0px;
padding-bottom: 12px;
margin-bottom: 20px;
background-color: #f0f0f0;
font-size: 12px;
}

.error_messages h2 {
text-align: left;
font-weight: bold;
padding: 5px 10px;
font-size: 12px;
margin: 0;
background-color: #c00;
color: #fff;
}

.error_messages p {
margin: 8px 10px;
}

.error_messages ul {
margin-bottom: 0;
}

form .field, form .actions {
margin: 12px 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Place all the styles related to the surveys controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
.article {
h2 {
font-size: 18px;
margin-top: 20px;
margin-bottom: 3px;
}
}

.questions {
list-style: none;
font-weight: bold;
margin: 0;
padding: 0;
> li {
margin: 20px 0;
padding: 0;
}
}

.answers {
list-style: upper-alpha;
font-weight: normal;
margin: 0;
padding: 0;
> li {
margin: 5px 0;
margin-left: 25px;
}
}

form > fieldset {
border: none;
border: solid 1px #CCC;
padding: 10px 15px;
margin: 15px 0;
fieldset {
border: none;
margin: 0;
margin: 10px 0;
padding: 0;
}
}

textarea {
height: 40px;
width: 350px;
margin-top: 3px;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
class SurveysController < ApplicationController
def index
@surveys = Survey.all
end

def show
@survey = Survey.find(params[:id])
end

def new
@survey = Survey.new
end

def create
@survey = Survey.new(params[:survey])
if @survey.save
redirect_to @survey, notice: "Successfully created survey."
else
render :new
end
end

def edit
@survey = Survey.find(params[:id])
end

def update
@survey = Survey.find(params[:id])
if @survey.update_attributes(params[:survey])
redirect_to @survey, notice: "Successfully updated survey."
else
render :edit
end
end

def destroy
@survey = Survey.find(params[:id])
@survey.destroy
redirect_to surveys_url, notice: "Successfully destroyed survey."
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module ApplicationHelper
def link_to_add_fields(name, f, association)
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |builder|
render(association.to_s.singularize + "_fields", f: builder)
end
link_to(name, '#', class: "add_fields", data: {id: id, fields: fields.gsub("\n", "")})
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
module SurveysHelper
end
4 changes: 4 additions & 0 deletions episode-196/revised/questionnaire-after/app/models/answer.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class Answer < ActiveRecord::Base
attr_accessible :content, :question_id
belongs_to :question
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class Question < ActiveRecord::Base
attr_accessible :content, :survey_id, :answers_attributes
belongs_to :survey
has_many :answers
accepts_nested_attributes_for :answers, allow_destroy: true
end
Loading

0 comments on commit aa2b63f

Please sign in to comment.