class JsonVoorhees::AppMakeAdminGenerator

Public Instance Methods

sprint() click to toggle source
# File lib/generators/json_voorhees/app_make_admin/app_make_admin_generator.rb, line 6
    def sprint
clone_engine
insert_defcon_engine
make_active_admin
make_dashboard
    end

Private Instance Methods

clone_engine() click to toggle source
# File lib/generators/json_voorhees/app_make_admin/app_make_admin_generator.rb, line 15
def clone_engine
  run "git clone https://github.com/cleor41/defcon.git"
  run "mv defcon engines/defcon"
  run "rm -rf engines/defcon/.git"
end
find_and_replace_initializer() click to toggle source
# File lib/generators/json_voorhees/app_make_admin/app_make_admin_generator.rb, line 64
    def find_and_replace_initializer
      gsub_file 'config/initializers/active_admin.rb',
      'config.authentication_method = :authenticate_admin_user!',
      '#config.authentication_method = :authenticate_admin_user!'
      gsub_file 'config/initializers/active_admin.rb',
      'config.current_user_method = :current_admin_user',
      '#config.current_user_method = :current_admin_user'
      gsub_file 'config/initializers/active_admin.rb',
      'config.logout_link_path = :destroy_admin_user_session_path',
      '#config.logout_link_path = :destroy_admin_user_session_path'
      inject_into_file 'config/initializers/active_admin.rb', after: "ActiveAdmin.setup do |config|\n" do <<-'RUBY'

  # http auth for admin area
  config.authentication_method = :authenticate_admin_user!
  config.current_user_method = :current_admin_user
  config.logout_link_path = "/sessions/destroy"
  config.logout_link_method = :post
  config.allow_comments = false
  config.site_title_link = "/"

      RUBY
      end
    end
insert_defcon_engine() click to toggle source
# File lib/generators/json_voorhees/app_make_admin/app_make_admin_generator.rb, line 21
      def insert_defcon_engine
        inject_into_file 'Gemfile', after: "source \'https://rubygems.org\'\n" do <<-'RUBY'

  gem 'defcon', :path => "engines/defcon"

        RUBY
        end
      end
make_active_admin() click to toggle source
# File lib/generators/json_voorhees/app_make_admin/app_make_admin_generator.rb, line 39
    def make_active_admin
      run "rails g active_admin:install --skip-users"
      template "defcon_admin_register.rb.erb", "app/admin/defcon_admin_user.rb"
      inject_into_file 'app/controllers/application_controller.rb', after: "protect_from_forgery with: :exception\n" do <<-'RUBY'
  
  protected

    def authenticate_admin_user!
      if ::Defcon.authenticate_admin_user!(session)
        return true
      else
        redirect_to defcon.defcon_login_path, alert: "Login!"
        return false
      end
    end

    def current_admin_user
      return ::Defcon.current_admin_user(session)
    end

      RUBY
      end
      find_and_replace_initializer
    end
make_dashboard() click to toggle source
# File lib/generators/json_voorhees/app_make_admin/app_make_admin_generator.rb, line 30
def make_dashboard
  run "rm -f app/admin/dashboard.rb"
  if options.fbonly?
    copy_file "fb_dashboard.rb", "app/admin/dashboard.rb"
  else
    copy_file "dashboard.rb.erb", "app/admin/dashboard.rb"
  end
end