Class: ElasticRecord::Relation
- Inherits:
-
Object
- Object
- ElasticRecord::Relation
- Includes:
- Batches, Calculations, Delegation, FinderMethods, Hits, Merging, SearchMethods
- Defined in:
- lib/elastic_record/relation.rb,
lib/elastic_record/relation/hits.rb,
lib/elastic_record/relation/none.rb,
lib/elastic_record/relation/batches.rb,
lib/elastic_record/relation/merging.rb,
lib/elastic_record/relation/delegation.rb,
lib/elastic_record/relation/calculations.rb,
lib/elastic_record/relation/value_methods.rb,
lib/elastic_record/relation/finder_methods.rb,
lib/elastic_record/relation/search_methods.rb
Defined Under Namespace
Modules: Batches, Calculations, Delegation, FinderMethods, Hits, Merging, None, SearchMethods
Constant Summary collapse
- MULTI_VALUE_METHODS =
[:extending, :filter, :order, :aggregation]
- SINGLE_VALUE_METHODS =
[:query, :limit, :offset, :search_options, :search_type, :reverse_order]
Instance Attribute Summary collapse
-
#klass ⇒ Object
readonly
Returns the value of attribute klass.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #aggregations ⇒ Object
- #count ⇒ Object
- #delete_all ⇒ Object
- #explain(id) ⇒ Object
-
#initialize(klass, values = {}) ⇒ Relation
constructor
A new instance of Relation.
- #initialize_copy(other) ⇒ Object
- #inspect ⇒ Object
- #scoping ⇒ Object
- #to_a ⇒ Object
Methods included from Batches
#build_scroll_enumerator, #find_each, #find_hits_in_batches, #find_ids_in_batches, #find_in_batches, #reindex
Methods included from Calculations
Methods included from Delegation
Methods included from FinderMethods
#all, #find, #find_by, #find_by!, #first, #first!, #last
Methods included from Hits
#search_hits, #search_results, #to_ids
Methods included from Merging
Methods included from SearchMethods
#aggregate, #aggregate!, #as_elastic, #extending, #extending!, #filter, #filter!, #limit, #limit!, #none, #offset, #offset!, #order, #order!, #query, #query!, #reverse_order, #reverse_order!, #search_options, #search_options!, #search_type, #search_type!
Constructor Details
#initialize(klass, values = {}) ⇒ Relation
Returns a new instance of Relation.
17 18 19 20 |
# File 'lib/elastic_record/relation.rb', line 17 def initialize(klass, values = {}) @klass = klass @values = values end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class ElasticRecord::Relation::Delegation
Instance Attribute Details
#klass ⇒ Object (readonly)
Returns the value of attribute klass.
15 16 17 |
# File 'lib/elastic_record/relation.rb', line 15 def klass @klass end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
15 16 17 |
# File 'lib/elastic_record/relation.rb', line 15 def values @values end |
Instance Method Details
#==(other) ⇒ Object
51 52 53 |
# File 'lib/elastic_record/relation.rb', line 51 def ==(other) to_a == other end |
#aggregations ⇒ Object
26 27 28 29 30 31 |
# File 'lib/elastic_record/relation.rb', line 26 def aggregations @aggregations ||= begin results = search_results['aggregations'] ElasticRecord::AggregationResponse::Builder.extract(results) end end |
#count ⇒ Object
22 23 24 |
# File 'lib/elastic_record/relation.rb', line 22 def count search_results['hits']['total'] end |
#delete_all ⇒ Object
46 47 48 49 |
# File 'lib/elastic_record/relation.rb', line 46 def delete_all find_ids_in_batches { |ids| klass.delete(ids) } klass.elastic_index.delete_by_query(as_elastic) end |
#explain(id) ⇒ Object
33 34 35 |
# File 'lib/elastic_record/relation.rb', line 33 def explain(id) klass.elastic_index.explain(id, as_elastic) end |
#initialize_copy(other) ⇒ Object
37 38 39 40 |
# File 'lib/elastic_record/relation.rb', line 37 def initialize_copy(other) @values = @values.dup reset end |
#inspect ⇒ Object
55 56 57 |
# File 'lib/elastic_record/relation.rb', line 55 def inspect to_a.inspect end |
#scoping ⇒ Object
59 60 61 62 63 64 |
# File 'lib/elastic_record/relation.rb', line 59 def scoping previous, klass.current_elastic_search = klass.current_elastic_search, self yield ensure klass.current_elastic_search = previous end |
#to_a ⇒ Object
42 43 44 |
# File 'lib/elastic_record/relation.rb', line 42 def to_a @records ||= search_hits.to_records end |