rice 4.0.4 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/Rakefile +1 -1
  4. data/include/rice/rice.hpp +2596 -1771
  5. data/include/rice/stl.hpp +1580 -271
  6. data/lib/mkmf-rice.rb +5 -2
  7. data/lib/version.rb +1 -1
  8. data/rice/Arg.hpp +6 -6
  9. data/rice/Arg.ipp +8 -9
  10. data/rice/Constructor.hpp +2 -2
  11. data/rice/Data_Object.ipp +69 -15
  12. data/rice/Data_Object_defn.hpp +1 -15
  13. data/rice/Data_Type.ipp +56 -86
  14. data/rice/Data_Type_defn.hpp +14 -17
  15. data/rice/Director.hpp +0 -1
  16. data/rice/Enum.ipp +31 -22
  17. data/rice/Exception.ipp +2 -3
  18. data/rice/Exception_defn.hpp +5 -5
  19. data/rice/HandlerRegistration.hpp +15 -0
  20. data/rice/Return.hpp +5 -4
  21. data/rice/Return.ipp +8 -3
  22. data/rice/detail/ExceptionHandler.hpp +8 -0
  23. data/rice/detail/ExceptionHandler.ipp +28 -0
  24. data/rice/detail/{Exception_Handler_defn.hpp → ExceptionHandler_defn.hpp} +17 -21
  25. data/rice/detail/HandlerRegistry.hpp +51 -0
  26. data/rice/detail/HandlerRegistry.ipp +20 -0
  27. data/rice/detail/InstanceRegistry.hpp +34 -0
  28. data/rice/detail/InstanceRegistry.ipp +50 -0
  29. data/rice/detail/MethodInfo.ipp +1 -1
  30. data/rice/detail/NativeAttribute.hpp +26 -15
  31. data/rice/detail/NativeAttribute.ipp +76 -47
  32. data/rice/detail/NativeFunction.hpp +60 -13
  33. data/rice/detail/NativeFunction.ipp +103 -85
  34. data/rice/detail/NativeIterator.hpp +49 -0
  35. data/rice/detail/NativeIterator.ipp +102 -0
  36. data/rice/detail/NativeRegistry.hpp +31 -0
  37. data/rice/detail/{method_data.ipp → NativeRegistry.ipp} +20 -16
  38. data/rice/detail/Registries.hpp +26 -0
  39. data/rice/detail/Registries.ipp +23 -0
  40. data/rice/detail/RubyFunction.hpp +6 -11
  41. data/rice/detail/RubyFunction.ipp +10 -22
  42. data/rice/detail/Type.hpp +1 -1
  43. data/rice/detail/Type.ipp +2 -2
  44. data/rice/detail/TypeRegistry.hpp +8 -11
  45. data/rice/detail/TypeRegistry.ipp +3 -28
  46. data/rice/detail/Wrapper.hpp +0 -2
  47. data/rice/detail/Wrapper.ipp +73 -23
  48. data/rice/detail/cpp_protect.hpp +93 -0
  49. data/rice/detail/default_allocation_func.ipp +1 -1
  50. data/rice/detail/from_ruby.ipp +206 -2
  51. data/rice/detail/to_ruby.ipp +39 -5
  52. data/rice/detail/to_ruby_defn.hpp +1 -1
  53. data/rice/forward_declares.ipp +6 -0
  54. data/rice/global_function.hpp +0 -4
  55. data/rice/global_function.ipp +0 -6
  56. data/rice/rice.hpp +29 -24
  57. data/rice/stl.hpp +6 -1
  58. data/test/embed_ruby.cpp +0 -15
  59. data/test/test_Array.cpp +20 -24
  60. data/test/test_Class.cpp +8 -47
  61. data/test/test_Constructor.cpp +0 -2
  62. data/test/test_Data_Object.cpp +25 -11
  63. data/test/test_Data_Type.cpp +124 -28
  64. data/test/test_Director.cpp +12 -13
  65. data/test/test_Enum.cpp +65 -26
  66. data/test/test_Inheritance.cpp +9 -9
  67. data/test/test_Iterator.cpp +134 -5
  68. data/test/test_Keep_Alive.cpp +7 -7
  69. data/test/test_Memory_Management.cpp +1 -1
  70. data/test/test_Module.cpp +25 -62
  71. data/test/test_Object.cpp +66 -3
  72. data/test/test_Ownership.cpp +12 -13
  73. data/test/test_Self.cpp +12 -13
  74. data/test/test_Stl_Map.cpp +696 -0
  75. data/test/test_Stl_Optional.cpp +3 -3
  76. data/test/test_Stl_Pair.cpp +38 -2
  77. data/test/test_Stl_Reference_Wrapper.cpp +102 -0
  78. data/test/test_Stl_SmartPointer.cpp +5 -5
  79. data/test/test_Stl_Unordered_Map.cpp +697 -0
  80. data/test/test_Stl_Variant.cpp +301 -0
  81. data/test/test_Stl_Vector.cpp +200 -41
  82. data/test/test_Struct.cpp +3 -3
  83. data/test/test_To_From_Ruby.cpp +6 -0
  84. data/test/test_Tracking.cpp +239 -0
  85. data/test/unittest.hpp +13 -4
  86. metadata +23 -13
  87. data/rice/detail/Exception_Handler.hpp +0 -8
  88. data/rice/detail/Exception_Handler.ipp +0 -28
  89. data/rice/detail/Iterator.hpp +0 -23
  90. data/rice/detail/Iterator.ipp +0 -47
  91. data/rice/detail/function_traits.hpp +0 -124
  92. data/rice/detail/method_data.hpp +0 -29
  93. data/rice/detail/rice_traits.hpp +0 -116
  94. data/rice/ruby_try_catch.hpp +0 -86
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5955c1123287e348999e519d10afaa7443caa42b16279f29e3037da3f3842576
4
- data.tar.gz: 975e3cfdb9969036fa9cf41a2d9a28a895a15c0029d2d7f92c99926137f44229
3
+ metadata.gz: 2f03a8ee866743d992f90b1584740922c09cc495b114e1416e3391e43ff70dd9
4
+ data.tar.gz: 1fd60da5718c311a7ea4ad1443442bfe70c151f6a8ec0e84c024991114ae4741
5
5
  SHA512:
6
- metadata.gz: 63de4f41590f14fb6cd88f81c2f7ada803cade5be15e57b3971abed49f3cd61f1cfec9a41d731bdb8114ab3c2e2ac5bdc75dce3c04b854794030a991d21aacaa
7
- data.tar.gz: 135a8996387abfc992d7d1682235f1b7cd510dd2aed3301e19d89b980270ffff528f951327d2d6de85e14590a364c02278e2b1a5e65b2530c0cdffa3c34ac496
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
data/Rakefile CHANGED
@@ -93,7 +93,7 @@ end
93
93
  desc "Build the documentation"
94
94
  task :doc do
95
95
  cd "doc" do
96
- sh "make html"
96
+ sh "make clean html"
97
97
  end
98
98
  end
99
99