-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
automatic import from ryanb/railscasts-episodes
- Loading branch information
0 parents
commit fc81247
Showing
117 changed files
with
13,649 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Railscasts Episode #182: Cropping Images | ||
|
||
http://railscasts.com/episodes/182 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
tmp/**/* | ||
log/*.log | ||
*.sqlite3 | ||
public/system |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Railscasts episode example application. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# 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.join(File.dirname(__FILE__), 'config', 'boot')) | ||
|
||
require 'rake' | ||
require 'rake/testtask' | ||
require 'rake/rdoctask' | ||
|
||
require 'tasks/rails' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Filters added to this controller apply to all controllers in the application. | ||
# Likewise, all the methods added will be available for all controllers. | ||
|
||
class ApplicationController < ActionController::Base | ||
helper :all # include all helpers, all the time | ||
protect_from_forgery # See ActionController::RequestForgeryProtection for details | ||
|
||
# Scrub sensitive parameters from your log | ||
# filter_parameter_logging :password | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
class UsersController < ApplicationController | ||
def index | ||
@users = User.all | ||
end | ||
|
||
def show | ||
@user = User.find(params[:id]) | ||
end | ||
|
||
def new | ||
@user = User.new | ||
end | ||
|
||
def create | ||
@user = User.new(params[:user]) | ||
if @user.save | ||
if params[:user][:avatar].blank? | ||
flash[:notice] = "Successfully created user." | ||
redirect_to @user | ||
else | ||
render :action => "crop" | ||
end | ||
else | ||
render :action => 'new' | ||
end | ||
end | ||
|
||
def edit | ||
@user = User.find(params[:id]) | ||
end | ||
|
||
def update | ||
@user = User.find(params[:id]) | ||
if @user.update_attributes(params[:user]) | ||
if params[:user][:avatar].blank? | ||
flash[:notice] = "Successfully updated user." | ||
redirect_to @user | ||
else | ||
render :action => "crop" | ||
end | ||
else | ||
render :action => 'edit' | ||
end | ||
end | ||
|
||
def destroy | ||
@user = User.find(params[:id]) | ||
@user.destroy | ||
flash[:notice] = "Successfully destroyed user." | ||
redirect_to users_url | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Methods added to this helper will be available to all templates in the application. | ||
module ApplicationHelper | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# These helper methods can be called in your template to set variables to be used in the layout | ||
# This module should be included in all views globally, | ||
# to do so you may need to add this line to your ApplicationController | ||
# helper :layout | ||
module LayoutHelper | ||
def title(page_title, show_title = true) | ||
@content_for_title = page_title.to_s | ||
@show_title = show_title | ||
end | ||
|
||
def show_title? | ||
@show_title | ||
end | ||
|
||
def stylesheet(*args) | ||
content_for(:head) { stylesheet_link_tag(*args) } | ||
end | ||
|
||
def javascript(*args) | ||
content_for(:head) { javascript_include_tag(*args) } | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
module UsersHelper | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
class User < ActiveRecord::Base | ||
has_attached_file :avatar, :styles => { :small => "100x100#", :large => "500x500>" }, :processors => [:cropper] | ||
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h | ||
after_update :reprocess_avatar, :if => :cropping? | ||
|
||
def cropping? | ||
!crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank? | ||
end | ||
|
||
def avatar_geometry(style = :original) | ||
@geometry ||= {} | ||
@geometry[style] ||= Paperclip::Geometry.from_file(avatar.path(style)) | ||
end | ||
|
||
private | ||
|
||
def reprocess_avatar | ||
avatar.reprocess! | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | ||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
<html> | ||
<head> | ||
<title><%= h(yield(:title) || "Untitled") %></title> | ||
<%= stylesheet_link_tag 'application' %> | ||
<%= javascript_include_tag 'jquery-1.3.2.min' %> | ||
<%= yield(:head) %> | ||
</head> | ||
<body> | ||
<div id="container"> | ||
<%- flash.each do |name, msg| -%> | ||
<%= content_tag :div, msg, :id => "flash_#{name}" %> | ||
<%- end -%> | ||
<%- if show_title? -%> | ||
<h1><%=h yield(:title) %></h1> | ||
<%- end -%> | ||
<%= yield %> | ||
</div> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<% form_for @user, :html => { :multipart => true } do |f| %> | ||
<%= f.error_messages %> | ||
<p> | ||
<%= f.label :name %><br /> | ||
<%= f.text_field :name %> | ||
</p> | ||
<p> | ||
<%= f.label :avatar %><br /> | ||
<%= f.file_field :avatar %> | ||
</p> | ||
<p><%= f.submit "Submit" %></p> | ||
<% end %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<% title "Crop avatar" %> | ||
<% content_for(:head) do %> | ||
<%= stylesheet_link_tag "jquery.Jcrop" %> | ||
<%= javascript_include_tag "jquery.Jcrop.min" %> | ||
<script type="text/javascript" charset="utf-8"> | ||
$(function() { | ||
$('#cropbox').Jcrop({ | ||
onChange: update_crop, | ||
onSelect: update_crop, | ||
setSelect: [0, 0, 500, 500], | ||
aspectRatio: 1 | ||
}); | ||
}); | ||
|
||
function update_crop(coords) { | ||
var rx = 100/coords.w; | ||
var ry = 100/coords.h; | ||
$('#preview').css({ | ||
width: Math.round(rx * <%= @user.avatar_geometry(:large).width %>) + 'px', | ||
height: Math.round(ry * <%= @user.avatar_geometry(:large).height %>) + 'px', | ||
marginLeft: '-' + Math.round(rx * coords.x) + 'px', | ||
marginTop: '-' + Math.round(ry * coords.y) + 'px' | ||
}); | ||
var ratio = <%= @user.avatar_geometry(:original).width %> / <%= @user.avatar_geometry(:large).width %>; | ||
$("#crop_x").val(Math.round(coords.x * ratio)); | ||
$("#crop_y").val(Math.round(coords.y * ratio)); | ||
$("#crop_w").val(Math.round(coords.w * ratio)); | ||
$("#crop_h").val(Math.round(coords.h * ratio)); | ||
} | ||
</script> | ||
<% end %> | ||
<%= image_tag @user.avatar.url(:large), :id => "cropbox" %> | ||
|
||
<h4>Preview:</h4> | ||
<div style="width:100px; height:100px; overflow:hidden"> | ||
<%= image_tag @user.avatar.url(:large), :id => "preview" %> | ||
</div> | ||
|
||
<% form_for @user do |f| %> | ||
<% for attribute in [:crop_x, :crop_y, :crop_w, :crop_h] %> | ||
<%= f.hidden_field attribute, :id => attribute %> | ||
<% end %> | ||
<p><%= f.submit "Crop" %></p> | ||
<% end %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<% title "Edit User" %> | ||
<%= render :partial => 'form' %> | ||
|
||
<p> | ||
<%= link_to "Show", @user %> | | ||
<%= link_to "View All", users_path %> | ||
</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<% title "Users" %> | ||
|
||
<table> | ||
<tr> | ||
<th>Name</th> | ||
</tr> | ||
<% for user in @users %> | ||
<tr> | ||
<td><%=h user.name %></td> | ||
<td><%= link_to "Show", user %></td> | ||
<td><%= link_to "Edit", edit_user_path(user) %></td> | ||
<td><%= link_to "Destroy", user, :confirm => 'Are you sure?', :method => :delete %></td> | ||
</tr> | ||
<% end %> | ||
</table> | ||
|
||
<p><%= link_to "New User", new_user_path %></p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<% title "New User" %> | ||
<%= render :partial => 'form' %> | ||
|
||
<p><%= link_to "Back to List", users_path %></p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<% title "User" %> | ||
|
||
<p> | ||
<strong>Name:</strong> | ||
<%=h @user.name %> | ||
</p> | ||
|
||
<p><%= image_tag @user.avatar.url(:small) %></p> | ||
|
||
<p> | ||
<%= link_to "Edit", edit_user_path(@user) %> | | ||
<%= link_to "Destroy", @user, :confirm => 'Are you sure?', :method => :delete %> | | ||
<%= link_to "View All", users_path %> | ||
</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# Don't change this file! | ||
# Configure your app in config/environment.rb and config/environments/*.rb | ||
|
||
RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) | ||
|
||
module Rails | ||
class << self | ||
def boot! | ||
unless booted? | ||
preinitialize | ||
pick_boot.run | ||
end | ||
end | ||
|
||
def booted? | ||
defined? Rails::Initializer | ||
end | ||
|
||
def pick_boot | ||
(vendor_rails? ? VendorBoot : GemBoot).new | ||
end | ||
|
||
def vendor_rails? | ||
File.exist?("#{RAILS_ROOT}/vendor/rails") | ||
end | ||
|
||
def preinitialize | ||
load(preinitializer_path) if File.exist?(preinitializer_path) | ||
end | ||
|
||
def preinitializer_path | ||
"#{RAILS_ROOT}/config/preinitializer.rb" | ||
end | ||
end | ||
|
||
class Boot | ||
def run | ||
load_initializer | ||
Rails::Initializer.run(:set_load_path) | ||
end | ||
end | ||
|
||
class VendorBoot < Boot | ||
def load_initializer | ||
require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" | ||
Rails::Initializer.run(:install_gem_spec_stubs) | ||
Rails::GemDependency.add_frozen_gem_path | ||
end | ||
end | ||
|
||
class GemBoot < Boot | ||
def load_initializer | ||
self.class.load_rubygems | ||
load_rails_gem | ||
require 'initializer' | ||
end | ||
|
||
def load_rails_gem | ||
if version = self.class.gem_version | ||
gem 'rails', version | ||
else | ||
gem 'rails' | ||
end | ||
rescue Gem::LoadError => load_error | ||
$stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.) | ||
exit 1 | ||
end | ||
|
||
class << self | ||
def rubygems_version | ||
Gem::RubyGemsVersion rescue nil | ||
end | ||
|
||
def gem_version | ||
if defined? RAILS_GEM_VERSION | ||
RAILS_GEM_VERSION | ||
elsif ENV.include?('RAILS_GEM_VERSION') | ||
ENV['RAILS_GEM_VERSION'] | ||
else | ||
parse_gem_version(read_environment_rb) | ||
end | ||
end | ||
|
||
def load_rubygems | ||
min_version = '1.3.2' | ||
require 'rubygems' | ||
unless rubygems_version >= min_version | ||
$stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.) | ||
exit 1 | ||
end | ||
|
||
rescue LoadError | ||
$stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org) | ||
exit 1 | ||
end | ||
|
||
def parse_gem_version(text) | ||
$1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/ | ||
end | ||
|
||
private | ||
def read_environment_rb | ||
File.read("#{RAILS_ROOT}/config/environment.rb") | ||
end | ||
end | ||
end | ||
end | ||
|
||
# All that for this: | ||
Rails.boot! |
Oops, something went wrong.