class Marionette::InstallGenerator

Install generator

Example:

rails g marionette:install

Public Instance Methods

add_routes() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 72
def add_routes
  route "root '#{default_route}'"
  route "get '*path' => '#{default_route}'"
end
append_app_files() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 25
  def append_app_files
    inject_into_file "#{javascript_path}/application.js", before: "\n//= require_tree ." do %(
//= require ./backbone/before_backbone
//= require ./backbone/app
//= require_tree ./backbone/base
//= require_tree ./backbone/config
//= require_tree ./backbone/app/templates
//= require_tree ./backbone/app/views
//= require_tree ./backbone/app/models
//= require_tree ./backbone/app/controllers
//= require ./backbone/routes
//= require ./backbone/after_backbone
)
    end
  end
append_vendor_dependencies() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 13
  def append_vendor_dependencies
    inject_into_file "#{javascript_path}/application.js", before: "//= require_tree ." do %(
//= require jquery.spin
//= require underscore
//= require backbone
//= require backbone.marionette
//= require backbone-syphon

)
    end
  end
copy_base() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 64
def copy_base
  directory 'base', "#{backbone_path}/base/"
end
copy_config() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 68
def copy_config
  directory 'config', "#{backbone_path}/config/"
end
create_app_file() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 49
def create_app_file
  template 'app.js.coffee', "#{backbone_path}/app.js.coffee"
  template 'after_backbone.js.coffee', "#{backbone_path}/after_backbone.js.coffee"
  template 'before_backbone.js.coffee', "#{backbone_path}/before_backbone.js.coffee"
  template 'routes.js.coffee', "#{backbone_path}/routes.js.coffee"
end
create_dir_layout() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 41
def create_dir_layout
  empty_directory "#{backbone_path}"
  %w(base config app).each { |dir| empty_directory "#{backbone_path}/#{dir}" }
  %w(controllers models views).each { |dir| empty_directory "#{backbone_path}/base/#{dir}" }
  %w(controllers models views).each { |dir| empty_directory "#{backbone_path}/config/#{dir}" }
  %w(templates views models controllers).each { |dir| empty_directory "#{backbone_path}/app/#{dir}" }
end
generate_application_layout() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 77
def generate_application_layout
  generate 'marionette:view', 'application', 'Layout'
end
root_page() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 81
  def root_page
    generate 'marionette:controller root index --with-views'
    if File.exist? "#{backbone_path}/routes.js.coffee"
      inject_into_file "#{backbone_path}/routes.js.coffee", after: "console.log 'Hello world!'\n" do <<-'COFFEE'
      new App.Controllers.All.Root(action: 'index')
      COFFEE
      end
    end
    template 'app/templates/index.jst.eco', "#{backbone_path}/app/templates/root/index.jst.eco", force: true
  end
start_marionette_app() click to toggle source
# File lib/generators/marionette/install/install_generator.rb, line 56
def start_marionette_app
  destination = "app/views/#{default_controller}/#{default_action}.html.erb"
  create_file destination unless File.exist? destination
  append_to_file destination do
    embed_template 'index.html.erb'
  end
end