def multi_alias *args
name = case args.first
when Symbol, String
args.first.to_s
when Hash
args.first[:_before_] ? :before : :after
end
if name.kind_of? Symbol
config_options = name
options = args.first
name = options["_#{name}_""_#{name}_"]
else
options = args[1]
end
raise ArgumentError, "Name of method pattern to alias not specified. Please pass name as either first argument or as :_before_ or :_after_ option" if !name
options.delete(:_after_)
options.delete(:_before_)
direction = options.delete(:_direction_)
options = options.hash_revert if direction == :reverse
options.each_pair do |original, aliases|
alias_methods name.to_sym, original, [aliases].flatten, config_options
end
end