Class: Chaltron::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Chaltron::InstallGenerator
- Defined in:
- lib/generators/chaltron/install_generator.rb
Overview
Install a skeleton application
Instance Method Summary collapse
- #apply_layout ⇒ Object
- #create_index_controller ⇒ Object
- #db_migrations ⇒ Object
- #db_seed ⇒ Object
- #disclaimer ⇒ Object
- #setup_ajax_datatables ⇒ Object
- #setup_authorization ⇒ Object
- #setup_chaltron ⇒ Object
- #setup_navigation ⇒ Object
Instance Method Details
#apply_layout ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/generators/chaltron/install_generator.rb', line 37 def apply_layout # html remove_file 'app/views/layouts/application.html.erb' directory 'app/views/layouts' directory 'app/assets/images' # javascript inject_into_file 'app/assets/javascripts/application.js', "//= require chaltron\n", before: '//= require_tree .' end |
#create_index_controller ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/generators/chaltron/install_generator.rb', line 47 def create_index_controller generate 'controller home index' route "root to: 'home#index'" # controller, views and assets replacement copy_file 'app/controllers/home_controller.rb', force: true directory 'app/views/home/', force: true copy_file 'app/assets/javascripts/home.js.coffee', force: true copy_file 'app/assets/stylesheets/home.scss', force: true Array(1..10).each do |x| route "get 'home/test#{x}'" end end |
#db_migrations ⇒ Object
18 19 20 |
# File 'lib/generators/chaltron/install_generator.rb', line 18 def db_migrations rake 'chaltron_engine:install:migrations' end |
#db_seed ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/generators/chaltron/install_generator.rb', line 22 def db_seed append_file 'db/seeds.rb' do "User.create do |u|\n u.username = 'bella'\n u.fullname = 'Bellatrix Lestrange'\n u.email = '[email protected]'\n u.password = 'password.1'\n u.password_confirmation = 'password.1'\n u.roles = Chaltron.roles\nend\n" end end |
#disclaimer ⇒ Object
11 12 13 14 15 16 |
# File 'lib/generators/chaltron/install_generator.rb', line 11 def disclaimer if .interactive? exit unless yes?('Are you sure you want to continue? [yes/NO]') end end |
#setup_ajax_datatables ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/generators/chaltron/install_generator.rb', line 75 def setup_ajax_datatables ajax_datatables_rails_file = 'config/initializers/ajax_datatables_rails.rb' copy_file ajax_datatables_rails_file # setup ajax-datatables-rails db_adapter = case ActiveRecord::Base.connection.adapter_name when 'Mysql2' then :mysql2 when 'SQLite' then :sqlite3 when 'PostgreSQL' then :pg else nil end if db_adapter.nil? =" PAY ATTENTION!\n ajax-datatables-rails gem (needed by chaltron) does not support \#{options[:database]}.\n See https://github.com/antillas21/ajax-datatables-rails#searching-on-non-text-based-columns.\n You may experience problems!\n" say else gsub_file ajax_datatables_rails_file, /# config.db_adapter = :mysql2/, "config.db_adapter = :#{db_adapter}" end end |
#setup_authorization ⇒ Object
71 72 73 |
# File 'lib/generators/chaltron/install_generator.rb', line 71 def copy_file 'app/models/ability.rb' end |
#setup_chaltron ⇒ Object
66 67 68 69 |
# File 'lib/generators/chaltron/install_generator.rb', line 66 def setup_chaltron copy_file 'config/initializers/chaltron.rb' copy_file 'app/assets/stylesheets/chaltron_custom.scss' end |
#setup_navigation ⇒ Object
62 63 64 |
# File 'lib/generators/chaltron/install_generator.rb', line 62 def copy_file 'config/navigation.rb' end |