#!/usr/bin/ruby

#
## http://rosettacode.org/wiki/Strip_control_codes_and_extended_characters_from_a_string
#

var str = "\ba\x00b\n\rc\fd\xc3\x7ffoo";

var letters = str.chars»ord()»;
assert_eq(letters»chr()».join, "\ba\0b\n\rc\fd\xC3\x7Ffoo");

var nocontrols = letters.grep{ (_ > 32) && (_ != 127) };
assert_eq(nocontrols»chr()».join, "abcd\xC3foo");

var noextended = nocontrols.grep{ _ < 127 };
assert_eq(noextended»chr()».join, "abcdfoo");

say '** Test passed';