class Object
Public Instance Methods
new_string → str
click to toggle source
Returns another string that may be modified without touching the original
object. This means dup for a string and to_s for
any other object.
If a block is given, that may modify a created string (built from a non-string object). For a dup'ed string object the block will not be called.
VALUE
rb_obj_new_string( VALUE obj)
{
VALUE r;
r = rb_obj_as_string( obj);
if (rb_block_given_p())
rb_yield( r);
return r;
}
nil_if val → nil or self
click to toggle source
Returns nil when the string matches val.
val is compared using the === operator, just like
in the case statement.
"hello".nil_if "NONE" #=> "hello" "NONE".nil_if "NONE" #=> nil "NONE".nil_if /^none$/i #=> nil 20.nil_if 10 #=> 20 10.nil_if 10 #=> nil 1.0.nil_if Float #=> nil
VALUE
rb_obj_nil_if( VALUE obj, VALUE val)
{
if (!id_eqq)
id_eqq = rb_intern( "===");
return RTEST( rb_funcall( val, id_eqq, 1, obj)) ? Qnil : obj;
}
tap { |x| ... } → obj
click to toggle source
Yields x to the block, and then returns x. The
primary purpose of this method is to “tap into” a method chain, in order to
perform operations on intermediate results within the chain.
(1..10) .tap { |x| puts "original: #{x.inspect}" } .to_a .tap { |x| puts "array: #{x.inspect}" } .select { |x| x%2==0 } .tap { |x| puts "evens: #{x.inspect}" } .map { |x| x*x } .tap { |x| puts "squares: #{x.inspect}" }
VALUE
rb_krn_tap( VALUE obj)
{
rb_yield( obj);
return obj;
}
tap! { |x| ... } → obj
click to toggle source
Yields x to the block, and then returns x if and
only if x is not nil.
VALUE
rb_krn_tap_bang( VALUE obj)
{
if (!NIL_P( obj))
rb_yield( obj);
return obj;
}