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



90
91
92
93
94
# File 'lib/generators/decidim/app_generator.rb', line 90

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

#app_const_baseObject



86
87
88
# File 'lib/generators/decidim/app_generator.rb', line 86

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

#authorization_handlerObject



101
102
103
# File 'lib/generators/decidim/app_generator.rb', line 101

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

#cable_ymlObject



65
66
67
# File 'lib/generators/decidim/app_generator.rb', line 65

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

#database_ymlObject



52
53
54
# File 'lib/generators/decidim/app_generator.rb', line 52

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

#decidim_controllerObject



56
57
58
# File 'lib/generators/decidim/app_generator.rb', line 56

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

#dockerObject



60
61
62
63
# File 'lib/generators/decidim/app_generator.rb', line 60

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

#installObject



78
79
80
81
82
83
84
# File 'lib/generators/decidim/app_generator.rb', line 78

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

#readmeObject



69
70
71
# File 'lib/generators/decidim/app_generator.rb', line 69

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

#remove_default_error_pagesObject



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

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

#secret_tokenObject



73
74
75
76
# File 'lib/generators/decidim/app_generator.rb', line 73

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

#source_pathsObject



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

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

  ]
end