module Siphon::Boilerplate::InstanceMethods

Public Class Methods

new( params = {}) click to toggle source
Calls superclass method
# File lib/siphon/boilerplate.rb, line 24
def initialize( params = {})
  @params = params || {}

  @params_ransack= @params.slice(*self.class.ransack_set)
  @params_siphon= @params.except(*self.class.ransack_set)
  self.order_by= @params["order_by"]

  super @params_siphon
end

Public Instance Methods

merge(relation) click to toggle source
# File lib/siphon/boilerplate.rb, line 42
def merge(relation)
  @relation = @relation.merge(relation)
  self
end
ransack() click to toggle source
# File lib/siphon/boilerplate.rb, line 38
def ransack
  @relation.search( params_ransack )
end
result() click to toggle source

memoized or it'll break after attributes reconciled

# File lib/siphon/boilerplate.rb, line 52
def result
  @result ||= begin
    relation = siphoned.merge(ransack.result)
    # reconcile all params for the search form (?)
    self.attributes= attributes.merge(params_ransack)
    relation
  end
end
siphoned() click to toggle source
# File lib/siphon/boilerplate.rb, line 47
def siphoned
  Siphon::Base.new(@relation).scope( self )
end
table_name() click to toggle source
# File lib/siphon/boilerplate.rb, line 34
def table_name
  self.class.model.table_name
end