rice 4.0.4 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/Rakefile +1 -1
- data/include/rice/rice.hpp +2596 -1771
- data/include/rice/stl.hpp +1580 -271
- data/lib/mkmf-rice.rb +5 -2
- data/lib/version.rb +1 -1
- data/rice/Arg.hpp +6 -6
- data/rice/Arg.ipp +8 -9
- data/rice/Constructor.hpp +2 -2
- data/rice/Data_Object.ipp +69 -15
- data/rice/Data_Object_defn.hpp +1 -15
- data/rice/Data_Type.ipp +56 -86
- data/rice/Data_Type_defn.hpp +14 -17
- data/rice/Director.hpp +0 -1
- data/rice/Enum.ipp +31 -22
- data/rice/Exception.ipp +2 -3
- data/rice/Exception_defn.hpp +5 -5
- data/rice/HandlerRegistration.hpp +15 -0
- data/rice/Return.hpp +5 -4
- data/rice/Return.ipp +8 -3
- data/rice/detail/ExceptionHandler.hpp +8 -0
- data/rice/detail/ExceptionHandler.ipp +28 -0
- data/rice/detail/{Exception_Handler_defn.hpp → ExceptionHandler_defn.hpp} +17 -21
- data/rice/detail/HandlerRegistry.hpp +51 -0
- data/rice/detail/HandlerRegistry.ipp +20 -0
- data/rice/detail/InstanceRegistry.hpp +34 -0
- data/rice/detail/InstanceRegistry.ipp +50 -0
- data/rice/detail/MethodInfo.ipp +1 -1
- data/rice/detail/NativeAttribute.hpp +26 -15
- data/rice/detail/NativeAttribute.ipp +76 -47
- data/rice/detail/NativeFunction.hpp +60 -13
- data/rice/detail/NativeFunction.ipp +103 -85
- data/rice/detail/NativeIterator.hpp +49 -0
- data/rice/detail/NativeIterator.ipp +102 -0
- data/rice/detail/NativeRegistry.hpp +31 -0
- data/rice/detail/{method_data.ipp → NativeRegistry.ipp} +20 -16
- data/rice/detail/Registries.hpp +26 -0
- data/rice/detail/Registries.ipp +23 -0
- data/rice/detail/RubyFunction.hpp +6 -11
- data/rice/detail/RubyFunction.ipp +10 -22
- data/rice/detail/Type.hpp +1 -1
- data/rice/detail/Type.ipp +2 -2
- data/rice/detail/TypeRegistry.hpp +8 -11
- data/rice/detail/TypeRegistry.ipp +3 -28
- data/rice/detail/Wrapper.hpp +0 -2
- data/rice/detail/Wrapper.ipp +73 -23
- data/rice/detail/cpp_protect.hpp +93 -0
- data/rice/detail/default_allocation_func.ipp +1 -1
- data/rice/detail/from_ruby.ipp +206 -2
- data/rice/detail/to_ruby.ipp +39 -5
- data/rice/detail/to_ruby_defn.hpp +1 -1
- data/rice/forward_declares.ipp +6 -0
- data/rice/global_function.hpp +0 -4
- data/rice/global_function.ipp +0 -6
- data/rice/rice.hpp +29 -24
- data/rice/stl.hpp +6 -1
- data/test/embed_ruby.cpp +0 -15
- data/test/test_Array.cpp +20 -24
- data/test/test_Class.cpp +8 -47
- data/test/test_Constructor.cpp +0 -2
- data/test/test_Data_Object.cpp +25 -11
- data/test/test_Data_Type.cpp +124 -28
- data/test/test_Director.cpp +12 -13
- data/test/test_Enum.cpp +65 -26
- data/test/test_Inheritance.cpp +9 -9
- data/test/test_Iterator.cpp +134 -5
- data/test/test_Keep_Alive.cpp +7 -7
- data/test/test_Memory_Management.cpp +1 -1
- data/test/test_Module.cpp +25 -62
- data/test/test_Object.cpp +66 -3
- data/test/test_Ownership.cpp +12 -13
- data/test/test_Self.cpp +12 -13
- data/test/test_Stl_Map.cpp +696 -0
- data/test/test_Stl_Optional.cpp +3 -3
- data/test/test_Stl_Pair.cpp +38 -2
- data/test/test_Stl_Reference_Wrapper.cpp +102 -0
- data/test/test_Stl_SmartPointer.cpp +5 -5
- data/test/test_Stl_Unordered_Map.cpp +697 -0
- data/test/test_Stl_Variant.cpp +301 -0
- data/test/test_Stl_Vector.cpp +200 -41
- data/test/test_Struct.cpp +3 -3
- data/test/test_To_From_Ruby.cpp +6 -0
- data/test/test_Tracking.cpp +239 -0
- data/test/unittest.hpp +13 -4
- metadata +23 -13
- data/rice/detail/Exception_Handler.hpp +0 -8
- data/rice/detail/Exception_Handler.ipp +0 -28
- data/rice/detail/Iterator.hpp +0 -23
- data/rice/detail/Iterator.ipp +0 -47
- data/rice/detail/function_traits.hpp +0 -124
- data/rice/detail/method_data.hpp +0 -29
- data/rice/detail/rice_traits.hpp +0 -116
- data/rice/ruby_try_catch.hpp +0 -86
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f03a8ee866743d992f90b1584740922c09cc495b114e1416e3391e43ff70dd9
|
4
|
+
data.tar.gz: 1fd60da5718c311a7ea4ad1443442bfe70c151f6a8ec0e84c024991114ae4741
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab7089e5fae0ab6e5c11408f84ec86d1124570ec51740ed7e047df3971dcb03b36a04c0662c8b18b7030e9c44b4ec3eebdf9a7f29199888b1e3c2d1f5c8256b7
|
7
|
+
data.tar.gz: f3714fc7ae13d64bd56103dc7680536aa42305daa6ef8332220f48f74c8dbdabcae95ec57035d653e416977c0096f309014a467cc2d590c5f3b6375c16bbabbd
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,33 @@
|
|
1
|
+
## 4.1
|
2
|
+
|
3
|
+
Rice 4.1 builds on the 4.0 release and has a number of improvements that both polish Rice and extend its functionality. However, there are three incompatibilities to know about:
|
4
|
+
|
5
|
+
* Exception handlers are now registered globally versus per module. This requires updating code that calls Class#add_handler to use register_handler instead.
|
6
|
+
* Rename Arg#isValue to Arg#setValue and then Arg#getIsValue to Arg#isValue
|
7
|
+
* Rename Return#isValue to Return#setValue and Return#getIsValue to Return#isValue
|
8
|
+
|
9
|
+
New or improved functionality includes:
|
10
|
+
|
11
|
+
* Add support for std::map, std::unordered_map, std::variant, std::monostate and std::reference_wrapper
|
12
|
+
* Enable calling of C++ member functions that are defined in ancestor classes
|
13
|
+
* Make it easy to wrap C++ iterators like std::vector begin and end
|
14
|
+
* Enable creating enumerators for C++ collections like std::vector and std::map
|
15
|
+
* Enable calling more Ruby API methods including those with a variable number of parameters such as rb_yield_values
|
16
|
+
* Add additional C++ to Ruby exception mappings (for example, std::system_error to SystemCallError)
|
17
|
+
* Updated documentation, including new pages for instance tracking, iterators, exceptions and newly supported STL classes
|
18
|
+
* Add support for calling Ruby methods with keywords from Rice::Object and its descendants
|
19
|
+
* Automatically translate C++ character arrays that start with colons to symbols (ie, ":mysymbol") when sending them to Ruby
|
20
|
+
* Add a constructor for Rice::Module that takes a name, to enable code like Module("Kernel")
|
21
|
+
* Fix comparison methods in Rice::Object, such as Object#is_equal, to return the correct result
|
22
|
+
* Fix various compiler warnings
|
23
|
+
* Remove deprecated APIs
|
24
|
+
* Remove support for Ruby 2.5 and 2.6 which are officially out of support
|
25
|
+
* Add support for building tests with CMake
|
26
|
+
* And lots of other fixes and code improvements
|
27
|
+
|
28
|
+
Rice also includes experimental support for instance tracking so that Rice maps the same C++ instance to the same Ruby instance each time it is passed to Ruby. See the documentation for more information.
|
29
|
+
|
30
|
+
|
1
31
|
## 4.0
|
2
32
|
|
3
33
|
Rice 4.0 is a significant change from 3.0 and has multiple backwards-incompatible
|