Class: ArgonAdminGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Singleton
Defined in:
lib/generators/argon_admin_generator.rb

Constant Summary collapse

ROUTES_TEXT =
<<-RUBY
namespace :admin do
  root 'pages#dashboard'
  resources :users
end
RUBY
HELPER_TEXT =
<<-RUBY
def flash_class(level)
  case level.to_sym
      when :notice then "alert alert-primary"
      when :success then "alert alert-success"
      when :error then "alert alert-danger"
      when :alert then "alert alert-warning"
  end
end
RUBY
ASSETS_TEXT =
<<-RUBY
Rails.application.config.assets.precompile += %w( admin.js admin.scss )
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
RUBY

Instance Method Summary collapse

Instance Method Details

#generate_admin_dataObject



46
47
48
49
50
51
52
53
54
# File 'lib/generators/argon_admin_generator.rb', line 46

def generate_admin_data
  insert_into_file "config/routes.rb", after: "Rails.application.routes.draw do\n" do
    ROUTES_TEXT
  end
  insert_into_file "app/helpers/application_helper.rb", after: "module ApplicationHelper\n" do
    HELPER_TEXT
  end
  directory "controllers", "app/controllers/admin/"
end

#generate_assetsObject



28
29
30
31
32
33
34
35
# File 'lib/generators/argon_admin_generator.rb', line 28

def generate_assets
  copy_file "assets/stylesheets/admin.scss", "app/assets/stylesheets/admin.scss"
  copy_file "assets/javascripts/admin.js", "app/assets/javascripts/admin.js"
  directory "assets/images/admin", "app/assets/images/admin"
  append_to_file 'config/initializers/assets.rb' do
    ASSETS_TEXT
  end
end

#generate_devise_dataObject



56
57
58
59
60
# File 'lib/generators/argon_admin_generator.rb', line 56

def generate_devise_data
  add_secret_key
  update_development_mailer_config
  update_seeds_file
end

#generate_viewsObject



37
38
39
40
41
42
43
44
# File 'lib/generators/argon_admin_generator.rb', line 37

def generate_views
  directory "layouts", "app/views/layouts"
  directory "views/pages", "app/views/admin/pages"
  directory "views/users", "app/views/admin/users"
  directory "views/shared", "app/views/admin/shared"
  directory "views/sessions", "app/views/devise/sessions"
  directory "views/kaminari", "app/views/kaminari"
end