Class: Isaca::Rails::InstallGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Isaca::Rails::InstallGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/isaca/rails/install/install_generator.rb
Instance Method Summary collapse
-
#add_claim_model ⇒ Object
Add claim model.
-
#add_isaca_consent_javascript ⇒ Object
Add required ISACA consent javascript.
-
#add_isaca_routing ⇒ Object
Add Isaca::Rails Routing to the application.
-
#add_isaca_stylsheets ⇒ Object
Add stylesheets for default page look and feel - required if you don’t override the sign_in page.
- #add_migrations ⇒ Object
-
#copy_initializer_files ⇒ Object
Copies all initializer files required for an ISACA project.
- #display_readme ⇒ Object
-
#extend_application_controller ⇒ Object
Extend application controller with Isaca::Rails::Sessionable.
-
#extend_application_model ⇒ Object
Extend application user model with Isaca::Rails::User.
Instance Method Details
#add_claim_model ⇒ Object
Add claim model
39 40 41 42 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 39 def add_claim_model filepath = Rails.root + 'app/models/claim.rb' template 'claim.rb.erb', filepath unless File.exist? filepath end |
#add_isaca_consent_javascript ⇒ Object
Add required ISACA consent javascript
15 16 17 18 19 20 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 15 def inject_into_file Rails.root + 'app/views/layouts/application.html.erb', before: '</head>' do <<-RUBY <%= isaca_consent_javascript %> RUBY end end |
#add_isaca_routing ⇒ Object
Add Isaca::Rails Routing to the application
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 56 def add_isaca_routing routes = [ "resources :administrators, except: [:update], module: 'isaca/rails/platform', path: 'platform/administrators'", "post '/platform/administrators/:administrator_id/claims', to: 'isaca/rails/platform/claims#create', as: 'administrator_claims'", "resource :session, only: [:create], controller: 'isaca/rails/sessions'", "resource :user_consent, only: [:show, :create], controller: 'isaca/rails/users_consent'", "get '/sign_in' => 'isaca/rails/sessions#new', as: 'sign_in'", "delete '/sign_out' => 'isaca/rails/sessions#destroy', as: 'sign_out'" ].reverse! routes.each do |route| inject_route(route) unless File.foreach(Rails.root + 'config/routes.rb').any? { |line| line.include? route } end root_code = "root to: 'isaca/rails/welcome#index'" inject_route(root_code) unless File.foreach(Rails.root + 'config/routes.rb').any? {|line| line.include? 'root to:'} end |
#add_isaca_stylsheets ⇒ Object
Add stylesheets for default page look and feel - required if you don’t override the sign_in page
75 76 77 78 79 80 81 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 75 def add_isaca_stylsheets code = '*= require isaca/rails/application' inject_into_file Rails.root + 'app/assets/stylesheets/application.css', optimize_indentation(code, 2), before: '*= require_tree .' end |
#add_migrations ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 83 def add_migrations if user_table_exists? migration_template 'add_isaca_to_existing_users.rb.erb', Rails.root + "db/migrate/add_isaca_#{name.pluralize.underscore}.rb" else migration_template 'add_isaca_users.rb.erb', Rails.root + "db/migrate/add_isaca_#{name.pluralize.underscore}.rb" end if claim_table_exists? else migration_template 'add_isaca_claims.rb.erb', Rails.root + "db/migrate/add_isaca_claims.rb" end end |
#copy_initializer_files ⇒ Object
Copies all initializer files required for an ISACA project
9 10 11 12 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 9 def copy_initializer_files copy_file("isaca.rb", Rails.root + 'config/initializers/isaca.rb') copy_file("isaca-rails.rb", Rails.root + 'config/initializers/isaca-rails.rb') end |
#display_readme ⇒ Object
99 100 101 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 99 def display_readme readme 'README' end |
#extend_application_controller ⇒ Object
Extend application controller with Isaca::Rails::Sessionable
45 46 47 48 49 50 51 52 53 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 45 def extend_application_controller code = <<-RUBY \ninclude Isaca::Rails::Controller RUBY inject_into_file Rails.root + 'app/controllers/application_controller.rb', optimize_indentation(code, 2), after: 'class ApplicationController < ActionController::Base' end |
#extend_application_model ⇒ Object
Extend application user model with Isaca::Rails::User
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/isaca/rails/install/install_generator.rb', line 23 def extend_application_model filepath = Rails.root + "app/models/#{name.singularize.underscore}.rb" if File.exist? filepath code = <<-RUBY \ninclude Isaca::Rails::User RUBY inject_into_file filepath, optimize_indentation(code, 2), after: "class #{name.singularize.classify} < ApplicationRecord" else template 'user.rb.erb', filepath end end |