Module: Utcp::Utils::Subst

Defined in:
lib/utcp/utils/subst.rb

Constant Summary collapse

VAR_RE =
/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/.freeze

Class Method Summary collapse

Class Method Details

.apply(obj, vars = ENV) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/utcp/utils/subst.rb', line 11

def apply(obj, vars = ENV)
  case obj
  when String
    obj.gsub(VAR_RE) { |m| vars[$1] || m }
  when Array
    obj.map { |x| apply(x, vars) }
  when Hash
    obj.transform_values { |v| apply(v, vars) }
  else
    obj
  end
end