module Riveter::Enquiry

Attributes

query[R]

Public Class Methods

i18n_scope() click to toggle source
# File lib/riveter/enquiry.rb, line 12
def i18n_scope
  :enquiries
end
new() click to toggle source
# File lib/riveter/enquiry.rb, line 79
def initialize
  # sanity check
  base_message = "#{self.class.name} enquiry not configured correctly."
  raise "#{base_message} No query filter specified. Use the `filter_with` method to provide the query filter to use." unless self.class.respond_to?(:query_filter_class)
  raise "#{base_message} No query specified. Use the `query_with` method to provide the query to use." unless self.class.respond_to?(:query_class)
end

Public Instance Methods

filter()
Alias for: query_filter
find_each(&block) click to toggle source
# File lib/riveter/enquiry.rb, line 110
def find_each(&block)
  self.query && self.query.find_each(&block)
end
has_data?() click to toggle source
# File lib/riveter/enquiry.rb, line 114
def has_data?
  self.query && self.query.has_data?
end
query_filter() click to toggle source
# File lib/riveter/enquiry.rb, line 86
def query_filter
  @query_filter ||= query_filter_class.new()
end
Also aliased as: filter
query_filter_attributes() click to toggle source
# File lib/riveter/enquiry.rb, line 91
def query_filter_attributes
  query_filter_class.attributes
end
query_results() click to toggle source
# File lib/riveter/enquiry.rb, line 118
def query_results
  self.query ? self.query.relation : nil
end
submit(*args) click to toggle source
# File lib/riveter/enquiry.rb, line 95
def submit(*args)
  params = args.extract_options!

  # filter and clean params before applying
  @query_filter = create_query_filter(params)

  # perform validations, and proceed if valid
  return false unless @query_filter.valid?

  # all good...
  @query = create_query(@query_filter)
end

Protected Instance Methods

create_query(query_filter) click to toggle source
# File lib/riveter/enquiry.rb, line 128
def create_query(query_filter)
  query_class.new(query_filter)
end
create_query_filter(params) click to toggle source
# File lib/riveter/enquiry.rb, line 124
def create_query_filter(params)
  query_filter_class.new(params)
end