Class: Pbw::Generators::InstallGenerator

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

Instance Method Summary collapse

Methods included from ResourceHelpers

#application_name, #backbone_path, #class_namespace, #collection_namespace, #home_view_namespace, #js_app_name, #js_model_namespace, #js_user_model_namespace, #jst, #plural_model_name, #router_name, #singular_model_name, #uncapitalize, #user_collection_namespace, #user_jst, #user_view_namespace, #view_namespace

Instance Method Details

#add_engine_routesObject



52
53
54
# File 'lib/generators/pbw/install/install_generator.rb', line 52

def add_engine_routes
  route "mount Pbw::Engine, :at => '/pbw'"
end

#config_mongoidObject



48
49
50
# File 'lib/generators/pbw/install/install_generator.rb', line 48

def config_mongoid
  generate "mongoid:config"
end

#create_app_fileObject



44
45
46
# File 'lib/generators/pbw/install/install_generator.rb', line 44

def create_app_file
    template "app.coffee", "app/assets/javascripts/#{application_name.underscore}.js.coffee"
end

#create_application_layoutObject



76
77
78
# File 'lib/generators/pbw/install/install_generator.rb', line 76

def create_application_layout
  template "application.erb", "app/views/layouts/#{application_name.underscore}.html.erb"
end

#create_dir_layoutObject



37
38
39
40
41
42
# File 'lib/generators/pbw/install/install_generator.rb', line 37

def create_dir_layout
    %W{helpers 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

#create_helper_javascriptObject



72
73
74
# File 'lib/generators/pbw/install/install_generator.rb', line 72

def create_helper_javascript
  template "pbw.coffee", "app/assets/javascripts/helpers/pbw.js.coffee"
end

#create_home_controllerObject



28
29
30
31
32
33
34
35
# File 'lib/generators/pbw/install/install_generator.rb', line 28

def create_home_controller
  template "index.erb", "app/views/home/index.html.erb"
  generate "controller", "home index --skip"
  inject_into_file "app/controllers/home_controller.rb", :before => "def index" do
    "layout '#{application_name.underscore}'\n  "
  end
  gsub_file "config/routes.rb", "get \"home/index\"", "root :to => \"home#index\""
end

#create_home_viewObject



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

def create_home_view
  template "views/home.coffee", File.join(backbone_path, "views/home", "index_view.js.coffee")
  template "templates/home.jst", File.join(backbone_path, "templates/home", "index.jst.ejs") 
end

#create_router_fileObject



19
20
21
# File 'lib/generators/pbw/install/install_generator.rb', line 19

def create_router_file 
  template 'router.coffee', File.join(backbone_path, "routers", "app_router.js.coffee")
end

#create_user_backboneObject



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/generators/pbw/install/install_generator.rb', line 56

def create_user_backbone
  template "user_registration.coffee", "app/assets/javascripts/models/user_registration.js.coffee"
  template "user_recovery.coffee", "app/assets/javascripts/models/user_recovery.js.coffee"
  template "user_session.coffee", "app/assets/javascripts/models/user_session.js.coffee"
  template "views/login_view.coffee", "app/assets/javascripts/views/users/login_view.js.coffee"
  template "views/recovery_view.coffee", "app/assets/javascripts/views/users/recovery_view.js.coffee"
  template "views/signup_view.coffee", "app/assets/javascripts/views/users/signup_view.js.coffee"
  template "templates/login.jst", "app/assets/javascripts/templates/users/login.jst.ejs"
  template "templates/recover_password.jst", "app/assets/javascripts/templates/users/recover_password.jst.ejs"
  template "templates/signup.jst", "app/assets/javascripts/templates/users/signup.jst.ejs"
end

#inject_backboneObject



13
14
15
16
17
# File 'lib/generators/pbw/install/install_generator.rb', line 13

def inject_backbone
    inject_into_file "app/assets/javascripts/application.js", :before => "//= require_tree" do
      "//= require underscore\n//= require backbone\n//= require Backbone.ModelBinder\n//= require Backbone.CollectionBinder\n//= require #{application_name.underscore}\n"
    end
end

#user_lifecycleObject



68
69
70
# File 'lib/generators/pbw/install/install_generator.rb', line 68

def user_lifecycle
  template "lifecycle.rb", "app/models/user/lifecycle.rb"
end