Class: Admin::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
ActiveRecord::Generators::Migration
Defined in:
lib/generators/admin/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_field_error_procObject

[View source]

10
11
12
13
14
15
16
17
18
19
# File 'lib/generators/admin/install/install_generator.rb', line 10

def add_field_error_proc
  field_error_proc_code = <<~RUBY
    # Provides an HTML generator for displaying errors that come from Active Model
    config.action_view.field_error_proc = Proc.new do |html_tag, instance|
      raw Nokogiri::HTML.fragment(html_tag).child.add_class("is-invalid")
    end
  RUBY

  environment field_error_proc_code
end

#add_gemsObject

[View source]

21
22
23
24
25
26
# File 'lib/generators/admin/install/install_generator.rb', line 21

def add_gems
  uncomment_lines "Gemfile", /"bcrypt"/
  gem "pagy", comment: "Use Pagy to add paginated results [https://github.com/ddnexus/pagy]"
  gem "ransack", comment: "Use Ransack to enable the creation of search forms for your application [https://github.com/activerecord-hackery/ransack]"
  gem "spreadsheet_architect", comment: "Spreadsheet Architect is a library that allows you to create XLSX, ODS, or CSV spreadsheets super easily [https://github.com/westonganger/spreadsheet_architect]"
end

#add_routesObject

[View source]

62
63
64
65
66
67
68
69
# File 'lib/generators/admin/install/install_generator.rb', line 62

def add_routes
  route "resource  :password_reset", namespace: :admin
  route "resources :users", namespace: :admin
  route "delete 'sign_out', to: 'sessions#destroy'", namespace: :admin
  route "post   'sign_in',  to: 'sessions#create'", namespace: :admin
  route "get    'sign_in',  to: 'sessions#new'", namespace: :admin
  route "get    '/',        to: 'home#index'", namespace: :admin
end

#create_controllersObject

[View source]

42
43
44
# File 'lib/generators/admin/install/install_generator.rb', line 42

def create_controllers
  directory "controllers", "app/controllers"
end

#create_db_filesObject

[View source]

28
29
30
31
# File 'lib/generators/admin/install/install_generator.rb', line 28

def create_db_files
  copy_file "seeds.rb", "db/seeds.rb", force: true
  migration_template "migrations/create_admin_users.rb", "#{db_migrate_path}/create_admin_users.rb"
end

#create_fixture_fileObject

[View source]

38
39
40
# File 'lib/generators/admin/install/install_generator.rb', line 38

def create_fixture_file
  copy_file "test_unit/admin_users.yml", "test/fixtures/admin/users.yml"
end

#create_helpersObject

[View source]

50
51
52
# File 'lib/generators/admin/install/install_generator.rb', line 50

def create_helpers
  directory "helpers", "app/helpers"
end

#create_imagesObject

[View source]

58
59
60
# File 'lib/generators/admin/install/install_generator.rb', line 58

def create_images
  directory "images", "app/assets/images"
end

#create_mailersObject

[View source]

54
55
56
# File 'lib/generators/admin/install/install_generator.rb', line 54

def create_mailers
  directory "mailers", "app/mailers"
end

#create_modelsObject

[View source]

33
34
35
36
# File 'lib/generators/admin/install/install_generator.rb', line 33

def create_models
  directory "models/admin", "app/models/admin"
  copy_file "models/application_record.rb", "app/models/application_record.rb", force: true
end

#create_test_filesObject

[View source]

71
72
73
74
75
76
# File 'lib/generators/admin/install/install_generator.rb', line 71

def create_test_files
  directory "test_unit/controllers", "test/controllers"
  directory "test_unit/system", "test/system"
  copy_file "test_unit/test_helper.rb", "test/test_helper.rb", force: true
  copy_file "test_unit/application_system_test_case.rb", "test/application_system_test_case.rb", force: true
end

#create_viewsObject

[View source]

46
47
48
# File 'lib/generators/admin/install/install_generator.rb', line 46

def create_views
  directory "erb", "app/views"
end