Class: Cambium::AdminGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Cambium::AdminGenerator
- Defined in:
- lib/generators/cambium/admin_generator.rb
Instance Method Summary collapse
-
#add_admin_migration ⇒ Object
Generate a migration so we can keep users from accessing the admin if they don’t have permission.
-
#add_admin_routes ⇒ Object
Add admin sidebar file to the project.
-
#add_css_override ⇒ Object
Adds a manifest SCSS file to the project, so the developer can override any admin styles with creating a new layout.
-
#add_paper_trail ⇒ Object
Add migration for paper_trail versions.
-
#add_pg_search ⇒ Object
Add migration for pg_search.
-
#add_user_profile ⇒ Object
Add another migration for user profile fields.
-
#add_user_search ⇒ Object
Add pg_search to users.
-
#verify_configuration ⇒ Object
If there is no configuration file tell the user to run that generator first (unless user has manually overridden).
Instance Method Details
#add_admin_migration ⇒ Object
Generate a migration so we can keep users from accessing the admin if they don’t have permission
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# 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 ⇒ Object
Add admin sidebar file to the project
58 59 60 61 62 |
# 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 ⇒ Object
Adds a manifest SCSS file to the project, so the developer can override any admin styles with creating a new layout
98 99 100 101 |
# 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 ⇒ Object
Add migration for paper_trail versions
66 67 68 69 70 71 72 73 74 |
# 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 ⇒ Object
Add migration for pg_search
78 79 80 81 |
# File 'lib/generators/cambium/admin_generator.rb', line 78 def add_pg_search generate 'pg_search:migration:multisearch' ('pg_search_post_install') end |
#add_user_profile ⇒ Object
Add another migration for user profile fields
52 53 54 |
# 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 ⇒ Object
Add pg_search to users
85 86 87 88 89 90 91 92 |
# 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 ⇒ Object
If there is no configuration file tell the user to run that generator first (unless user has manually overridden).
24 25 26 27 28 29 30 31 |
# File 'lib/generators/cambium/admin_generator.rb', line 24 def verify_configuration if .config_check? unless File.exists?("#{Rails.root}/config/initializers/cambium.rb") ('cambium_prereqs') exit end end end |