Class: IiifPrint::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- IiifPrint::InstallGenerator
- Defined in:
- lib/generators/iiif_print/install_generator.rb
Overview
Install Generator Class rubocop:disable Metrics/ClassLength
Instance Method Summary collapse
- #add_allinson_flex_fields_method_to_iiif_search_builder ⇒ Object
- #catalog_controller_configuration ⇒ Object
- #copy_migrations ⇒ Object
- #inject_assets ⇒ Object
- #inject_configuration ⇒ Object
- #inject_helper ⇒ Object
- #install_routes ⇒ Object
-
#lint_catalog_controller ⇒ Object
Blacklight IIIF Search generator has some linting that does not agree with CircleCI on Hyku ref github.com/boston-library/blacklight_iiif_search/blob/v1.0.0/lib/generators/blacklight_iiif_search/controller_generator.rb the follow two methods does a clean up to appease Rubocop.
- #lint_iiif_search_builder ⇒ Object
- #verify_biiif_installed ⇒ Object
Instance Method Details
#add_allinson_flex_fields_method_to_iiif_search_builder ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/generators/iiif_print/install_generator.rb', line 64 def add_allinson_flex_fields_method_to_iiif_search_builder file_path = "app/models/iiif_search_builder.rb" contents = File.read(file_path) contents.gsub!('include Blacklight::Solr::SearchBuilderBehavior', "include Blacklight::Solr::SearchBuilderBehavior\n include IiifPrint::AllinsonFlexFields") contents.gsub!('self.default_processor_chain += [:ocr_search_params]', 'self.default_processor_chain += %i[ocr_search_params include_allinson_flex_fields]') File.write(file_path, contents) end |
#catalog_controller_configuration ⇒ Object
21 22 23 |
# File 'lib/generators/iiif_print/install_generator.rb', line 21 def catalog_controller_configuration generate 'iiif_print:catalog_controller' end |
#copy_migrations ⇒ Object
9 10 11 |
# File 'lib/generators/iiif_print/install_generator.rb', line 9 def copy_migrations rake "iiif_print:install:migrations" end |
#inject_assets ⇒ Object
37 38 39 |
# File 'lib/generators/iiif_print/install_generator.rb', line 37 def inject_assets generate 'iiif_print:assets' end |
#inject_configuration ⇒ Object
33 34 35 |
# File 'lib/generators/iiif_print/install_generator.rb', line 33 def inject_configuration copy_file 'config/initializers/iiif_print.rb' end |
#inject_helper ⇒ Object
41 42 43 |
# File 'lib/generators/iiif_print/install_generator.rb', line 41 def inject_helper copy_file 'helpers/iiif_print_helper.rb' 'app/helpers/iiif_print_helper.rb' end |
#install_routes ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/generators/iiif_print/install_generator.rb', line 25 def install_routes return if IO.read('config/routes.rb').include?('mount IiifPrint::Engine') inject_into_file 'config/routes.rb', after: /mount Hyrax::Engine\s*\n/ do " mount IiifPrint::Engine, at: '/'\n"\ end end |
#lint_catalog_controller ⇒ Object
Blacklight IIIF Search generator has some linting that does not agree with CircleCI on Hyku ref github.com/boston-library/blacklight_iiif_search/blob/v1.0.0/lib/generators/blacklight_iiif_search/controller_generator.rb the follow two methods does a clean up to appease Rubocop
48 49 50 51 52 53 54 |
# File 'lib/generators/iiif_print/install_generator.rb', line 48 def lint_catalog_controller file = "app/controllers/catalog_controller.rb" contents = File.read(file) contents.gsub!(/\n\s*\n\s*# IiifPrint index fields/, "\n # IiifPrint index fields") contents.gsub!(/\n\s*\n\s*# configuration for Blacklight IIIF Content Search/, "\n\n # configuration for Blacklight IIIF Content Search") File.write(file, contents) end |
#lint_iiif_search_builder ⇒ Object
57 58 59 60 61 62 |
# File 'lib/generators/iiif_print/install_generator.rb', line 57 def lint_iiif_search_builder file = "app/models/iiif_search_builder.rb" contents = File.read(file) contents.insert(0, "# frozen_string_literal: true\n\n") File.write(file, contents) end |
#verify_biiif_installed ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/generators/iiif_print/install_generator.rb', line 13 def verify_biiif_installed return if IO.read('app/controllers/catalog_controller.rb').include?('include BlacklightIiifSearch::Controller') say_status('info', 'BLACKLIGHT IIIF SEARCH NOT INSTALLED; INSTALLING BLACKLIGHT IIIF SEARCH', :blue) generate 'blacklight_iiif_search:install --skip-solr' end |