rucy 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.doc/ext/rucy/class.cpp +244 -0
- data/.doc/ext/rucy/exception.cpp +99 -0
- data/.doc/ext/rucy/function.cpp +63 -0
- data/.doc/ext/rucy/struct.cpp +80 -0
- data/.doc/ext/rucy/tester.cpp +41 -184
- data/.doc/ext/rucy/value.cpp +42 -0
- data/.gitignore +22 -0
- data/Rakefile +4 -29
- data/VERSION +1 -1
- data/ext/rucy/class.cpp +262 -0
- data/ext/rucy/class.h +96 -0
- data/ext/rucy/exception.cpp +107 -0
- data/ext/rucy/extconf.rb +9 -8
- data/ext/rucy/function.cpp +68 -0
- data/ext/rucy/struct.cpp +83 -0
- data/ext/rucy/tester.cpp +41 -197
- data/ext/rucy/tester.h +10 -0
- data/ext/rucy/value.cpp +46 -0
- data/include/rucy/defs.h.erb +17 -0
- data/include/rucy/exception.h +2 -0
- data/include/rucy/extension.h +206 -0
- data/include/rucy/rucy.h +25 -2
- data/include/rucy/symbol.h +11 -0
- data/include/rucy/value.h.erb +66 -14
- data/include/rucy.h +1 -1
- data/lib/rucy/module.rb +9 -2
- data/rucy.gemspec +16 -40
- data/src/exception.cpp +17 -25
- data/src/rucy.cpp +2 -2
- data/src/symbol.cpp +24 -0
- data/src/value.cpp.erb +161 -25
- data/task/doc.rake +50 -0
- data/test/helpers.rb +7 -0
- data/test/test_class.rb +161 -0
- data/test/test_exception.rb +39 -0
- data/test/test_function.rb +31 -0
- data/test/test_struct.rb +30 -0
- data/test/test_value.rb +18 -0
- metadata +123 -74
- data/include/rucy/defs.h +0 -101
- data/include/rucy/function.h +0 -245
- data/include/rucy/gc.h +0 -59
- data/include/rucy/module.h +0 -98
- data/include/rucy/value.h +0 -291
- data/src/function.cpp +0 -158
- data/src/gc.cpp +0 -63
- data/src/module.cpp +0 -325
- data/src/value.cpp +0 -511
- data/task/ext.rake +0 -96
- data/test/test_rucy.rb +0 -73
data/ext/rucy/class.h
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
// -*- c++ -*-
|
2
|
+
#pragma once
|
3
|
+
#ifndef __CLASS_H__
|
4
|
+
#define __CLASS_H__
|
5
|
+
|
6
|
+
|
7
|
+
#include <xot/ref.h>
|
8
|
+
#include <rucy/extension.h>
|
9
|
+
#include "tester.h"
|
10
|
+
|
11
|
+
|
12
|
+
class Base : public Xot::RefCountable<>
|
13
|
+
{
|
14
|
+
|
15
|
+
public:
|
16
|
+
|
17
|
+
Base ()
|
18
|
+
{
|
19
|
+
log("Base()");
|
20
|
+
}
|
21
|
+
|
22
|
+
virtual ~Base ()
|
23
|
+
{
|
24
|
+
log("~Base()");
|
25
|
+
}
|
26
|
+
|
27
|
+
virtual const char* name () const
|
28
|
+
{
|
29
|
+
return "Base::name";
|
30
|
+
}
|
31
|
+
|
32
|
+
virtual const char* name_overridable () const
|
33
|
+
{
|
34
|
+
return "Base::name_overridable";
|
35
|
+
}
|
36
|
+
|
37
|
+
virtual const char* name_overridable_faster () const
|
38
|
+
{
|
39
|
+
return "Base::name_overridable_faster";
|
40
|
+
}
|
41
|
+
|
42
|
+
};// Base
|
43
|
+
|
44
|
+
|
45
|
+
class Sub : public Base
|
46
|
+
{
|
47
|
+
|
48
|
+
public:
|
49
|
+
|
50
|
+
Sub ()
|
51
|
+
{
|
52
|
+
log("Sub()");
|
53
|
+
}
|
54
|
+
|
55
|
+
virtual ~Sub ()
|
56
|
+
{
|
57
|
+
log("~Sub()");
|
58
|
+
}
|
59
|
+
|
60
|
+
virtual const char* name () const
|
61
|
+
{
|
62
|
+
return "Sub::name";
|
63
|
+
}
|
64
|
+
|
65
|
+
virtual const char* name_overridable () const
|
66
|
+
{
|
67
|
+
return "Sub::name_overridable";
|
68
|
+
}
|
69
|
+
|
70
|
+
virtual const char* name_overridable_faster () const
|
71
|
+
{
|
72
|
+
return "Sub::name_overridable_faster";
|
73
|
+
}
|
74
|
+
|
75
|
+
};// Sub
|
76
|
+
|
77
|
+
|
78
|
+
class RubyObj : public Xot::RefCountable<>
|
79
|
+
{
|
80
|
+
|
81
|
+
public:
|
82
|
+
|
83
|
+
RubyObj ()
|
84
|
+
{
|
85
|
+
log("RubyObj()");
|
86
|
+
}
|
87
|
+
|
88
|
+
~RubyObj ()
|
89
|
+
{
|
90
|
+
log("~RubyObj()");
|
91
|
+
}
|
92
|
+
|
93
|
+
};// Obj
|
94
|
+
|
95
|
+
|
96
|
+
#endif//EOH
|
@@ -0,0 +1,107 @@
|
|
1
|
+
#include <rucy.h>
|
2
|
+
|
3
|
+
|
4
|
+
using namespace Rucy;
|
5
|
+
|
6
|
+
|
7
|
+
/*
|
8
|
+
raise ruby's exception.
|
9
|
+
*/
|
10
|
+
static
|
11
|
+
RUBY_DEF0(raise_ruby_exception)
|
12
|
+
{
|
13
|
+
throw RubyException(rb_eStandardError, "raise_ruby_exception");
|
14
|
+
}
|
15
|
+
RUBY_END
|
16
|
+
|
17
|
+
/*
|
18
|
+
raise in eval.
|
19
|
+
*/
|
20
|
+
static
|
21
|
+
RUBY_DEF0(raise_in_eval)
|
22
|
+
{
|
23
|
+
eval("raise 'raise_in_eval'");
|
24
|
+
}
|
25
|
+
RUBY_END
|
26
|
+
|
27
|
+
/*
|
28
|
+
throw nothing.
|
29
|
+
*/
|
30
|
+
static
|
31
|
+
RUBY_DEF0(throw_nothing)
|
32
|
+
{
|
33
|
+
throw;
|
34
|
+
}
|
35
|
+
RUBY_END
|
36
|
+
|
37
|
+
/*
|
38
|
+
throw std::exception.
|
39
|
+
*/
|
40
|
+
static
|
41
|
+
RUBY_DEF0(throw_std_exception)
|
42
|
+
{
|
43
|
+
throw std::exception();
|
44
|
+
}
|
45
|
+
RUBY_END
|
46
|
+
|
47
|
+
/*
|
48
|
+
throw std::runtime_error.
|
49
|
+
*/
|
50
|
+
static
|
51
|
+
RUBY_DEF0(throw_std_runtime_error)
|
52
|
+
{
|
53
|
+
throw std::runtime_error("std::runtime_error");
|
54
|
+
}
|
55
|
+
RUBY_END
|
56
|
+
|
57
|
+
struct MyException : public std::runtime_error
|
58
|
+
{
|
59
|
+
MyException() : runtime_error("") {}
|
60
|
+
};
|
61
|
+
|
62
|
+
/*
|
63
|
+
throw custom exception class.
|
64
|
+
*/
|
65
|
+
static
|
66
|
+
RUBY_DEF0(throw_custom_exception)
|
67
|
+
{
|
68
|
+
throw MyException();
|
69
|
+
}
|
70
|
+
RUBY_END
|
71
|
+
|
72
|
+
/*
|
73
|
+
throw std::string.
|
74
|
+
*/
|
75
|
+
static
|
76
|
+
RUBY_DEF0(throw_std_string)
|
77
|
+
{
|
78
|
+
throw std::string("std::string");
|
79
|
+
}
|
80
|
+
RUBY_END
|
81
|
+
|
82
|
+
/*
|
83
|
+
throw char*.
|
84
|
+
*/
|
85
|
+
static
|
86
|
+
RUBY_DEF0(throw_cstring)
|
87
|
+
{
|
88
|
+
throw "cstring";
|
89
|
+
}
|
90
|
+
RUBY_END
|
91
|
+
|
92
|
+
|
93
|
+
void
|
94
|
+
Init_exception ()
|
95
|
+
{
|
96
|
+
Module mRucy = define_module("Rucy");
|
97
|
+
Module mTester = mRucy.define_module("Tester");
|
98
|
+
|
99
|
+
mTester.define_method("raise_ruby_exception", raise_ruby_exception);
|
100
|
+
mTester.define_method("raise_in_eval", raise_in_eval);
|
101
|
+
mTester.define_method("throw_nothing", throw_nothing);
|
102
|
+
mTester.define_method("throw_std_exception", throw_std_exception);
|
103
|
+
mTester.define_method("throw_std_runtime_error", throw_std_runtime_error);
|
104
|
+
mTester.define_method("throw_custom_exception", throw_custom_exception);
|
105
|
+
mTester.define_method("throw_std_string", throw_std_string);
|
106
|
+
mTester.define_method("throw_cstring", throw_cstring);
|
107
|
+
}
|
data/ext/rucy/extconf.rb
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
-
|
5
|
-
$: << File.expand_path(File.join File.dirname(__FILE__), *path.split('/'))
|
6
|
-
end
|
7
|
-
|
8
|
-
require 'rubygems'
|
4
|
+
require 'bundler/setup'
|
9
5
|
require 'mkmf'
|
10
6
|
require 'xot/rake/helpers'
|
11
7
|
require 'xot/module'
|
@@ -14,7 +10,8 @@ require 'rucy/module'
|
|
14
10
|
include Xot::Rake
|
15
11
|
|
16
12
|
|
17
|
-
|
13
|
+
debug = env :DEBUG, false
|
14
|
+
|
18
15
|
|
19
16
|
DEFS = []
|
20
17
|
INCDIRS = %w[
|
@@ -36,7 +33,8 @@ LIBS = %w[
|
|
36
33
|
]
|
37
34
|
|
38
35
|
|
39
|
-
DEFS << '_DEBUG' if
|
36
|
+
DEFS << '_DEBUG' if debug
|
37
|
+
DEFS << 'NDEBUG' unless debug
|
40
38
|
DEFS << 'WINDOWS' << 'WIN32' if win32?
|
41
39
|
DEFS << 'COCOA' if cocoa?
|
42
40
|
DEFS << $~[0].upcase if RUBY_PLATFORM =~ /mswin|ming|cygwin|darwin/i
|
@@ -44,9 +42,12 @@ DEFS << $~[0].upcase if RUBY_PLATFORM =~ /mswin|ming|cygwin|darwin/i
|
|
44
42
|
$CPPFLAGS << DEFS.map {|s| " -D#{s}"}.join
|
45
43
|
$CPPFLAGS << INCDIRS.map {|s| " -I#{s}"}.join
|
46
44
|
$LDFLAGS << LIBDIRS.map {|s| " -L#{s}"}.join
|
45
|
+
$CFLAGS << ' --stdlib=libc++' if clang?
|
47
46
|
$LOCAL_LIBS << ' -lrucy'
|
48
47
|
|
49
|
-
|
48
|
+
RbConfig::CONFIG.each do |key, val|
|
49
|
+
{'gcc' => 'g++', 'clang' => 'clang++'}.each {|from, to| val.gsub! from, to}
|
50
|
+
end
|
50
51
|
|
51
52
|
|
52
53
|
dir_config 'boost'
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#include <rucy.h>
|
2
|
+
|
3
|
+
|
4
|
+
using namespace Rucy;
|
5
|
+
|
6
|
+
|
7
|
+
/*
|
8
|
+
do nothing.
|
9
|
+
*/
|
10
|
+
static
|
11
|
+
RUBY_DEFN(do_nothing)
|
12
|
+
{
|
13
|
+
}
|
14
|
+
RUBY_END
|
15
|
+
|
16
|
+
/*
|
17
|
+
return nil.
|
18
|
+
*/
|
19
|
+
static
|
20
|
+
RUBY_DEF0(return_nil)
|
21
|
+
{
|
22
|
+
return Qnil;
|
23
|
+
}
|
24
|
+
RUBY_END
|
25
|
+
|
26
|
+
/*
|
27
|
+
return int.
|
28
|
+
*/
|
29
|
+
static
|
30
|
+
RUBY_DEF0(return_int)
|
31
|
+
{
|
32
|
+
return value(1);
|
33
|
+
}
|
34
|
+
RUBY_END
|
35
|
+
|
36
|
+
/*
|
37
|
+
return flaot.
|
38
|
+
*/
|
39
|
+
static
|
40
|
+
RUBY_DEF0(return_float)
|
41
|
+
{
|
42
|
+
return value(1.0f);
|
43
|
+
}
|
44
|
+
RUBY_END
|
45
|
+
|
46
|
+
/*
|
47
|
+
return string.
|
48
|
+
*/
|
49
|
+
static
|
50
|
+
RUBY_DEF0(return_string)
|
51
|
+
{
|
52
|
+
return value("");
|
53
|
+
}
|
54
|
+
RUBY_END
|
55
|
+
|
56
|
+
|
57
|
+
void
|
58
|
+
Init_function ()
|
59
|
+
{
|
60
|
+
Module mRucy = define_module("Rucy");
|
61
|
+
Module mTester = mRucy.define_module("Tester");
|
62
|
+
|
63
|
+
mTester.define_method("do_nothing", do_nothing);
|
64
|
+
mTester.define_method("return_nil", return_nil);
|
65
|
+
mTester.define_method("return_int", return_int);
|
66
|
+
mTester.define_method("return_float", return_float);
|
67
|
+
mTester.define_method("return_string", return_string);
|
68
|
+
}
|
data/ext/rucy/struct.cpp
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
#include <rucy.h>
|
2
|
+
|
3
|
+
|
4
|
+
using namespace Rucy;
|
5
|
+
|
6
|
+
|
7
|
+
struct Struct
|
8
|
+
{
|
9
|
+
|
10
|
+
int num;
|
11
|
+
|
12
|
+
Struct () : num(0) {}
|
13
|
+
|
14
|
+
};// Struct
|
15
|
+
|
16
|
+
|
17
|
+
static Class cStruct;
|
18
|
+
|
19
|
+
|
20
|
+
namespace Rucy
|
21
|
+
{
|
22
|
+
|
23
|
+
|
24
|
+
static Value
|
25
|
+
value (const Struct& obj)
|
26
|
+
{
|
27
|
+
return new_type(cStruct, new Struct(obj));
|
28
|
+
}
|
29
|
+
|
30
|
+
template <> inline Struct*
|
31
|
+
value_to<Struct*> (Value val, bool)
|
32
|
+
{
|
33
|
+
return get_type_ptr<Struct>(val, cStruct);
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
}// Rucy
|
38
|
+
|
39
|
+
|
40
|
+
/*
|
41
|
+
alloc function.
|
42
|
+
*/
|
43
|
+
static
|
44
|
+
RUBY_DEF_ALLOC(alloc, klass)
|
45
|
+
{
|
46
|
+
return new_type<Struct>(klass);
|
47
|
+
}
|
48
|
+
RUBY_END
|
49
|
+
|
50
|
+
/*
|
51
|
+
get num.
|
52
|
+
*/
|
53
|
+
static
|
54
|
+
RUBY_DEF0(get_num)
|
55
|
+
{
|
56
|
+
Struct* obj = to<Struct*>(self);
|
57
|
+
if (obj) return value(obj->num);
|
58
|
+
}
|
59
|
+
RUBY_END
|
60
|
+
|
61
|
+
/*
|
62
|
+
set num.
|
63
|
+
*/
|
64
|
+
static
|
65
|
+
RUBY_DEF1(set_num, num)
|
66
|
+
{
|
67
|
+
Struct* obj = to<Struct*>(self);
|
68
|
+
if (obj) obj->num = to<int>(num);
|
69
|
+
}
|
70
|
+
RUBY_END
|
71
|
+
|
72
|
+
|
73
|
+
void
|
74
|
+
Init_struct ()
|
75
|
+
{
|
76
|
+
Module mRucy = define_module("Rucy");
|
77
|
+
Module mTester = mRucy.define_module("Tester");
|
78
|
+
|
79
|
+
cStruct = mTester.define_class("Struct");
|
80
|
+
cStruct.define_alloc_func(alloc);
|
81
|
+
cStruct.define_method("num", get_num);
|
82
|
+
cStruct.define_method("num=", set_num);
|
83
|
+
}
|
data/ext/rucy/tester.cpp
CHANGED
@@ -1,212 +1,65 @@
|
|
1
|
-
#include
|
2
|
-
|
3
|
-
|
4
|
-
using namespace Rucy;
|
1
|
+
#include "tester.h"
|
5
2
|
|
6
3
|
|
7
|
-
|
8
|
-
|
4
|
+
#include <vector>
|
5
|
+
#include <rucy.h>
|
9
6
|
|
10
|
-
int value;
|
11
7
|
|
12
|
-
|
8
|
+
using namespace Rucy;
|
13
9
|
|
14
10
|
|
15
|
-
static
|
11
|
+
static std::vector<String> logs;
|
16
12
|
|
17
13
|
|
18
|
-
|
19
|
-
|
14
|
+
void
|
15
|
+
log (const char* str)
|
20
16
|
{
|
21
|
-
|
17
|
+
logs.push_back(str);
|
22
18
|
}
|
23
19
|
|
24
20
|
|
25
|
-
namespace Rucy
|
26
|
-
{
|
27
|
-
|
28
|
-
|
29
|
-
static Value
|
30
|
-
value (const Tester& obj)
|
31
|
-
{
|
32
|
-
return new_type<Tester>(tester_class(), new Tester(obj));
|
33
|
-
}
|
34
|
-
|
35
|
-
template <> inline Tester*
|
36
|
-
value_to<Tester*> (Value obj, bool)
|
37
|
-
{
|
38
|
-
return get_type<Tester>(obj, tester_class());
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
|
-
}// Rucy
|
43
|
-
|
44
|
-
|
45
21
|
/*
|
46
|
-
|
22
|
+
return last log.
|
47
23
|
*/
|
48
|
-
|
49
|
-
RUBY_DEF_ALLOC(alloc, klass)
|
24
|
+
RUBY_DEFN(last_log)
|
50
25
|
{
|
51
|
-
|
52
|
-
|
53
|
-
RUBY_END
|
26
|
+
if (argc > 1)
|
27
|
+
arg_count_error("#last_log", argc, 0, 1);
|
54
28
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
static
|
59
|
-
RUBY_DEF0(get_value)
|
60
|
-
{
|
61
|
-
Tester* t = to<Tester*>(self);
|
62
|
-
if (t) return value(t->value);
|
63
|
-
}
|
64
|
-
RUBY_END
|
29
|
+
size_t index = (argc >= 1) ? to<size_t>(argv[0]) : logs.size() - 1;
|
30
|
+
if (index >= logs.size())
|
31
|
+
index_error();
|
65
32
|
|
66
|
-
|
67
|
-
set value.
|
68
|
-
*/
|
69
|
-
static
|
70
|
-
RUBY_DEF1(set_value, value)
|
71
|
-
{
|
72
|
-
Tester* t = to<Tester*>(self);
|
73
|
-
if (t) t->value = to<int>(value);
|
33
|
+
return value(logs[index].c_str());
|
74
34
|
}
|
75
35
|
RUBY_END
|
76
36
|
|
77
37
|
/*
|
78
|
-
|
38
|
+
return all logs.
|
79
39
|
*/
|
80
|
-
|
81
|
-
RUBY_DEFN(do_nothing)
|
40
|
+
RUBY_DEF0(all_logs)
|
82
41
|
{
|
42
|
+
std::vector<Value> a;
|
43
|
+
for (size_t i = 0; i < logs.size(); ++i) a.push_back(logs[i].c_str());
|
44
|
+
return value(a.size(), &a[0]);
|
83
45
|
}
|
84
46
|
RUBY_END
|
85
47
|
|
86
48
|
/*
|
87
|
-
|
49
|
+
clcear all logs.
|
88
50
|
*/
|
89
|
-
|
90
|
-
RUBY_DEF0(return_nil)
|
51
|
+
RUBY_DEF0(clear_logs)
|
91
52
|
{
|
92
|
-
|
53
|
+
logs.clear();
|
93
54
|
}
|
94
55
|
RUBY_END
|
95
56
|
|
96
|
-
/*
|
97
|
-
return int.
|
98
|
-
*/
|
99
|
-
static
|
100
|
-
RUBY_DEF0(return_int)
|
101
|
-
{
|
102
|
-
return value(1);
|
103
|
-
}
|
104
|
-
RUBY_END
|
105
57
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
{
|
112
|
-
return value(1.0f);
|
113
|
-
}
|
114
|
-
RUBY_END
|
115
|
-
|
116
|
-
/*
|
117
|
-
return string.
|
118
|
-
*/
|
119
|
-
static
|
120
|
-
RUBY_DEF0(return_string)
|
121
|
-
{
|
122
|
-
return value("");
|
123
|
-
}
|
124
|
-
RUBY_END
|
125
|
-
|
126
|
-
/*
|
127
|
-
raise ruby's exception.
|
128
|
-
*/
|
129
|
-
static
|
130
|
-
RUBY_DEF0(raise_ruby_exception)
|
131
|
-
{
|
132
|
-
throw RubyException(rb_eStandardError, "raise_ruby_exception");
|
133
|
-
}
|
134
|
-
RUBY_END
|
135
|
-
|
136
|
-
/*
|
137
|
-
raise in eval.
|
138
|
-
*/
|
139
|
-
static
|
140
|
-
RUBY_DEF0(raise_in_eval)
|
141
|
-
{
|
142
|
-
eval("raise 'raise_in_eval'");
|
143
|
-
}
|
144
|
-
RUBY_END
|
145
|
-
|
146
|
-
/*
|
147
|
-
throw nothing.
|
148
|
-
*/
|
149
|
-
static
|
150
|
-
RUBY_DEF0(throw_nothing)
|
151
|
-
{
|
152
|
-
throw;
|
153
|
-
}
|
154
|
-
RUBY_END
|
155
|
-
|
156
|
-
/*
|
157
|
-
throw std::exception.
|
158
|
-
*/
|
159
|
-
static
|
160
|
-
RUBY_DEF0(throw_std_exception)
|
161
|
-
{
|
162
|
-
throw std::exception();
|
163
|
-
}
|
164
|
-
RUBY_END
|
165
|
-
|
166
|
-
/*
|
167
|
-
throw std::runtime_error.
|
168
|
-
*/
|
169
|
-
static
|
170
|
-
RUBY_DEF0(throw_std_runtime_error)
|
171
|
-
{
|
172
|
-
throw std::runtime_error("std::runtime_error");
|
173
|
-
}
|
174
|
-
RUBY_END
|
175
|
-
|
176
|
-
struct MyException : public std::runtime_error
|
177
|
-
{
|
178
|
-
MyException() : runtime_error("") {}
|
179
|
-
};
|
180
|
-
|
181
|
-
/*
|
182
|
-
throw custom exception class.
|
183
|
-
*/
|
184
|
-
static
|
185
|
-
RUBY_DEF0(throw_custom_exception)
|
186
|
-
{
|
187
|
-
throw MyException();
|
188
|
-
}
|
189
|
-
RUBY_END
|
190
|
-
|
191
|
-
/*
|
192
|
-
throw std::string.
|
193
|
-
*/
|
194
|
-
static
|
195
|
-
RUBY_DEF0(throw_std_string)
|
196
|
-
{
|
197
|
-
throw std::string("std::string");
|
198
|
-
}
|
199
|
-
RUBY_END
|
200
|
-
|
201
|
-
/*
|
202
|
-
throw char*.
|
203
|
-
*/
|
204
|
-
static
|
205
|
-
RUBY_DEF0(throw_cstring)
|
206
|
-
{
|
207
|
-
throw "cstring";
|
208
|
-
}
|
209
|
-
RUBY_END
|
58
|
+
void Init_value ();
|
59
|
+
void Init_exception ();
|
60
|
+
void Init_function ();
|
61
|
+
void Init_struct ();
|
62
|
+
void Init_class ();
|
210
63
|
|
211
64
|
|
212
65
|
extern "C" void
|
@@ -214,25 +67,16 @@ Init_tester ()
|
|
214
67
|
{
|
215
68
|
if (!init()) return;
|
216
69
|
|
217
|
-
Module
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
c.define_method("return_string", return_string);
|
230
|
-
c.define_method("raise_ruby_exception", raise_ruby_exception);
|
231
|
-
c.define_method("raise_in_eval", raise_in_eval);
|
232
|
-
c.define_method("throw_nothing", throw_nothing);
|
233
|
-
c.define_method("throw_std_exception", throw_std_exception);
|
234
|
-
c.define_method("throw_std_runtime_error", throw_std_runtime_error);
|
235
|
-
c.define_method("throw_custom_exception", throw_custom_exception);
|
236
|
-
c.define_method("throw_std_string", throw_std_string);
|
237
|
-
c.define_method("throw_cstring", throw_cstring);
|
70
|
+
Module mRucy = define_module("Rucy");
|
71
|
+
Module mTester = mRucy.define_module("Tester");
|
72
|
+
|
73
|
+
mTester.define_function("last_log", last_log);
|
74
|
+
mTester.define_function("all_logs", all_logs);
|
75
|
+
mTester.define_function("clear_logs", clear_logs);
|
76
|
+
|
77
|
+
Init_value();
|
78
|
+
Init_exception();
|
79
|
+
Init_function();
|
80
|
+
Init_struct ();
|
81
|
+
Init_class ();
|
238
82
|
}
|