Class: DevshopGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- DevshopGenerator
- Defined in:
- lib/generators/devshop_generator.rb
Instance Method Summary collapse
- #create_admin_sessions ⇒ Object
- #create_application_helper ⇒ Object
- #create_basic_admin_routes ⇒ Object
- #create_name_spaced_assets ⇒ Object
- #create_public_controller ⇒ Object
- #create_root_route ⇒ Object
- #create_seed_file ⇒ Object
- #create_sessions_view ⇒ Object
- #create_sql_db_yml_file ⇒ Object
- #gems_to_enable ⇒ Object
- #public_views ⇒ Object
-
#remove_files ⇒ Object
remove files not being used or that will be replaced by our templates.
- #setup_administrator_model ⇒ Object
Instance Method Details
#create_admin_sessions ⇒ Object
112 113 114 115 |
# File 'lib/generators/devshop_generator.rb', line 112 def create_admin_sessions #copy sessions controller template template "sessions_controller.rb", "app/controllers/admin/sessions_controller.rb" end |
#create_application_helper ⇒ Object
69 70 71 |
# File 'lib/generators/devshop_generator.rb', line 69 def create_application_helper template "application_helper.rb", "app/helpers/application_helper.rb" end |
#create_basic_admin_routes ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/generators/devshop_generator.rb', line 117 def create_basic_admin_routes #remove example code which screws up the route insert gsub_file "config/routes.rb", /# namespace :admin do/, "" #insert admin namespace insert_into_file "config/routes.rb", after: ".draw do" do "\n\s namespace :admin do \n\tend" end #insert login / logout / create session routes insert_into_file "config/routes.rb", after: "namespace :admin do" do "\n\t\tget 'login', to: 'sessions#new', as: :login\n\t\tget 'logout', to: 'sessions#destroy', as: :logout\n\t\tpost 'sessions', to: 'sessions#create', as: :sessions" end #insert root admin route insert_into_file "config/routes.rb", after: "namespace :admin do" do "\n\t\tget '/', to: 'administrators#index', as: :root" end end |
#create_name_spaced_assets ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/generators/devshop_generator.rb', line 87 def create_name_spaced_assets #create js assets template "application.js", "app/assets/javascripts/application.js" #create css assets template "normalize.css", "app/assets/stylesheets/normalize.css" template "base.css.sass", "app/assets/stylesheets/base.css.sass" template "application.css.sass", "app/assets/stylesheets/application.css.sass" #create admin js assets empty_directory "app/assets/javascripts/admin" template "bootstrap.js", "app/assets/javascripts/admin/bootstrap.js" template "admin_application.js", "app/assets/javascripts/admin/application.js" #create admin css assets empty_directory "app/assets/stylesheets/admin" template "bootstrap.css", "app/assets/stylesheets/admin/bootstrap.css" template "admin_application.css.sass", "app/assets/stylesheets/admin/application.css.sass" ##application layout template "application.html.haml", "app/views/layouts/application.html.haml" end |
#create_public_controller ⇒ Object
79 80 81 |
# File 'lib/generators/devshop_generator.rb', line 79 def create_public_controller template "public_controller.rb", "app/controllers/public_controller.rb" end |
#create_root_route ⇒ Object
73 74 75 76 77 |
# File 'lib/generators/devshop_generator.rb', line 73 def create_root_route insert_into_file "config/routes.rb", after: ".draw do" do "\n\troot to: 'public#index'" end end |
#create_seed_file ⇒ Object
64 65 66 67 |
# File 'lib/generators/devshop_generator.rb', line 64 def create_seed_file template "seeds.rb", "db/seeds.rb" run "rake db:seed" end |
#create_sessions_view ⇒ Object
83 84 85 |
# File 'lib/generators/devshop_generator.rb', line 83 def create_sessions_view template "sessions/new.html.haml", "app/views/admin/sessions/new.html.haml" end |
#create_sql_db_yml_file ⇒ Object
50 51 52 53 |
# File 'lib/generators/devshop_generator.rb', line 50 def create_sql_db_yml_file template "database.yml", "config/database.yml" run "rake db:create" end |
#gems_to_enable ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/generators/devshop_generator.rb', line 23 def gems_to_enable #uncomment these gems ["'debugger'", "'bcrypt-ruby'", "'capistrano'"].each do |lib| gsub_file 'Gemfile', /# gem #{lib}/ do |match| "gem #{lib}" end end #replace sqlite3 with mysql2 gsub_file 'Gemfile', /gem 'sqlite3'/ do |match| "gem 'mysql2'" end #add haml gem gem 'haml-rails' #add following gems to development gem_group :development do gem 'letter_opener' gem 'quiet_assets' gem 'thin' end run "bundle install" end |
#public_views ⇒ Object
18 19 20 21 |
# File 'lib/generators/devshop_generator.rb', line 18 def public_views empty_directory 'app/views/public' create_file 'app/views/public/index.html.haml', "this is your public index page" end |
#remove_files ⇒ Object
remove files not being used or that will be replaced by our templates
8 9 10 11 12 13 14 15 16 |
# File 'lib/generators/devshop_generator.rb', line 8 def remove_files remove_file "app/public/index.html" remove_file "app/views/layouts/application.html.erb" remove_file "app/assets/stylesheets/application.css" remove_file "app/assets/javascripts/application.js" remove_file "config/database.yml" remove_file "app/helpers/application_helper.rb" remove_file "db/seeds.rb" end |
#setup_administrator_model ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/generators/devshop_generator.rb', line 55 def setup_administrator_model run "rails g model Administrator email password_digest" run "rake db:migrate" inject_into_class "app/models/administrator.rb", Administrator do "has_secure_password\n" end end |