This web application shows the power of Rails and EmberJS to provide a powerful client side experience. Advanced BDD and TDD test tools such as Cucumber and Jasmine are used to drive out the functionality.
TODO
- Mac OS X
- Snow Leopard or Lion
- 64 bit
A number of open-source packages are required:
Install Xcode and the necessary SDK for development (gcc, various tools, libraries, etc).
Install Qt binary package. NOTE: Download and install the first dmg
file: http://get.qt.nokia.com/qt/source/qt-mac-opensource-4.8.0.dmg
Use rvm to keep your entire Ruby/Gem installation for this project separate from your others if you haven't already.
To install:
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
Using rvm:
rvm install ruby-1.9.3-p0
rvm use ruby-1.9.3-p0
rvm gemset create yourjargon
gem install bundler --no-ri --no-rdoc
bundle install
This last step will take a few minutes. When done:
phantomJS is a headless WebKit with JavaScript API. We're going to use it as a javascript engine for running unit tests. The 3rd command below copies its binary to a location in your path.
git clone git://github.com/ariya/phantomjs.git && cd phantomjs && git checkout 1.3
qmake -spec macx-g++ && make
cp bin/phantomjs /usr/local/bin
Cucumber needs the following support:
-
Install node.js Macintosh installer
-
Install
npm
:curl http://npmjs.org/install.sh | sh
-
Now you can install
Cucumber
usingnpm
:
Now, with the prep work finished, we can install the application.
git clone git@github.com:oldfartdeveloper/yourjargon.git
cd yourjargon
This will cause rvm to ask you to confirm whether you want to use the .rvmrc
file. Affirm positively as many times as you need to.
rake db:migrate
rake
rails s
In your project home directory:
guard
Observe the test report. NOTE: this is set up so that everytime you save a javascript file, all the client tests are run again.
This will show a Jasmine dashboard in which you can run tests and see results.
- To the arailsdemo screencasts. They are excellent. Thank you!