Sha256: 630b322fb0ab4317add824c819315ed9d18460acb7c02fa23fdc9c0f9b9b843c
Contents?: true
Size: 719 Bytes
Versions: 47
Compression:
Stored size: 719 Bytes
Contents
# frozen_string_literal: true require "benchmark/ips" def slice str = ('*' * 40) + "\n" + ('*' * 40) + "\n" + ('*' * 40) + "\n" + ('*' * 40) + "\n" + ('*' * 40) lines = [] while true idx = str.index("\n") break unless idx lines << str.slice!(0, idx + 1) end raise unless lines.size == 4 raise unless str == ('*' * 40) end def split str = ('*' * 40) + "\n" + ('*' * 40) + "\n" + ('*' * 40) + "\n" + ('*' * 40) + "\n" + ('*' * 40) lines = str.split("\n") if str[-1] == "\n" str = '' else str = lines.pop end raise unless lines.size == 4 raise unless str == ('*' * 40) end Benchmark.ips do |x| x.report("slice") { slice } x.report("split") { split } x.compare! end
Version data entries
47 entries across 47 versions & 1 rubygems