Class: Marionette::Generators::AppGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Marionette::Generators::AppGenerator
- Defined in:
- lib/generators/marionette/app/app_generator.rb
Instance Method Summary collapse
- #add_app_to_index_view ⇒ Object
- #add_backbone_via_bower ⇒ Object
- #create_directory_structure ⇒ Object
- #create_files ⇒ Object
- #include_js ⇒ Object
Instance Method Details
#add_app_to_index_view ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/generators/marionette/app/app_generator.rb', line 38 def add_app_to_index_view gem 'slim-rails' bundle_install if File.exist? "config/routes.rb" routes = File.read "config/routes.rb" home = routes.match(/root to: ['"]{1}([a-z_]+)\#index['"]{1}/).try :captures home = home.first else home = "home" 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" template "app/index.html.slim", "app/views/#{home}/index.html.slim" end |
#add_backbone_via_bower ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/generators/marionette/app/app_generator.rb', line 15 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 ⇒ Object
8 9 10 11 12 13 |
# File 'lib/generators/marionette/app/app_generator.rb', line 8 def create_directory_structure %w(models collections routers utils views).each do |folder| empty_directory "app/assets/javascripts/backbone/#{folder}" end empty_directory "app/assets/templates" end |
#create_files ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/marionette/app/app_generator.rb', line 24 def create_files gem 'skim' bundle_install 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 ⇒ Object
53 54 55 56 |
# File 'lib/generators/marionette/app/app_generator.rb', line 53 def include_js gsub_file "app/assets/javascripts/application.js", "//= require_tree .", app_js_data inject_into_file "app/assets/javascripts/application.js", "//= require backbone/#{name.downcase}\n", after: "require marionette/lib/core/backbone.marionette\n" end |