module HangingMethods::ClassMethods

Public Instance Methods

add_hanging_method(hanging_method_name, options = {}) click to toggle source
# File lib/hanging_methods.rb, line 6
def add_hanging_method(hanging_method_name, options = {})
  unknown_keys = options.keys - [:after_invocation]
  raise ArgumentError, "Unknown keys: #{unknown_keys.join(',')}" unless unknown_keys.empty?

  add_hanging_method_options(hanging_method_name, options)

  define_method(hanging_method_name) do
    ::HangingMethods::MethodCallNotifier.new do |*method_name_and_args, &block|
      add_hanging_method_invocation(hanging_method_name, method_name_and_args, block)
    end
  end
end
add_hanging_method_options(hanging_method_name, options) click to toggle source
# File lib/hanging_methods.rb, line 19
def add_hanging_method_options(hanging_method_name, options)
  hanging_method_options(hanging_method_name).merge!(options)
end
hanging_method_options(hanging_method_name) click to toggle source
# File lib/hanging_methods.rb, line 23
def hanging_method_options(hanging_method_name)
  @hanging_method_options ||= {}
  @hanging_method_options[hanging_method_name] ||= {}
end