Class: Decidim::Generators::AppGenerator

Inherits:
Rails::Generators::AppGenerator
  • Object
show all
Defined in:
lib/generators/decidim/app_generator.rb

Overview

Generates a Rails app and installs decidim to it. Uses the default Rails generator for most of the work.

Remember that, for how generators work, actions are executed based on the definition order of the public methods.

Instance Method Summary collapse

Instance Method Details

#add_ignore_uploadsObject



87
88
89
90
91
# File 'lib/generators/decidim/app_generator.rb', line 87

def add_ignore_uploads
  unless options["skip_git"]
    append_file ".gitignore", "\n# Ignore public uploads\npublic/uploads"
  end
end

#app_const_baseObject



83
84
85
# File 'lib/generators/decidim/app_generator.rb', line 83

def app_const_base
  options["app_const_base"] || super
end

#authorization_handlerObject



98
99
100
# File 'lib/generators/decidim/app_generator.rb', line 98

def authorization_handler
  template "authorization_handler.rb", "app/services/example_authorization_handler.rb", force: true
end

#cable_ymlObject



63
64
65
# File 'lib/generators/decidim/app_generator.rb', line 63

def cable_yml
  template "cable.yml.erb", "config/cable.yml", force: true
end

#database_ymlObject



50
51
52
# File 'lib/generators/decidim/app_generator.rb', line 50

def database_yml
  template "database.yml.erb", "config/database.yml", force: true
end

#decidim_controllerObject



54
55
56
# File 'lib/generators/decidim/app_generator.rb', line 54

def decidim_controller
  template "decidim_controller.rb.erb", "app/controllers/decidim_controller.rb", force: true
end

#dockerObject



58
59
60
61
# File 'lib/generators/decidim/app_generator.rb', line 58

def docker
  template "Dockerfile.erb", "Dockerfile"
  template "docker-compose.yml.erb", "docker-compose.yml"
end

#installObject



76
77
78
79
80
81
# File 'lib/generators/decidim/app_generator.rb', line 76

def install
  Decidim::Generators::InstallGenerator.start [
    "--recreate_db=#{options[:recreate_db]}",
    "--app_name=#{app_name}"
  ]
end

#readmeObject



67
68
69
# File 'lib/generators/decidim/app_generator.rb', line 67

def readme
  template "README.md.erb", "README.md", force: true
end

#remove_default_error_pagesObject



93
94
95
96
# File 'lib/generators/decidim/app_generator.rb', line 93

def remove_default_error_pages
  remove_file "public/404.html"
  remove_file "public/500.html"
end

#secret_tokenObject



71
72
73
74
# File 'lib/generators/decidim/app_generator.rb', line 71

def secret_token
  require "securerandom"
  SecureRandom.hex(64)
end

#source_pathsObject



21
22
23
24
25
26
27
28
29
30
# File 'lib/generators/decidim/app_generator.rb', line 21

def source_paths
  [
    File.expand_path("templates", __dir__),
    File.expand_path(File.join(Gem::Specification
                                            .find_by_name("railties").gem_dir,
                               "lib", "rails", "generators", "rails",
                               "app", "templates"))

  ]
end