Class: Thorax::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
ResourceHelpers
Defined in:
lib/generators/thorax/install/install_generator.rb

Instance Method Summary collapse

Methods included from ResourceHelpers

#application_name, #collection_namespace, #hbs, #js_app_name, #model_namespace, #plural_model_name, #router_namespace, #singular_model_name, #template_path, #thorax_path, #uncapitalize, #view_namespace

Instance Method Details

#create_class_filesObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/thorax/install/install_generator.rb', line 29

def create_class_files
  template "collection-view.coffee", "app/assets/javascripts/collection-view.js.coffee"
  template "collection.coffee", "app/assets/javascripts/collection.js.coffee"
  template "layout-view.coffee", "app/assets/javascripts/layout-view.js.coffee"
  template "model.coffee", "app/assets/javascripts/model.js.coffee"
  template "view.coffee", "app/assets/javascripts/view.js.coffee"
  template "root.coffee", "app/assets/javascripts/views/root.js.coffee"
  template "root.hbs", "app/assets/javascripts/templates/root.hbs"
  template "namespace.coffee", "app/assets/javascripts/#{application_name.underscore}.js.coffee"
end

#create_dir_layoutObject



22
23
24
25
26
27
# File 'lib/generators/thorax/install/install_generator.rb', line 22

def create_dir_layout
  %W{collections routers models views templates}.each do |dir|
    empty_directory "app/assets/javascripts/#{dir}"
    create_file "app/assets/javascripts/#{dir}/.gitkeep" unless options[:skip_git]
  end
end

#initialize_thoraxObject



40
41
42
43
44
# File 'lib/generators/thorax/install/install_generator.rb', line 40

def initialize_thorax
  template "init.js", "#{destination_root}/app/assets/javascripts/#{application_name.underscore}_initializer.js.coffee"
  append_file "app/assets/javascripts/application.js", File.open("#{destination_root}/app/assets/javascripts/#{application_name.underscore}_initializer.js.coffee", "rb").read
  File.delete("#{destination_root}/app/assets/javascripts/#{application_name.underscore}_initializer.js.coffee")
end

#inject_thoraxObject



16
17
18
19
20
# File 'lib/generators/thorax/install/install_generator.rb', line 16

def inject_thorax
  inject_into_file "app/assets/javascripts/application.js", :before => "//= require_tree" do
    "//= require underscore\n//= require backbone\n//= require handlebars.runtime\n//= require thorax\n//= require #{application_name.underscore}\n//= require view\n//= require collection-view\n//= require layout-view\n//= require model\n//= require collection\n//= require_tree ./templates\n//= require_tree ./models\n//= require_tree ./collections\n//= require_tree ./views\n//= require_tree ./routers\n"
  end
end