# File lib/gherkin/formatter/argument.rb, line 13 def self.format(string, argument_format, arguments) arguments ||= [] s = string.dup offset = past_offset = 0 arguments.each do |arg| next if arg.byte_offset.nil? || arg.byte_offset < past_offset replacement = argument_format.format_argument(arg.val) s[arg.byte_offset + offset, arg.val.length] = replacement offset += replacement.unpack("U*").length - arg.val.unpack("U*").length past_offset = arg.byte_offset + arg.val.length end s end