# frozen_string_literal: true # Methods added to this helper will be available to all templates in the hosting application module Blacklight::BlacklightHelperBehavior include Blacklight::UrlHelperBehavior include Blacklight::LayoutHelperBehavior include Blacklight::IconHelperBehavior ## # Get the name of this application from an i18n string # key: blacklight.application_name # Try first in the current locale, then the default locale # # @return [String] the application name def application_name # It's important that we don't use ActionView::Helpers::CacheHelper#cache here # because it returns nil. Rails.cache.fetch 'blacklight/application_name' do t('blacklight.application_name', default: t('blacklight.application_name', locale: I18n.default_locale)) end end ## # Render a partial of an arbitrary format inside a # template of a different format. (e.g. render an HTML # partial from an XML template) # code taken from: # http://stackoverflow.com/questions/339130/how-do-i-render-a-partial-of-a-different-format-in-rails (zgchurch) # # @param [String] format suffix # @yield def with_format(format) old_formats = formats self.formats = [format] yield self.formats = old_formats nil end def self.blacklight_gem_path @blacklight_gem_path ||= Gem.loaded_specs["blacklight"].full_gem_path end def partial_from_blacklight?(partial) path = lookup_context.find_all(partial, lookup_context.prefixes + [""], true).first&.identifier path.nil? ? false : path.starts_with?(Blacklight::BlacklightHelperBehavior.blacklight_gem_path) end end