rice 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Doxyfile +1 -1
- data/Makefile.in +3 -2
- data/README +247 -16
- data/aclocal.m4 +62 -51
- data/configure +1585 -1456
- data/extconf.rb +9 -1
- data/rice/Arg.hpp +8 -0
- data/rice/Arg_impl.hpp +124 -0
- data/rice/Arg_operators.cpp +21 -0
- data/rice/Arg_operators.hpp +19 -0
- data/rice/Constructor.hpp +150 -0
- data/rice/Data_Type.ipp +51 -6
- data/rice/Director.cpp +19 -0
- data/rice/Director.hpp +47 -0
- data/rice/Enum.hpp +2 -3
- data/rice/Enum.ipp +1 -1
- data/rice/Hash.hpp +1 -1
- data/rice/Makefile.am +7 -0
- data/rice/Makefile.in +18 -7
- data/rice/Module_impl.hpp +36 -3
- data/rice/Module_impl.ipp +56 -7
- data/rice/VM.cpp +2 -2
- data/rice/config.hpp +1 -1
- data/rice/detail/Arguments.hpp +118 -0
- data/rice/detail/Auto_Function_Wrapper.hpp +206 -96
- data/rice/detail/Auto_Function_Wrapper.ipp +1687 -144
- data/rice/detail/Auto_Member_Function_Wrapper.hpp +234 -123
- data/rice/detail/Auto_Member_Function_Wrapper.ipp +1133 -306
- data/rice/detail/Caster.hpp +3 -1
- data/rice/detail/creation_funcs.hpp +0 -8
- data/rice/detail/creation_funcs.ipp +1 -27
- data/rice/detail/define_method_and_auto_wrap.hpp +3 -1
- data/rice/detail/define_method_and_auto_wrap.ipp +4 -3
- data/rice/detail/object_call.ipp +1 -1
- data/rice/detail/ruby.hpp +1 -33
- data/rice/detail/wrap_function.hpp +103 -48
- data/rice/detail/wrap_function.ipp +154 -96
- data/rice/generate_code.rb +520 -55
- data/rice/global_function.hpp +12 -1
- data/rice/global_function.ipp +14 -2
- data/ruby/Makefile.in +5 -4
- data/ruby/lib/Makefile.in +4 -3
- data/ruby/lib/version.rb +1 -1
- data/sample/Makefile.in +4 -3
- data/test/Makefile.am +2 -0
- data/test/Makefile.in +32 -13
- data/test/test_Class.cpp +36 -14
- data/test/test_Constructor.cpp +176 -1
- data/test/test_Data_Type.cpp +121 -0
- data/test/test_Director.cpp +225 -0
- data/test/test_Enum.cpp +33 -0
- data/test/test_Module.cpp +175 -0
- data/test/test_global_functions.cpp +70 -1
- metadata +27 -7
@@ -21,7 +21,7 @@ namespace {
|
|
21
21
|
|
22
22
|
void method_with_args(Object self, int arg) {
|
23
23
|
method_with_args_arg0 = arg;
|
24
|
-
}
|
24
|
+
}
|
25
25
|
|
26
26
|
}
|
27
27
|
|
@@ -43,3 +43,72 @@ TESTCASE(exposes_global_functions_with_arguments)
|
|
43
43
|
ASSERT_EQUAL(10, method_with_args_arg0);
|
44
44
|
}
|
45
45
|
|
46
|
+
namespace
|
47
|
+
{
|
48
|
+
int defaults_method_one_arg1;
|
49
|
+
int defaults_method_one_arg2;
|
50
|
+
bool defaults_method_one_arg3 = false;
|
51
|
+
|
52
|
+
void defaults_method_one(int arg1, int arg2 = 3, bool arg3 = true)
|
53
|
+
{
|
54
|
+
defaults_method_one_arg1 = arg1;
|
55
|
+
defaults_method_one_arg2 = arg2;
|
56
|
+
defaults_method_one_arg3 = arg3;
|
57
|
+
}
|
58
|
+
|
59
|
+
int defaults_returns(int arg1, int arg2 = 3)
|
60
|
+
{
|
61
|
+
return arg1 * arg2;
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
TESTCASE(default_arguments_for_define_global_function)
|
66
|
+
{
|
67
|
+
define_global_function("foo", &defaults_method_one, (Arg("arg1"), Arg("arg2") = (int)3, Arg("arg3") = (bool)true));
|
68
|
+
Module m(rb_mKernel);
|
69
|
+
|
70
|
+
m.call("foo", 2);
|
71
|
+
|
72
|
+
ASSERT_EQUAL(2, defaults_method_one_arg1);
|
73
|
+
ASSERT_EQUAL(3, defaults_method_one_arg2);
|
74
|
+
ASSERT(defaults_method_one_arg3);
|
75
|
+
|
76
|
+
m.call("foo", 11, 10);
|
77
|
+
|
78
|
+
ASSERT_EQUAL(11, defaults_method_one_arg1);
|
79
|
+
ASSERT_EQUAL(10, defaults_method_one_arg2);
|
80
|
+
ASSERT(defaults_method_one_arg3);
|
81
|
+
|
82
|
+
m.call("foo", 22, 33, false);
|
83
|
+
|
84
|
+
ASSERT_EQUAL(22, defaults_method_one_arg1);
|
85
|
+
ASSERT_EQUAL(33, defaults_method_one_arg2);
|
86
|
+
ASSERT(!defaults_method_one_arg3);
|
87
|
+
}
|
88
|
+
|
89
|
+
TESTCASE(default_arguments_for_define_global_function_and_returning)
|
90
|
+
{
|
91
|
+
define_global_function("foo_ret", &defaults_returns, (Arg("arg1"), Arg("arg2") = (int)3));
|
92
|
+
Module m(rb_mKernel);
|
93
|
+
|
94
|
+
Object o = m.call("foo_ret", 2);
|
95
|
+
ASSERT_EQUAL(INT2NUM(6), o.value());
|
96
|
+
|
97
|
+
o = m.call("foo_ret", 5, 10);
|
98
|
+
ASSERT_EQUAL(INT2NUM(50), o.value());
|
99
|
+
}
|
100
|
+
|
101
|
+
namespace {
|
102
|
+
int the_one_default_arg = 0;
|
103
|
+
void method_with_one_default_arg(int num = 4) {
|
104
|
+
the_one_default_arg = num;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
TESTCASE(single_default_argument)
|
109
|
+
{
|
110
|
+
define_global_function("foo", &method_with_one_default_arg, (Arg("num") = (int)4));
|
111
|
+
Module m(rb_mKernel);
|
112
|
+
m.call("foo");
|
113
|
+
ASSERT_EQUAL(4, the_one_default_arg);
|
114
|
+
}
|
metadata
CHANGED
@@ -1,20 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Brannan
|
8
|
+
- Jason Roelofs
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date: 2009-
|
13
|
+
date: 2009-10-26 00:00:00 -04:00
|
13
14
|
default_executable:
|
14
15
|
dependencies: []
|
15
16
|
|
16
|
-
description:
|
17
|
-
|
17
|
+
description: |
|
18
|
+
Rice is a C++ interface to Ruby's C API. It provides a type-safe and
|
19
|
+
exception-safe interface in order to make embedding Ruby and writing
|
20
|
+
Ruby extensions with C++ easier. It is similar to Boost.Python in many
|
21
|
+
ways, but also attempts to provide an object-oriented interface to all
|
22
|
+
of the Ruby C API.
|
23
|
+
|
24
|
+
email:
|
25
|
+
- curlypaul924@gmail.com
|
26
|
+
- jameskilton@gmail.com
|
18
27
|
executables: []
|
19
28
|
|
20
29
|
extensions:
|
@@ -54,6 +63,7 @@ files:
|
|
54
63
|
- sample/Makefile.in
|
55
64
|
- test/Makefile.am
|
56
65
|
- test/Makefile.in
|
66
|
+
- rice/Arg.hpp
|
57
67
|
- rice/Exception_Base.hpp
|
58
68
|
- rice/Constructor.hpp
|
59
69
|
- rice/Object_defn.hpp
|
@@ -78,12 +88,15 @@ files:
|
|
78
88
|
- rice/Data_Object.hpp
|
79
89
|
- rice/Class.ipp
|
80
90
|
- rice/Module.cpp
|
91
|
+
- rice/Arg_impl.hpp
|
81
92
|
- rice/Hash.hpp
|
82
93
|
- rice/Symbol.ipp
|
83
94
|
- rice/Class_defn.hpp
|
95
|
+
- rice/Arg_operators.cpp
|
84
96
|
- rice/Object.hpp
|
85
97
|
- rice/Allocation_Strategies.hpp
|
86
98
|
- rice/Enum.ipp
|
99
|
+
- rice/Director.cpp
|
87
100
|
- rice/Object.cpp
|
88
101
|
- rice/Address_Registration_Guard_defn.hpp
|
89
102
|
- rice/Builtin_Object.ipp
|
@@ -106,11 +119,13 @@ files:
|
|
106
119
|
- rice/String.cpp
|
107
120
|
- rice/Object.ipp
|
108
121
|
- rice/Data_Type_defn.hpp
|
122
|
+
- rice/Director.hpp
|
109
123
|
- rice/Critical_Guard.hpp
|
110
124
|
- rice/Jump_Tag.hpp
|
111
125
|
- rice/to_from_ruby.ipp
|
112
126
|
- rice/to_from_ruby.hpp
|
113
127
|
- rice/Module_impl.hpp
|
128
|
+
- rice/Arg_operators.hpp
|
114
129
|
- rice/Struct.hpp
|
115
130
|
- rice/Identifier.hpp
|
116
131
|
- rice/global_function.hpp
|
@@ -127,6 +142,7 @@ files:
|
|
127
142
|
- rice/rubypp.rb
|
128
143
|
- rice/config.hpp.in
|
129
144
|
- rice/detail/creation_funcs.hpp
|
145
|
+
- rice/detail/Arguments.hpp
|
130
146
|
- rice/detail/wrap_function.ipp
|
131
147
|
- rice/detail/check_ruby_type.cpp
|
132
148
|
- rice/detail/demangle.cpp
|
@@ -184,6 +200,7 @@ files:
|
|
184
200
|
- sample/inheritance/extconf.rb
|
185
201
|
- sample/inheritance/animals.cpp
|
186
202
|
- sample/inheritance/test.rb
|
203
|
+
- test/test_Data_Type.cpp
|
187
204
|
- test/test_Exception.cpp
|
188
205
|
- test/test_To_From_Ruby.cpp
|
189
206
|
- test/test_String.cpp
|
@@ -207,8 +224,11 @@ files:
|
|
207
224
|
- test/unittest.cpp
|
208
225
|
- test/test_Enum.cpp
|
209
226
|
- test/test_Address_Registration_Guard.cpp
|
210
|
-
|
227
|
+
- test/test_Director.cpp
|
228
|
+
has_rdoc: true
|
211
229
|
homepage: http://rice.rubyforge.org/
|
230
|
+
licenses: []
|
231
|
+
|
212
232
|
post_install_message:
|
213
233
|
rdoc_options: []
|
214
234
|
|
@@ -229,9 +249,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
249
|
requirements: []
|
230
250
|
|
231
251
|
rubyforge_project: rice
|
232
|
-
rubygems_version: 1.3.
|
252
|
+
rubygems_version: 1.3.5
|
233
253
|
signing_key:
|
234
|
-
specification_version:
|
254
|
+
specification_version: 3
|
235
255
|
summary: Ruby Interface for C++ Extensions
|
236
256
|
test_files:
|
237
257
|
- test/test_rice.rb
|