app/helpers/blacklight/blacklight_helper_behavior.rb
# 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