class Marionette::Generators::AppGenerator
Public Instance Methods
add_app_to_index_view()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 40 def add_app_to_index_view gem 'slim-rails' bundle_install if File.exist? "config/routes.rb" routes = File.read "config/routes.rb" captures = routes.match(/(\s*#\s*|)root( to:|) ['"]{1}([a-z_]+)\#index['"]{1}/).try :captures if captures.first.empty? home = captures.last else home = "visitors" append_to_file "config/routes.rb", " root to: '#{home}#index'", after: "routes.draw do\n" end else home = "visitors" end unless File.exist? "app/controllers/#{home}" generate "controller", "#{home.capitalize} index --skip-routes --skip-javascripts --skip-stylesheets" end File.delete "app/views/#{home}/index.html.erb" if File.exist? "app/views/#{home}/index.html.erb" File.delete "app/views/#{home}/index.html.haml" if File.exist? "app/views/#{home}/index.html.haml" File.delete "app/views/#{home}/index.html.slim" if File.exist? "app/views/#{home}/index.html.slim" template "app/index.html.slim", "app/views/#{home}/index.html.slim" end
add_backbone_via_bower()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 16 def add_backbone_via_bower gem 'bower-rails' bundle_install generate "bower_rails:initialize" append_to_file "Bowerfile", bower_data, after: "for more options\n" rake 'bower:install' rake 'bower:clean' end
create_directory_structure()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 8 def create_directory_structure %w(models collections regions behaviors routers utils views).each do |folder| empty_directory "app/assets/javascripts/backbone/#{folder}" template "app/gitkeep", "app/assets/javascripts/backbone/#{folder}/.gitkeep" end empty_directory "app/assets/templates" end
create_files()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 25 def create_files gem 'skim' bundle_install template "app/marionette_app.js", "app/assets/javascripts/#{file_name}_app.js" backbone = "app/assets/javascripts/backbone" template "app/app.js.coffee", "#{backbone}/#{file_name}.js.coffee" template "app/layout.jst.skim", "app/assets/templates/layouts/layout.jst.skim" template "app/logger.js.coffee", "#{backbone}/utils/logger.js.coffee" template "app/defaults.js.coffee", "#{backbone}/utils/defaults.js.coffee" template "app/config.js.coffee", "#{backbone}/config.js.coffee" template "app/layout.js.coffee", "#{backbone}/views/layouts/layout.js.coffee" template "app/app_router.js.coffee", "#{backbone}/routers/app_router.js.coffee" template "app/application.html.slim", "app/views/layouts/application.html.slim" end
include_js()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 64 def include_js gsub_file "app/assets/javascripts/application.js", "//= require_tree .", "//= require #{name.downcase}_app" end
Private Instance Methods
bower_data()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 75 def bower_data <<RUBY asset 'console.style' asset 'backbone' asset 'marionette' RUBY end
bundle_install()
click to toggle source
# File lib/generators/marionette/app/app_generator.rb, line 69 def bundle_install Bundler.with_clean_env do run "bundle install" end end