rice 1.0.1 → 1.0.2

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.
@@ -0,0 +1,56 @@
1
+ #include "demangle.hpp"
2
+
3
+ #ifdef __GNUC__
4
+ #include <cxxabi.h>
5
+ #include <cstdlib>
6
+ #include <cstring>
7
+ #endif
8
+
9
+ std::string
10
+ Rice::detail::
11
+ demangle(char const * mangled_name)
12
+ {
13
+ #ifdef __GNUC__
14
+ struct Helper
15
+ {
16
+ Helper(
17
+ char const * mangled_name)
18
+ : name_(0)
19
+ {
20
+ int status = 0;
21
+ name_ = abi::__cxa_demangle(mangled_name, 0, 0, &status);
22
+ }
23
+
24
+ ~Helper()
25
+ {
26
+ std::free(name_);
27
+ }
28
+
29
+ char * name_;
30
+
31
+ private:
32
+ Helper(Helper const &);
33
+ void operator=(Helper const &);
34
+ };
35
+
36
+ Helper helper(mangled_name);
37
+ if(helper.name_)
38
+ {
39
+ return helper.name_;
40
+ }
41
+ else
42
+ {
43
+ return mangled_name;
44
+ }
45
+ #else
46
+ return mangled_name;
47
+ #endif
48
+ }
49
+
50
+
51
+ std::string
52
+ Rice::detail::
53
+ demangle(std::string const & mangled_name)
54
+ {
55
+ return demangle(mangled_name.c_str());
56
+ }
@@ -0,0 +1,19 @@
1
+ #ifndef Rice__detail__demangle__hpp_
2
+ #define Rice__detail__demangle__hpp_
3
+
4
+ #include <string>
5
+
6
+ namespace Rice
7
+ {
8
+
9
+ namespace detail
10
+ {
11
+
12
+ std::string demangle(char const * mangled_name);
13
+ std::string demangle(std::string const & mangled_name);
14
+
15
+ } // detail
16
+
17
+ } // Rice
18
+
19
+ #endif // Rice__detail__demangle__hpp_
data/rice/detail/env.hpp CHANGED
@@ -1,13 +1,15 @@
1
- #ifndef Rice__detail__env__hpp_
2
- #define Rice__detail__env__hpp_
3
-
4
- /**
5
- * Helper header for the env.h ruby include file, which does
6
- * not have extern "C"
7
- */
8
-
9
- extern "C" {
10
- #include "env.h"
11
- }
12
-
13
- #endif
1
+ #ifndef Rice__detail__env__hpp_
2
+ #define Rice__detail__env__hpp_
3
+
4
+ /**
5
+ * Helper header for the env.h ruby include file, which does
6
+ * not have extern "C"
7
+ */
8
+
9
+ // TODO: Won't work on ruby 1.9
10
+
11
+ extern "C" {
12
+ #include "env.h"
13
+ }
14
+
15
+ #endif
@@ -2,28 +2,10 @@
2
2
  #define Rice__detail__from_ruby__ipp_
3
3
 
4
4
  #include "../Data_Type.hpp"
5
+ #include "../String.hpp"
6
+ #include "demangle.hpp"
5
7
  #include <typeinfo>
6
8
 
7
- #if 0
8
- namespace Rice
9
- {
10
- namespace detail
11
- {
12
- template<typename T>
13
- struct unpointer
14
- {
15
- // can't unpointer a non-pointer
16
- };
17
-
18
- template<typename T>
19
- struct unpointer<T *>
20
- {
21
- typedef T type;
22
- };
23
- }
24
- }
25
- #endif
26
-
27
9
  template<typename T>
28
10
  T Rice::detail::from_ruby_<T>::
29
11
  convert(Rice::Object x)
@@ -34,9 +16,11 @@ convert(Rice::Object x)
34
16
  }
35
17
  else
36
18
  {
37
- std::string s("No conversion defined for ");
38
- s += typeid(T).name();
39
- throw std::runtime_error(s.c_str());
19
+ std::string s("Unable to convert ");
20
+ s += x.class_of().name().c_str();
21
+ s += " to ";
22
+ s += demangle(typeid(T).name());
23
+ throw std::invalid_argument(s.c_str());
40
24
  }
41
25
  }
42
26
 
@@ -50,9 +34,11 @@ convert(Rice::Object x)
50
34
  }
51
35
  else
52
36
  {
53
- std::string s("No conversion defined for ");
54
- s += typeid(T).name();
55
- throw std::runtime_error(s.c_str());
37
+ std::string s("Unable to convert ");
38
+ s += x.class_of().name().c_str();
39
+ s += " to ";
40
+ s += demangle(typeid(T *).name());
41
+ throw std::invalid_argument(s.c_str());
56
42
  }
57
43
  }
58
44
 
data/rice/detail/ruby.hpp CHANGED
@@ -14,11 +14,21 @@
14
14
  #define HAVE_ISINF
15
15
  #endif
16
16
 
17
- #include <ruby.h>
18
-
19
17
  // TODO: Is there a way to ensure that this is Ruby's version.h?
18
+ #define RUBY_EXTERN extern "C"
20
19
  #include <version.h>
21
20
 
21
+ // workaround for ruby 1.8.4, which defines eaccess and shouldn't
22
+ #if RUBY_VERSION_CODE <= 184
23
+ #define eaccess ruby_eaccess
24
+ #endif
25
+
26
+ #include <ruby.h>
27
+
28
+ #if RUBY_VERSION_CODE <= 184
29
+ #undef eaccess
30
+ #endif
31
+
22
32
  #ifdef WIN32
23
33
  #include "win32.hpp"
24
34
  #endif
@@ -8,7 +8,13 @@ namespace Rice
8
8
  template<typename T>
9
9
  struct to_ruby_
10
10
  {
11
- static Rice::Object convert(T const & x);
11
+ static Rice::Object convert(T & x);
12
+ };
13
+
14
+ template<typename T>
15
+ struct to_ruby_<T *>
16
+ {
17
+ static Rice::Object convert(T * x);
12
18
  };
13
19
  } // detail
14
20
  } // Rice
@@ -1,10 +1,37 @@
1
+ #include "../Data_Object.hpp"
2
+
1
3
  template<typename T>
2
- Rice::Object Rice::detail::to_ruby_<T>::
3
- convert(T const & x)
4
+ Rice::Object
5
+ Rice::detail::to_ruby_<T>::
6
+ convert(T & x)
4
7
  {
5
- // Should produce a compile-time error
6
- enum { no_to_ruby_conversion_defined = -1 };
7
- char x_[no_to_ruby_conversion_defined];
8
- return Qnil;
9
- }
8
+ if(Data_Type<T>::is_bound())
9
+ {
10
+ Data_Object<T> obj(&x);
11
+ return obj;
12
+ }
13
+ else
14
+ {
15
+ std::string s("Unable to convert ");
16
+ s += demangle(typeid(T *).name());
17
+ throw std::invalid_argument(s.c_str());
18
+ }
19
+ }
10
20
 
21
+ template<typename T>
22
+ Rice::Object
23
+ Rice::detail::to_ruby_<T *>::
24
+ convert(T * x)
25
+ {
26
+ if(Data_Type<T>::is_bound())
27
+ {
28
+ Data_Object<T> obj(x);
29
+ return obj;
30
+ }
31
+ else
32
+ {
33
+ std::string s("Unable to convert ");
34
+ s += demangle(typeid(T *).name());
35
+ throw std::invalid_argument(s.c_str());
36
+ }
37
+ }
data/ruby/Makefile.in CHANGED
@@ -1,8 +1,8 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
8
8
  # with or without modifications, as long as this notice is preserved.
@@ -292,8 +292,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
292
292
  unique=`for i in $$list; do \
293
293
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
294
294
  done | \
295
- $(AWK) ' { files[$$0] = 1; } \
296
- END { for (i in files) print i; }'`; \
295
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
296
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
297
297
  mkid -fID $$unique
298
298
  tags: TAGS
299
299
 
@@ -318,8 +318,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
318
318
  unique=`for i in $$list; do \
319
319
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
320
320
  done | \
321
- $(AWK) ' { files[$$0] = 1; } \
322
- END { for (i in files) print i; }'`; \
321
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
322
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
323
323
  if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
324
324
  test -n "$$unique" || unique=$$empty_fix; \
325
325
  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -329,13 +329,12 @@ ctags: CTAGS
329
329
  CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
330
330
  $(TAGS_FILES) $(LISP)
331
331
  tags=; \
332
- here=`pwd`; \
333
332
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
334
333
  unique=`for i in $$list; do \
335
334
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
336
335
  done | \
337
- $(AWK) ' { files[$$0] = 1; } \
338
- END { for (i in files) print i; }'`; \
336
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
337
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
339
338
  test -z "$(CTAGS_ARGS)$$tags$$unique" \
340
339
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
341
340
  $$tags $$unique
data/ruby/lib/Makefile.in CHANGED
@@ -1,8 +1,8 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
8
8
  # with or without modifications, as long as this notice is preserved.
@@ -31,6 +31,9 @@ def init_mkmf_rice(config = CONFIG)
31
31
  # Ruby < 1.8.6 does not have $DEFLIBPATH
32
32
  $DEFLIBPATH ||= []
33
33
 
34
+ # Ruby 1.8.6 uses $preload without setting it
35
+ $preload ||= nil
36
+
34
37
  $CPPFLAGS << " #{$RICE_CPPFLAGS} -I#{$RICE_PREFIX}/include"
35
38
  $LDFLAGS << " #{$RICE_LDFLAGS} -L#{$RICE_PREFIX}/lib"
36
39
 
@@ -176,6 +179,10 @@ class RiceMakefileCreator
176
179
  @file.printf(format, *args)
177
180
  end
178
181
 
182
+ def puts(*strings)
183
+ print strings.map { |s| "#{s}\n" }
184
+ end
185
+
179
186
  def close
180
187
  @file.close
181
188
  end
data/ruby.ac CHANGED
@@ -29,14 +29,15 @@ RUBY_CONFIG_DLDLIBS=`RUBY_CONFIG(DLDLIBS)`
29
29
  RUBY_CONFIG_LDFLAGS=`RUBY_CONFIG(LDFLAGS)`
30
30
  RUBY_CONFIG_LIBRUBYARG=`RUBY_CONFIG(LIBRUBYARG)`
31
31
  RUBY_CONFIG_LIBRUBYARG_STATIC=`RUBY_CONFIG(LIBRUBYARG_STATIC)`
32
+ RUBY_CONFIG_CCDLFLAGS=`RUBY_CONFIG(CCDLFLAGS)`
32
33
 
33
34
  RUBY_CPPFLAGS="-I${RUBY_CONFIG_ARCHDIR}"
34
35
  AC_SUBST(RUBY_CPPFLAGS)
35
36
 
36
- RUBY_CFLAGS="${RUBY_CONFIG_CFLAGS}"
37
+ RUBY_CFLAGS="${RUBY_CONFIG_CFLAGS} ${RUBY_CONFIG_CCDLFLAGS}"
37
38
  AC_SUBST(RUBY_CFLAGS)
38
39
 
39
- RUBY_CXXFLAGS="${RUBY_CONFIG_CFLAGS}"
40
+ RUBY_CXXFLAGS="${RUBY_CONFIG_CFLAGS} ${RUBY_CONFIG_CCDLFLAGS}"
40
41
  AC_SUBST(RUBY_CXXFLAGS)
41
42
 
42
43
  RUBY_LDFLAGS="-L${RUBY_ARCHDIR} -L${RUBY_CONFIG_LIBDIR} ${RUBY_LDFLAGS}"
@@ -73,6 +74,7 @@ dnl The fourth parameter to AC_CHECK_HEADER keeps autoconf from
73
74
  dnl searching for standard header files as a side-effect (which we want)
74
75
  CPPFLAGS_save="${CPPFLAGS}"
75
76
  CPPFLAGS="${CPPFLAGS} ${RUBY_CPPFLAGS}"
77
+ CXXFLAGS="${CPPFLAGS}"
76
78
  AC_CHECK_HEADER(ruby.h,,AC_MSG_ERROR(
77
79
  could not find ruby.h (check config.log)),[ ])
78
80
  AC_CHECK_HEADER(node.h,,AC_MSG_ERROR(
data/sample/Makefile.in CHANGED
@@ -1,8 +1,8 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
8
8
  # with or without modifications, as long as this notice is preserved.
data/test/Makefile.in CHANGED
@@ -1,8 +1,8 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
8
8
  # with or without modifications, as long as this notice is preserved.
@@ -61,7 +61,7 @@ unittest_LDADD = $(LDADD)
61
61
  am_vm_unittest_OBJECTS = unittest.$(OBJEXT) test_VM.$(OBJEXT)
62
62
  vm_unittest_OBJECTS = $(am_vm_unittest_OBJECTS)
63
63
  vm_unittest_LDADD = $(LDADD)
64
- DEFAULT_INCLUDES = -I. -I$(top_builddir)/rice@am__isrc@
64
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/rice
65
65
  depcomp = $(SHELL) $(top_srcdir)/depcomp
66
66
  am__depfiles_maybe = depfiles
67
67
  CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
@@ -332,8 +332,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
332
332
  unique=`for i in $$list; do \
333
333
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
334
334
  done | \
335
- $(AWK) ' { files[$$0] = 1; } \
336
- END { for (i in files) print i; }'`; \
335
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
336
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
337
337
  mkid -fID $$unique
338
338
  tags: TAGS
339
339
 
@@ -345,8 +345,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
345
345
  unique=`for i in $$list; do \
346
346
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
347
347
  done | \
348
- $(AWK) ' { files[$$0] = 1; } \
349
- END { for (i in files) print i; }'`; \
348
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
349
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
350
350
  if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
351
351
  test -n "$$unique" || unique=$$empty_fix; \
352
352
  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -356,13 +356,12 @@ ctags: CTAGS
356
356
  CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
357
357
  $(TAGS_FILES) $(LISP)
358
358
  tags=; \
359
- here=`pwd`; \
360
359
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
361
360
  unique=`for i in $$list; do \
362
361
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
363
362
  done | \
364
- $(AWK) ' { files[$$0] = 1; } \
365
- END { for (i in files) print i; }'`; \
363
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
364
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
366
365
  test -z "$(CTAGS_ARGS)$$tags$$unique" \
367
366
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
368
367
  $$tags $$unique
data/test/test_Class.cpp CHANGED
@@ -1,5 +1,6 @@
1
1
  #include "unittest.hpp"
2
2
  #include "rice/Class.hpp"
3
+ #include "rice/Constructor.hpp"
3
4
  #include "rice/protect.hpp"
4
5
  #include "rice/Exception.hpp"
5
6
  #include "rice/Array.hpp"
@@ -348,3 +349,25 @@ TESTCASE(module_define_class)
348
349
  ASSERT_EQUAL(c, math.const_get("Foo"));
349
350
  ASSERT(!object.const_defined("Foo"));
350
351
  }
352
+
353
+ namespace {
354
+ class BaseClass {
355
+ public:
356
+ BaseClass() { }
357
+ };
358
+ }
359
+
360
+ TESTCASE(subclassing)
361
+ {
362
+ Module m = define_module("Testing");
363
+ define_class_under<BaseClass>(m, "BaseClass").
364
+ define_constructor(Constructor<BaseClass>());
365
+
366
+ // Not sure how to make this a true failure case. If the subclassing
367
+ // doesn't work, Ruby will throw an error:
368
+ //
369
+ // in `new': wrong instance allocation
370
+ //
371
+ m.instance_eval("class NewClass < Testing::BaseClass; end;");
372
+ m.instance_eval("n = NewClass.new");
373
+ }
@@ -28,3 +28,36 @@ TESTCASE(default_constructor)
28
28
  ASSERT_EQUAL(rb_cDefault_Constructible, o.class_of());
29
29
  }
30
30
 
31
+
32
+ namespace
33
+ {
34
+ class Non_Default_Constructible
35
+ {
36
+ public:
37
+ Non_Default_Constructible(int i)
38
+ : i_(i)
39
+ {
40
+ }
41
+
42
+ int i() const
43
+ {
44
+ return i_;
45
+ }
46
+
47
+ private:
48
+ int i_;
49
+ };
50
+ }
51
+
52
+ TESTCASE(non_default_constructor)
53
+ {
54
+ Data_Type<Non_Default_Constructible> rb_cNon_Default_Constructible(
55
+ anonymous_class());
56
+ rb_cNon_Default_Constructible
57
+ .define_constructor(Constructor<Non_Default_Constructible, int>());
58
+ Data_Object<Non_Default_Constructible> o =
59
+ rb_cNon_Default_Constructible.call("new", 42);
60
+ ASSERT_EQUAL(rb_cNon_Default_Constructible, o.class_of());
61
+ ASSERT_EQUAL(42, o->i());
62
+ }
63
+
data/test/test_Module.cpp CHANGED
@@ -248,6 +248,6 @@ TESTCASE(remove_const)
248
248
  TESTCASE(mod_name_anonymous)
249
249
  {
250
250
  Module m(anonymous_module());
251
- ASSERT_EQUAL(String(""), m.mod_name());
251
+ ASSERT_EQUAL(String(""), m.name());
252
252
  }
253
253
 
metadata CHANGED
@@ -1,33 +1,26 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: rice
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.0.1
7
- date: 2008-02-18 00:00:00 -05:00
8
- summary: Ruby Interface for C++ Extensions
9
- require_paths:
10
- - ruby/lib
11
- email: curlypaul924@gmail.com
12
- homepage: http://rice.rubyforge.org/
13
- rubyforge_project: rice
14
- description: Rice is a C++ interface to Ruby's C API. It provides a type-safe and exception-safe interface in order to make embedding Ruby and writing Ruby extensions with C++ easier. It is similar to Boost.Python in many ways, but also attempts to provide an object-oriented interface to all of the Ruby C API.
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 1.0.2
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Paul Brannan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-07-22 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Rice is a C++ interface to Ruby's C API. It provides a type-safe and exception-safe interface in order to make embedding Ruby and writing Ruby extensions with C++ easier. It is similar to Boost.Python in many ways, but also attempts to provide an object-oriented interface to all of the Ruby C API.
17
+ email: curlypaul924@gmail.com
18
+ executables: []
19
+
20
+ extensions:
21
+ - configure
22
+ extra_rdoc_files:
23
+ - README
31
24
  files:
32
25
  - COPYING
33
26
  - README
@@ -158,6 +151,8 @@ files:
158
151
  - rice/detail/Auto_Member_Function_Wrapper.ipp
159
152
  - rice/detail/st.hpp
160
153
  - rice/detail/Wrapped_Function.hpp
154
+ - rice/detail/demangle.cpp
155
+ - rice/detail/demangle.hpp
161
156
  - rice/detail/Auto_Function_Wrapper.hpp
162
157
  - rice/detail/Auto_Function_Wrapper.ipp
163
158
  - rice/detail/node.hpp
@@ -195,17 +190,31 @@ files:
195
190
  - test/test_Exception.cpp
196
191
  - test/test_Struct.cpp
197
192
  - test/test_Address_Registration_Guard.cpp
198
- test_files:
199
- - test/test_rice.rb
193
+ has_rdoc: false
194
+ homepage: http://rice.rubyforge.org/
195
+ post_install_message:
200
196
  rdoc_options: []
201
197
 
202
- extra_rdoc_files:
203
- - README
204
- executables: []
205
-
206
- extensions:
207
- - configure
198
+ require_paths:
199
+ - ruby/lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: "0"
205
+ version:
206
+ required_rubygems_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: "0"
211
+ version:
208
212
  requirements: []
209
213
 
210
- dependencies: []
211
-
214
+ rubyforge_project: rice
215
+ rubygems_version: 1.2.0
216
+ signing_key:
217
+ specification_version: 2
218
+ summary: Ruby Interface for C++ Extensions
219
+ test_files:
220
+ - test/test_rice.rb