Method: String#resolve_params

Defined in:
lib/adsl/spass/ruby_extensions.rb

#resolve_params(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/adsl/spass/ruby_extensions.rb', line 12

def resolve_params(*args)
  args = args.flatten
  max_arg_index = self.scan(/\$\{(\d+)\}/).map{ |a| a.first.to_i }.max || 0
  if args.length < max_arg_index
    raise ArgumentError, "Invalid argument number: #{args.length} instead of #{max_arg_index}"
  end
  result = self
  args.length.times do |i|
    result = result.gsub "${#{i + 1}}", args[i].to_s
  end
  result
end