class GenericSearch::Klass

Attributes

base_class[RW]

Utility attributes

base_table[RW]

Utility attributes

group[RW]

Clause attributes

grouped_results[RW]

Utility attributes

having[RW]

Clause attributes

includes[RW]

Clause attributes

joins[RW]

Clause attributes

limit[RW]

Clause attributes

limit_result_count[RW]

Output attributes

messages[RW]

Output attributes

no_limit_count[RW]

Output attributes

options[RW]

Clause attributes

params[RW]

Utility attributes

response[RW]

Output attributes

results[RW]

Output attributes

select[RW]

Clause attributes

sort_order[RW]

Clause attributes

start[RW]

Clause attributes

status[RW]

Output attributes

where[RW]

Clause attributes

Public Class Methods

new(params, base_class) click to toggle source
==== Hash Inputs: ===

{

:query => "responsibles(username=ksmanoj)",
:results => "scripts(id, name), responsibles",
:limit => 5,
:options => "no_results"

}

# File lib/generic_search.rb, line 56
def initialize(params, base_class)

  self.base_class = base_class.is_a?(String) ? base_class.constantize : base_class
  self.base_table = self.base_class.table_name

  unless params.is_a?(Hash) or params.is_a?(HashWithIndifferentAccess)
    raise GenericSearch::UnknownInputType
  end

  self.params = params

  self.validate_syntax

  return unless self.errors.blank?

  self.build_where(params[:query])
  self.build_results(params[:results])
  self.build_group(params[:group])
  self.build_having(params[:having])
  self.build_options(params[:options])
  self.build_limit(params[:limit])
  self.build_start(params[:start])
  self.build_sort_order(params[:sort_order])

end

Public Instance Methods