module Protobuf::Rpc::ServiceFilters::ClassMethods
Public Instance Methods
filters()
click to toggle source
Filters hash keyed based on filter type (e.g. :before, :after, :around), whose values are Sets.
# File lib/protobuf/rpc/service_filters.rb, line 26 def filters @filters ||= Hash.new { |h, k| h[k] = [] } end
rescue_filters()
click to toggle source
Filters hash keyed based on filter type (e.g. :before, :after, :around), whose values are Sets.
# File lib/protobuf/rpc/service_filters.rb, line 33 def rescue_filters @rescue_filters ||= {} end
rescue_from(*ex_klasses, &block)
click to toggle source
# File lib/protobuf/rpc/service_filters.rb, line 37 def rescue_from(*ex_klasses, &block) options = ex_klasses.last.is_a?(Hash) ? ex_klasses.pop : {} callable = options.delete(:with) { block } fail ArgumentError, 'Option :with missing from rescue_from options' if callable.nil? ex_klasses.each { |ex_klass| rescue_filters[ex_klass] = callable } end
Private Instance Methods
define_filter(type, filter, options = {})
click to toggle source
# File lib/protobuf/rpc/service_filters.rb, line 46 def define_filter(type, filter, options = {}) return if filter_defined?(type, filter) filters[type] << options.merge(:callable => filter) remember_filter(type, filter) end
defined_filters()
click to toggle source
# File lib/protobuf/rpc/service_filters.rb, line 52 def defined_filters @defined_filters ||= Hash.new { |h, k| h[k] = Set.new } end
filter_defined?(type, filter)
click to toggle source
Check to see if the filter has been defined.
# File lib/protobuf/rpc/service_filters.rb, line 58 def filter_defined?(type, filter) defined_filters[type].include?(filter) end
remember_filter(type, filter)
click to toggle source
Remember that we stored the filter.
# File lib/protobuf/rpc/service_filters.rb, line 64 def remember_filter(type, filter) defined_filters[type] << filter end
set_filters(type, *args)
click to toggle source
Takes a list of actually (or potentially) callable objects. TODO: add support for if/unless TODO: add support for only/except sub-filters
# File lib/protobuf/rpc/service_filters.rb, line 72 def set_filters(type, *args) options = args.last.is_a?(Hash) ? args.pop : {} args.each do |filter| define_filter(type, filter, options) end end