Class: Qa::Authorities::LinkedData::SearchConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/qa/authorities/linked_data/config/search_config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, prefixes = {}) ⇒ SearchConfig

Returns a new instance of SearchConfig.

Parameters:

  • config (Hash)

    the search portion of the config



11
12
13
14
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 11

def initialize(config, prefixes = {})
  @search_config = config
  @prefixes = prefixes
end

Instance Attribute Details

#prefixesObject (readonly)

Returns the value of attribute prefixes.



8
9
10
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 8

def prefixes
  @prefixes
end

Instance Method Details

#context_mapQa::LinkedData::Config::ContextMap

Return the context map if it is defined

Returns:



88
89
90
91
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 88

def context_map
  return nil unless search_config.key?(:context)
  @context_map ||= Qa::LinkedData::Config::ContextMap.new(search_config.fetch(:context), prefixes)
end

#languageString

Return the preferred language for literal value selection for search query. Only applies if the authority provides language encoded literals.

Returns:

  • (String)

    the configured language for search query



34
35
36
37
38
39
40
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 34

def language
  return @language unless @language.nil?
  lang = search_config[:language]
  return nil if lang.nil?
  lang = [lang] if lang.is_a? String
  @language = lang.collect(&:to_sym)
end

#qa_replacement_patternsHash

Return parameters that are required for QA api

Returns:

  • (Hash)

    the configured search url parameter mappings



95
96
97
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 95

def qa_replacement_patterns
  search_config.fetch(:qa_replacement_patterns)
end

#resultsHash, NilClass

Return results predicates if specified

Returns:

  • (Hash, NilClass)

    all the configured predicates to pull out of the results



44
45
46
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 44

def results
  search_config[:results]
end

#results_altlabel_predicateString

Return results altlabel_predicate

Returns:

  • (String)

    the configured predicate to use to extract altlabel values from the results



62
63
64
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 62

def results_altlabel_predicate
  Config.predicate_uri(results, :altlabel_predicate)
end

#results_id_predicateString

Return results id_predicate

Returns:

  • (String)

    the configured predicate to use to extract the id from the results



50
51
52
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 50

def results_id_predicate
  Config.predicate_uri(results, :id_predicate)
end

#results_label_predicateString

Return results label_predicate

Returns:

  • (String)

    the configured predicate to use to extract label values from the results



56
57
58
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 56

def results_label_predicate
  Config.predicate_uri(results, :label_predicate)
end

#results_sort_predicateString

Return results sort_predicate

Returns:

  • (String)

    the configured predicate to use for sorting results from the query search



75
76
77
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 75

def results_sort_predicate
  Config.predicate_uri(results, :sort_predicate)
end

#subauthoritiesHash

Return the list of subauthorities for search query

Returns:

  • (Hash)

    the configurations for search url replacements



120
121
122
123
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 120

def subauthorities
  @subauthorities ||= {} if search_config.nil? || !(search_config.key? :subauthorities)
  @subauthorities ||= search_config.fetch(:subauthorities)
end

#subauthorities?True|False

Are there subauthorities configured for search query?

Returns:

  • (True|False)

    true if there are subauthorities configured for search query; otherwise, false



101
102
103
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 101

def subauthorities?
  subauthority_count.positive?
end

#subauthority?(subauth_name) ⇒ True|False

Is a specific subauthority configured for search query?

Returns:

  • (True|False)

    true if the specified subauthority is configured for search query; otherwise, false



107
108
109
110
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 107

def subauthority?(subauth_name)
  subauth_name = subauth_name.to_sym if subauth_name.is_a? String
  subauthorities.key? subauth_name
end

#subauthority_countInteger

Return the number of subauthorities defined for search query

Returns:

  • (Integer)

    the number of subauthorities defined for search query



114
115
116
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 114

def subauthority_count
  subauthorities.size
end

#supports_context?True|False

Does this authority configuration support additional context in search results?

Returns:

  • (True|False)

    true if additional context in search results is supported; otherwise, false



81
82
83
84
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 81

def supports_context?
  return true if context_map.present?
  false
end

#supports_search?Boolean

Does this authority configuration have search defined?

Returns:

  • (Boolean)

    true if search is configured; otherwise, false



21
22
23
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 21

def supports_search?
  search_config.present?
end

#supports_sort?True|False

Does this authority configuration support sorting of search results?

Returns:

  • (True|False)

    true if sorting of search results is supported; otherwise, false



68
69
70
71
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 68

def supports_sort?
  return true unless results_sort_predicate.nil? || !results_sort_predicate.size.positive?
  false
end

#url_configQa::IriTemplate::UrlConfig

Return search url template defined in the configuration for this authority.

Returns:



27
28
29
# File 'lib/qa/authorities/linked_data/config/search_config.rb', line 27

def url_config
  @url_config ||= Qa::IriTemplate::UrlConfig.new(search_config[:url]) if supports_search?
end