class ElasticRecord::Relation
Constants
- MULTI_VALUE_METHODS
- SINGLE_VALUE_METHODS
Attributes
klass[R]
values[R]
Public Class Methods
new(klass, values: {})
click to toggle source
# File lib/elastic_record/relation.rb, line 17 def initialize(klass, values: {}) @klass = klass @values = values end
Public Instance Methods
==(other)
click to toggle source
# File lib/elastic_record/relation.rb, line 66 def ==(other) to_a == other end
aggregations()
click to toggle source
# File lib/elastic_record/relation.rb, line 38 def aggregations @aggregations ||= begin results = search_results['aggregations'] ElasticRecord::AggregationResponse::Builder.extract(results) end end
becomes(klass)
click to toggle source
# File lib/elastic_record/relation.rb, line 27 def becomes(klass) became = klass.allocate became.instance_variable_set(:@klass, @klass) became.instance_variable_set(:@values, @values.dup) became end
count()
click to toggle source
# File lib/elastic_record/relation.rb, line 34 def count search_hits.total end
delete_all()
click to toggle source
# File lib/elastic_record/relation.rb, line 61 def delete_all find_ids_in_batches { |ids| klass.delete(ids) } klass.elastic_index.delete_by_query(as_elastic) end
explain(id)
click to toggle source
# File lib/elastic_record/relation.rb, line 45 def explain(id) klass.elastic_index.explain(id, as_elastic) end
find_hits(search_hits)
click to toggle source
# File lib/elastic_record/relation.rb, line 53 def find_hits(search_hits) if klass.elastic_index.load_from_source search_hits.hits.map { |hit| klass.from_search_hit(hit) } else klass.find search_hits.to_ids end end
initialize_copy(other)
click to toggle source
# File lib/elastic_record/relation.rb, line 22 def initialize_copy(other) @values = @values.dup reset end
inspect()
click to toggle source
# File lib/elastic_record/relation.rb, line 70 def inspect to_a.inspect end
scoping() { || ... }
click to toggle source
# File lib/elastic_record/relation.rb, line 74 def scoping previous, klass.current_elastic_search = klass.current_elastic_search, self yield ensure klass.current_elastic_search = previous end
to_a()
click to toggle source
# File lib/elastic_record/relation.rb, line 49 def to_a @records ||= find_hits(search_hits) end
Private Instance Methods
reset()
click to toggle source
# File lib/elastic_record/relation.rb, line 83 def reset @search_results = @records = nil end