class Chaltron::InstallGenerator

Install a skeleton application

Public Instance Methods

add_gem_dependencies() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 18
def add_gem_dependencies
  gem 'devise'
  gem 'omniauth'
  gem 'omniauth-rails_csrf_protection'
  gem 'gitlab_omniauth-ldap'
  gem 'cancancan'

  gem 'bootstrap', '~> 4.6'
  gem 'autoprefixer-rails'
  gem 'font-awesome-sass'

  gem 'jquery-rails'
  gem 'jquery-datatables'
  gem 'ajax-datatables-rails'

  gem 'bootstrap_form'
  gem 'nprogress-rails'
  gem 'simple-navigation'
  gem 'rails-i18n'
end
add_javascript() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 75
    def add_javascript
      dependencies =<<EOF
//= require jquery
//= require popper
//= require bootstrap
//= require datatables/jquery.dataTables
//= require datatables/dataTables.bootstrap4
//= require datatables/extensions/Responsive/dataTables.responsive
//= require datatables/extensions/Responsive/responsive.bootstrap4
//= require nprogress
//= require nprogress-turbolinks
//= require nprogress-ajax
//= require chaltron
EOF

      inject_into_file 'app/assets/javascripts/application.js', dependencies, before: '//= require_tree .'

      javascript =<<JS


document.addEventListener('DOMContentLoaded', function(event) {
  Chaltron.locale = $('body').data('locale');
});

NProgress.configure({
  showSpinner: false,
});

JS
      inject_into_file 'app/assets/javascripts/application.js', javascript, after: '//= require_tree .'
    end
add_stylesheets() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 107
def add_stylesheets
  copy_file 'app/assets/stylesheets/chaltron_custom.scss'
  copy_file 'app/assets/stylesheets/datatables.scss'
end
apply_layout() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 68
def apply_layout
  # html
  remove_file 'app/views/layouts/application.html.erb'
  directory 'app/views/layouts'
  directory 'app/assets/images'
end
create_index_controller() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 112
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.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() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 49
def db_migrations
  rake 'chaltron_engine:install:migrations'
end
db_seed() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 53
    def db_seed
      append_file 'db/seeds.rb' do
        <<RUBY
User.create do |u|
  u.username              = 'bella'
  u.fullname              = 'Bellatrix Lestrange'
  u.email                 = 'bellatrix.lestrange@azkaban.co.uk'
  u.password              = 'password.1'
  u.password_confirmation = 'password.1'
  u.roles                 = Chaltron.roles
end
RUBY
      end
    end
disclaimer() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 11
def disclaimer
  print_banner
  if options.interactive?
    exit unless yes?('Are you sure you want to continue? [yes/NO]')
  end
end
gem_priority() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 39
def gem_priority
  # chaltron gem must be loaded after devise to setup the correct view paths
  chaltron = File.readlines('Gemfile')
                 .select { |l| l.match('chaltron') }
                 .first

  gsub_file 'Gemfile', chaltron, ''
  append_file 'Gemfile', "\n#{chaltron}"
end
setup_authorization() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 135
def setup_authorization
  copy_file 'app/models/ability.rb'
end
setup_chaltron() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 131
def setup_chaltron
  copy_file 'config/initializers/chaltron.rb'
end
setup_navigation() click to toggle source
# File lib/generators/chaltron/install_generator.rb, line 127
def setup_navigation
  copy_file 'config/navigation.rb'
end

Private Instance Methods

print_banner() click to toggle source
print_welcome() click to toggle source