3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/envy.rb', line 3
def self.namespace(*selectors)
selectors = [ selectors.to_a ].flatten.map{|s| s.is_a?(String) ? Regexp.new( (s.upcase + "_").gsub(/_{2,}$/,"_")) : s}
added_config = {}
selectors.each do |selector|
env_config = {}
ENV.select {|k,v| k =~ selector }.to_a.each do |k|
env_config[ k[0].gsub(selector,'').to_s.downcase.to_sym ] = k[1]
env_config[ k[0].gsub(selector,'').to_s.to_sym ] = k[1]
end
constant_name = selector.to_s.split(":")[-1].to_s.gsub(/^[^a-zA-Z0-9]{1,}|[^a-zA-Z0-9]{1,}$/,'').gsub(/[^a-zA-Z0-9_]+/,'').upcase
self.const_set(constant_name, env_config) unless self.const_defined?(constant_name)
Kernel.const_set(constant_name, env_config) unless Kernel.const_defined?(constant_name)
added_config[constant_name] = env_config
end
added_config
end
|