Class: Ansr::Relation
- Inherits:
-
ActiveRecord::Relation
- Object
- ActiveRecord::Relation
- Ansr::Relation
- Includes:
- QueryMethods, Sanitization::ClassMethods, Kaminari::PageScopeMethods
- Defined in:
- lib/ansr/relation.rb
Constant Summary collapse
- DEFAULT_PAGE_SIZE =
10
Instance Attribute Summary collapse
-
#context ⇒ Object
Returns the value of attribute context.
-
#count ⇒ Object
Returns the value of attribute count.
-
#filters ⇒ Object
Returns the value of attribute filters.
-
#resource ⇒ Object
Returns the value of attribute resource.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
Instance Method Summary collapse
- #default_limit_value ⇒ Object
-
#docs_from(response) ⇒ Object
override to parse docs from response.
- #empty? ⇒ Boolean
-
#filters_from(response) ⇒ Object
override to parse filters from response.
- #group_by(key = self.group_values.first) ⇒ Object
- #grouped? ⇒ Boolean
-
#initialize(klass, table, values = {}) ⇒ Relation
constructor
A new instance of Relation.
- #load ⇒ Object
- #many? ⇒ Boolean
- #max_pages ⇒ Object
- #offset!(value) ⇒ Object
-
#reload ⇒ Object
Forces reloading of relation.
- #spawn ⇒ Object
-
#to_a ⇒ Object
Converts relation objects to Array.
-
#total_count ⇒ Object
Returns the value of attribute count.
Methods included from QueryMethods
#all_filter_fields, #all_sort_fields, #ansr_query, #as, #as!, #as_unscoping, #as_value, #as_value=, #build_arel, #build_facets, #build_where, #collapse_filters, #collapse_wheres, #facet, #facet!, #facet_unscoping, #facet_values, #facet_values=, #field_name, #filter, #filter!, #filter_name, #filter_unscoping, #filter_values, #filter_values=, #find, #find_by_nosql, #highlight, #highlight!, #highlight_unscoping, #highlight_value, #highlight_value=, #spellcheck, #spellcheck!, #spellcheck_unscoping, #spellcheck_value, #spellcheck_value=
Methods included from Configurable
Methods included from Sanitization::ClassMethods
#expand_hash_conditions_for_sql_aggregates, #sanitize_sql, #sanitize_sql_for_conditions, #sanitize_sql_hash_for_conditions
Constructor Details
#initialize(klass, table, values = {}) ⇒ Relation
Returns a new instance of Relation.
15 16 17 18 |
# File 'lib/ansr/relation.rb', line 15 def initialize(klass, table, values = {}) raise "Cannot search nil model" if klass.nil? super(klass, table, values) end |
Instance Attribute Details
#context ⇒ Object
Returns the value of attribute context.
6 7 8 |
# File 'lib/ansr/relation.rb', line 6 def context @context end |
#count ⇒ Object
Returns the value of attribute count.
6 7 8 |
# File 'lib/ansr/relation.rb', line 6 def count @count end |
#filters ⇒ Object
Returns the value of attribute filters.
6 7 8 |
# File 'lib/ansr/relation.rb', line 6 def filters @filters end |
#resource ⇒ Object
Returns the value of attribute resource.
6 7 8 |
# File 'lib/ansr/relation.rb', line 6 def resource @resource end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
5 6 7 |
# File 'lib/ansr/relation.rb', line 5 def response @response end |
Instance Method Details
#default_limit_value ⇒ Object
26 27 28 |
# File 'lib/ansr/relation.rb', line 26 def default_limit_value DEFAULT_PAGE_SIZE end |
#docs_from(response) ⇒ Object
override to parse docs from response
79 80 81 |
# File 'lib/ansr/relation.rb', line 79 def docs_from(response) [] end |
#empty? ⇒ Boolean
47 48 49 |
# File 'lib/ansr/relation.rb', line 47 def empty? count == 0 end |
#filters_from(response) ⇒ Object
override to parse filters from response
74 75 76 |
# File 'lib/ansr/relation.rb', line 74 def filters_from(response) {} and raise "this is a dead method!" end |
#group_by(key = self.group_values.first) ⇒ Object
105 106 107 |
# File 'lib/ansr/relation.rb', line 105 def group_by(key=self.group_values.first) [] end |
#grouped? ⇒ Boolean
101 102 103 |
# File 'lib/ansr/relation.rb', line 101 def grouped? false end |
#load ⇒ Object
30 31 32 33 |
# File 'lib/ansr/relation.rb', line 30 def load exec_queries unless loaded? self end |
#many? ⇒ Boolean
51 52 53 |
# File 'lib/ansr/relation.rb', line 51 def many? count > 1 end |
#max_pages ⇒ Object
69 70 71 |
# File 'lib/ansr/relation.rb', line 69 def max_pages (total_count.to_f / limit_value).ceil end |
#offset!(value) ⇒ Object
55 56 57 58 |
# File 'lib/ansr/relation.rb', line 55 def offset!(value) self.offset_value=value self end |
#reload ⇒ Object
Forces reloading of relation.
42 43 44 45 |
# File 'lib/ansr/relation.rb', line 42 def reload reset load end |
#spawn ⇒ Object
95 96 97 98 99 |
# File 'lib/ansr/relation.rb', line 95 def spawn s = self.class.new(@klass, @table, @values.dup) s.references!(references_values()) s end |
#to_a ⇒ Object
Converts relation objects to Array.
36 37 38 39 |
# File 'lib/ansr/relation.rb', line 36 def to_a load @records end |
#total_count ⇒ Object
Returns the value of attribute count.
13 14 15 |
# File 'lib/ansr/relation.rb', line 13 def count @count end |