From 621487a0cd8acc5bbec73c98ebbb23c519ba6e6d Mon Sep 17 00:00:00 2001 From: takahashim Date: Mon, 23 Nov 2015 19:51:02 +0900 Subject: add {Array|Hash|String}.try_convert --- mrbgems/mruby-string-ext/mrblib/string.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'mrbgems/mruby-string-ext/mrblib/string.rb') diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb index 4c8a2ce3b..c699e13b7 100644 --- a/mrbgems/mruby-string-ext/mrblib/string.rb +++ b/mrbgems/mruby-string-ext/mrblib/string.rb @@ -1,5 +1,24 @@ class String + ## + # call-seq: + # String.try_convert(obj) -> string or nil + # + # Try to convert obj into a String, using to_str method. + # Returns converted string or nil if obj cannot be converted + # for any reason. + # + # String.try_convert("str") #=> "str" + # String.try_convert(/re/) #=> nil + # + def self.try_convert(obj) + if obj.respond_to?(:to_str) + obj.to_str + else + nil + end + end + ## # call-seq: # string.clear -> string -- cgit v1.2.3