module RailsBetterFilters
Constants
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/rails-better-filters/rails_better_filters.rb, line 2 def self.included(base) base.extend(ClassMethods) end
Public Instance Methods
dispatch_better_filters(action = nil)
click to toggle source
# File lib/rails-better-filters/rails_better_filters.rb, line 6 def dispatch_better_filters(action = nil) if !action if defined? params && params[:action] action = params[:action] else raise ArgumentError, 'no action given' end end self.class.better_filter_chain_each do |name, callback, only| if only.empty? || only.include?(action.to_sym) if callback.is_a?(Symbol) && self.respond_to?(callback, true) return if false == self.send(callback) elsif callback.is_a?(Proc) return if false == self.instance_eval(&callback) elsif callback.respond_to?(:call) return if false == callback.call else raise ArgumentError, "don't know how to call better_filter #{name} (Callback: #{callback.inspect})" end end end end