#!/usr/bin/env ruby # frozen_string_literal: true require 'benchmark/ips' Benchmark.ips do |x| path_without_ending_slash = '/some/very/very/long/path/to/a/file/i/like' x.report('no slash regexp') { path_without_ending_slash =~ %r{/$} } x.report('no slash end_with?') { path_without_ending_slash.end_with?('/') } x.report('no slash [-1, 1]') { path_without_ending_slash[-1, 1] == '/' } end Benchmark.ips do |x| path_with_ending_slash = '/some/very/very/long/path/to/a/file/i/like/' x.report('slash regexp') { path_with_ending_slash =~ %r{/$} } x.report('slash end_with?') { path_with_ending_slash.end_with?('/') } x.report('slash [-1, 1]') { path_with_ending_slash[-1, 1] == '/' } end