Class: Decidim::Generators::AppGenerator
- Inherits:
-
Rails::Generators::AppGenerator
- Object
- Rails::Generators::AppGenerator
- Decidim::Generators::AppGenerator
- Defined in:
- lib/decidim/generators/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
- #add_ignore_uploads ⇒ Object
- #authorization_handler ⇒ Object
- #budgets_workflows ⇒ Object
- #cable_yml ⇒ Object
- #database_yml ⇒ Object
- #decidim_controller ⇒ Object
- #decidim_initializer ⇒ Object
- #docker ⇒ Object
- #etherpad ⇒ Object
- #gemfile ⇒ Object
- #install ⇒ Object
- #license ⇒ Object
- #machine_translation_service ⇒ Object
- #pdf_signature_service ⇒ Object
- #readme ⇒ Object
- #remove_default_error_pages ⇒ Object
- #sms_gateway ⇒ Object
- #source_paths ⇒ Object
- #timestamp_service ⇒ Object
- #tweak_bootsnap ⇒ Object
Instance Method Details
#add_ignore_uploads ⇒ Object
145 146 147 |
# File 'lib/decidim/generators/app_generator.rb', line 145 def add_ignore_uploads append_file ".gitignore", "\n# Ignore public uploads\npublic/uploads" unless ["skip_git"] end |
#authorization_handler ⇒ Object
164 165 166 167 168 169 170 |
# File 'lib/decidim/generators/app_generator.rb', line 164 def return unless [:demo] copy_file "dummy_authorization_handler.rb", "app/services/dummy_authorization_handler.rb" copy_file "another_dummy_authorization_handler.rb", "app/services/another_dummy_authorization_handler.rb" copy_file "verifications_initializer.rb", "config/initializers/decidim_verifications.rb" end |
#budgets_workflows ⇒ Object
180 181 182 183 184 185 186 187 |
# File 'lib/decidim/generators/app_generator.rb', line 180 def budgets_workflows return unless [:demo] copy_file "budgets_workflow_random.rb", "lib/budgets_workflow_random.rb" copy_file "budgets_workflow_random.en.yml", "config/locales/budgets_workflow_random.en.yml" copy_file "budgets_initializer.rb", "config/initializers/decidim_budgets.rb" end |
#cable_yml ⇒ Object
89 90 91 |
# File 'lib/decidim/generators/app_generator.rb', line 89 def cable_yml template "cable.yml.erb", "config/cable.yml", force: true end |
#database_yml ⇒ Object
72 73 74 |
# File 'lib/decidim/generators/app_generator.rb', line 72 def database_yml template "database.yml.erb", "config/database.yml", force: true end |
#decidim_controller ⇒ Object
76 77 78 |
# File 'lib/decidim/generators/app_generator.rb', line 76 def decidim_controller template "decidim_controller.rb.erb", "app/controllers/decidim_controller.rb", force: true end |
#decidim_initializer ⇒ Object
154 155 156 157 158 159 160 161 162 |
# File 'lib/decidim/generators/app_generator.rb', line 154 def decidim_initializer copy_file "initializer.rb", "config/initializers/decidim.rb" if [:force_ssl] == "false" gsub_file "config/initializers/decidim.rb", /# config.force_ssl = true/, "config.force_ssl = false" end end |
#docker ⇒ Object
80 81 82 83 |
# File 'lib/decidim/generators/app_generator.rb', line 80 def docker template "Dockerfile.erb", "Dockerfile" template "docker-compose.yml.erb", "docker-compose.yml" end |
#etherpad ⇒ Object
85 86 87 |
# File 'lib/decidim/generators/app_generator.rb', line 85 def etherpad template "docker-compose-etherpad.yml", "docker-compose-etherpad.yml" end |
#gemfile ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/decidim/generators/app_generator.rb', line 101 def gemfile return if [:skip_gemfile] if branch.present? get target_gemfile, "Gemfile", force: true get "#{target_gemfile}.lock", "Gemfile.lock", force: true else copy_file target_gemfile, "Gemfile", force: true copy_file "#{target_gemfile}.lock", "Gemfile.lock", force: true end gsub_file "Gemfile", /gem "#{current_gem}".*/, "gem \"#{current_gem}\", #{gem_modifier}" if current_gem == "decidim" gsub_file "Gemfile", /gem "decidim-dev".*/, "gem \"decidim-dev\", #{gem_modifier}" %w(conferences consultations elections initiatives templates).each do |component| if [:demo] gsub_file "Gemfile", /gem "decidim-#{component}".*/, "gem \"decidim-#{component}\", #{gem_modifier}" else gsub_file "Gemfile", /gem "decidim-#{component}".*/, "# gem \"decidim-#{component}\", #{gem_modifier}" end end end run "bundle install" end |
#install ⇒ Object
213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/decidim/generators/app_generator.rb', line 213 def install Decidim::Generators::InstallGenerator.start( [ "--recreate_db=#{[:recreate_db]}", "--seed_db=#{[:seed_db]}", "--skip_gemfile=#{[:skip_gemfile]}", "--app_name=#{app_name}", "--profiling=#{[:profiling]}" ] ) end |
#license ⇒ Object
97 98 99 |
# File 'lib/decidim/generators/app_generator.rb', line 97 def license template "LICENSE-AGPLv3.txt", "LICENSE-AGPLv3.txt" end |
#machine_translation_service ⇒ Object
205 206 207 208 209 210 211 |
# File 'lib/decidim/generators/app_generator.rb', line 205 def machine_translation_service return unless [:demo] gsub_file "config/initializers/decidim.rb", /# config.machine_translation_service = "MyTranslationService"/, "config.machine_translation_service = 'Decidim::Dev::DummyTranslator'" end |
#pdf_signature_service ⇒ Object
197 198 199 200 201 202 203 |
# File 'lib/decidim/generators/app_generator.rb', line 197 def pdf_signature_service return unless [:demo] gsub_file "config/initializers/decidim.rb", /# config.pdf_signature_service = "MyPDFSignatureService"/, "config.pdf_signature_service = \"Decidim::Initiatives::PdfSignatureExample\"" end |
#readme ⇒ Object
93 94 95 |
# File 'lib/decidim/generators/app_generator.rb', line 93 def readme template "README.md.erb", "README.md", force: true end |
#remove_default_error_pages ⇒ Object
149 150 151 152 |
# File 'lib/decidim/generators/app_generator.rb', line 149 def remove_default_error_pages remove_file "public/404.html" remove_file "public/500.html" end |
#sms_gateway ⇒ Object
172 173 174 175 176 177 178 |
# File 'lib/decidim/generators/app_generator.rb', line 172 def sms_gateway return unless [:demo] gsub_file "config/initializers/decidim.rb", /# config.sms_gateway_service = "MySMSGatewayService"/, "config.sms_gateway_service = 'Decidim::Verifications::Sms::ExampleGateway'" end |
#source_paths ⇒ Object
19 20 21 22 23 24 |
# File 'lib/decidim/generators/app_generator.rb', line 19 def source_paths [ self.class.source_root, Rails::Generators::AppGenerator.source_root ] end |
#timestamp_service ⇒ Object
189 190 191 192 193 194 195 |
# File 'lib/decidim/generators/app_generator.rb', line 189 def return unless [:demo] gsub_file "config/initializers/decidim.rb", /# config.timestamp_service = "MyTimestampService"/, "config.timestamp_service = \"Decidim::Initiatives::DummyTimestamp\"" end |
#tweak_bootsnap ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/decidim/generators/app_generator.rb', line 129 def tweak_bootsnap gsub_file "config/boot.rb", %r{require 'bootsnap/setup'.*$}, <<~RUBY.rstrip require "bootsnap" env = ENV["RAILS_ENV"] || "development" Bootsnap.setup( cache_dir: File.expand_path(File.join("..", "tmp", "cache"), __dir__), development_mode: env == "development", load_path_cache: true, compile_cache_iseq: !ENV["SIMPLECOV"], compile_cache_yaml: true ) RUBY end |