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
149 150 151 |
# File 'lib/decidim/generators/app_generator.rb', line 149 def add_ignore_uploads append_file ".gitignore", "\n# Ignore public uploads\npublic/uploads" unless ["skip_git"] end |
#authorization_handler ⇒ Object
168 169 170 171 172 173 174 |
# File 'lib/decidim/generators/app_generator.rb', line 168 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
184 185 186 187 188 189 190 191 |
# File 'lib/decidim/generators/app_generator.rb', line 184 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
93 94 95 |
# File 'lib/decidim/generators/app_generator.rb', line 93 def cable_yml template "cable.yml.erb", "config/cable.yml", force: true end |
#database_yml ⇒ Object
76 77 78 |
# File 'lib/decidim/generators/app_generator.rb', line 76 def database_yml template "database.yml.erb", "config/database.yml", force: true end |
#decidim_controller ⇒ Object
80 81 82 |
# File 'lib/decidim/generators/app_generator.rb', line 80 def decidim_controller template "decidim_controller.rb.erb", "app/controllers/decidim_controller.rb", force: true end |
#decidim_initializer ⇒ Object
158 159 160 161 162 163 164 165 166 |
# File 'lib/decidim/generators/app_generator.rb', line 158 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
84 85 86 87 |
# File 'lib/decidim/generators/app_generator.rb', line 84 def docker template "Dockerfile.erb", "Dockerfile" template "docker-compose.yml.erb", "docker-compose.yml" end |
#etherpad ⇒ Object
89 90 91 |
# File 'lib/decidim/generators/app_generator.rb', line 89 def etherpad template "docker-compose-etherpad.yml", "docker-compose-etherpad.yml" end |
#gemfile ⇒ Object
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/decidim/generators/app_generator.rb', line 105 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
217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/decidim/generators/app_generator.rb', line 217 def install Decidim::Generators::InstallGenerator.start( [ "--recreate_db=#{options[:recreate_db]}", "--seed_db=#{options[:seed_db]}", "--skip_gemfile=#{options[:skip_gemfile]}", "--app_name=#{app_name}", "--profiling=#{options[:profiling]}" ] ) end |
#license ⇒ Object
101 102 103 |
# File 'lib/decidim/generators/app_generator.rb', line 101 def license template "LICENSE-AGPLv3.txt", "LICENSE-AGPLv3.txt" end |
#machine_translation_service ⇒ Object
209 210 211 212 213 214 215 |
# File 'lib/decidim/generators/app_generator.rb', line 209 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
201 202 203 204 205 206 207 |
# File 'lib/decidim/generators/app_generator.rb', line 201 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
97 98 99 |
# File 'lib/decidim/generators/app_generator.rb', line 97 def readme template "README.md.erb", "README.md", force: true end |
#remove_default_error_pages ⇒ Object
153 154 155 156 |
# File 'lib/decidim/generators/app_generator.rb', line 153 def remove_default_error_pages remove_file "public/404.html" remove_file "public/500.html" end |
#sms_gateway ⇒ Object
176 177 178 179 180 181 182 |
# File 'lib/decidim/generators/app_generator.rb', line 176 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
193 194 195 196 197 198 199 |
# File 'lib/decidim/generators/app_generator.rb', line 193 def return unless [:demo] gsub_file "config/initializers/decidim.rb", /# config.timestamp_service = "MyTimestampService"/, "config.timestamp_service = \"Decidim::Initiatives::DummyTimestamp\"" end |
#tweak_bootsnap ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/decidim/generators/app_generator.rb', line 133 def tweak_bootsnap gsub_file "config/boot.rb", %r{require 'bootsnap/setup'.*$}, " require \"bootsnap\"\n\n env = ENV[\"RAILS_ENV\"] || \"development\"\n\n Bootsnap.setup(\n cache_dir: File.expand_path(File.join(\"..\", \"tmp\", \"cache\"), __dir__),\n development_mode: env == \"development\",\n load_path_cache: true,\n compile_cache_iseq: !ENV[\"SIMPLECOV\"],\n compile_cache_yaml: true\n )\n RUBY\nend\n".rstrip |