Class: BlacklightAdvancedSearch::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#configurationObject



24
25
26
27
28
29
30
31
32
33
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 24

def configuration
  inject_into_file 'app/controllers/catalog_controller.rb', after: "configure_blacklight do |config|" do
    "\n    # default advanced config values" \
    "\n    config.advanced_search ||= Blacklight::OpenStructWithHashAccess.new" \
    "\n    # config.advanced_search[:qt] ||= 'advanced'" \
    "\n    config.advanced_search[:url_key] ||= 'advanced'" \
    "\n    config.advanced_search[:query_parser] ||= 'dismax'" \
    "\n    config.advanced_search[:form_solr_parameters] ||= {}\n"
  end
end

#inject_asset_requiresObject



7
8
9
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 7

def inject_asset_requires
  generate "blacklight_advanced_search:assets"
end

#inject_routesObject



43
44
45
46
47
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 43

def inject_routes
  inject_into_file 'config/routes.rb', after: /mount Blacklight::Engine.*$/ do
    "\n  mount BlacklightAdvancedSearch::Engine => '/'\n"
  end
end

#inject_search_builderObject



11
12
13
14
15
16
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 11

def inject_search_builder
  inject_into_file 'app/models/search_builder.rb', after: /include Blacklight::Solr::SearchBuilderBehavior.*$/ do
    "\n  include BlacklightAdvancedSearch::AdvancedSearchBuilder" \
    "\n  self.default_processor_chain += [:add_advanced_parse_q_to_solr, :add_advanced_search_to_solr]"
  end
end

#install_catalog_controller_mixinObject



18
19
20
21
22
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 18

def install_catalog_controller_mixin
  inject_into_class "app/controllers/catalog_controller.rb", "CatalogController" do
    "  include BlacklightAdvancedSearch::Controller\n"
  end
end

#install_localized_search_formObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 49

def install_localized_search_form
  return unless options[:force] || yes?("Install local search form with advanced link? (y/N)", :green)
  # We're going to copy the search from from actual currently loaded
  # Blacklight into local app as custom local override -- but add our link at the end too.
  source_file = File.read(File.join(Blacklight.root, "app/views/catalog/_search_form.html.erb"))

  new_file_contents = source_file + <<-EOF.strip_heredoc
  \n\n
  <div class="navbar-form">
    <%= link_to 'More options', blacklight_advanced_search_engine.advanced_search_path(search_state.to_h), class: 'advanced_search btn btn-default'%>
  </div>
  EOF

  create_file("app/views/catalog/_search_form.html.erb", new_file_contents)
end

#install_saved_searches_controllerObject



39
40
41
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 39

def install_saved_searches_controller
  copy_file "saved_searches_controller.rb", "app/controllers/saved_searches_controller.rb"
end

#install_search_history_controllerObject



35
36
37
# File 'lib/generators/blacklight_advanced_search/install_generator.rb', line 35

def install_search_history_controller
  copy_file "search_history_controller.rb", "app/controllers/search_history_controller.rb"
end