Feature #11300 ยป string_bin.patch
string.c | ||
---|---|---|
/*
|
||
* call-seq:
|
||
* str.bin -> integer
|
||
*
|
||
* Treats leading characters from <i>str</i> as a string of binary digits
|
||
* (with an optional sign and an optional <code>0b</code>) and returns the
|
||
* corresponding number. Zero is returned on error.
|
||
*
|
||
* "1010".bin #=> 10
|
||
* "-0b111".bin #=> -7
|
||
* "2".bin #=> 0
|
||
* "12".bin #=> 1
|
||
*/
|
||
static VALUE
|
||
rb_str_bin(VALUE str)
|
||
{
|
||
return rb_str_to_inum(str, 2, FALSE);
|
||
}
|
||
/*
|
||
* call-seq:
|
||
* str.hex -> integer
|
||
*
|
||
* Treats leading characters from <i>str</i> as a string of hexadecimal digits
|
||
... | ... | |
rb_define_method(rb_cString, "capitalize!", rb_str_capitalize_bang, 0);
|
||
rb_define_method(rb_cString, "swapcase!", rb_str_swapcase_bang, 0);
|
||
rb_define_method(rb_cString, "bin", rb_str_bin, 0);
|
||
rb_define_method(rb_cString, "hex", rb_str_hex, 0);
|
||
rb_define_method(rb_cString, "oct", rb_str_oct, 0);
|
||
rb_define_method(rb_cString, "split", rb_str_split_m, -1);
|
test/ruby/test_string.rb | ||
---|---|---|
casetest(S("CaT"), S('cAt'), true) # find these in the case.
|
||
end
|
||
def test_bin
|
||
assert_equal(15, S("0b1111").bin)
|
||
assert_equal(-15, S("-0b1111").bin)
|
||
assert_equal(15, S("1111").bin)
|
||
assert_equal(-15, S("-1111").bin)
|
||
assert_equal(0, S("2").bin)
|
||
assert_equal(1, S("12").bin)
|
||
end
|
||
def test_capitalize
|
||
assert_equal(S("Hello"), S("hello").capitalize)
|
||
assert_equal(S("Hello"), S("hELLO").capitalize)
|