module Squirrell::InstanceMethods

Instance methods for Squirrell objects.

Public Class Methods

new(args = {}) click to toggle source
# File lib/squirrell/instance_methods.rb, line 27
def initialize(args = {})
  return self if args.empty?
  Squirrell.requires[self.class].each do |k|
    unless args.keys.include? k
      fail MissingParameterError, "Missing required parameter: #{k}"
    end
    instance_variable_set "@#{k}", args.delete(k)
  end

  Squirrell.permits[self.class].each do |k|
    instance_variable_set "@#{k}", args.delete(k) if args.keys.include? k
  end

  fail UnusedParameter, "Unspecified parameters: #{args}" if args.any?
end

Public Instance Methods

arel() click to toggle source

Override this method to do arel. Note: If you've overridden raw_sql, it won't work.

# File lib/squirrell/instance_methods.rb, line 13
def arel
  nil
end
finder() click to toggle source

Override this method to skip SQL execution.

# File lib/squirrell/instance_methods.rb, line 18
def finder
  nil
end
process(results) click to toggle source

Override this method to process results after query execution.

# File lib/squirrell/instance_methods.rb, line 23
def process(results)
  results
end
raw_sql() click to toggle source

Override this method to do raw_sql.

# File lib/squirrell/instance_methods.rb, line 5
def raw_sql
  sql = arel
  fail InvalidArelError unless sql.respond_to? :to_sql
  sql.to_sql
end