-
remove deprecated MultiSearcher class. Use ConcurrentSearcher instead, should be drop-in replacement in most cases.
-
Drop support for ruby earlier than 2.5, and rails earlier than 5.2. Add support for Rails 6.0 and 6.1. jrochkind#49
-
Change item header in default bento_search display from h4 to h3, to be more likely to be appropriate hieararchical level in expected usage. jrochkind#38
-
Removed
bento_search.js
wrapper sprockets JS file. If you had//= require 'bento_search'
in yourapplication.js
or other sprockets pipeline, change to//= require 'bento_search/ajax_load.js'
jrochkind#50 -
added
rails generate bento_search:install:ajax_load_js
to copy ajax load JS into app for use with Webpacker. See https://github.com/jrochkind/bento_search/wiki/AJAX-results-loading for Webpacker instructions. -
Previous versions of bento_search provided some re-usable item decorators; they were deprecated, it makes sense to write your own local/custom. jrochkind#53 The following item decorators are no longer available in the gem, but have been moved to ./doc/examples_decorators for reference, you can copy them into your local app to keep using them if you were before.
- app/item_decorators/bento_search/ebscohost/conditional_openurl_main_link.rb
- app/item_decorators/bento_search/openurl_main_link.rb
- app/item_decorators/bento_search/openurl_add_other_link.rb
- app/item_decorators/bento_search/openurl_main_link.rb
- beforeSend param to ajax, see #30
- Workaround backwards-incompat changes in language_list 1.2.0 (scsmith/language_list#19)
-
search engines now have a
configuration.default_per_page
-
partials used by
bento_search
helper can be configured in BentoSearch.defaults, or at the engine config level as well. Now includingajax_loading_partial
. -
auto_rescued_exceptions
is now a Railsclass_attribute
, so can be configured more easily on a per-class or per-instance basis withSearchEngineClass.auto_rescue_exceptions =
orengine.auto_rescue_exceptions =
. Old way of over-ridingauto_rescue_exceptions
(noterescue
vsrescued
) is deprecated. -
auto_rescue includes SocketError
-
EdsEngine improvements
- EdsEngine gets much more structured citation data. EDS API has gotten better
since it was written, it's now updated to take advantage of more.
assume_first_custom_link_openurl
now defaults to false, as it should no longer be neccesary to get a good OpenURL out of EDS. But set to true if you want old behavior.
- EdsEngine gets custom_data[:holdings] for catalog-type results.
- EdsEngine notices weird
<Item><Group>URL</Group>
links in response, and 'parses' them to add as item#other_links - EdsEngine marks
link_is_fulltext=true
if api marksplink
as "pdflink".
- EdsEngine gets much more structured citation data. EDS API has gotten better
since it was written, it's now updated to take advantage of more.
-
New BentoSearch::ConcurrentSearcher for threaded concurrent searching.
- With proper Rails 5 API usage to work with dev-mode class reloading, without deadlocks (but still works in any supported pre-5 Rails as well).
- Based on concurrent-ruby,
now a dependency in Rails 5. To use in Rails previous to 5, just add
gem 'concurrent-ruby', '~> 1.0'
to yourGemfile
. - Replaces the celluloid-based BentoSearch::MultiSearcher, which is now
deprecated, but won't go away until bento_search 2.0.
- The ConcurrentSearcher API is pretty similar to MultiSearcher, you can probably use it as a drop-in replacement.
- If you continue to use MultiSearcher in Rails 5, you may need to
turn off dev-mode class reloading (set
config.eager_load == true
andconfig.cache_classes = true
in development) to avoid deadlocks from the Rails5 autoload lock. - If you stop using MultiSearcher, you can remove
celluloid
from your Gemfile, unless you need it for some other reason. - If you previously turned off Rails dev-mode class reloading, it should work again in Rails5 with the ConcurrentSearcher.
-
The JQuery ajax loader now allows you to set a default success callback applying to all loads:
BentoSearch.ajax_load.default_success_callback = function(div) { ...
More documentation of JQuery success callback on the wiki
-
BentoSearch::SearchEngine has
engine_id
anddisplay_configuration
cover methods added, for consistency with BentoSearch::Results -
standard engine
log_failed_results
config, if true all failed results are logged toRails.logger.error
. Can set global defaults withBentoSearch.defaults.log_failed_results = true
- Test under Rails5
- Test under MRI 2.3
- multi-field searching
- DOAJArticlesEngine new search engine
- New standard semantic fields including :source_title, :volume, :issue, :start_page
- Google Books Engine: Catch buggy invalid ID http response in #get
- Fix Scopus to properly handle zero-hit results, respond to undoc'd Scopus API change.
- Round-trippable JSON serialization of internal state of results
- Improvements to JournalTocsForJournal engine.
- Verified working with ruby 2.2.1 and Rails 4.2, with tests.
- Updated to Confstruct 1.x for configuration objects