7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/alias2.rb', line 7
def alias(namespace, aliases = nil)
raise ArgumentError, "you must provide an alias or a block" if aliases.nil? && !block_given?
namespace = constant(namespace)
aliases = find_names(namespace) if aliases.nil? || aliases == "*"
if aliases.is_a?(String)
set(namespace, aliases)
return
end
aliases.each do |target, alias_as|
klass = namespace.const_get(target)
if block_given?
keep_or_alias = yield klass
next unless keep_or_alias
alias_as = keep_or_alias if keep_or_alias != true
end
set(klass, (alias_as || target).to_s)
end
nil
end
|