class Middleman::CallbackManager

def install_methods!(install_target, names)

def install_methods!(install_target, names)
  manager = self
  names.each do |method_name|
    install_target.define_singleton_method(method_name) do |*keys, &b|
      key_set = keys.unshift(method_name)
      manager.add(key_set.length > 1 ? key_set : key_set[0], &b)
    end
  end
  install_target.define_singleton_method(:execute_callbacks) do |*args|
    keys = args.shift
    manager.execute(keys, args[0], self)
  end
  install_target.define_singleton_method(:callbacks_for, &method(:callbacks_for))
  install_target.define_singleton_method(:subscribe_to_callbacks, &method(:subscribe))
end