From 81c0fda8ecdd6dd4eab8ed64c968d841617df333 Mon Sep 17 00:00:00 2001 From: skandhas Date: Tue, 8 Oct 2013 21:47:11 +0800 Subject: add some methods to Symbol --- mrbgems/mruby-symbol-ext/mrblib/symbol.rb | 51 +++++++++++++++++++++++++++++++ mrbgems/mruby-symbol-ext/test/symbol.rb | 22 +++++++++++++ 2 files changed, 73 insertions(+) diff --git a/mrbgems/mruby-symbol-ext/mrblib/symbol.rb b/mrbgems/mruby-symbol-ext/mrblib/symbol.rb index f716162e8..a4e8ef7a8 100644 --- a/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +++ b/mrbgems/mruby-symbol-ext/mrblib/symbol.rb @@ -6,4 +6,55 @@ class Symbol end end + ## + # call-seq: + # sym.length -> integer + # + # Same as sym.to_s.length. + + def length + self.to_s.length + end + alias :size :length + + ## + # call-seq: + # sym.capitalize -> symbol + # + # Same as sym.to_s.capitalize.intern. + + def capitalize + self.to_s.capitalize.intern + end + + ## + # call-seq: + # sym.downcase -> symbol + # + # Same as sym.to_s.downcase.intern. + + def downcase + self.to_s.downcase.intern + end + + ## + # call-seq: + # sym.upcase -> symbol + # + # Same as sym.to_s.upcase.intern. + + def upcase + self.to_s.upcase.intern + end + + # + # call-seq: + # sym.empty? -> true or false + # + # Returns that _sym_ is :"" or not. + + def empty? + self.to_s.empty? + end + end diff --git a/mrbgems/mruby-symbol-ext/test/symbol.rb b/mrbgems/mruby-symbol-ext/test/symbol.rb index 741315d74..35bb31aef 100644 --- a/mrbgems/mruby-symbol-ext/test/symbol.rb +++ b/mrbgems/mruby-symbol-ext/test/symbol.rb @@ -10,3 +10,25 @@ assert('Symbol.all_symbols') do symbols = Symbol.all_symbols.select{|sym|sym.to_s.include? '__symbol_test'}.sort assert_equal foo, symbols end + +assert("Symbol#length") do + assert_equal 5, :hello.size + assert_equal 5, :mruby.length +end + +assert("Symbol#capitalize") do + assert_equal :Hello, :hello.capitalize + assert_equal :Hello, :HELLO.capitalize +end + +assert("Symbol#downcase") do + assert_equal :hello, :hEllO.downcase +end + +assert("Symbol#upcase") do + assert_equal :HELLO, :hEllO.upcase +end + +assert("Symbol#empty?") do + assert_true :''.empty? +end -- cgit v1.2.3