module ActiveInteraction::Missable

Handle common ‘method_missing` functionality.

@private

Private Instance Methods

filter(slug) click to toggle source

@param slug [Symbol]

@return [Filter, nil]

# File lib/active_interaction/concerns/missable.rb, line 34
def filter(slug)
  Filter.factory(slug)
rescue MissingFilterError
  nil
end
method_missing(slug, *args) { |klass, args, options| ... } click to toggle source

@param slug [Symbol]

@yield [klass, args, options]

@yieldparam klass [Class] @yieldparam args [Array] @yieldparam options [Hash]

@return [Missable]

Calls superclass method
# File lib/active_interaction/concerns/missable.rb, line 21
def method_missing(slug, *args)
  return super unless (klass = filter(slug))

  options = args.last.is_a?(Hash) ? args.pop : {}

  yield(klass, args, options) if block_given?

  self
end
respond_to_missing?(slug, *) click to toggle source

@param slug [Symbol]

@return [Boolean]

# File lib/active_interaction/concerns/missable.rb, line 43
def respond_to_missing?(slug, *)
  filter(slug)
end