Created
April 6, 2009 12:57
-
-
Save mnowakowski/90750 to your computer and use it in GitHub Desktop.
rails-template.rb
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
# rails-template.rb | |
# by Marcin Nowakowski (mymanufactory.com) | |
#------------------------- | |
# Plugins and Gems | |
#------------------------- | |
plugin 'rspec', :git => 'git://github.com/dchelimsky/rspec.git' | |
plugin 'rspec-rails', :git => 'git://github.com/dchelimsky/rspec-rails.git' | |
plugin 'exception_notifier', :git => 'git://github.com/rails/exception_notification.git' | |
plugin 'authlogic', :git => 'git://github.com/binarylogic/authlogic.git' | |
plugin 'authlogic_openid', :git => 'git://github.com/binarylogic/authlogic_openid.git' | |
#plugin 'asset_packager', :git => 'http://synthesis.sbecker.net/pages/asset_packager' | |
plugin 'open_id_authentication', :git => 'git://github.com/rails/open_id_authentication.git' | |
#plugin 'role_requirement', :git => 'git://github.com/timcharper/role_requirement.git' | |
#plugin 'restful-authentication', :git => 'git://github.com/technoweenie/restful-authentication.git' | |
plugin 'jrails', :svn => 'http://ennerchi.googlecode.com/svn/trunk/plugins/jrails' | |
#gem 'ruby-openid' | |
#rake("gems:install", :sudo => true) | |
generate("rspec") | |
#------------------------- | |
# Authlogic with OpenID | |
#------------------------- | |
if yes?("Do you want to use Authlogic?") | |
generate("session user_session notifier") | |
generate(:controller, "user_sessions users") | |
#generate(:scaffold, "person name:string") | |
#route "map.resource :account, :controller => 'users'" | |
#route "map.login '/login', :controller => 'user_sessions', :action => 'new'" | |
#route "map.root :controller => 'user_sessions', :action => 'new'" | |
file "config/routes.rb", | |
%q{ActionController::Routing::Routes.draw do |map| | |
map.login '/login', :controller => 'user_sessions', :action => 'new' | |
map.resource :account, :controller => "users" | |
map.resources :users | |
map.resource :user_session | |
map.resource :amnesia, :controller => "password_resets" | |
map.resources :password_resets | |
map.root :controller => "user_sessions", :action => "new" | |
end | |
} | |
# Initial Migration | |
file "db/migrate/20081103171327_create_users.rb", | |
%q{class CreateUsers < ActiveRecord::Migration | |
def self.up | |
create_table :users do |t| | |
t.timestamps | |
t.string :login, :null => false | |
t.string :crypted_password, :null => false | |
t.string :password_salt, :null => false | |
t.string :persistence_token, :null => false | |
t.integer :login_count, :default => 0, :null => false | |
t.datetime :last_request_at | |
t.datetime :last_login_at | |
t.datetime :current_login_at | |
t.string :last_login_ip | |
t.string :current_login_ip | |
end | |
add_index :users, :login | |
add_index :users, :persistence_token | |
add_index :users, :last_request_at | |
end | |
def self.down | |
drop_table :users | |
end | |
end | |
} | |
file "db/migrate/20081106072031_create_sessions.rb", | |
%q{class CreateSessions < ActiveRecord::Migration | |
def self.up | |
create_table :sessions do |t| | |
t.string :session_id, :null => false | |
t.text :data | |
t.timestamps | |
end | |
add_index :sessions, :session_id | |
add_index :sessions, :updated_at | |
end | |
def self.down | |
drop_table :sessions | |
end | |
end | |
} | |
file "db/migrate/20090103190120_add_users_openid_field.rb", | |
%q{class AddUsersOpenidField < ActiveRecord::Migration | |
def self.up | |
add_column :users, :openid_identifier, :string | |
add_index :users, :openid_identifier | |
change_column :users, :login, :string, :default => nil, :null => true | |
change_column :users, :crypted_password, :string, :default => nil, :null => true | |
change_column :users, :password_salt, :string, :default => nil, :null => true | |
end | |
def self.down | |
remove_column :users, :openid_identifier | |
[:login, :crypted_password, :password_salt].each do |field| | |
User.all(:conditions => "#{field} is NULL").each { |user| user.update_attribute(field, "") if user.send(field).nil? } | |
change_column :users, field, :string, :default => "", :null => false | |
end | |
end | |
end | |
} | |
file "db/migrate/20090103190301_create_openid_tables.rb", | |
%q{class CreateOpenidTables < ActiveRecord::Migration | |
def self.up | |
create_table :open_id_authentication_associations, :force => true do |t| | |
t.integer :issued, :lifetime | |
t.string :handle, :assoc_type | |
t.binary :server_url, :secret | |
end | |
create_table :open_id_authentication_nonces, :force => true do |t| | |
t.integer :timestamp, :null => false | |
t.string :server_url, :null => true | |
t.string :salt, :null => false | |
end | |
end | |
def self.down | |
drop_table :open_id_authentication_associations | |
drop_table :open_id_authentication_nonces | |
end | |
end | |
} | |
file "db/migrate/20090103194105_add_users_password_reset_fields.rb", | |
%q{class AddUsersPasswordResetFields < ActiveRecord::Migration | |
def self.up | |
add_column :users, :perishable_token, :string, :default => "", :null => false | |
add_column :users, :email, :string, :default => "", :null => false | |
add_index :users, :perishable_token | |
add_index :users, :email | |
end | |
def self.down | |
remove_column :users, :perishable_token | |
remove_column :users, :email | |
end | |
end | |
} | |
file "db/migrate/20090220131651_add_time_zones_to_user.rb", | |
%q{class AddTimeZonesToUser < ActiveRecord::Migration | |
def self.up | |
add_column :users, :time_zone, :string | |
end | |
def self.down | |
remove_column :users, :time_zone | |
end | |
end | |
} | |
rake "db:migrate" | |
# config for user and session (authlogic) | |
file "app/controllers/application_controller.rb", | |
%q{class ApplicationController < ActionController::Base | |
helper :all | |
helper_method :current_user_session, :current_user | |
filter_parameter_logging :password, :password_confirmation | |
private | |
def current_user_session | |
return @current_user_session if defined?(@current_user_session) | |
@current_user_session = UserSession.find | |
end | |
def current_user | |
return @current_user if defined?(@current_user) | |
@current_user = current_user_session && current_user_session.record | |
end | |
def require_user | |
unless current_user | |
store_location | |
flash[:notice] = "You must be logged in to access this page" | |
redirect_to new_user_session_url | |
return false | |
end | |
end | |
def require_no_user | |
if current_user | |
store_location | |
flash[:notice] = "You must be logged out to access this page" | |
redirect_to account_url | |
return false | |
end | |
end | |
def store_location | |
session[:return_to] = request.request_uri | |
end | |
def redirect_back_or_default(default) | |
redirect_to(session[:return_to] || default) | |
session[:return_to] = nil | |
end | |
end | |
} | |
file "app/controllers/user_sessions_controller.rb", | |
%q{class UserSessionsController < ApplicationController | |
before_filter :require_no_user, :only => [:new, :create] | |
before_filter :require_user, :only => :destroy | |
def new | |
@user_session = UserSession.new | |
end | |
def create | |
@user_session = UserSession.new(params[:user_session]) | |
# We are saving with a block to accomodate for OpenID authentication | |
# If you are not using OpenID you can save without a block: | |
# | |
# if @user_session.save | |
# # ... successful login | |
# else | |
# # ... unsuccessful login | |
# end | |
@user_session.save do |result| | |
if result | |
flash[:notice] = "Login successful!" | |
redirect_back_or_default account_url | |
else | |
render :action => :new | |
end | |
end | |
end | |
def destroy | |
current_user_session.destroy | |
flash[:notice] = "Logout successful!" | |
redirect_back_or_default new_user_session_url | |
end | |
end | |
} | |
file "app/controllers/users_controller.rb", | |
%q{class UsersController < ApplicationController | |
#before_filter :require_no_user, :only => [:new, :create] | |
before_filter :require_user, :only => [:show, :edit, :update] | |
def new | |
@user = User.new | |
end | |
def create | |
@user = User.new(params[:user]) | |
@user.save do |result| | |
if result | |
flash[:notice] = "Account registered!" | |
redirect_back_or_default account_url | |
else | |
render :action => :new | |
end | |
end | |
end | |
def show | |
@user = current_user | |
end | |
def edit | |
@user = current_user | |
end | |
def update | |
@user = current_user # makes our views "cleaner" and more consistent | |
@user.attributes = params[:user] | |
@user.save do |result| | |
if result | |
flash[:notice] = "Account updated!" | |
redirect_to account_url | |
else | |
render :action => :edit | |
end | |
end | |
end | |
end | |
} | |
file "app/models/user.rb", | |
%q{class User < ActiveRecord::Base | |
acts_as_authentic | |
end | |
} | |
file "app/models/user_session.rb", | |
%q{class UserSession < Authlogic::Session::Base | |
logout_on_timeout true | |
end | |
} | |
file "app/models/notifier.rb", | |
%q{class Notifier < ActionMailer::Base | |
default_url_options[:host] = "localhost:3000" | |
def password_reset_instructions(user) | |
subject "Password Reset Instructions" | |
from "Notifier <your_email@your_doamin.com>" | |
recipients user.email | |
sent_on Time.now | |
body :edit_password_reset_url => edit_password_reset_url(user.perishable_token) | |
end | |
end | |
} | |
#layout for authlogic | |
file "public/javascripts/sessions_new.js", | |
%q{$(document).ready(function() { | |
//$.cookie('openid_login', null); | |
function clearIt(){ | |
$('#password').val(""); | |
$('#login').val(""); | |
$('#openid_url').val(""); | |
} | |
var openid_cookie = $.cookie('openid_login'); | |
if (openid_cookie != 'true'){ | |
$("#openidform").hide(); | |
$("#hideopenid").hide(); | |
$("#showopenid").show(); | |
$("#regularform,").show(); | |
} else { | |
$("#openidform").show(); | |
$("#hideopenid").show(); | |
$("#showopenid").hide(); | |
$("#regularform,").hide(); | |
} | |
$("#showopenid").click(function() { | |
$(this).hide(); | |
$("#hideopenid").show(); | |
$("#regularform").slideUp("slow", function(){ | |
$('#openidform').slideDown('slow'); | |
}); | |
clearIt(); | |
$.cookie('openid_login', 'true', { path: '/', expires: 365 }); | |
}); | |
$("#hideopenid").click(function() { | |
$(this).hide(); | |
$("#showopenid").show(); | |
$("#openidform").slideUp("slow", function(){ | |
$('#regularform').slideDown('slow'); | |
}); | |
clearIt(); | |
$.cookie('openid_login', 'false', { path: '/', expires: 365 }); | |
}); | |
}); | |
} | |
file "app/views/user_sessions/new.html.erb", | |
%q{<% content_for :javascript do %> | |
<%= javascript_include_tag "user_sessions_new" %> | |
<% end %> | |
<% form_for @user_session, :url => user_session_path do |f| %> | |
<fieldset> | |
<%= f.error_messages %> | |
<ol id='regularform'> | |
<li> | |
<%= f.label :login %> <a href="javascript:void(0);" title="OpenID" id="showopenid" style="display:none;" class='small'>login using OpenID</a> | |
<%= f.text_field :login, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= f.label :password %> <%= link_to "forgot?", amnesia_path, :class => 'small' %> | |
<%= f.password_field :password, :class => 'default-field' %> | |
</li> | |
</ol> | |
<ol id='openidform'> | |
<li> | |
<%= f.label :openid_identifier %> <a href="javascript:void(0);" id="hideopenid" style="display:none;" class='small'>login using standard user name / password</a> | |
<%= f.text_field :openid_identifier, :class => 'default-field' %> | |
</li> | |
</ol> | |
<ol class='last'> | |
<li> | |
<%= f.check_box :remember_me, :class => 'default-checkbox' %><%= f.label :remember_me %> | |
</li> | |
</ol> | |
<%= f.submit "Login", :class => 'default-btn' %> <%= link_to "Register", new_account_path %> | |
</fieldset> | |
<% end %> | |
} | |
file "app/views/notifier/password_reset_instructions.erb", | |
%q{A request to reset your password has been made. | |
If you did not make this request, simply ignore this email. | |
If you did make this request just click the link below: | |
<%= @edit_password_reset_url %> | |
If the above URL does not work try copying and pasting it into your browser. | |
If you continue to have problem please feel free to contact us. | |
} | |
file "app/views/users/new.html.erb", | |
%q{<% form_for @user, :url => account_path do |f| %> | |
<fieldset> | |
<%= f.error_messages %> | |
<%= render :partial => 'form', :object => f, :locals => {:form => f, :btn_name => 'Register', :cancel_name => 'Cancel', :cancel_path => root_path} %> | |
</fieldset> | |
<div class="required">*) required fields</div> | |
<% end %> | |
} | |
file "app/views/users/edit.html.erb", | |
%q{<% form_for @user, :url => account_path do |f| %> | |
<fieldset> | |
<%= f.error_messages %> | |
<%= render :partial => 'form', :object => f, :locals => {:form => f, :btn_name => 'Update', :cancel_name => 'Cancel', :cancel_path => root_path} %> | |
</fieldset> | |
<% end %> | |
<br /><%= link_to "My Profile", account_path %> | |
} | |
file "app/views/users/show.html.erb", | |
%q{<p>Login <%= @user.login %></p> | |
<p>Login count <%= @user.login_count %></p> | |
<p>Login request at <%= @user.last_request_at %></p> | |
<p>Last login at <%= @user.last_login_at %></p> | |
<p>Current login at <%= @user.current_login_at %></p> | |
<p>Last logni ip <%= @user.last_login_ip %></p> | |
<p>Current login ip <%= @user.current_login_ip %></p> | |
<p>Email <%= @user.email %></p> | |
<p>OpenId URL <%= @user.openid_identifier %></p> | |
<p>Time zone <%= @user.time_zone %></p> | |
<p><%= link_to 'Edit', edit_account_path %></p> | |
} | |
file "app/views/users/_form.erb", | |
%q{<ol class="last"> | |
<li> | |
<%= form.label :login %><sup class="required-star">*</sup> | |
<%= form.text_field :login, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= form.label :password, form.object.new_record? ? nil : "Change password" %><% if form.object.new_record? %><sup class="required-star">*</sup><% end %> | |
<%= form.password_field :password, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= form.label :password_confirmation %> | |
<%= form.password_field :password_confirmation, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= form.label :openid_identifier %> | |
<%= form.text_field :openid_identifier, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= form.label :email %><sup class="required-star">*</sup> | |
<%= form.text_field :email, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= form.label :time_zone %><br /> | |
<%= form.time_zone_select :time_zone %> | |
</li> | |
</ol> | |
<ol class="buttons"> | |
<li><%= form.submit btn_name, :class => 'default-btn' %></li> | |
<li><%= link_to cancel_name, cancel_path %></li> | |
</ol> | |
} | |
file "app/views/password_resets/edit.html.erb", | |
%q{<% form_for @user, :url => password_reset_path, :method => :put do |f| %> | |
<fieldset> | |
<%= f.error_messages %> | |
<ol class="last"> | |
<li> | |
<%= f.label :password %> | |
<%= f.password_field :password, :class => 'default-field' %> | |
</li> | |
<li> | |
<%= f.label :password_confirmation %> | |
<%= f.password_field :password_confirmation, :class => 'default-field' %> | |
</li> | |
</ol> | |
<ol class="buttons"> | |
<li><%= f.submit "Update my password and log me in", :class => 'default-btn' %></li> | |
</ol> | |
</fieldset> | |
<% end %> | |
} | |
file "app/views/password_resets/new.html.erb", | |
%q{<p>Fill out the form below and instructions to reset your password will be emailed to you:</p> | |
<% form_tag password_resets_path do %> | |
<fieldset> | |
<ol class="last"> | |
<li> | |
<label>Email:</label> | |
<%= text_field_tag "email", nil, :class => 'default-field' %> | |
</li> | |
</ol> | |
<ol class="buttons"> | |
<li><%= submit_tag "Reset my password",:class => 'default-btn' %></li> | |
<li><%= link_to "Cancel", root_path %></li> | |
</ol> | |
</fieldset> | |
<% end %> | |
} | |
end | |
file "app/views/layouts/application.html.erb", | |
%q{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
<head> | |
<title>App Name</title> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<meta name="description" content="App Name app" /> | |
<meta name="keywords" content="App Name" /> | |
<%= stylesheet_link_tag 'application' %> | |
<%= javascript_include_tag :defaults %> | |
<%= javascript_include_tag 'jquery.cookie.js', 'jquery.tablehover.min.js' %> | |
<%= yield :javascript %> | |
</head> | |
<body> | |
<div id="content"> | |
<div id="top"> | |
<p><a href="#">John Smith</a> · <a href="#">Logout</a></p> | |
</div> | |
<div id="logo"> | |
<h1><a href="#">App Name</a></h1> | |
<p>sub name or slogan</p> | |
</div> | |
<div id="navcontainer"> | |
<ul id="navlist"> | |
<li id="active"><a href="#" id="current">Dashboard</a></li> | |
<li><a href="#">Profile</a></li> | |
</ul> | |
</div> | |
<div id="main"> | |
<h2><a href="#">Aliquam metus turpis, luctus ac, sagittis eget h2</a></h2> | |
<p>Suspendisse egestas fringilla odio. Donec lacinia tristique ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam blandit ultricies nisl. Nullam dapibus, mauris id scelerisque feugiat, sapien augue porta ipsum, ut blandit tellus enim vel mauris. <a href="#">Praesent</a> accumsan metus vel ipsum. Maecenas aliquam blandit mi. Pellentesque dolor magna, posuere vel, condimentum id, accumsan ac, diam. Phasellus vel leo. Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis cursus mi ligula vitae nunc. Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis cursus mi ligula vitae nunc. Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis cursus mi ligula vitae nunc.</p> | |
<h3>Etiam blandit ultricies nisl h3</h3> | |
<p>Suspendisse egestas fringilla odio. Donec lacinia tristique ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam blandit ultricies nisl. Nullam dapibus, mauris id scelerisque feugiat, sapien augue porta ipsum, ut blandit tellus enim vel mauris. <a href="#">Praesent</a> accumsan metus vel ipsum. Maecenas aliquam blandit mi. Pellentesque dolor magna, posuere vel, condimentum id, accumsan ac, diam. Phasellus vel leo. Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis cursus mi ligula vitae nunc. Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis cursus mi ligula vitae nunc. Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis cursus mi ligula vitae nunc.</p> | |
<h2>Login</h2> | |
<div class="positive_notice">Positive <a href='#'>notice</a></div> | |
<div class="neutral_notice">Neutral <a href='#'>notice</a></div> | |
<div class="negative_notice">Negative <a href='#'>notice</a></div> | |
<%= yield %> | |
<table class="basetable" cellpadding="0" cellspacing="0"> | |
<tr> | |
<th>Project name</th> | |
<th>Company</th> | |
<th>Costs</th> | |
</tr> | |
<tr> | |
<td class="blue">Layout (re-design)</td> | |
<td class="blue">Builtit</td> | |
<td class="blue">1000.0</td> | |
<td class="yellow"><a href="#">Show</a></td> | |
<td class="yellow"><a href="#">Edit</a></td> | |
<td class="yellow"><a href="#">Destroy</a></td> | |
</tr> | |
<tr> | |
<td class="blue">Web CMS</td> | |
<td class="blue">Dropit</td> | |
<td class="blue">200.0</td> | |
<td class="yellow"><a href="#">Show</a></td> | |
<td class="yellow"><a href="#">Edit</a></td> | |
<td class="yellow"><a href="#">Destroy</a></td> | |
</tr> | |
</table> | |
</div> | |
<div id="main-right"> | |
<div id="adv"> | |
<p>Advertising</p> | |
</div> | |
<div id="shortnews"> | |
<div class="news"> | |
<h3><a href="#">Suspendisse odio orci</a></h3> | |
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pretium mauris nec arcu.</p> | |
</div> | |
<h3><a href="#">Nam tortor libero, dictum porta</a></h3> | |
<p>Aliquam lacus massa, pellentesque sit amet, feugiat et, cursus volutpat, massa. Integer nibh. Maecenas mattis ipsum a felis.</p> | |
<div class="important important-green"> | |
<h3><a href="#">Nam tortor libero, dictum porta</a></h3> | |
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pretium mauris nec arcu. Integer at leo vel ipsum elementum sodales. Nam est quam, posuere non, feugiat nec, consectetuer ac, lectus. Aenean faucibus. Suspendisse euismod, leo ut pretium ornare, libero arcu malesuada ipsum, at convallis pede augue at arcu. Aliquam lacus massa, pellentesque sit amet, feugiat et, cursus volutpat, massa.</p> | |
</div> | |
<div class="important important-blue"> | |
<h3><a href="#">Nam tortor libero, dictum porta</a></h3> | |
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pretium mauris nec arcu. Integer at leo vel ipsum elementum sodales. Nam est quam, posuere non, feugiat nec, consectetuer ac, lectus. Aenean faucibus. Suspendisse euismod, leo ut pretium ornare, libero arcu malesuada ipsum, at convallis pede augue at arcu. Aliquam lacus massa, pellentesque sit amet, feugiat et, cursus volutpat, massa.</p> | |
</div> | |
</div> | |
</div> | |
<div id="line"></div> | |
<div id="left"> | |
<h3>Previous Articles</h3> | |
<ul> | |
<li><a href="#">Lorem ipsum dolor</a></li> | |
<li><a href="#">Lorem ipsum dolor</a></li> | |
<li><a href="#">Aenean velit nisl, hendrerit eget, rutrum quis, lobortis nec, libero. Nulla venenatis, turpis eu vestibulum tincidunt, felis diam luctus velit, facilisis</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
</ul> | |
</div> | |
<div id="right"> | |
<div id="rl"> | |
<ul> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
</ul> | |
</div> | |
<div id="rr"> | |
<ul> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
<li><a href="#">Lorem ipsum dolor sit amet, consectetuer</a></li> | |
</ul> | |
</div> | |
<p class="border">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pretium mauris nec arcu. Integer at leo vel ipsum elementum sodales. Nam est quam, posuere non, feugiat nec, consectetuer ac, lectus. Aenean faucibus. Suspendisse euismod, leo ut pretium ornare, libero arcu malesuada ipsum, at convallis pede augue at arcu. Aliquam lacus massa, pellentesque sit amet, feugiat et, cursus volutpat, massa.</p> | |
</div> | |
<div id="footer"> | |
<div id="fl"> | |
<p>© Copyright <a href="http://www.mymanufactory.com/">mymanufactory.com</a> · Created by <a href="http://www.mymanufactory.com/">newman</a></p> | |
</div> | |
<div id="fr"> | |
<h4>MyManufactory RSS</h4> | |
<ul> | |
<li><a href="http://www.mymanufactory.com/2009/1/16/zmiany">Zmiany...</a></li> | |
<li><a href="http://www.mymanufactory.com/2009/1/1/merb-is-rails-rails-is-merb">Merb is Rails, Rails is Merb</a></li> | |
</ul> | |
</div> | |
</div> | |
</div> | |
</body> | |
</html> | |
} | |
# Update jrails to newest jquery | |
run "curl -L http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js > public/javascripts/jquery.js" | |
# Extra jQuery plugins | |
run "touch public/javascripts/jquery.cookie.js public/javascripts/jquery.tablehover.min.js" | |
run "curl -L http://plugins.jquery.com/files/jquery.cookie.js.txt > public/javascripts/jquery.cookie.js" | |
run "curl -L http://123.rentoni.com/javascripts/jquery.tablehover.min.js > public/javascripts/jquery.tablehover.min.js" | |
#------------------------- | |
# CSS | |
#------------------------- | |
run "touch public/stylesheets/application.css" | |
run "curl -L http://public.mymanufactory.com/projects/css-template/style.css > public/stylesheets/application.css" | |
#------------------------- | |
# Remove unnecessary files | |
#------------------------- | |
run 'rm public/index.html' | |
#------------------------- | |
# SUCCESS! | |
#------------------------- | |
puts "SUCCESS!" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment