summaryrefslogtreecommitdiff
path: root/lib/prism/polyfill/append_as_bytes.rb
blob: 24218bd171aa881a414b743d1843e34dc4407180 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# frozen_string_literal: true

# Polyfill for String#append_as_bytes, which didn't exist until Ruby 3.4.
if !("".respond_to?(:append_as_bytes))
  String.include(
    Module.new {
      def append_as_bytes(*args)
        args.each do |arg|
          arg = Integer === arg ? [arg].pack("C") : arg.b
          self.<<(arg) # steep:ignore
        end
      end
    }
  )
end