summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-numeric-ext
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-numeric-ext')
-rw-r--r--mrbgems/mruby-numeric-ext/mrbgem.rake1
-rw-r--r--mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb5
-rw-r--r--mrbgems/mruby-numeric-ext/src/numeric_ext.c1
-rw-r--r--mrbgems/mruby-numeric-ext/test/numeric.rb21
4 files changed, 23 insertions, 5 deletions
diff --git a/mrbgems/mruby-numeric-ext/mrbgem.rake b/mrbgems/mruby-numeric-ext/mrbgem.rake
index 010804058..3d8be7cd5 100644
--- a/mrbgems/mruby-numeric-ext/mrbgem.rake
+++ b/mrbgems/mruby-numeric-ext/mrbgem.rake
@@ -1,4 +1,5 @@
MRuby::Gem::Specification.new('mruby-numeric-ext') do |spec|
spec.license = 'MIT'
spec.author = 'mruby developers'
+ spec.summary = 'extensional Numeric class'
end
diff --git a/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb b/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb
new file mode 100644
index 000000000..dfc6ba87c
--- /dev/null
+++ b/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb
@@ -0,0 +1,5 @@
+module Integral
+ def div(other)
+ self.divmod(other)[0]
+ end
+end
diff --git a/mrbgems/mruby-numeric-ext/src/numeric_ext.c b/mrbgems/mruby-numeric-ext/src/numeric_ext.c
index bb6955b45..22c1668fa 100644
--- a/mrbgems/mruby-numeric-ext/src/numeric_ext.c
+++ b/mrbgems/mruby-numeric-ext/src/numeric_ext.c
@@ -1,6 +1,5 @@
#include <limits.h>
#include "mruby.h"
-#include "mruby/numeric.h"
static mrb_value
mrb_int_chr(mrb_state *mrb, mrb_value x)
diff --git a/mrbgems/mruby-numeric-ext/test/numeric.rb b/mrbgems/mruby-numeric-ext/test/numeric.rb
index 6c1cf0fce..4d9e83113 100644
--- a/mrbgems/mruby-numeric-ext/test/numeric.rb
+++ b/mrbgems/mruby-numeric-ext/test/numeric.rb
@@ -2,9 +2,22 @@
# Numeric(Ext) Test
assert('Integer#chr') do
- assert_equal(65.chr, "A")
- assert_equal(0x42.chr, "B")
+ assert_equal("A", 65.chr)
+ assert_equal("B", 0x42.chr)
- # multibyte encoding (not support yet)
- assert_raise(RangeError) { 12345.chr }
+ if "こんにちわ世界".size == 7 then
+ # UTF-8 gem is configured
+ assert_raise(RangeError) { 0x110000.chr }
+ else
+ # multibyte encoding (not support yet)
+ assert_raise(RangeError) { 256.chr }
+ end
+end
+
+assert('Integer#div') do
+ assert_equal 52, 365.div(7)
+end
+
+assert('Float#div') do
+ assert_float 52, 365.2425.div(7)
end