// -*- c++ -*- #pragma once #ifndef __RUCY_MODULE_H__ #define __RUCY_MODULE_H__ #include #include #include namespace Rucy { class Class; class Module : public Value { typedef Value Super; public: Module (VALUE v = Qnil); Module define_module (const char* name); Class define_class (const char* name, Value super = rb_cObject); Module define_const (const char* name, Value val); Module define_attr (const char* name, bool read = true, bool write = true); Module define_alias (const char* new_, const char* old); Module undef_method (const char* name); Module include_module (Value module); Module extend_module (Value module); Module define_function (const char* name, RubyFunctionN fun); Module define_function (const char* name, RubyFunction0 fun); Module define_function (const char* name, RubyFunction1 fun); Module define_function (const char* name, RubyFunction2 fun); Module define_function (const char* name, RubyFunction3 fun); Module define_function (const char* name, RubyFunction4 fun); Module define_function (const char* name, RubyFunction5 fun); Module define_function (const char* name, RubyFunction6 fun); Module define_function (const char* name, RubyFunction7 fun); Module define_function (const char* name, RubyFunction8 fun); Module define_method (const char* name, RubyFunctionN fun); Module define_method (const char* name, RubyFunction0 fun); Module define_method (const char* name, RubyFunction1 fun); Module define_method (const char* name, RubyFunction2 fun); Module define_method (const char* name, RubyFunction3 fun); Module define_method (const char* name, RubyFunction4 fun); Module define_method (const char* name, RubyFunction5 fun); Module define_method (const char* name, RubyFunction6 fun); Module define_method (const char* name, RubyFunction7 fun); Module define_method (const char* name, RubyFunction8 fun); Module define_private_method (const char* name, RubyFunctionN fun); Module define_private_method (const char* name, RubyFunction0 fun); Module define_private_method (const char* name, RubyFunction1 fun); Module define_private_method (const char* name, RubyFunction2 fun); Module define_private_method (const char* name, RubyFunction3 fun); Module define_private_method (const char* name, RubyFunction4 fun); Module define_private_method (const char* name, RubyFunction5 fun); Module define_private_method (const char* name, RubyFunction6 fun); Module define_private_method (const char* name, RubyFunction7 fun); Module define_private_method (const char* name, RubyFunction8 fun); Module define_singleton_method (const char* name, RubyFunctionN fun); Module define_singleton_method (const char* name, RubyFunction0 fun); Module define_singleton_method (const char* name, RubyFunction1 fun); Module define_singleton_method (const char* name, RubyFunction2 fun); Module define_singleton_method (const char* name, RubyFunction3 fun); Module define_singleton_method (const char* name, RubyFunction4 fun); Module define_singleton_method (const char* name, RubyFunction5 fun); Module define_singleton_method (const char* name, RubyFunction6 fun); Module define_singleton_method (const char* name, RubyFunction7 fun); Module define_singleton_method (const char* name, RubyFunction8 fun); };// Module Module define_module (const char* name); Class define_class (const char* name, Value super = rb_cObject); void define_const (const char* name, Value val); }// Rucy #endif//EOH