Class: Decidim::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Decidim::Generators::InstallGenerator
- Defined in:
- lib/generators/decidim/install_generator.rb
Overview
Installs ‘decidim` to a Rails app by adding the needed lines of code automatically to important files in the Rails app.
Remember that, for how generators work, actions are executed based on the definition order of the public methods.
Instance Method Summary collapse
- #add_seeds ⇒ Object
- #append_assets ⇒ Object
- #copy_initializer ⇒ Object
- #copy_migrations ⇒ Object
- #install ⇒ Object
- #letter_opener_web ⇒ Object
- #remove_layout ⇒ Object
- #secrets ⇒ Object
- #smtp_environment ⇒ Object
Instance Method Details
#add_seeds ⇒ Object
33 34 35 36 37 38 |
# File 'lib/generators/decidim/install_generator.rb', line 33 def add_seeds append_file("db/seeds.rb", "# You can remove the 'faker' gem if you don't want Decidim seeds.\nDecidim.seed!\n SEEDS_CONTENT\nend\n") |
#append_assets ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/generators/decidim/install_generator.rb', line 55 def append_assets append_file "app/assets/javascripts/application.js", "//= require decidim" gsub_file "app/assets/javascripts/application.js", %r{//= require turbolinks\n}, "" inject_into_file "app/assets/stylesheets/application.css", before: "*= require_tree ." do "*= require decidim\n " end template "decidim.scss.erb", "app/assets/stylesheets/decidim.scss", force: true end |
#copy_initializer ⇒ Object
40 41 42 43 44 |
# File 'lib/generators/decidim/install_generator.rb', line 40 def copy_initializer template "initializer.rb", "config/initializers/decidim.rb" template "carrierwave.rb", "config/initializers/carrierwave.rb" template "social_share_button.rb", "config/initializers/social_share_button.rb" end |
#copy_migrations ⇒ Object
27 28 29 30 31 |
# File 'lib/generators/decidim/install_generator.rb', line 27 def copy_migrations rake "railties:install:migrations" recreate_db if [:recreate_db] rake "db:migrate" if [:migrate] end |
#install ⇒ Object
23 24 25 |
# File 'lib/generators/decidim/install_generator.rb', line 23 def install route "mount Decidim::Core::Engine => '/'" end |
#letter_opener_web ⇒ Object
96 97 98 99 100 101 102 103 |
# File 'lib/generators/decidim/install_generator.rb', line 96 def letter_opener_web inject_into_file "config/environments/development.rb", after: "config.action_mailer.raise_delivery_errors = false" do %( config.action_mailer.delivery_method = :letter_opener_web) end end |
#remove_layout ⇒ Object
50 51 52 53 |
# File 'lib/generators/decidim/install_generator.rb', line 50 def remove_layout remove_file "app/views/layouts/application.html.erb" remove_file "app/views/layouts/mailer.text.erb" end |
#secrets ⇒ Object
46 47 48 |
# File 'lib/generators/decidim/install_generator.rb', line 46 def secrets template "secrets.yml.erb", "config/secrets.yml", force: true end |
#smtp_environment ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/generators/decidim/install_generator.rb', line 66 def smtp_environment inject_into_file "config/environments/production.rb", after: "config.log_formatter = ::Logger::Formatter.new" do %( config.action_mailer.smtp_settings = { :address => Rails.application.secrets.smtp_address, :port => Rails.application.secrets.smtp_port, :authentication => Rails.application.secrets.smtp_authentication, :user_name => Rails.application.secrets.smtp_username, :password => Rails.application.secrets.smtp_password, :domain => Rails.application.secrets.smtp_domain, :enable_starttls_auto => Rails.application.secrets.smtp_starttls_auto, :openssl_verify_mode => 'none' } if Rails.application.secrets.sendgrid config.action_mailer.default_options = { "X-SMTPAPI" => { filters: { clicktrack: { settings: { enable: 0 } }, opentrack: { settings: { enable: 0 } } } }.to_json } end ) end end |