Class: IiifPrint::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/iiif_print/install_generator.rb

Overview

Install Generator Class rubocop:disable Metrics/ClassLength

Instance Method Summary collapse

Instance Method Details

#add_allinson_flex_fields_method_to_iiif_search_builderObject



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_configurationObject



21
22
23
# File 'lib/generators/iiif_print/install_generator.rb', line 21

def catalog_controller_configuration
  generate 'iiif_print:catalog_controller'
end

#copy_migrationsObject



9
10
11
# File 'lib/generators/iiif_print/install_generator.rb', line 9

def copy_migrations
  rake "iiif_print:install:migrations"
end

#inject_assetsObject



37
38
39
# File 'lib/generators/iiif_print/install_generator.rb', line 37

def inject_assets
  generate 'iiif_print:assets'
end

#inject_configurationObject



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_helperObject



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_routesObject



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_controllerObject

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_builderObject



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_installedObject



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