-
-
Save kastner/98790 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
testapp |
This file contains hidden or 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
def remote_file(path) | |
run "wget http://static.railstips.org/template/#{path} -qO- > #{path}" | |
end | |
def uncomment_line(file, line) | |
gsub_file file, /#\s*#{Regexp.escape(line)}/, line | |
end | |
def append_to_class(file, contents) | |
log file, contents | |
gsub_file file, /^end$/, "#{contents}\nend" | |
end | |
app_domain = ask('What is the eventual domain for this app?') | |
rake "db:drop", :env => :development | |
rake "db:drop", :env => :test | |
rake "db:create", :env => :development | |
rake "db:create", :env => :test | |
run "echo TODO > README" | |
run "rm public/index.html" | |
run "rm public/images/rails.png" | |
run "rm public/robots.txt" | |
run "rm public/javascripts/controls.js" | |
run "rm public/javascripts/dragdrop.js" | |
run "rm public/javascripts/effects.js" | |
run "rm public/javascripts/prototype.js" | |
gem "thoughtbot-clearance", :lib => 'clearance', :source => 'http://gems.github.com' | |
gem 'mislav-will_paginate', :lib => 'will_paginate', :source => 'http://gems.github.com' | |
gem 'RedCloth', :lib => 'redcloth' | |
gem 'gravatar' | |
generate('clearance') | |
generate('migration', 'add_display_name_and_bio_and_url_and_admin_to_users display_name:string url:string bio:text admin:boolean') | |
generate('controller', 'home index') | |
route("map.root :controller => 'home'") | |
# Add some test gems | |
environment %q(config.gem "thoughtbot-shoulda', :lib => 'shoulda', :source => "http://gems.github.com"), :env => :test | |
environment %q(config.gem 'thoughtbot-factory_girl', :lib => 'factory_girl', :source => "http://gems.github.com"), :env => :test | |
environment %q(config.gem 'thoughtbot-quietbacktrace', :lib => 'quietbacktrace', :source => "http://gems.github.com"), :env => :test | |
environment %q(config.gem 'mocha'), :env => :test | |
# Tell paperclip where to find my imagemagick install | |
environment %q(Paperclip.options[:image_magick_path] = "/opt/local/bin"), :env => :development | |
# Add HOST to environments for clearance | |
environment %q(HOST = 'localhost'), :env => :development | |
environment %q(HOST = 'localhost'), :env => :test | |
environment %Q(HOST = '#{app_domain}), :env => :production | |
environment %Q(DO_NOT_REPLY = "do-not-reply@#{app_domain}") | |
plugin 'paperclip', :git => 'git://github.com/thoughtbot/paperclip.git' | |
plugin 'user_stamp', :git => 'git://github.com/jnunemaker/user_stamp.git' | |
plugin 'common_helpers', :git => 'git://github.com/jnunemaker/common_helpers.git' | |
plugin 'acts_as_enumeration', :git => 'git://github.com/pluginaweek/acts_as_enumeration.git' | |
# Filter parameter logging | |
uncomment_line File.join('app', 'controllers', 'application_controller.rb'), | |
'filter_parameter_logging :password, :password_confirmation' | |
remote_file "app/helpers/application_helper.rb" | |
remote_file "app/views/layouts/application.html.erb" | |
remote_file "app/views/passwords/new.html.erb" | |
remote_file "app/views/passwords/edit.html.erb" | |
remote_file "app/views/sessions/new.html.erb" | |
remote_file "app/views/users/_form.html.erb" | |
remote_file "app/views/users/new.html.erb" | |
remote_file "app/views/users/edit.html.erb" | |
remote_file "public/javascripts/application.js" | |
remote_file "public/stylesheets/common.css" | |
remote_file "public/javascripts/jquery.cookie.js" | |
remote_file "public/javascripts/jquery.form.js" | |
remote_file "public/javascripts/jquery.js" | |
run "cp config/database.yml config/database.yml.sample" | |
file ".gitignore", <<-END | |
.DS_Store | |
log/*.log | |
tmp/**/* | |
config/database.yml | |
db/*.sqlite3 | |
END | |
file 'public/stylesheets/application.css', '' | |
rake "db:migrate" | |
rake "db:test:prepare" | |
run 'annotate' | |
append_to_class File.join('app', 'models', 'user.rb'), %q( | |
attr_accessible :display_name, :bio, :url | |
validates_presence_of :display_name | |
validates_uniqueness_of :display_name, :case_sensitive => false | |
validates_length_of :display_name, :within => 1..100 | |
def url=(new_url) | |
write_attribute :url, new_url.gsub(/^http\:(\/){0,}/i, '') | |
end | |
def full_url | |
"http://#{url}" if url.present? | |
end | |
def gravatar_url(options={}) | |
@gravatar ||= Gravatar.new(email, {:size => 50}.merge(options)).to_s | |
end) | |
append_to_class File.join('test', 'unit', 'user_test.rb'), %q( | |
should_validate_presence_of :display_name | |
should_validate_uniqueness_of :display_name, :case_sensitive => false | |
should_ensure_length_in_range :display_name, 1..100 | |
should_allow_mass_assignment_of :display_name | |
should_allow_mass_assignment_of :email | |
should_allow_mass_assignment_of :bio | |
should_allow_mass_assignment_of :url | |
should_not_allow_mass_assignment_of :admin | |
should "ensure url does not have http://" do | |
User.new(:url => 'foobar.com').url.should == 'foobar.com' | |
User.new(:url => 'http:foobar.com').url.should == 'foobar.com' | |
User.new(:url => 'http:/foobar.com').url.should == 'foobar.com' | |
User.new(:url => 'http://foobar.com').url.should == 'foobar.com' | |
User.new(:url => 'http:///foobar.com').url.should == 'foobar.com' | |
end | |
should "have full url" do | |
User.new(:url => 'foobar.com').full_url.should == 'http://foobar.com' | |
User.new.full_url.should be(nil) | |
end | |
should "have a gravatar_url" do | |
user = Factory(:user, :email => '[email protected]') | |
user.gravatar_url.should include('http://gravatar.com/avatar.php?gravatar_id=') | |
end) | |
git :init | |
git :add => "." | |
git :commit => "-a -m 'Initial commit'" |
This file contains hidden or 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
#!/bin/bash | |
rm -rf testapp && rails testapp -m template.rb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment