Class: Europeana::Blacklight::Response

Inherits:
HashWithIndifferentAccess
  • Object
show all
Includes:
Facets, MoreLikeThis, Pagination
Defined in:
lib/europeana/blacklight/response.rb,
lib/europeana/blacklight/response/facets.rb,
lib/europeana/blacklight/response/pagination.rb,
lib/europeana/blacklight/response/more_like_this.rb

Overview

Europeana API response for BL

Defined Under Namespace

Modules: Facets, MoreLikeThis, Pagination

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MoreLikeThis

#more_like, #more_like_this

Methods included from Facets

#aggregations, #facet_fields, #facet_queries

Methods included from Pagination

#limit_value, #max_pages, #model_name, #next_page, #offset_value, #prev_page, #total_count, #total_pages

Constructor Details

#initialize(data, request_params, options = {}) ⇒ Response

Returns a new instance of Response.



17
18
19
20
21
22
# File 'lib/europeana/blacklight/response.rb', line 17

def initialize(data, request_params, options = {})
  super(force_to_utf8(data))
  @request_params = request_params
  self.document_model = options[:document_model] || Document
  self.blacklight_config = options[:blacklight_config]
end

Instance Attribute Details

#blacklight_configObject

Returns the value of attribute blacklight_config.



15
16
17
# File 'lib/europeana/blacklight/response.rb', line 15

def blacklight_config
  @blacklight_config
end

#document_modelObject

Returns the value of attribute document_model.



15
16
17
# File 'lib/europeana/blacklight/response.rb', line 15

def document_model
  @document_model
end

#request_paramsObject (readonly)

Returns the value of attribute request_params.



14
15
16
# File 'lib/europeana/blacklight/response.rb', line 14

def request_params
  @request_params
end

Instance Method Details

#documentsObject Also known as: docs



41
42
43
44
45
# File 'lib/europeana/blacklight/response.rb', line 41

def documents
  @documents ||= (self.key?('object') ? [self['object']] : (self['items'] || [])).collect do |doc|
    document_model.new(doc, self)
  end
end

#empty?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/europeana/blacklight/response.rb', line 72

def empty?
  total == 0
end

#export_formatsObject



60
61
62
# File 'lib/europeana/blacklight/response.rb', line 60

def export_formats
  documents.map { |x| x.export_formats.keys }.flatten.uniq
end

#group(_key) ⇒ Object



52
53
54
# File 'lib/europeana/blacklight/response.rb', line 52

def group(_key)
  nil
end

#groupedObject



48
49
50
# File 'lib/europeana/blacklight/response.rb', line 48

def grouped
  []
end

#grouped?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/europeana/blacklight/response.rb', line 56

def grouped?
  false
end

#paramsObject



29
30
31
# File 'lib/europeana/blacklight/response.rb', line 29

def params
  self['params'] ? self['params'] : request_params
end

#rowsObject



33
34
35
# File 'lib/europeana/blacklight/response.rb', line 33

def rows
  params[:rows].to_i
end

#sortObject



37
38
39
# File 'lib/europeana/blacklight/response.rb', line 37

def sort
  params[:sort]
end

#startObject



68
69
70
# File 'lib/europeana/blacklight/response.rb', line 68

def start
  params[:start].to_s.to_i - 1
end

#totalObject



64
65
66
# File 'lib/europeana/blacklight/response.rb', line 64

def total
  self[:totalResults].to_s.to_i
end

#update(other_hash) ⇒ Object



24
25
26
27
# File 'lib/europeana/blacklight/response.rb', line 24

def update(other_hash)
  other_hash.each_pair { |key, value| self[key] = value }
  self
end