Class: CommonwealthVlrEngine::ControllerGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- CommonwealthVlrEngine::ControllerGenerator
- Defined in:
- lib/generators/commonwealth_vlr_engine/controller_generator.rb
Instance Method Summary collapse
-
#inject_application_controller_behavior ⇒ Object
Add Commonwealth to the application controller.
-
#inject_catalog_controller_behavior ⇒ Object
Update the blacklight catalog controller.
Instance Method Details
#inject_application_controller_behavior ⇒ Object
Add Commonwealth to the application controller
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/generators/commonwealth_vlr_engine/controller_generator.rb', line 18 def inject_application_controller_behavior unless IO.read("app/controllers/application_controller.rb").include?('CommonwealthVlrEngine::Controller') marker = 'include Blacklight::Controller' insert_into_file "app/controllers/application_controller.rb", :after => marker do %q{ # adds some site-wide behavior into the application controller include CommonwealthVlrEngine::Controller layout 'commonwealth-vlr-engine' } end remove_marker = "layout 'blacklight'" gsub_file("app/controllers/application_controller.rb", remove_marker, "") end end |
#inject_catalog_controller_behavior ⇒ Object
Update the blacklight catalog controller
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/generators/commonwealth_vlr_engine/controller_generator.rb', line 36 def inject_catalog_controller_behavior unless IO.read("app/controllers/#{controller_name}_controller.rb").include?('CommonwealthVlrEngine') marker = 'include Blacklight::Catalog' insert_into_file "app/controllers/#{controller_name}_controller.rb", :after => marker do %q{ # CatalogController-scope behavior and configuration for CommonwealthVlrEngine include CommonwealthVlrEngine::ControllerOverride } end marker = 'configure_blacklight do |config|' insert_into_file "app/controllers/#{controller_name}_controller.rb", :after => marker do %q{ # SearchBuilder contains logic for adding search params to Solr config.search_builder_class = CommonwealthSearchBuilder # limit Advanced Search facets to this institution # can't call SearchBuilder.institution_limit because it's an instance method, not a class method config.advanced_search[:form_solr_parameters]['fq'] = '+institution_pid_ssi:"' + CommonwealthVlrEngine.config[:institution][:pid] + '"' } end #For config.default_solr_params gsub_file("app/controllers/#{controller_name}_controller.rb", /config\.default_solr_params[\s\S]+?}/, "") #For multi line fields fields_to_remove = [/ +config.add_facet_field 'example_query_facet_field'[\s\S]+?}\n[ ]+}/, / +config.add_search_field\([\s\S]+?end/ ] fields_to_remove.each do |remove_marker| #gsub_file("app/controllers/#{controller_name}_controller.rb", /#{comment_marker}/, "\##{comment_marker}") gsub_file("app/controllers/#{controller_name}_controller.rb", /#{remove_marker}/, "") end #For single line fields fields_to_remove = [/ +config.index.title_field +=.+?$\n*/, / +config.index.display_type_field +=.+?$\n*/, / +config.add_facet_field +'.+?$\n*/, / +config.add_index_field +'.+?$\n*/, / +config.add_show_field +'.+?$\n*/, / +config.add_search_field +'.+?$\n*/, / +config.add_sort_field +'.+?$\n*/ ] fields_to_remove.each do |remove_marker| #gsub_file("app/controllers/#{controller_name}_controller.rb", /#{comment_marker}/, "\##{comment_marker}") gsub_file("app/controllers/#{controller_name}_controller.rb", /#{remove_marker}/, "") end end end |