Thursday, 5 January 2012

Creating a Rails Application from Scratch

  1. Navigate to base Rails applications folder and execute:
    • rails new newAppName -T
      • The -T prevents rails generating Test::Unit files - we'll use RSpec
  2. Copy/create three required files from a base application:
    • .autotest
    • require 'autotest/growl' # enable pop-up windows
      require 'autotest/restart' # optional: forces autotest to pick the changes to this file
      require 'autotest/timestamp' # optional: shows timestamps for test runs
      require 'win32console'
      #prevent triggering when certain files modified
      Autotest.add_hook :initialize do |at|
      %w{.svn .hg .git vendor public log .idea .komodoproject .komodotools}.each {|exception| at.add_exception(exception)}
      end
      # do not clear console before running tests
      Autotest::Growl::clear_terminal = false
      view raw .autotest hosted with ❤ by GitHub
    • .gitignore
    • .bundle
      db/*.sqlite3
      log/*.log
      tmp/
      .sass-cache/
      *.log
      view raw .gitignore hosted with ❤ by GitHub
    • Gemfile
    • source 'http://rubygems.org'
      gem 'rails'
      group :development do
      gem 'sqlite3'
      gem 'rspec-rails','2.6.1'
      #annotate gem commented out as breaks deployment to Heroku. Uncomment and bundle install to use.
      #gem 'annotate',
      # :git => "git://github.com/jeremyolliver/annotate_models.git",
      # :branch => 'rake_compatibility'
      gem 'taps'
      gem 'heroku'
      gem 'therubyracer', :platform => :ruby #required for Rails 3
      end
      group :test do
      gem 'rspec-rails','2.6.1'
      gem 'webrat', '0.7.1'
      gem 'spork', '0.9.0.rc9'
      gem 'autotest' #4.4.6 or 4.2.10
      gem 'autotest-growl' #0.2.16 or 0.2.4
      gem 'autotest-rails','4.1.0'
      gem 'win32console'
      gem 'factory_girl_rails', '1.0'
      end
      group :production do
      gem 'pg'
      gem 'thin'
      end
      # Gems used only for assets and not required
      # in production environments by default.
      group :assets do
      gem 'sass-rails', '~> 3.1.4'
      gem 'coffee-rails', '~> 3.1.1'
      gem 'uglifier', '>= 1.0.3'
      end
      gem 'jquery-rails'
      # To use ActiveModel has_secure_password
      # gem 'bcrypt-ruby', '~> 3.0.0'
      # Use unicorn as the web server
      # gem 'unicorn'
      # Deploy with Capistrano
      # gem 'capistrano'
      # To use debugger
      # gem 'ruby-debug19', :require => 'ruby-debug'
      view raw Gemfile hosted with ❤ by GitHub
  3. Install new gems with:
    • bundle install
  4. Generate files required by RSpec:
    • rails generate rspec:install
  5. Add switches to .rspec:
    • --colour
    • --drb
  6. Bootstrap Spork:
    • bundle exec spork --bootstrap
  7. Initialise the Git repository:
    • git init
    • git add .
    • git commit -m "Initial Commit"
  8. Update the application README contents, then change to use the markdown extension:
    • git mv README README.markdown
    • git commit -a -m "Improved the README"
Optional:
  1. Create remote repo - on GitHub, Unfuddle, etc. Push code to remote repo regularly.
  2. Deploy app to Heroku:
    • git push heroku master

No comments:

Post a Comment

Please leave a comment if you find this blog helpful or interesting! I'd love to hear from you!