Skip to content

Instantly share code, notes, and snippets.

@ericluo
Forked from davidrichards/tpl-basicapp.rb
Created June 4, 2011 13:28
Show Gist options
  • Select an option

  • Save ericluo/1007904 to your computer and use it in GitHub Desktop.

Select an option

Save ericluo/1007904 to your computer and use it in GitHub Desktop.

Revisions

  1. David Richards revised this gist May 25, 2011. 1 changed file with 45 additions and 42 deletions.
    87 changes: 45 additions & 42 deletions tpl-basicapp.rb
    Original file line number Diff line number Diff line change
    @@ -81,47 +81,47 @@
    route routes

    ## Login files
    signin = <<-SIGNIN
    <h2>Login</h2>
    <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
    <%= f.inputs do %>
    <%= f.input :email, :as => :email %>
    <%= f.input :password, :as => :password %>
    <% if devise_mapping.rememberable? -%>
    <%= f.input :remember_me, :as => :boolean %>
    <% end -%>
    <% end %>
    <%= f.buttons do %>
    <%= f.commit_button "Login" %>
    <% end %>
    <% end %>
    <%= render :partial => "devise/shared/links" %>
    SIGNIN

    remove_file "app/views/devise/sessions/new.html.erb"
    create_file "app/views/devise/sessions/new.html.erb", signin

    signup = <<-SIGNUP
    <h2>Signup</h2>
    <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>
    <%= f.inputs do %>
    <%= f.input :email, :as => :email %>
    <%= f.input :password, :as => :password %>
    <% end %>
    <%= f.buttons do %>
    <%= f.commit_button "Signup" %>
    <% end %>
    <% end %>
    <%= render :partial => "devise/shared/links" %>
    SIGNUP

    remove_file "app/views/devise/registrations/new.html.erb"
    create_file "app/views/devise/registrations/new.html.erb", signup
    # signin = <<-SIGNIN
    # <h2>Login</h2>
    #
    # <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
    # <%= f.inputs do %>
    # <%= f.input :email, :as => :email %>
    # <%= f.input :password, :as => :password %>
    # <% if devise_mapping.rememberable? -%>
    # <%= f.input :remember_me, :as => :boolean %>
    # <% end -%>
    # <% end %>
    # <%= f.buttons do %>
    # <%= f.commit_button "Login" %>
    # <% end %>
    # <% end %>
    #
    # <%= render :partial => "devise/shared/links" %>
    # SIGNIN
    #
    # remove_file "app/views/devise/sessions/new.html.erb"
    # create_file "app/views/devise/sessions/new.html.erb", signin

    # signup = <<-SIGNUP
    # <h2>Signup</h2>
    #
    # <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    # <%= devise_error_messages! %>
    # <%= f.inputs do %>
    # <%= f.input :email, :as => :email %>
    # <%= f.input :password, :as => :password %>
    # <% end %>
    # <%= f.buttons do %>
    # <%= f.commit_button "Signup" %>
    # <% end %>
    # <% end %>
    #
    # <%= render :partial => "devise/shared/links" %>
    # SIGNUP
    #
    # remove_file "app/views/devise/registrations/new.html.erb"
    # create_file "app/views/devise/registrations/new.html.erb", signup

    # Clear the default index
    remove_file "public/index.html"
    @@ -170,7 +170,7 @@
    %li= link_to "Login", login_url
    %li= link_to "Signup", signup_url
    - else
    %li= current_user.name
    %li= current_user.email
    %li= link_to "Logout", logout_url
    %h1 #{app_name.humanize}
    .bd
    @@ -221,6 +221,9 @@
    ASSETS

    remove_file "config/assets.yml"
    create_file "config/assets.yml", assets

    ## Git

    gitignore = <<-END
  2. David Richards revised this gist May 25, 2011. 1 changed file with 50 additions and 3 deletions.
    53 changes: 50 additions & 3 deletions tpl-basicapp.rb
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,6 @@
    ## Created on 10/23/10
    ## Updated on 5/25/11 to simplify for my own use
    ## Run using $ rails new [appname] -JT -m tpl-basicapp.rb
    ## WIP: give me a few hours before using this (5/25/11 12:00 Pacific)

    ## Gems

    @@ -30,7 +29,7 @@
    gem 'rails3-generators', '0.17.4', :group => [:development]

    # all
    gem 'sqlite3'
    gem "jammit"

    ## Generators

    @@ -63,6 +62,14 @@
    generate "devise:views"
    generate "devise User"

    # Setup a basic Welcome Controller as the default route
    generate "controller Welcome index"
    inject_into_file('config/routes.rb', :after => %[root :to => "welcome#index"]) do
    %q{
    root :to => "welcome#index"
    }
    end

    ## Devise routes
    routes = <<-ROUTES
    devise_scope :user do
    @@ -153,7 +160,6 @@
    %html
    %head
    %title #{app_name.humanize}
    = stylesheet_link_tag "http://yui.yahooapis.com/2.8.0r4/build/reset-fonts-grids/reset-fonts-grids.css"
    = stylesheet_link_tag :all
    = javascript_include_tag :defaults
    = csrf_meta_tag
    @@ -174,6 +180,47 @@
    remove_file "app/views/layouts/application.html.erb"
    create_file "app/views/layouts/application.html.haml", layout

    ## Backbone Directory Structure
    empty_directory "public/javascripts/vendor"
    empty_directory "public/javascripts/models"
    empty_directory "public/javascripts/collections"
    empty_directory "public/javascripts/controllers"
    empty_directory "public/javascripts/views"

    # Javascript Assets
    get "http://documentcloud.github.com/underscore/underscore-min.js", "public/javascripts/vendor/underscore-min.js"
    get "http://documentcloud.github.com/backbone/backbone-min.js", "public/javascripts/vendor/backbone-min.js"

    ## Jammit assets
    assets = <<-ASSETS
    package_assets: off
    template_function: _.template
    javascripts:
    app:
    # - public/javascripts/vendor/excanvas.js
    - public/javascripts/vendor/jquery.min.js
    - public/javascripts/vendor/jquery-ui.min.js
    # - public/javascripts/vendor/jquery.jsPlumb-1.2.5-all-min.js
    - public/javascripts/vendor/underscore-min.js
    - public/javascripts/vendor/backbone-min.js
    - public/javascripts/vendor/autoresize.jquery.js
    - public/javascripts/application.js
    - public/javascripts/vendor/jquery.dotimeout.js
    # - public/javascripts/models/Node.js
    - public/javascripts/models/*.js
    - public/javascripts/**/*.js
    - app/views/**/*.jst
    templates_js:
    - app/views/**/*.jst
    stylesheets:
    app:
    - public/stylesheets/reset.css
    - public/stylesheets/mixins.css
    - public/stylesheets/*.css
    ASSETS

    ## Git

    gitignore = <<-END
  3. David Richards revised this gist May 25, 2011. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions tpl-basicapp.rb
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,7 @@
    ## Created on 10/23/10
    ## Updated on 5/25/11 to simplify for my own use
    ## Run using $ rails new [appname] -JT -m tpl-basicapp.rb
    ## WIP: give me a few hours before using this (5/25/11 12:00 Pacific)

    ## Gems

  4. David Richards revised this gist May 25, 2011. 1 changed file with 1 addition and 3 deletions.
    4 changes: 1 addition & 3 deletions tpl-basicapp.rb
    Original file line number Diff line number Diff line change
    @@ -17,8 +17,6 @@

    # Testing
    gem "rspec-rails", ">= 2.5.0", :group => [:test]
    gem "cucumber-rails", ">= 0.4.1", :group => [:test]
    gem "capybara", :group => [:test]
    gem "factory_girl_rails", :group => [:test]
    gem "spork", ">= 0.9.0.rc", :group => [:test]
    gem "jasmine", :group => [:test]
    @@ -52,7 +50,7 @@
    # Latest jQuery UJS
    # get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
    # HACK: Since the get method hates https and redirects
    jquery = open("https://github.com/rails/jquery-ujs/raw/master/src/rails.js").read
    jquery = open("https://github.com/rails/jquery-ujs/raw/master/src/rails.js", :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE).read
    create_file "public/javascripts/rails.js", jquery

    # Replace the blank one with jQuery served via Google CDN
  5. David Richards renamed this gist May 25, 2011. 1 changed file with 16 additions and 21 deletions.
    37 changes: 16 additions & 21 deletions tpl-cukeapp.rb → tpl-basicapp.rb
    Original file line number Diff line number Diff line change
    @@ -1,40 +1,37 @@
    ## Rails App Template
    ## Updated for Rails 3.0.7
    ## Created on 10/23/10
    ## Updated on 5/7/11
    ## Run using $ rails new [appname] -JT -m tpl-cukeapp.rb
    ## Updated on 5/25/11 to simplify for my own use
    ## Run using $ rails new [appname] -JT -m tpl-basicapp.rb

    ## Gems

    # Warden and Devise for security
    gem 'warden', '1.0.4'
    gem 'devise', '1.3.0'

    # Extra Plugins
    gem 'formtastic', '1.2.3'
    gem 'escape_utils'

    # HAML and SASS for Templating
    gem 'sass'
    gem 'haml'
    gem 'haml-rails'

    # Cucumber and Friends
    gem "rspec-rails", ">= 2.5.0", :group => [:test, :cucumber]
    gem "cucumber-rails", ">= 0.4.1", :group => [:test, :cucumber]
    gem "capybara", :group => [:test, :cucumber]
    gem "database_cleaner", :group => [:test, :cucumber]
    gem "factory_girl_rails", :group => [:test, :cucumber]
    gem "launchy", ">= 0.3.7", :group => [:test, :cucumber]
    gem "spork", ">= 0.8.4", :group => [:test, :cucumber]
    # Testing
    gem "rspec-rails", ">= 2.5.0", :group => [:test]
    gem "cucumber-rails", ">= 0.4.1", :group => [:test]
    gem "capybara", :group => [:test]
    gem "factory_girl_rails", :group => [:test]
    gem "spork", ">= 0.9.0.rc", :group => [:test]
    gem "jasmine", :group => [:test]
    gem "faker", :group => [:test]
    gem "redgreen", :group => [:test]
    gem "autotest-fsevent", :group => [:test]
    gem "autotest-growl", :group => [:test]

    # development
    gem 'auto_tagger', '0.2.3', :group => [:development]
    gem 'rails3-generators', '0.17.4', :group => [:development]

    # all
    gem 'mysql2', '0.2.6'
    gem 'json_pure', '1.4.6'
    gem 'sqlite3'

    ## Generators

    @@ -63,11 +60,9 @@

    # Run all the generators
    generate "rspec:install"
    generate "cucumber:install --capybara --rspec --spork"
    generate "devise:install"
    generate "devise:views"
    generate "devise User"
    generate "formtastic:install"

    ## Devise routes
    routes = <<-ROUTES
    @@ -83,7 +78,7 @@
    signin = <<-SIGNIN
    <h2>Login</h2>
    <%= semantic_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
    <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
    <%= f.inputs do %>
    <%= f.input :email, :as => :email %>
    <%= f.input :password, :as => :password %>
    @@ -105,7 +100,7 @@
    signup = <<-SIGNUP
    <h2>Signup</h2>
    <%= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>
    <%= f.inputs do %>
    <%= f.input :email, :as => :email %>
  6. @paulmars paulmars revised this gist May 8, 2011. 1 changed file with 93 additions and 12 deletions.
    105 changes: 93 additions & 12 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -38,7 +38,7 @@

    ## Generators

    inject_into_file('config/application.rb', :after => "config.i18n.default_locale = :de") do
    inject_into_file('config/application.rb', :after => "config.filter_parameters += [:password]") do
    %q{
    config.generators do |g|
    g.stylesheets false
    @@ -64,20 +64,93 @@
    # Run all the generators
    generate "rspec:install"
    generate "cucumber:install --capybara --rspec --spork"
    generate "formtastic:install"
    generate "devise:install"
    generate "devise:views"
    generate "devise User"
    generate "formtastic:install"

    ## Files
    ## Devise routes
    routes = <<-ROUTES
    devise_scope :user do
    get "signup", :to => "devise/registrations#new"
    get "login", :to => "devise/sessions#new"
    get "logout", :to => "devise/sessions#destroy"
    end
    ROUTES
    route routes

    ## Login files
    signin = <<-SIGNIN
    <h2>Login</h2>
    <%= semantic_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
    <%= f.inputs do %>
    <%= f.input :email, :as => :email %>
    <%= f.input :password, :as => :password %>
    <% if devise_mapping.rememberable? -%>
    <%= f.input :remember_me, :as => :boolean %>
    <% end -%>
    <% end %>
    <%= f.buttons do %>
    <%= f.commit_button "Login" %>
    <% end %>
    <% end %>
    <%= render :partial => "devise/shared/links" %>
    SIGNIN

    remove_file "app/views/devise/sessions/new.html.erb"
    create_file "app/views/devise/sessions/new.html.erb", signin

    signup = <<-SIGNUP
    <h2>Signup</h2>
    <%= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>
    <%= f.inputs do %>
    <%= f.input :email, :as => :email %>
    <%= f.input :password, :as => :password %>
    <% end %>
    <%= f.buttons do %>
    <%= f.commit_button "Signup" %>
    <% end %>
    <% end %>
    <%= render :partial => "devise/shared/links" %>
    SIGNUP

    remove_file "app/views/devise/registrations/new.html.erb"
    create_file "app/views/devise/registrations/new.html.erb", signup

    # Clear the default index
    remove_file "public/index.html"
    remove_file "public/images/rails.png"
    # Make a blank application javascript file
    remove_file "public/javascripts/application.js"
    create_file "public/javascripts/application.js"
    # Make the SASS directory and base file
    empty_directory "app/stylsheets"
    create_file "app/stylesheets/application.scss"
    empty_directory "app/stylesheets"
    default_style = <<-LAYOUT
    body
    text-align: left
    font-size: 12px
    a, a:hover, a:visited
    color: blue
    .horizontal-list li
    display: inline
    .horizontal-list li a
    padding: 0.1em
    #hd h1
    font-size: 1.5em
    .login-bar
    float: right
    LAYOUT
    create_file "app/stylesheets/application.sass", default_style

    ## Layout

    @@ -86,13 +159,24 @@
    %html
    %head
    %title #{app_name.humanize}
    = stylesheet_link_tag "http://yui.yahooapis.com/2.8.0r4/build/reset-fonts-grids/reset-fonts-grids.css"
    = stylesheet_link_tag :all
    = javascript_include_tag :defaults
    = csrf_meta_tag
    %body
    = yield
    %body#doc
    .hd
    %ol.login-bar.horizontal-list
    - if !user_signed_in?
    %li= link_to "Login", login_url
    %li= link_to "Signup", signup_url
    - else
    %li= current_user.name
    %li= link_to "Logout", logout_url
    %h1 #{app_name.humanize}
    .bd
    = yield
    .ft
    LAYOUT

    remove_file "app/views/layouts/application.html.erb"
    create_file "app/views/layouts/application.html.haml", layout

    @@ -111,11 +195,8 @@
    remove_file ".gitignore"
    create_file ".gitignore", gitignore

    # Setup Factory_Girl
    empty_directory 'spec/support'
    create_file 'spec/support/factories.rb'

    run "bundle install"
    run "rake db:migrate"

    git :init
    git :add => "."
  7. @paulmars paulmars revised this gist May 8, 2011. 1 changed file with 13 additions and 5 deletions.
    18 changes: 13 additions & 5 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    ## Rails App Template
    ## Updated for Rails 3.0.1
    ## Updated for Rails 3.0.7
    ## Created on 10/23/10
    ## Updated on 11/4/10
    ## Updated on 5/7/11
    ## Run using $ rails new [appname] -JT -m tpl-cukeapp.rb

    ## Gems
    @@ -28,15 +28,23 @@
    gem "launchy", ">= 0.3.7", :group => [:test, :cucumber]
    gem "spork", ">= 0.8.4", :group => [:test, :cucumber]

    # development
    gem 'auto_tagger', '0.2.3', :group => [:development]
    gem 'rails3-generators', '0.17.4', :group => [:development]

    # all
    gem 'mysql2', '0.2.6'
    gem 'json_pure', '1.4.6'

    ## Generators

    inject_into_file('config/application.rb', :after => "config.i18n.default_locale = :de") do
    %q{
    # Generator Settings
    config.generators do |g|
    g.stylesheets false
    g.template_engine :haml
    g.test_framework :rspec, :fixture => false, :views => false
    g.test_framework :rspec, :fixture => true, :views => false
    g.fixture_replacement :factory_girl, :dir => "spec/support/factories"
    end
    # Global Sass Option
  8. @paulmars paulmars revised this gist May 8, 2011. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -15,6 +15,7 @@
    gem 'escape_utils'

    # HAML and SASS for Templating
    gem 'sass'
    gem 'haml'
    gem 'haml-rails'

  9. @paulmars paulmars revised this gist May 8, 2011. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -8,19 +8,19 @@

    # Warden and Devise for security
    gem 'warden', '1.0.4'
    gem 'devise', '1.1.3'
    gem 'devise', '1.3.0'

    # Extra Plugins
    gem 'formtastic', '~> 1.1.0'
    gem 'formtastic', '1.2.3'
    gem 'escape_utils'

    # HAML and SASS for Templating
    gem 'haml'
    gem 'haml-rails'

    # Cucumber and Friends
    gem "rspec-rails", ">= 2.0.1", :group => [:test, :cucumber]
    gem "cucumber-rails", ">= 0.3.2", :group => [:test, :cucumber]
    gem "rspec-rails", ">= 2.5.0", :group => [:test, :cucumber]
    gem "cucumber-rails", ">= 0.4.1", :group => [:test, :cucumber]
    gem "capybara", :group => [:test, :cucumber]
    gem "database_cleaner", :group => [:test, :cucumber]
    gem "factory_girl_rails", :group => [:test, :cucumber]
  10. @paulmars paulmars revised this gist May 8, 2011. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@
    ## Gems

    # Warden and Devise for security
    gem 'warden', '0.10.7'
    gem 'warden', '1.0.4'
    gem 'devise', '1.1.3'

    # Extra Plugins
  11. @martinisoft martinisoft revised this gist Nov 4, 2010. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -36,7 +36,6 @@
    config.generators do |g|
    g.template_engine :haml
    g.test_framework :rspec, :fixture => false, :views => false
    g.fixture_replacement :factory_girl, :dir => "spec/support/factories"
    end
    # Global Sass Option
  12. @martinisoft martinisoft revised this gist Nov 4, 2010. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -47,7 +47,7 @@
    # Latest jQuery UJS
    # get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
    # HACK: Since the get method hates https and redirects
    jquery = open("https://github.com/rails/jquery-ujs/raw/master/src/rails.js")
    jquery = open("https://github.com/rails/jquery-ujs/raw/master/src/rails.js").read
    create_file "public/javascripts/rails.js", jquery

    # Replace the blank one with jQuery served via Google CDN
  13. @martinisoft martinisoft revised this gist Nov 4, 2010. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -45,7 +45,10 @@
    end

    # Latest jQuery UJS
    get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
    # get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
    # HACK: Since the get method hates https and redirects
    jquery = open("https://github.com/rails/jquery-ujs/raw/master/src/rails.js")
    create_file "public/javascripts/rails.js", jquery

    # Replace the blank one with jQuery served via Google CDN
    gsub_file 'config/application.rb', 'config.action_view.javascript_expansions[:defaults] = %w()', 'config.action_view.javascript_expansions[:defaults] = %w(http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js rails.js)'
  14. @martinisoft martinisoft revised this gist Nov 4, 2010. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    ## Rails App Template
    ## Updated for Rails 3.0.1
    ## Created on 10/23/10
    ## Updated on 10/24/10
    ## Updated on 11/4/10
    ## Run using $ rails new [appname] -JT -m tpl-cukeapp.rb

    ## Gems
    @@ -45,7 +45,7 @@
    end

    # Latest jQuery UJS
    get "http://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
    get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"

    # Replace the blank one with jQuery served via Google CDN
    gsub_file 'config/application.rb', 'config.action_view.javascript_expansions[:defaults] = %w()', 'config.action_view.javascript_expansions[:defaults] = %w(http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js rails.js)'
  15. @martinisoft martinisoft revised this gist Nov 4, 2010. 1 changed file with 1 addition and 3 deletions.
    4 changes: 1 addition & 3 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -44,9 +44,6 @@
    }
    end

    # Clear the Javascripts
    run "rm public/javascripts/*.js"

    # Latest jQuery UJS
    get "http://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"

    @@ -65,6 +62,7 @@
    # Clear the default index
    remove_file "public/index.html"
    # Make a blank application javascript file
    remove_file "public/javascripts/application.js"
    create_file "public/javascripts/application.js"
    # Make the SASS directory and base file
    empty_directory "app/stylsheets"
  16. @martinisoft martinisoft revised this gist Nov 4, 2010. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -68,7 +68,7 @@
    create_file "public/javascripts/application.js"
    # Make the SASS directory and base file
    empty_directory "app/stylsheets"
    create_file "app/stylesheets/application.scss
    create_file "app/stylesheets/application.scss"

    ## Layout

  17. @martinisoft martinisoft revised this gist Oct 24, 2010. 1 changed file with 19 additions and 9 deletions.
    28 changes: 19 additions & 9 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    ## Rails App Template
    ## Updated for Rails 3.0.1
    ## Created on 10/23/10
    ## Updated on 10/23/10
    ## Updated on 10/24/10
    ## Run using $ rails new [appname] -JT -m tpl-cukeapp.rb

    ## Gems
    @@ -29,20 +29,20 @@

    ## Generators

    generators = <<-GENERATORS
    config.i18n.default_locale = :de
    inject_into_file('config/application.rb', :after => "config.i18n.default_locale = :de") do
    %q{
    # Generator Settings
    config.generators do |g|
    g.template_engine :haml
    g.test_framework :rspec
    g.test_framework :rspec, :fixture => false, :views => false
    g.fixture_replacement :factory_girl, :dir => "spec/support/factories"
    end
    # Global Sass Option
    Sass::Plugin.options[:template_location] = { 'app/stylesheets' => 'public/stylesheets' }
    GENERATORS

    gsub_file 'config/application.rb', 'config.i18n.default_locale = :de', generators
    }
    end

    # Clear the Javascripts
    run "rm public/javascripts/*.js"
    @@ -62,8 +62,13 @@

    ## Files

    run "rm public/index.html"
    # Clear the default index
    remove_file "public/index.html"
    # Make a blank application javascript file
    create_file "public/javascripts/application.js"
    # Make the SASS directory and base file
    empty_directory "app/stylsheets"
    create_file "app/stylesheets/application.scss
    ## Layout
    @@ -93,9 +98,14 @@
    public/stylesheets/*
    END
    # Re-Make gitignore
    remove_file ".gitignore"
    create_file ".gitignore", gitignore
    # Setup Factory_Girl
    empty_directory 'spec/support'
    create_file 'spec/support/factories.rb'
    run "bundle install"
    git :init
  18. @martinisoft martinisoft created this gist Oct 24, 2010.
    102 changes: 102 additions & 0 deletions tpl-cukeapp.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,102 @@
    ## Rails App Template
    ## Updated for Rails 3.0.1
    ## Created on 10/23/10
    ## Updated on 10/23/10
    ## Run using $ rails new [appname] -JT -m tpl-cukeapp.rb

    ## Gems

    # Warden and Devise for security
    gem 'warden', '0.10.7'
    gem 'devise', '1.1.3'

    # Extra Plugins
    gem 'formtastic', '~> 1.1.0'
    gem 'escape_utils'

    # HAML and SASS for Templating
    gem 'haml'
    gem 'haml-rails'

    # Cucumber and Friends
    gem "rspec-rails", ">= 2.0.1", :group => [:test, :cucumber]
    gem "cucumber-rails", ">= 0.3.2", :group => [:test, :cucumber]
    gem "capybara", :group => [:test, :cucumber]
    gem "database_cleaner", :group => [:test, :cucumber]
    gem "factory_girl_rails", :group => [:test, :cucumber]
    gem "launchy", ">= 0.3.7", :group => [:test, :cucumber]
    gem "spork", ">= 0.8.4", :group => [:test, :cucumber]

    ## Generators

    generators = <<-GENERATORS
    config.i18n.default_locale = :de
    # Generator Settings
    config.generators do |g|
    g.template_engine :haml
    g.test_framework :rspec
    end
    # Global Sass Option
    Sass::Plugin.options[:template_location] = { 'app/stylesheets' => 'public/stylesheets' }
    GENERATORS

    gsub_file 'config/application.rb', 'config.i18n.default_locale = :de', generators

    # Clear the Javascripts
    run "rm public/javascripts/*.js"

    # Latest jQuery UJS
    get "http://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"

    # Replace the blank one with jQuery served via Google CDN
    gsub_file 'config/application.rb', 'config.action_view.javascript_expansions[:defaults] = %w()', 'config.action_view.javascript_expansions[:defaults] = %w(http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js rails.js)'

    # Run all the generators
    generate "rspec:install"
    generate "cucumber:install --capybara --rspec --spork"
    generate "formtastic:install"
    generate "devise:install"
    generate "devise User"

    ## Files

    run "rm public/index.html"
    create_file "public/javascripts/application.js"

    ## Layout

    layout = <<-LAYOUT
    !!!
    %html
    %head
    %title #{app_name.humanize}
    = stylesheet_link_tag :all
    = javascript_include_tag :defaults
    = csrf_meta_tag
    %body
    = yield
    LAYOUT

    remove_file "app/views/layouts/application.html.erb"
    create_file "app/views/layouts/application.html.haml", layout

    ## Git

    gitignore = <<-END
    .bundle
    .DS_Store
    db/*.sqlite3
    log/*.log
    tmp/**/*
    public/stylesheets/*
    END

    remove_file ".gitignore"
    create_file ".gitignore", gitignore

    run "bundle install"

    git :init
    git :add => "."