• KOBAYASHI Shuji's avatar
    Add encoding argument to `Integral#chr` · e86aa61f
    KOBAYASHI Shuji authored
    Currently, `Integral#chr` in mruby changes behavior by `MRB_UTF8_STRING`
    setting.
    
    before this patch:
    
      $ bin/mruby -e 'p 171.chr'  #=> "\xab"  (`MRB_UTF8_STRING` is disabled)
      $ bin/mruby -e 'p 171.chr'  #=> "«"     (`MRB_UTF8_STRING` is enabled)
    
    This behavior is incompatible with Ruby, and a little inconvenient because
    it can't be interpreted as ASCII-8BIT with `MRB_UTF8_STRING`, I think.
    
    So add encoding argument according to Ruby.
    
    after this patch:
    
      $ bin/mruby -e 'p 171.chr'                #=> "\xab"
      $ bin/mruby -e 'p 171.chr("ASCII-8BIT")'  #=> "\xab"
      $ bin/mruby -e 'p 171.chr("UTF-8")'       #=> "«"
    
    Allow only `String` for encoding because mruby doesn't have `Encoding`
    class, and `"ASCII-8BIT"` (`"BINARY"`) and `"UTF-8"` (only with
    `MRB_UTF8_STRING`) are valid value (default is `"ASCII-8BIT"`).
    e86aa61f
numeric.rb 970 Bytes