Module: Squirrell::InstanceMethods

Defined in:
lib/squirrell/instance_methods.rb

Overview

Instance methods for Squirrell objects.

Instance Method Summary collapse

Instance Method Details

#arelObject

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



13
14
15
# File 'lib/squirrell/instance_methods.rb', line 13

def arel
  nil
end

#finderObject

Override this method to skip SQL execution.



18
19
20
# File 'lib/squirrell/instance_methods.rb', line 18

def finder
  nil
end

#initialize(args = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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

#process(results) ⇒ Object

Override this method to process results after query execution.



23
24
25
# File 'lib/squirrell/instance_methods.rb', line 23

def process(results)
  results
end

#raw_sqlObject

Override this method to do raw_sql.



5
6
7
8
9
# 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