Class: Noiseless::Response::Base
Instance Method Summary
collapse
#current_page, #first_page?, #last_page?, #limit_value, #next_page, #offset_value, #out_of_range?, #pagination_metadata, #prev_page, #total_pages
Constructor Details
#initialize(raw_response, model_class = nil) ⇒ Base
Returns a new instance of Base.
9
10
11
12
|
# File 'lib/noiseless/response.rb', line 9
def initialize(raw_response, model_class = nil)
@raw_response = raw_response
@model_class = model_class
end
|
Instance Method Details
#aggregations ⇒ Object
33
34
35
|
# File 'lib/noiseless/response.rb', line 33
def aggregations
@aggregations ||= Aggregations.new(@raw_response["aggregations"] || {})
end
|
#count ⇒ Object
79
80
81
|
# File 'lib/noiseless/response.rb', line 79
def count
size
end
|
#each ⇒ Object
41
42
43
|
# File 'lib/noiseless/response.rb', line 41
def each(&)
raise NotImplementedError, "Subclasses must implement #each"
end
|
#each_with_index ⇒ Object
87
88
89
90
91
|
# File 'lib/noiseless/response.rb', line 87
def each_with_index(&)
return enum_for(__method__) unless block_given?
each.with_index(&)
end
|
#empty? ⇒ Boolean
45
46
47
|
# File 'lib/noiseless/response.rb', line 45
def empty?
total.zero?
end
|
#hits ⇒ Object
25
26
27
|
# File 'lib/noiseless/response.rb', line 25
def hits
@hits ||= @raw_response.dig("hits", "hits") || []
end
|
55
56
57
58
|
# File 'lib/noiseless/response.rb', line 55
def (query_hash)
@from = query_hash[:from] || 0
@per_page = query_hash[:size] || 20
end
|
#length ⇒ Object
51
52
53
|
# File 'lib/noiseless/response.rb', line 51
def length
size
end
|
#response ⇒ Object
Compatibility methods for CommonShare
61
62
63
|
# File 'lib/noiseless/response.rb', line 61
def response
@raw_response
end
|
#result ⇒ Object
65
66
67
68
|
# File 'lib/noiseless/response.rb', line 65
def result
results
end
|
#results ⇒ Object
70
71
72
73
74
75
76
77
|
# File 'lib/noiseless/response.rb', line 70
def results
if is_a?(Results)
self
else
Results.new(@raw_response, @model_class)
end
end
|
#suggestions ⇒ Object
37
38
39
|
# File 'lib/noiseless/response.rb', line 37
def suggestions
@suggestions ||= Suggestions.new(@raw_response["suggest"] || {})
end
|
#took ⇒ Object
29
30
31
|
# File 'lib/noiseless/response.rb', line 29
def took
@raw_response["took"]
end
|
#total ⇒ Object
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/noiseless/response.rb', line 14
def total
case @raw_response.dig("hits", "total")
when Hash
@raw_response.dig("hits", "total", "value") || 0
when Integer
@raw_response.dig("hits", "total") || 0
else
0
end
end
|
#total_count ⇒ Object
83
84
85
|
# File 'lib/noiseless/response.rb', line 83
def total_count
total
end
|