Issue #14574 has been updated by phluid61 (Matthew Kerwin).


I think runtime-customisable percent-literal strings are a bit of a hard ask, since things like %w, %r, %x are so tightly integrated with the parser itself.

Even the question of when to stop consuming (nested brackets? escape characters?) means there will be messy and confusing edge-cases.

I'm not against the idea *per se*, I just think it's not workable in the Ruby we have today.

----------------------------------------
Feature #14574: percent literals and binary encoding strings
https://bugs.ruby-lang.org/issues/14574#change-70772

* Author: pb (pumbur _)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
coding `"\x00".force_encoding('binary')` or `["\x00"].pack('a*')` is a hassle, is there a chance to have special percent literal for it?
i.e: `%b"\x00"` would return binary string. (note, signle-character \x00 there is accidental, the idea is force any string from script encoding to binary)


or, more general suggestion: 
allow percent literal with any [a-z] character, move all logic to user-level and allow it to be redefinable:

~~~ ruby
define_percent_literal(:b){|q| q.force_encoding('binary') }
%b'\x00' #=> "\x00"
~~~




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>