Module: Krikri::ApplicationHelper

Defined in:
app/helpers/krikri/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#available_providersArray<Blacklight::SolrResponse::Facets::FacetItem>

Returns:

  • (Array<Blacklight::SolrResponse::Facets::FacetItem>)


5
6
7
8
9
10
11
# File 'app/helpers/krikri/application_helper.rb', line 5

def available_providers
  Rails.cache.fetch('krikri/application_helper/available_providers',
                    expires_in: 1.hour,
                    race_condition_ttl: 3.minutes) do
    Krikri::Provider.all(&:reload)
  end
end

Link to the current page, changing the session provider the given value.

Parameters:

  • provider (String, nil)


37
38
39
40
41
42
43
44
45
# File 'app/helpers/krikri/application_helper.rb', line 37

def link_to_current_page_by_provider(provider)
  provider = Krikri::Provider.find(provider) if provider.is_a? String

  return link_to_provider_page(provider) if params[:controller] ==
                                            'krikri/providers'
  params[:provider] = provider.id
  params[:session_provider] = provider.id
  link_to provider_name(provider), params
end

Link to the ProviderController’s :index or :show route, using the given provider id in the case of :show.

Parameters:

  • provider (String, nil)


64
65
66
67
68
# File 'app/helpers/krikri/application_helper.rb', line 64

def link_to_provider_page(provider)
  return link_to(provider_name(provider), providers_path) unless provider
  return link_to provider_name(provider),
          provider_path(provider.id, set_session: provider.id)
end

#local_name(uri) ⇒ String

Gives the last path fragment for a given URI string in HTML escaped form

Examples:

local_name('http://my_domain/blah/0123') => '0123'

Parameters:

  • uri (#to_s)

    a URL formatted string to split

Returns:

  • (String)

    the escaped fragment



29
30
31
# File 'app/helpers/krikri/application_helper.rb', line 29

def local_name(uri)
  uri.to_s.split('/').last.html_safe
end

#provider_name(provider) ⇒ String

Parameters:

  • provider (String, nil)

Returns:

  • (String)


16
17
18
19
# File 'app/helpers/krikri/application_helper.rb', line 16

def provider_name(provider)
  provider = Krikri::Provider.find(provider) if provider.is_a? String
  provider.present? ? provider.name : 'All Providers'
end

#remove_session_providerObject



54
55
56
57
58
# File 'app/helpers/krikri/application_helper.rb', line 54

def remove_session_provider
  link_to "All Providers",
          krikri.provider_path('clear', clear_session: 1),
          rel: 'nofollow'
end

#set_session_provider(provider) ⇒ Object



47
48
49
50
51
52
# File 'app/helpers/krikri/application_helper.rb', line 47

def set_session_provider(provider)
  provider = Krikri::Provider.find(provider) if provider.is_a? String
  link_to provider_name(provider),
          krikri.provider_path(provider.id, set_session: 1),
          rel: 'nofollow'
end