summaryrefslogtreecommitdiff
path: root/lib/prism/polyfill/byteindex.rb
blob: 98c6089f141ef75e7bfe78b111e1e7ef64881747 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
# frozen_string_literal: true

# Polyfill for String#byteindex, which didn't exist until Ruby 3.2.
if !("".respond_to?(:byteindex))
  String.include(
    Module.new {
      def byteindex(needle, offset = 0)
        charindex = index(needle, offset)
        slice(0...charindex).bytesize if charindex
      end
    }
  )
end