class ActionSubscriber::DSL::Filter

Attributes

callback_method[RW]
excluded_actions[RW]
included_actions[RW]

Public Class Methods

new(callback_method, options) click to toggle source
# File lib/action_subscriber/dsl.rb, line 8
def initialize(callback_method, options)
  @callback_method = callback_method
  @included_actions = @excluded_actions = []
  parse_options(options)
end

Public Instance Methods

matches(action) click to toggle source
# File lib/action_subscriber/dsl.rb, line 14
def matches(action)
  unless included_actions.empty?
    return included_actions.include?(action)
  end

  unless excluded_actions.empty?
    return false if excluded_actions.include?(action)
  end

  true
end

Private Instance Methods

parse_options(options) click to toggle source
# File lib/action_subscriber/dsl.rb, line 28
def parse_options(options)
  return unless options

  @included_actions  = options.fetch(:if, [])
  @excluded_actions = options.fetch(:unless, [])
end