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_pg_search()
click to toggle source
Add migration for pg_search
# File lib/generators/cambium/admin_generator.rb, line 78 def add_pg_search generate 'pg_search:migration:multisearch' help_message('pg_search_post_install') 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
add_user_search()
click to toggle source
Add pg_search to users
# File lib/generators/cambium/admin_generator.rb, line 85 def add_user_search insert_into_file( "#{Rails.root}/app/models/user.rb", :after => "---- Plugins\n" ) do " include PgSearch\n" + " multisearchable :against => [:name, :email]\n" end 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