Class: Ansr::Relation

Inherits:
ActiveRecord::Relation
  • Object
show all
Includes:
QueryMethods, Sanitization::ClassMethods, Kaminari::PageScopeMethods
Defined in:
lib/ansr/relation.rb

Constant Summary collapse

DEFAULT_PAGE_SIZE =
10

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#config

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

#contextObject

Returns the value of attribute context.



6
7
8
# File 'lib/ansr/relation.rb', line 6

def context
  @context
end

#countObject

Returns the value of attribute count.



6
7
8
# File 'lib/ansr/relation.rb', line 6

def count
  @count
end

#filtersObject

Returns the value of attribute filters.



6
7
8
# File 'lib/ansr/relation.rb', line 6

def filters
  @filters
end

#resourceObject

Returns the value of attribute resource.



6
7
8
# File 'lib/ansr/relation.rb', line 6

def resource
  @resource
end

#responseObject (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_valueObject



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

Returns:

  • (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

Returns:

  • (Boolean)


101
102
103
# File 'lib/ansr/relation.rb', line 101

def grouped?
  false
end

#loadObject



30
31
32
33
# File 'lib/ansr/relation.rb', line 30

def load
  exec_queries unless loaded?
  self
end

#many?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/ansr/relation.rb', line 51

def many?
  count > 1
end

#max_pagesObject



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

#reloadObject

Forces reloading of relation.



42
43
44
45
# File 'lib/ansr/relation.rb', line 42

def reload
  reset
  load
end

#spawnObject



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_aObject

Converts relation objects to Array.



36
37
38
39
# File 'lib/ansr/relation.rb', line 36

def to_a
  load
  @records
end

#total_countObject

Returns the value of attribute count.



13
14
15
# File 'lib/ansr/relation.rb', line 13

def count
  @count
end