From 40a9700ef8fee2237e7675ce00063743687953b2 Mon Sep 17 00:00:00 2001 From: takahashim Date: Fri, 20 Nov 2015 23:39:45 +0900 Subject: [PATCH] support Numeric#zero? and Numeric#nonzero? --- mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb | 12 ++++++++++++ mrbgems/mruby-numeric-ext/test/numeric.rb | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb b/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb index dfc6ba87cc..0bf3c6ab6e 100644 --- a/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +++ b/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb @@ -2,4 +2,16 @@ module Integral def div(other) self.divmod(other)[0] end + + def zero? + self == 0 + end + + def nonzero? + if self == 0 + nil + else + self + end + end end diff --git a/mrbgems/mruby-numeric-ext/test/numeric.rb b/mrbgems/mruby-numeric-ext/test/numeric.rb index 96644da69c..8bead24897 100644 --- a/mrbgems/mruby-numeric-ext/test/numeric.rb +++ b/mrbgems/mruby-numeric-ext/test/numeric.rb @@ -16,3 +16,13 @@ assert('Float#div') do assert_float 52, 365.2425.div(7) end + +assert('Integer#zero?') do + assert_equal true, 0.zero? + assert_equal false, 1.zero? +end + +assert('Integer#nonzero?') do + assert_equal nil, 0.nonzero? + assert_equal 1000, 1000.nonzero? +end