public
Description: Blank is GiraffeSoft’s blank rails starter app.
Homepage:
Clone URL: git://github.com/giraffesoft/blank.git
francois (author)
Fri Aug 21 19:23:06 -0700 2009
commit  5ca9597fe060e35b00ac62e1e27ba972b6fe79bd
tree    856f6d2accdb7439d306c1761cca1c2a11b54901
parent  f0a674d1617d215e6070fa9b8bfa16e4e329083f
blank /
name age message
file .gitignore Thu Oct 09 18:25:59 -0700 2008 ignore config/session.rb [giraffesoft]
file .new_app.gitignore Mon Sep 22 15:45:31 -0700 2008 add a gitignore to be used for when a new app i... [giraffesoft]
file LICENSE Mon Sep 22 19:02:15 -0700 2008 add readme and license [giraffesoft]
file README.rdoc Fri May 22 13:47:33 -0700 2009 Document JRuby 1.2 usage and caveats [francois]
file Rakefile Mon Aug 04 07:48:59 -0700 2008 add blank rails app [giraffesoft]
directory app/ Mon May 25 12:19:42 -0700 2009 Provide an OpenID way to login... [francois]
directory config/ Fri Aug 21 19:23:06 -0700 2009 Use the main Cucumber gem, not Aslak's version [francois]
directory db/ Fri May 22 09:02:19 -0700 2009 Added OpenID authentication & registration [francois]
directory doc/ Mon Aug 04 07:48:59 -0700 2008 add blank rails app [giraffesoft]
directory features/ Fri May 22 13:03:50 -0700 2009 Asserted that OpenID registration does somethin... [francois]
directory lib/ Fri Jun 26 13:31:57 -0700 2009 One-click deploy to Heroku. [francois]
directory public/ Sat Nov 29 06:09:39 -0800 2008 update to 2.2.2 [giraffesoft]
directory script/ Fri May 22 11:52:48 -0700 2009 Begin testing registrion using Cucumber [francois]
directory test/ Wed Jun 17 06:11:00 -0700 2009 Maybe this is something to consider? [francois]
directory thorfiles/ Fri May 22 13:18:23 -0700 2009 Automatically install gems when installing Blank [francois]
directory vendor/ Fri May 22 13:29:39 -0700 2009 Removed mule-utf-8 encoding specification from ... [francois]
README.rdoc

Blank

Blank is GiraffeSoft’s starter Rails application.

It makes heavy use of our standard toolset. Controllers are mostly written using ResourceController, and it is tested entirely with Thoughtbot’s Shoulda. Integration testing is taken care of by Cucumber.

Tools we use in nearly all of our applications are vendored, as is Rails:

  - active_presenter
  - andand
  - hoptoad
  - mocha
  - rake
  - restful_authentication
  - ruby-openid
  - will_paginate

Installation

Installing Blank is as easy as running a Rake task. Except that Blank uses Thor instead, because it’s the new hotness, and it supports remote tasks.

Just install Thor:

  $ sudo gem install thor

…then install Blank’s Thor tasks:

  $ thor install http://github.com/giraffesoft/blank/tree/master%2Fthorfiles%2Fblank.thor?raw=true

…then you’re ready to create a new application with Blank:

  $ thor blank:new_app the_name_of_my_app the_git_repo_it_will_live_in

That’s it! There are a few Rake notes that will inform you about some places that you need to replace Blank’s name with your application’s name.

Also, you need to go fill in your HopToad API key in config/initializers/hoptoad.rb

If we improve the Thor file, all you have to do is run

  $ thor update blank

before creating your next application, and you’ll get the changes automagically.

Merging Upstream Changes

Your application will share Blank’s git history. This means that when Blank gets patched, you’ll be able to merge our commits back into your application. Like when we get around to implementing OpenID, you’ll get it for free in your application, if you started with Blank. Just pull from the blank repository (set up as a remote called ‘blank’ in your app).

  $ git fetch blank
  $ git merge blank/master

Development

All development will be done at the GitHub repository. Fork away :)

After cloning, to get tests passing:

  $ rake blank:build

Deployment

If you want to deploy to Heroku, there’s a built-in Rake task to generate Heroku’s .gems file:

  $ rake heroku:gems

This task will create or update .gems with new dependencies coming from config/environment.rb. The task will also commit the changes to your repository.

JRuby

Using JRuby 1.2, I was able to successfully run the functional tests with this in my config/database.yml:

  # If you use SQLite3 under JRuby, use these blocks instead
  development:
    adapter: jdbcsqlite3
    database: db/development.sqlite3

  test:
    adapter: jdbcsqlite3
    database: db/test.sqlite3

Of course, you’ll need the proper gems installed:

  $ jruby -S gem install activerecord activerecord-jdbc-adapter activerecord-jdbcsqlite3-adapter jdbc-sqlite3

I had the following versions installed:

  • activerecord (2.3.2)
  • activerecord-jdbc-adapter (0.9.1)
  • activerecord-jdbcsqlite3-adapter (0.9.1)
  • jdbc-sqlite3 (3.6.3.054)

I said "functional tests" above because there were some minor unit test failures as well as integration test failures. These aren’t show stoppers though.

Credits

Blank was created by James Golick. Its development is funded by GiraffeSoft Inc.

Daniel Haran also contributed several patches, and his ongoing thoughts and critiques.

François Beausoleil updated Blank to Rails 2.3.2.

License

Blank is available under the MIT License, as is all of the code generated by the Rails generator.