class Cambium::AdminGenerator

Public Instance Methods

add_admin_migration() click to toggle source

Generate a migration so we can keep users from accessing the admin if they don't have permission

# File lib/generators/cambium/admin_generator.rb, line 36
def add_admin_migration
  generate "migration add_is_admin_to_users" # is_admin:boolean"
  Dir.glob("#{Rails.root.join('db','migrate')}/*.rb").each do |file|
    filename = file.split('/').last
    if filename =~ /is\_admin/
      insert_into_file(
        "db/migrate/#{filename}",
        "\n    add_column :users, :is_admin, :boolean, :default => false",
        :after => "def change"
      )
    end
  end
end
add_admin_routes() click to toggle source

Add admin sidebar file to the project

# File lib/generators/cambium/admin_generator.rb, line 58
def add_admin_routes
  ['sidebar','users','pages','documents','settings'].each do |file|
    template "config/admin/#{file}.yml", "config/admin/#{file}.yml"
  end
end
add_css_override() click to toggle source

Adds a manifest SCSS file to the project, so the developer can override any admin styles with creating a new layout

# File lib/generators/cambium/admin_generator.rb, line 98
def add_css_override
  file = "app/assets/stylesheets/admin/admin.scss"
  template(file, file)
end
add_paper_trail() click to toggle source

Add migration for paper_trail versions

# File lib/generators/cambium/admin_generator.rb, line 66
def add_paper_trail
  generate 'paper_trail:install'
  Dir.glob("#{Rails.root}/app/models/*.rb").each do |f|
    insert_into_file f.to_s, :after => "ActiveRecord::Base\n" do
      "  # ------------------------------------------ Plugins\n" +
      "  has_paper_trail\n"
    end
  end
end
add_user_profile() click to toggle source

Add another migration for user profile fields

# File lib/generators/cambium/admin_generator.rb, line 52
def add_user_profile
  generate "migration add_user_profile_fields_to_users name:string"
end
verify_configuration() click to toggle source

If there is no configuration file tell the user to run that generator first (unless user has manually overridden).

# File lib/generators/cambium/admin_generator.rb, line 24
def verify_configuration
  if options.config_check?
    unless File.exists?("#{Rails.root}/config/initializers/cambium.rb")
      help_message('cambium_prereqs')
      exit
    end
  end
end