summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-07-11 15:03:56 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2013-07-11 15:03:56 +0900
commit3d792b97624dbb9ebbcf2024a3afa28d58f4f2d3 (patch)
tree679f8bd600947f299a64b95174ffc930debfab7d
parent2e1532b88dfd065bc946928fa35c190a86bdc03e (diff)
parent176f4ffe210116feb55afc57d965bb5f9f7d3fb1 (diff)
downloadmruby-3d792b97624dbb9ebbcf2024a3afa28d58f4f2d3.tar.gz
mruby-3d792b97624dbb9ebbcf2024a3afa28d58f4f2d3.zip
Merge branch 'kyab-toplevel_ext'
-rw-r--r--mrbgems/mruby-toplevel-ext/mrbgem.rake4
-rw-r--r--mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb11
-rw-r--r--mrbgems/mruby-toplevel-ext/test/toplevel.rb24
3 files changed, 39 insertions, 0 deletions
diff --git a/mrbgems/mruby-toplevel-ext/mrbgem.rake b/mrbgems/mruby-toplevel-ext/mrbgem.rake
new file mode 100644
index 000000000..457047e8d
--- /dev/null
+++ b/mrbgems/mruby-toplevel-ext/mrbgem.rake
@@ -0,0 +1,4 @@
+MRuby::Gem::Specification.new('mruby-toplevel-ext') do |spec|
+ spec.license = 'MIT'
+ spec.authors = 'mruby developers'
+end
diff --git a/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb b/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb
new file mode 100644
index 000000000..24a042e84
--- /dev/null
+++ b/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb
@@ -0,0 +1,11 @@
+
+def self.include (*modules)
+ self.class.include *modules
+end
+
+def self.private(*methods)
+end
+def self.protected(*methods)
+end
+def self.public(*methods)
+end
diff --git a/mrbgems/mruby-toplevel-ext/test/toplevel.rb b/mrbgems/mruby-toplevel-ext/test/toplevel.rb
new file mode 100644
index 000000000..4401beba1
--- /dev/null
+++ b/mrbgems/mruby-toplevel-ext/test/toplevel.rb
@@ -0,0 +1,24 @@
+##
+# Toplevel Self(Ext) Test
+
+module ToplevelTestModule1
+ def method_foo
+ :foo
+ end
+
+ CONST_BAR = :bar
+end
+
+module ToplevelTestModule2
+ CONST_BAR = :bar2
+end
+
+assert('Toplevel#include') do
+ self.include ToplevelTestModule2, ToplevelTestModule1
+
+ assert_true self.class.included_modules.include?( ToplevelTestModule1 )
+ assert_true self.class.included_modules.include?( ToplevelTestModule2 )
+ assert_equal :foo, method_foo
+ assert_equal :bar2, CONST_BAR
+end
+