# encoding: utf-8 require 'rails/generators' module BackboneGenerator class SetupGenerator < ::Rails::Generators::Base source_root File.expand_path('../setup_generator/templates', __FILE__) desc "Setup a Backbone Application" def setup_app directory '.' end def add_development_gems testing_gems = <<-TESTING_GEMS group :development, :test do # Jasmine gem 'jasmine-rails' gem 'jasmine-headless-webkit', '~> 0.8.4' # Guard gem 'growl' gem 'rb-fsevent' gem 'guard-rspec' gem 'guard-jasmine-headless-webkit' # brew install qt --build-from-source end group :test do gem 'therubyracer', :platform => :ruby end TESTING_GEMS append_to_file 'Gemfile', testing_gems say testing_gems run 'bundle'# in_root { `bundle` } end def print_tree tree = <<-TREE Gemfile (updated) Guardfile app/assets/javascripts ├── application.js └── shared ├── core_extentions │ └── collections_extentions.coffee ├── helpers └── utils spec/javascripts ├── fixtures ├── helpers │ ├── association_helpers.coffee │ ├── common_helpers.coffee │ ├── fake_host.coffee │ └── headless_webkit_helper.coffee └── support └── jasmine.yml vendor/javascripts ├── backbone │ ├── backbone-1.1.0.js │ ├── backbone-bind-to-1.1.0.coffee │ ├── backbone-handlebars-1.0.0.coffee │ ├── backbone-query-0.2.3.coffee │ ├── backbone-relational-0.8.6.js │ ├── handlebars-1.1.2.js │ └── underscore-1.5.2.js ├── browser_compatibility │ ├── json2.js │ └── localstorage-polyfill.js ├── jquery │ ├── jquery-1.10.2.js │ ├── jquery-ui-1.10.3.js │ ├── jquery.easing-1.3.js │ └── jquery_ujs.js └── testing ├── backbone-factory.js ├── jasmine-jquery-1.5.93.js ├── jasmine-sinon-0.2.1.js ├── mock-ajax-2.0.0.js └── sinon-1.7.3.js TREE say tree end end end