Class: Spotlight::Install
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Spotlight::Install
- Defined in:
- lib/generators/spotlight/install_generator.rb
Overview
spotlight:install generator
Instance Method Summary collapse
- #add_controller_mixin ⇒ Object
- #add_example_catalog_controller ⇒ Object
- #add_helper ⇒ Object
-
#add_js_rails6 ⇒ Object
we’re not (yet) using webpacker, so we need to re-add sprockets functionality.
- #add_js_rails7 ⇒ Object
- #add_mailer_defaults ⇒ Object
- #add_model_mixin ⇒ Object
- #add_oembed ⇒ Object
- #add_osd_viewer ⇒ Object
- #add_roles_to_user ⇒ Object
- #add_search_builder_mixin ⇒ Object
- #add_solr_config_resources ⇒ Object
- #add_solr_indexing_mixin ⇒ Object
- #add_translations ⇒ Object
- #assets ⇒ Object
- #configure_logging ⇒ Object
- #friendly_id ⇒ Object
- #generate_config ⇒ Object
- #generate_devise_invitable ⇒ Object
- #inject_spotlight_routes ⇒ Object
- #paper_trail ⇒ Object
- #riiif ⇒ Object
- #sitemaps ⇒ Object
Instance Method Details
#add_controller_mixin ⇒ Object
87 88 89 90 91 |
# File 'lib/generators/spotlight/install_generator.rb', line 87 def add_controller_mixin inject_into_file 'app/controllers/application_controller.rb', after: 'include Blacklight::Controller' do "\n include Spotlight::Controller\n" end end |
#add_example_catalog_controller ⇒ Object
130 131 132 |
# File 'lib/generators/spotlight/install_generator.rb', line 130 def add_example_catalog_controller copy_file 'catalog_controller.rb', 'app/controllers/catalog_controller.rb' end |
#add_helper ⇒ Object
93 94 95 96 97 98 |
# File 'lib/generators/spotlight/install_generator.rb', line 93 def add_helper copy_file 'spotlight_helper.rb', 'app/helpers/spotlight_helper.rb' inject_into_file 'app/helpers/application_helper.rb', after: 'module ApplicationHelper' do "\n include SpotlightHelper" end end |
#add_js_rails6 ⇒ Object
we’re not (yet) using webpacker, so we need to re-add sprockets functionality
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/generators/spotlight/install_generator.rb', line 14 def add_js_rails6 return unless Rails.version.to_i == 6 gem 'coffee-rails', '~> 4.2' gem 'uglifier', '>= 1.3.0' append_to_file 'app/assets/config/manifest.js', "\n//= link_directory ../javascripts .js\n" append_to_file 'app/assets/javascripts/application.js', "\n//= require_tree .\n" gsub_file 'app/views/layouts/application.html.erb', /pack/, 'include' inject_into_file 'config/environments/production.rb', after: ' # config.assets.css_compressor = :sass' do "\n config.assets.js_compressor = :uglifier" end # but since webpacker exists in the gemfile, we still need to run the # install before rails will start run 'bundle exec rails webpacker:install' end |
#add_js_rails7 ⇒ Object
32 33 34 35 36 |
# File 'lib/generators/spotlight/install_generator.rb', line 32 def add_js_rails7 return unless Rails.version.to_i == 7 append_to_file 'app/assets/javascripts/application.js', "\n//= require_tree .\n" end |
#add_mailer_defaults ⇒ Object
147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/generators/spotlight/install_generator.rb', line 147 def add_mailer_defaults if [:mailer_default_url_host].present? say 'Injecting a placeholder config.action_mailer.default_url_options; be sure to update it for your environment', :yellow insert_into_file 'config/application.rb', after: "< Rails::Application\n" do <<-EOF config.action_mailer.default_url_options = { host: "#{[:mailer_default_url_host]}", from: "[email protected]" } EOF end else say 'Please add a default configuration config.action_mailer.default_url_options for your environment', :red end end |
#add_model_mixin ⇒ Object
100 101 102 103 104 105 106 107 108 |
# File 'lib/generators/spotlight/install_generator.rb', line 100 def add_model_mixin if File.exist? File.('app/models/solr_document.rb', destination_root) inject_into_file 'app/models/solr_document.rb', after: 'include Blacklight::Solr::Document' do "\n include Spotlight::SolrDocument\n" end else say 'Unable to find SolrDocument class; add `include Spotlight::SolrDocument` to the class manually' end end |
#add_oembed ⇒ Object
140 141 142 143 144 145 |
# File 'lib/generators/spotlight/install_generator.rb', line 140 def gem 'blacklight-oembed', '~> 1.0' bundle_install generate 'blacklight_oembed:install' copy_file 'config/initializers/oembed.rb' end |
#add_osd_viewer ⇒ Object
134 135 136 137 138 |
# File 'lib/generators/spotlight/install_generator.rb', line 134 def add_osd_viewer gem 'blacklight-gallery', '~> 4.0' bundle_install generate 'blacklight_gallery:install' end |
#add_roles_to_user ⇒ Object
81 82 83 84 85 |
# File 'lib/generators/spotlight/install_generator.rb', line 81 def add_roles_to_user inject_into_file 'app/models/user.rb', after: 'include Blacklight::User' do "\n include Spotlight::User\n" end end |
#add_search_builder_mixin ⇒ Object
120 121 122 123 124 125 126 127 128 |
# File 'lib/generators/spotlight/install_generator.rb', line 120 def add_search_builder_mixin if File.exist? File.('app/models/search_builder.rb', destination_root) inject_into_file 'app/models/search_builder.rb', after: "include Blacklight::Solr::SearchBuilderBehavior\n" do "\n include Spotlight::SearchBuilder\n" end else say 'Unable to find SearchBuilder class; add `include Spotlight::SearchBuilder` to the class manually.' end end |
#add_solr_config_resources ⇒ Object
164 165 166 167 |
# File 'lib/generators/spotlight/install_generator.rb', line 164 def add_solr_config_resources copy_file '.solr_wrapper.yml', '.solr_wrapper.yml' directory 'solr' end |
#add_solr_indexing_mixin ⇒ Object
110 111 112 113 114 115 116 117 118 |
# File 'lib/generators/spotlight/install_generator.rb', line 110 def add_solr_indexing_mixin if File.exist? File.('app/models/solr_document.rb', destination_root) inject_into_file 'app/models/solr_document.rb', after: "include Spotlight::SolrDocument\n" do "\n include #{[:solr_update_class]}\n" end else say "Unable to find SolrDocument class; add `include #{[:solr_update_class]}` to the class manually" end end |
#add_translations ⇒ Object
176 177 178 |
# File 'lib/generators/spotlight/install_generator.rb', line 176 def add_translations copy_file 'config/initializers/translation.rb' end |
#assets ⇒ Object
76 77 78 79 |
# File 'lib/generators/spotlight/install_generator.rb', line 76 def assets copy_file 'spotlight.scss', 'app/assets/stylesheets/spotlight.scss' copy_file 'spotlight.js', 'app/assets/javascripts/spotlight.js' end |
#configure_logging ⇒ Object
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/generators/spotlight/install_generator.rb', line 180 def configure_logging insert_into_file 'config/application.rb', after: "< Rails::Application\n" do <<-EOF # Logging if ENV["RAILS_LOG_TO_STDOUT"].present? config.log_level = :debug config.log_formatter = ::Logger::Formatter.new # log to stdout logger = ActiveSupport::Logger.new(STDOUT) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log # Raise an error on page load if there are pending migrations. config.active_record.migration_error = :page_load # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true end EOF end end |
#friendly_id ⇒ Object
46 47 48 49 50 |
# File 'lib/generators/spotlight/install_generator.rb', line 46 def friendly_id gem 'friendly_id' bundle_install generate 'friendly_id' end |
#generate_config ⇒ Object
160 161 162 |
# File 'lib/generators/spotlight/install_generator.rb', line 160 def generate_config directory 'config' end |
#generate_devise_invitable ⇒ Object
169 170 171 172 173 174 |
# File 'lib/generators/spotlight/install_generator.rb', line 169 def generate_devise_invitable gem 'devise_invitable' bundle_install generate 'devise_invitable:install' generate 'devise_invitable', 'User' end |
#inject_spotlight_routes ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/generators/spotlight/install_generator.rb', line 38 def inject_spotlight_routes route "mount Spotlight::Engine, at: 'spotlight'" gsub_file 'config/routes.rb', /^\s*root.*/ do |match| '# ' + match.strip + ' # replaced by spotlight root path' end route "root to: 'spotlight/exhibits#index'" end |
#paper_trail ⇒ Object
59 60 61 |
# File 'lib/generators/spotlight/install_generator.rb', line 59 def paper_trail generate 'paper_trail:install' end |
#riiif ⇒ Object
52 53 54 55 56 57 |
# File 'lib/generators/spotlight/install_generator.rb', line 52 def riiif gem 'riiif' Bundler.with_clean_env { run 'bundle install' } route "mount Riiif::Engine => '/images', as: 'riiif'" copy_file 'config/initializers/riiif.rb' end |
#sitemaps ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/generators/spotlight/install_generator.rb', line 63 def sitemaps gem 'sitemap_generator' bundle_install copy_file 'config/sitemap.rb', 'config/sitemap.rb' say <<-EOS.strip_heredoc, :red Added a default sitemap_generator configuration in config/sitemap.rb; please update the default host to match your environment EOS end |