rice 2.1.1 → 4.0.0

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.
Files changed (246) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +121 -0
  3. data/CONTRIBUTORS.md +19 -0
  4. data/COPYING +2 -2
  5. data/Gemfile +3 -0
  6. data/README.md +69 -0
  7. data/Rakefile +95 -12
  8. data/include/rice/rice.hpp +7766 -0
  9. data/lib/mkmf-rice.rb +127 -0
  10. data/lib/version.rb +3 -0
  11. data/rice/Address_Registration_Guard.ipp +75 -32
  12. data/rice/Address_Registration_Guard_defn.hpp +60 -56
  13. data/rice/Arg.hpp +80 -4
  14. data/rice/Arg.ipp +51 -0
  15. data/rice/Constructor.hpp +30 -376
  16. data/rice/Data_Object.ipp +234 -107
  17. data/rice/Data_Object_defn.hpp +77 -117
  18. data/rice/Data_Type.hpp +1 -2
  19. data/rice/Data_Type.ipp +251 -295
  20. data/rice/Data_Type_defn.hpp +175 -243
  21. data/rice/Director.hpp +14 -9
  22. data/rice/Enum.hpp +54 -104
  23. data/rice/Enum.ipp +104 -230
  24. data/rice/Exception.hpp +2 -8
  25. data/rice/Exception.ipp +65 -0
  26. data/rice/Exception_defn.hpp +46 -47
  27. data/rice/Identifier.hpp +28 -28
  28. data/rice/Identifier.ipp +23 -27
  29. data/rice/Return.hpp +39 -0
  30. data/rice/Return.ipp +33 -0
  31. data/rice/detail/Exception_Handler.ipp +22 -62
  32. data/rice/detail/Exception_Handler_defn.hpp +76 -91
  33. data/rice/detail/Iterator.hpp +18 -88
  34. data/rice/detail/Iterator.ipp +47 -0
  35. data/rice/detail/Jump_Tag.hpp +21 -0
  36. data/rice/detail/MethodInfo.hpp +44 -0
  37. data/rice/detail/MethodInfo.ipp +78 -0
  38. data/rice/detail/NativeAttribute.hpp +53 -0
  39. data/rice/detail/NativeAttribute.ipp +83 -0
  40. data/rice/detail/NativeFunction.hpp +69 -0
  41. data/rice/detail/NativeFunction.ipp +248 -0
  42. data/rice/detail/RubyFunction.hpp +39 -0
  43. data/rice/detail/RubyFunction.ipp +92 -0
  44. data/rice/detail/Type.hpp +29 -0
  45. data/rice/detail/Type.ipp +138 -0
  46. data/rice/detail/TypeRegistry.hpp +50 -0
  47. data/rice/detail/TypeRegistry.ipp +106 -0
  48. data/rice/detail/Wrapper.hpp +51 -0
  49. data/rice/detail/Wrapper.ipp +151 -0
  50. data/rice/detail/default_allocation_func.hpp +8 -19
  51. data/rice/detail/default_allocation_func.ipp +9 -8
  52. data/rice/detail/from_ruby.hpp +2 -37
  53. data/rice/detail/from_ruby.ipp +1020 -46
  54. data/rice/detail/from_ruby_defn.hpp +38 -0
  55. data/rice/detail/function_traits.hpp +124 -0
  56. data/rice/detail/method_data.hpp +23 -15
  57. data/rice/detail/method_data.ipp +53 -0
  58. data/rice/detail/rice_traits.hpp +116 -0
  59. data/rice/detail/ruby.hpp +9 -49
  60. data/rice/detail/to_ruby.hpp +3 -17
  61. data/rice/detail/to_ruby.ipp +409 -31
  62. data/rice/detail/to_ruby_defn.hpp +48 -0
  63. data/rice/forward_declares.ipp +82 -0
  64. data/rice/global_function.hpp +16 -20
  65. data/rice/global_function.ipp +8 -17
  66. data/rice/rice.hpp +59 -0
  67. data/rice/ruby_mark.hpp +5 -3
  68. data/rice/ruby_try_catch.hpp +4 -4
  69. data/rice/stl.hpp +11 -0
  70. data/sample/callbacks/extconf.rb +6 -0
  71. data/sample/callbacks/sample_callbacks.cpp +35 -0
  72. data/sample/callbacks/test.rb +28 -0
  73. data/sample/enum/extconf.rb +3 -0
  74. data/sample/enum/sample_enum.cpp +3 -17
  75. data/sample/enum/test.rb +2 -2
  76. data/sample/inheritance/animals.cpp +8 -24
  77. data/sample/inheritance/extconf.rb +3 -0
  78. data/sample/inheritance/test.rb +1 -1
  79. data/sample/map/extconf.rb +3 -0
  80. data/sample/map/map.cpp +10 -18
  81. data/sample/map/test.rb +1 -1
  82. data/test/embed_ruby.cpp +34 -0
  83. data/test/embed_ruby.hpp +4 -0
  84. data/test/ext/t1/extconf.rb +3 -0
  85. data/test/ext/t1/t1.cpp +1 -3
  86. data/test/ext/t2/extconf.rb +3 -0
  87. data/test/ext/t2/t2.cpp +1 -1
  88. data/test/extconf.rb +23 -0
  89. data/test/ruby/test_callbacks_sample.rb +28 -0
  90. data/test/ruby/test_multiple_extensions.rb +18 -0
  91. data/test/ruby/test_multiple_extensions_same_class.rb +14 -0
  92. data/test/ruby/test_multiple_extensions_with_inheritance.rb +20 -0
  93. data/test/test_Address_Registration_Guard.cpp +25 -11
  94. data/test/test_Array.cpp +131 -74
  95. data/test/test_Attribute.cpp +147 -0
  96. data/test/test_Builtin_Object.cpp +36 -15
  97. data/test/test_Class.cpp +151 -274
  98. data/test/test_Constructor.cpp +10 -9
  99. data/test/test_Data_Object.cpp +135 -193
  100. data/test/test_Data_Type.cpp +323 -252
  101. data/test/test_Director.cpp +56 -42
  102. data/test/test_Enum.cpp +230 -104
  103. data/test/test_Exception.cpp +7 -7
  104. data/test/test_Hash.cpp +33 -31
  105. data/test/test_Identifier.cpp +6 -6
  106. data/test/test_Inheritance.cpp +221 -0
  107. data/test/test_Iterator.cpp +161 -0
  108. data/test/test_Jump_Tag.cpp +1 -1
  109. data/test/test_Keep_Alive.cpp +161 -0
  110. data/test/test_Memory_Management.cpp +4 -5
  111. data/test/test_Module.cpp +169 -111
  112. data/test/test_Object.cpp +51 -19
  113. data/test/test_Ownership.cpp +275 -0
  114. data/test/test_Self.cpp +205 -0
  115. data/test/test_Stl_Optional.cpp +90 -0
  116. data/test/test_Stl_Pair.cpp +144 -0
  117. data/test/test_Stl_SmartPointer.cpp +200 -0
  118. data/test/test_Stl_String.cpp +74 -0
  119. data/test/test_Stl_Vector.cpp +652 -0
  120. data/test/test_String.cpp +3 -3
  121. data/test/test_Struct.cpp +31 -40
  122. data/test/test_Symbol.cpp +3 -3
  123. data/test/test_To_From_Ruby.cpp +283 -218
  124. data/test/test_global_functions.cpp +41 -20
  125. data/test/unittest.cpp +34 -8
  126. data/test/unittest.hpp +0 -4
  127. metadata +117 -137
  128. data/Doxyfile +0 -2280
  129. data/Makefile.am +0 -26
  130. data/Makefile.in +0 -920
  131. data/README +0 -1055
  132. data/README.mingw +0 -8
  133. data/aclocal.m4 +0 -1088
  134. data/bootstrap +0 -8
  135. data/check_stdcxx_11.ac +0 -142
  136. data/config.guess +0 -1421
  137. data/config.sub +0 -1807
  138. data/configure +0 -7481
  139. data/configure.ac +0 -55
  140. data/depcomp +0 -791
  141. data/doxygen.ac +0 -314
  142. data/doxygen.am +0 -186
  143. data/extconf.rb +0 -69
  144. data/install-sh +0 -501
  145. data/missing +0 -215
  146. data/post-autoconf.rb +0 -22
  147. data/post-automake.rb +0 -28
  148. data/rice/Address_Registration_Guard.cpp +0 -22
  149. data/rice/Arg_impl.hpp +0 -129
  150. data/rice/Arg_operators.cpp +0 -21
  151. data/rice/Arg_operators.hpp +0 -19
  152. data/rice/Array.hpp +0 -214
  153. data/rice/Array.ipp +0 -256
  154. data/rice/Builtin_Object.hpp +0 -8
  155. data/rice/Builtin_Object.ipp +0 -50
  156. data/rice/Builtin_Object_defn.hpp +0 -50
  157. data/rice/Class.cpp +0 -57
  158. data/rice/Class.hpp +0 -8
  159. data/rice/Class.ipp +0 -6
  160. data/rice/Class_defn.hpp +0 -83
  161. data/rice/Data_Type.cpp +0 -54
  162. data/rice/Data_Type_fwd.hpp +0 -12
  163. data/rice/Director.cpp +0 -13
  164. data/rice/Exception.cpp +0 -59
  165. data/rice/Exception_Base.hpp +0 -8
  166. data/rice/Exception_Base.ipp +0 -13
  167. data/rice/Exception_Base_defn.hpp +0 -27
  168. data/rice/Hash.hpp +0 -227
  169. data/rice/Hash.ipp +0 -329
  170. data/rice/Identifier.cpp +0 -8
  171. data/rice/Jump_Tag.hpp +0 -24
  172. data/rice/Makefile.am +0 -124
  173. data/rice/Makefile.in +0 -839
  174. data/rice/Module.cpp +0 -84
  175. data/rice/Module.hpp +0 -8
  176. data/rice/Module.ipp +0 -6
  177. data/rice/Module_defn.hpp +0 -88
  178. data/rice/Module_impl.hpp +0 -281
  179. data/rice/Module_impl.ipp +0 -345
  180. data/rice/Object.cpp +0 -169
  181. data/rice/Object.hpp +0 -8
  182. data/rice/Object.ipp +0 -19
  183. data/rice/Object_defn.hpp +0 -191
  184. data/rice/Require_Guard.hpp +0 -21
  185. data/rice/String.cpp +0 -94
  186. data/rice/String.hpp +0 -91
  187. data/rice/Struct.cpp +0 -117
  188. data/rice/Struct.hpp +0 -162
  189. data/rice/Struct.ipp +0 -26
  190. data/rice/Symbol.cpp +0 -25
  191. data/rice/Symbol.hpp +0 -66
  192. data/rice/Symbol.ipp +0 -44
  193. data/rice/config.hpp +0 -47
  194. data/rice/config.hpp.in +0 -46
  195. data/rice/detail/Arguments.hpp +0 -118
  196. data/rice/detail/Auto_Function_Wrapper.hpp +0 -898
  197. data/rice/detail/Auto_Function_Wrapper.ipp +0 -3694
  198. data/rice/detail/Auto_Member_Function_Wrapper.hpp +0 -897
  199. data/rice/detail/Auto_Member_Function_Wrapper.ipp +0 -2774
  200. data/rice/detail/Caster.hpp +0 -103
  201. data/rice/detail/Not_Copyable.hpp +0 -25
  202. data/rice/detail/Wrapped_Function.hpp +0 -33
  203. data/rice/detail/cfp.hpp +0 -24
  204. data/rice/detail/cfp.ipp +0 -51
  205. data/rice/detail/check_ruby_type.cpp +0 -27
  206. data/rice/detail/check_ruby_type.hpp +0 -23
  207. data/rice/detail/creation_funcs.hpp +0 -37
  208. data/rice/detail/creation_funcs.ipp +0 -36
  209. data/rice/detail/define_method_and_auto_wrap.hpp +0 -31
  210. data/rice/detail/define_method_and_auto_wrap.ipp +0 -30
  211. data/rice/detail/demangle.cpp +0 -56
  212. data/rice/detail/demangle.hpp +0 -19
  213. data/rice/detail/env.hpp +0 -11
  214. data/rice/detail/method_data.cpp +0 -86
  215. data/rice/detail/node.hpp +0 -13
  216. data/rice/detail/object_call.hpp +0 -69
  217. data/rice/detail/object_call.ipp +0 -131
  218. data/rice/detail/protect.cpp +0 -29
  219. data/rice/detail/protect.hpp +0 -34
  220. data/rice/detail/ruby_version_code.hpp +0 -6
  221. data/rice/detail/ruby_version_code.hpp.in +0 -6
  222. data/rice/detail/st.hpp +0 -22
  223. data/rice/detail/traits.hpp +0 -43
  224. data/rice/detail/win32.hpp +0 -16
  225. data/rice/detail/wrap_function.hpp +0 -341
  226. data/rice/detail/wrap_function.ipp +0 -514
  227. data/rice/protect.hpp +0 -92
  228. data/rice/protect.ipp +0 -1134
  229. data/rice/rubypp.rb +0 -97
  230. data/rice/to_from_ruby.hpp +0 -8
  231. data/rice/to_from_ruby.ipp +0 -294
  232. data/rice/to_from_ruby_defn.hpp +0 -70
  233. data/ruby.ac +0 -135
  234. data/ruby/Makefile.am +0 -1
  235. data/ruby/Makefile.in +0 -625
  236. data/ruby/lib/Makefile.am +0 -3
  237. data/ruby/lib/Makefile.in +0 -503
  238. data/ruby/lib/mkmf-rice.rb.in +0 -217
  239. data/ruby/lib/version.rb +0 -3
  240. data/sample/Makefile.am +0 -47
  241. data/sample/Makefile.in +0 -486
  242. data/test/Makefile.am +0 -72
  243. data/test/Makefile.in +0 -1150
  244. data/test/ext/Makefile.am +0 -41
  245. data/test/ext/Makefile.in +0 -480
  246. data/test/test_rice.rb +0 -41
data/rice/Struct.hpp DELETED
@@ -1,162 +0,0 @@
1
- #ifndef Rice__ruby_struct__hpp_
2
- #define Rice__ruby_struct__hpp_
3
-
4
- #include "Array.hpp"
5
- #include "Hash.hpp"
6
- #include "Module.hpp"
7
- #include "Class.hpp"
8
- #include "Builtin_Object.hpp"
9
- #include "Address_Registration_Guard.hpp"
10
-
11
- namespace Rice
12
- {
13
- class Struct;
14
-
15
- //! Define a new Struct
16
- Struct define_struct();
17
-
18
- //! A wrapper for creating Struct classes.
19
- /*! The Struct class is used for creating new Classes. Note that the
20
- * notation used here differs slightly from the notation inside the
21
- * interpreter.
22
- *
23
- * Inside the interpreter, calling Struct.new creates a new Class:
24
- * \code
25
- * irb(main):001:0> MyStruct = Struct.new(:a, :b, :c)
26
- * => S
27
- * irb(main):002:0> MyStruct.class
28
- * => Class
29
- * \endcode
30
- *
31
- * Instantiating that Class creates an instance of that Class:
32
- * \code
33
- * irb(main):003:0> mystruct_instance = MyStruct.new
34
- * => #<struct MyStruct a=nil, b=nil, c=nil>
35
- * irb(main):004:0> mystruct_instance.class
36
- * => MyStruct
37
- * irb(main):005:0> mystruct_instance.class.ancestors
38
- * => [MyStruct, Struct, Enumerable, Object, Kernel]
39
- * \endcode
40
- *
41
- * Thus, inside the interpreter, MyStruct is a Class which inherits
42
- * from Struct, and mystruct_instance is an instance of MyStruct.
43
- *
44
- * At the C++ level, we might do this instead:
45
- * \code
46
- * Struct rb_cMyStruct = define_struct()
47
- * .define_member("a")
48
- * .define_member("b")
49
- * .define_member("c")
50
- * .initialize("MyStruct");
51
- * Struct::Instance mystruct_instance(rb_cMyStruct.new_instance());
52
- * \endcode
53
- *
54
- * Here rb_cMyStruct is an instance of Struct and that mystruct_instance
55
- * is an instance of Struct::Instance.
56
- */
57
- class Struct
58
- : public Module_impl<Class, Struct>
59
- {
60
- public:
61
- //! Create a new Struct.
62
- Struct();
63
-
64
- //! Copy constructor.
65
- Struct(Struct const & s);
66
-
67
- //! Destructor.
68
- virtual ~Struct();
69
-
70
- //! Define a new Struct member.
71
- /*! Defines a new member of the Struct. Must be called before the
72
- * Struct is initialized.
73
- * \return *this
74
- */
75
- Struct & define_member(
76
- Identifier name);
77
-
78
- //! Initialize the Struct class.
79
- /*! Must be called after all Struct members have been defined.
80
- * \param module the module under which to define the Struct.
81
- * \param name the name of the Class at the ruby level.
82
- */
83
- Struct & initialize(
84
- Module module,
85
- Identifier name);
86
-
87
- //! Get the offset of a member in the Struct.
88
- /*! Internally, Struct members are stored as a single array of VALUE.
89
- * This function determines the offset of a given member in that
90
- * array.
91
- * \param member the name of the desired member.
92
- * \return the index of the given member.
93
- */
94
- size_t offset_of(Identifier name) const;
95
-
96
- class Instance;
97
- friend class Instance;
98
- friend Struct Rice::define_struct();
99
-
100
- //! Create a new instance of the Struct
101
- /*! \param args the arguments to the constructor.
102
- * \return a new Struct::Instance
103
- */
104
- Instance new_instance(Array args = Array()) const;
105
-
106
- //! Swap with another Struct.
107
- void swap(Struct & other);
108
-
109
- Array members() const { return members_; }
110
-
111
- private:
112
- Array members_;
113
- Address_Registration_Guard members_guard_;
114
-
115
- Hash member_offset_;
116
- Address_Registration_Guard member_offset_guard_;
117
- };
118
-
119
-
120
- //! An instance of a Struct
121
- //! \sa Struct
122
- class Struct::Instance
123
- : public Builtin_Object<T_STRUCT>
124
- {
125
- public:
126
- //! Create a new Instance of a Struct.
127
- /*! \param type the Struct type to create.
128
- * \param args the initial values for the objects of the instance.
129
- */
130
- Instance(
131
- Struct const & type,
132
- Array args = Array());
133
-
134
- //! Encapsulate an existing Struct instance.
135
- /*! \param type the Struct type to encapsulate.
136
- * \param s the instance to encapsulate.
137
- */
138
- Instance(
139
- Struct const & type,
140
- Object s);
141
-
142
- //! Get a member, given its offset.
143
- /*! \param index the (integral) index into the Struct's internal
144
- * array or its name (an Identifier or char const *)
145
- * \return the member.
146
- */
147
- template<typename T>
148
- Object operator[](T index);
149
-
150
- //! Swap with another Struct::Instance.
151
- void swap(Instance & other);
152
-
153
- private:
154
- Struct type_;
155
- };
156
-
157
- } // namespace Rice
158
-
159
- #include "Struct.ipp"
160
-
161
- #endif // Rice__ruby_struct__hpp_
162
-
data/rice/Struct.ipp DELETED
@@ -1,26 +0,0 @@
1
- namespace Rice
2
- {
3
-
4
- template<typename T>
5
- inline Object Struct::Instance::
6
- operator[](T index)
7
- {
8
- return rb_struct_aref(value(), ULONG2NUM(index));
9
- }
10
-
11
- template<>
12
- inline Object Struct::Instance::
13
- operator[]<Identifier>(Identifier member)
14
- {
15
- size_t index = type_.offset_of(member);
16
- return (*this)[index];
17
- }
18
-
19
- template<>
20
- inline Object Struct::Instance::
21
- operator[]<char const *>(char const * name)
22
- {
23
- return (*this)[Identifier(name)];
24
- }
25
-
26
- } // Rice
data/rice/Symbol.cpp DELETED
@@ -1,25 +0,0 @@
1
- #include "Symbol.hpp"
2
-
3
- namespace
4
- {
5
- VALUE check_type(Rice::Object value, int type)
6
- {
7
- rb_check_type(value, type);
8
- return Qnil;
9
- }
10
- }
11
-
12
- Rice::Symbol::
13
- Symbol(VALUE v)
14
- : Object(v)
15
- {
16
- protect(check_type, v, T_SYMBOL);
17
- }
18
-
19
- Rice::Symbol::
20
- Symbol(Object v)
21
- : Object(v)
22
- {
23
- protect(check_type, v, T_SYMBOL);
24
- }
25
-
data/rice/Symbol.hpp DELETED
@@ -1,66 +0,0 @@
1
- #ifndef Rice__Symbol__hpp_
2
- #define Rice__Symbol__hpp_
3
-
4
- #include "Identifier.hpp"
5
- #include "Object.hpp"
6
- #include "detail/ruby.hpp"
7
- #include <string>
8
-
9
- namespace Rice
10
- {
11
-
12
- //! A wrapper for ruby's Symbol class.
13
- /*! Symbols are internal identifiers in ruby. They are singletons and
14
- * can be thought of as frozen strings. They differ from an Identifier
15
- * in that they are in fact real Objects, but they can be converted
16
- * back and forth between Identifier and Symbol.
17
- */
18
- class Symbol
19
- : public Object
20
- {
21
- public:
22
- //! Wrap an existing symbol.
23
- Symbol(VALUE v);
24
-
25
- //! Wrap an existing symbol.
26
- Symbol(Object v);
27
-
28
- //! Construct a Symbol from an Identifier.
29
- Symbol(Identifier id);
30
-
31
- //! Construct a Symbol from a null-terminated C string.
32
- Symbol(char const * s = "");
33
-
34
- //! Construct a Symbol from an std::string.
35
- Symbol(std::string const & s);
36
-
37
- //! Return a string representation of the Symbol.
38
- char const * c_str() const;
39
-
40
- //! Return a string representation of the Symbol.
41
- std::string str() const;
42
-
43
- //! Return the Symbol as an Identifier.
44
- Identifier to_id() const;
45
- };
46
-
47
- } // namespace Rice
48
-
49
- template<>
50
- inline
51
- Rice::Symbol from_ruby<Rice::Symbol>(Rice::Object x)
52
- {
53
- return Rice::Symbol(x);
54
- }
55
-
56
- template<>
57
- inline
58
- Rice::Object to_ruby<Rice::Symbol>(Rice::Symbol const & x)
59
- {
60
- return x;
61
- }
62
-
63
- #include "Symbol.ipp"
64
-
65
- #endif // Rice__Symbol__hpp_
66
-
data/rice/Symbol.ipp DELETED
@@ -1,44 +0,0 @@
1
- #ifndef Rice__Symbol__ipp_
2
- #define Rice__Symbol__ipp_
3
-
4
- #include "protect.hpp"
5
- #include "detail/ruby.hpp"
6
-
7
- inline Rice::Symbol::
8
- Symbol(char const * s)
9
- : Object(ID2SYM(rb_intern(s)))
10
- {
11
- }
12
-
13
- inline Rice::Symbol::
14
- Symbol(std::string const & s)
15
- : Object(ID2SYM(rb_intern(s.c_str())))
16
- {
17
- }
18
-
19
- inline Rice::Symbol::
20
- Symbol(Identifier id)
21
- : Object(ID2SYM(id))
22
- {
23
- }
24
-
25
- inline char const * Rice::Symbol::
26
- c_str() const
27
- {
28
- return to_id().c_str();
29
- }
30
-
31
- inline std::string Rice::Symbol::
32
- str() const
33
- {
34
- return to_id().str();
35
- }
36
-
37
- inline Rice::Identifier Rice::Symbol::
38
- to_id() const
39
- {
40
- return rb_to_id(value());
41
- }
42
-
43
- #endif // Rice__Symbol__ipp_
44
-
data/rice/config.hpp DELETED
@@ -1,47 +0,0 @@
1
- /* rice/config.hpp. Generated from config.hpp.in by configure. */
2
- /* rice/config.hpp.in. Generated from configure.ac by autoheader. */
3
-
4
- /* define if the compiler supports basic C++11 syntax */
5
- #define HAVE_CXX11 1
6
-
7
- /* Define to 1 if you have the <env.h> header file. */
8
- /* #undef HAVE_ENV_H */
9
-
10
- /* Define to 1 if you have the <node.h> header file. */
11
- /* #undef HAVE_NODE_H */
12
-
13
- /* Define to 1 if you have the <ruby.h> header file. */
14
- #define HAVE_RUBY_H 1
15
-
16
- /* Define to 1 if you have the <ruby/node.h> header file. */
17
- /* #undef HAVE_RUBY_NODE_H */
18
-
19
- /* Define to 1 if you have the <version.h> header file. */
20
- /* #undef HAVE_VERSION_H */
21
-
22
- /* Name of package */
23
- #define PACKAGE "rice"
24
-
25
- /* Define to the address where bug reports for this package should be sent. */
26
- #define PACKAGE_BUGREPORT ""
27
-
28
- /* Define to the full name of this package. */
29
- #define PACKAGE_NAME "rice"
30
-
31
- /* Define to the full name and version of this package. */
32
- #define PACKAGE_STRING "rice 1.1"
33
-
34
- /* Define to the one symbol short name of this package. */
35
- #define PACKAGE_TARNAME "rice"
36
-
37
- /* Define to the home page for this package. */
38
- #define PACKAGE_URL ""
39
-
40
- /* Define to the version of this package. */
41
- #define PACKAGE_VERSION "1.1"
42
-
43
- /* Define this macro to use ruby/node.h */
44
- /* #undef REALLY_HAVE_RUBY_NODE_H */
45
-
46
- /* Version number of package */
47
- #define VERSION "1.1"
data/rice/config.hpp.in DELETED
@@ -1,46 +0,0 @@
1
- /* rice/config.hpp.in. Generated from configure.ac by autoheader. */
2
-
3
- /* define if the compiler supports basic C++11 syntax */
4
- #undef HAVE_CXX11
5
-
6
- /* Define to 1 if you have the <env.h> header file. */
7
- #undef HAVE_ENV_H
8
-
9
- /* Define to 1 if you have the <node.h> header file. */
10
- #undef HAVE_NODE_H
11
-
12
- /* Define to 1 if you have the <ruby.h> header file. */
13
- #undef HAVE_RUBY_H
14
-
15
- /* Define to 1 if you have the <ruby/node.h> header file. */
16
- #undef HAVE_RUBY_NODE_H
17
-
18
- /* Define to 1 if you have the <version.h> header file. */
19
- #undef HAVE_VERSION_H
20
-
21
- /* Name of package */
22
- #undef PACKAGE
23
-
24
- /* Define to the address where bug reports for this package should be sent. */
25
- #undef PACKAGE_BUGREPORT
26
-
27
- /* Define to the full name of this package. */
28
- #undef PACKAGE_NAME
29
-
30
- /* Define to the full name and version of this package. */
31
- #undef PACKAGE_STRING
32
-
33
- /* Define to the one symbol short name of this package. */
34
- #undef PACKAGE_TARNAME
35
-
36
- /* Define to the home page for this package. */
37
- #undef PACKAGE_URL
38
-
39
- /* Define to the version of this package. */
40
- #undef PACKAGE_VERSION
41
-
42
- /* Define this macro to use ruby/node.h */
43
- #undef REALLY_HAVE_RUBY_NODE_H
44
-
45
- /* Version number of package */
46
- #undef VERSION
@@ -1,118 +0,0 @@
1
- #ifndef Rice__Arguments__hpp_
2
- #define Rice__Arguments__hpp_
3
-
4
- #include "../Arg_impl.hpp"
5
- #include <sstream>
6
- #include <vector>
7
- #include "../to_from_ruby_defn.hpp"
8
-
9
- namespace Rice {
10
-
11
- class Arguments
12
- {
13
- public:
14
- Arguments() {
15
- required_ = 0;
16
- optional_ = 0;
17
- }
18
-
19
- ~Arguments() {
20
- }
21
-
22
- /**
23
- * Get the full argument count of this
24
- * list of arguments.
25
- * Returns -1 no defined arguments
26
- */
27
- int count() {
28
- if(required_ == 0 && optional_ == 0) {
29
- return -1;
30
- } else {
31
- return required_ + optional_;
32
- }
33
- }
34
-
35
- /**
36
- * Get the rb_scan_args format string for this
37
- * list of arguments.
38
- * In the case of no Args (default case), this
39
- * method uses the passed in full argument count
40
- */
41
- std::string formatString(int fullArgCount)
42
- {
43
- std::stringstream s;
44
- if(required_ == 0 && optional_ == 0)
45
- {
46
- s << fullArgCount << 0;
47
- }
48
- else
49
- {
50
- s << required_ << optional_;
51
- }
52
-
53
- return s.str();
54
- }
55
-
56
- /**
57
- * Add a defined Arg to this list of Arguments
58
- */
59
- void add(const Arg& arg)
60
- {
61
- args_.push_back(arg);
62
-
63
- if(arg.hasDefaultValue())
64
- {
65
- optional_++;
66
- }
67
- else
68
- {
69
- required_++;
70
- }
71
- }
72
-
73
- /**
74
- * Is the argument at the request location an optional
75
- * argument?
76
- */
77
- bool isOptional(unsigned int pos)
78
- {
79
- if(required_ == 0 && optional_ == 0)
80
- {
81
- return false;
82
- }
83
- if(pos >= args_.size())
84
- {
85
- return false;
86
- }
87
- return args_[pos].hasDefaultValue();
88
- }
89
-
90
- /**
91
- * Given a position, a type, and a ruby VALUE, figure out
92
- * what argument value we need to return according to
93
- * defaults and if that VALUE is nil or not
94
- */
95
- template<typename Arg_T>
96
- Arg_T getArgumentOrDefault(int pos, VALUE in)
97
- {
98
- if(isOptional(pos) && NIL_P(in))
99
- {
100
- return args_[pos].getDefaultValue<Arg_T>();
101
- }
102
- else
103
- {
104
- return from_ruby<Arg_T>(in);
105
- }
106
- }
107
-
108
- private:
109
- std::vector<Arg> args_;
110
-
111
- /** Keep counts of required and optional parameters */
112
- int required_;
113
- int optional_;
114
- };
115
-
116
- }
117
-
118
- #endif // Rice__Arguments__hpp_