javonet-ruby-sdk 2.3.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/javonet-ruby-sdk/Binaries/Clr/Windows/X64/Javonet.Clr.Utils.dll +0 -0
  4. data/lib/javonet-ruby-sdk/Binaries/Clr/Windows/X64/JavonetClrRuntime.dll +0 -0
  5. data/lib/javonet-ruby-sdk/Binaries/Jvm/Linux/X64/JavonetJvmRuntime.jar +0 -0
  6. data/lib/javonet-ruby-sdk/Binaries/Jvm/MacOs/X64/JavonetJvmRuntime.jar +0 -0
  7. data/lib/javonet-ruby-sdk/Binaries/Jvm/Windows/X64/JavonetJvmRuntime.jar +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs1816RuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  20. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  23. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs1816RuntimeNative.dylib +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs1816RuntimeNative.dll +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  40. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  42. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  45. data/lib/javonet-ruby-sdk/Binaries/Netcore/Linux/X64/Javonet.Netcore.Core.dll +0 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Netcore/Linux/X64/Javonet.Netcore.Utils.dll +0 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Netcore/MacOs/X64/Javonet.Netcore.Core.dll +0 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Netcore/MacOs/X64/Javonet.Netcore.Utils.dll +0 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Netcore/Windows/X64/Javonet.Netcore.Core.dll +0 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Netcore/Windows/X64/Javonet.Netcore.Utils.dll +0 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/interpreter/Interpreter.js +3 -2
  52. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/protocol/CommandSerializer.js +21 -23
  53. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/transmitter/Transmitter.js +11 -7
  54. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/transmitter/TransmitterWrapper.js +6 -2
  55. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/utils/RuntimeNameHandler.js +30 -0
  56. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/utils/TcpConnectionData.js +43 -6
  57. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/interpreter/Interpreter.js +3 -2
  58. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/protocol/CommandSerializer.js +21 -23
  59. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/transmitter/Transmitter.js +11 -7
  60. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/transmitter/TransmitterWrapper.js +6 -2
  61. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/utils/RuntimeNameHandler.js +30 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/utils/TcpConnectionData.js +43 -6
  63. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js +3 -2
  64. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/protocol/CommandSerializer.js +21 -23
  65. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/transmitter/Transmitter.js +11 -7
  66. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/transmitter/TransmitterWrapper.js +6 -2
  67. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/utils/RuntimeNameHandler.js +30 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/utils/TcpConnectionData.js +43 -6
  69. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/CPAN/Meta/Requirements/Range.pm +776 -0
  70. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/CPAN/Meta/Requirements.pm +834 -0
  71. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/CPAN/Requirements/Dynamic.pm +384 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/ExtUtils/Config/MakeMaker.pm +141 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/ExtUtils/Config.pm +43 -5
  74. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/ExtUtils/HasCompiler.pm +308 -0
  75. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/ExtUtils/InstallPaths.pm +3 -3
  76. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/Module/Build/Tiny.pm +26 -9
  77. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/Path/Tiny.pm +10 -3
  78. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  81. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  82. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  83. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  85. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  87. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  88. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +149 -83
  89. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Transmitter/PerlTransmitter.pm +15 -10
  90. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +34 -19
  91. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Javonet.pm +17 -9
  92. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/ConnectionType.pm +2 -1
  93. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +31 -9
  94. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/RuntimeFactory.pm +18 -10
  95. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/CPAN/Meta/Requirements/Range.pm +776 -0
  96. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/CPAN/Meta/Requirements.pm +834 -0
  97. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/CPAN/Requirements/Dynamic.pm +384 -0
  98. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/ExtUtils/Config/MakeMaker.pm +141 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/ExtUtils/Config.pm +43 -5
  100. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/ExtUtils/HasCompiler.pm +308 -0
  101. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/ExtUtils/InstallPaths.pm +3 -3
  102. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/Module/Build/Tiny.pm +26 -9
  103. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/Path/Tiny.pm +10 -3
  104. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/perllocal.pod +149 -83
  105. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Transmitter/PerlTransmitter.pm +15 -10
  106. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +34 -19
  107. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Javonet.pm +17 -9
  108. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Sdk/Internal/ConnectionType.pm +2 -1
  109. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +31 -9
  110. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Sdk/Internal/RuntimeFactory.pm +18 -10
  111. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  112. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  113. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  114. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  115. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  116. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +18 -18
  117. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Transmitter/PerlTransmitter.pm +15 -10
  118. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +34 -19
  119. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Javonet.pm +17 -9
  120. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/ConnectionType.pm +2 -1
  121. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +31 -9
  122. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/RuntimeFactory.pm +18 -10
  123. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/interpreter/Interpreter.py +7 -5
  124. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/protocol/CommandSerializer.py +8 -15
  125. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/transmitter/Transmitter.py +28 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Python/{Windows/X64/javonet/core/transmitter/PythonTransmitterWrapper.py → Linux/X64/javonet/core/transmitter/TransmitterWrapper.py} +86 -69
  127. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/utils/RuntimeNameHandler.py +26 -0
  128. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/utils/TcpConnectionData.py +29 -0
  129. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/interpreter/Interpreter.py +7 -5
  130. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/protocol/CommandSerializer.py +8 -15
  131. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/transmitter/Transmitter.py +28 -0
  132. data/lib/javonet-ruby-sdk/Binaries/Python/{Linux/X64/javonet/core/transmitter/PythonTransmitterWrapper.py → MacOs/X64/javonet/core/transmitter/TransmitterWrapper.py} +27 -10
  133. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/utils/RuntimeNameHandler.py +26 -0
  134. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/utils/TcpConnectionData.py +29 -0
  135. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/__pycache__/__init__.cpython-311.pyc +0 -0
  136. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/generator/__pycache__/__init__.cpython-311.pyc +0 -0
  137. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/generator/internal/__pycache__/PythonStringBuilder.cpython-311.pyc +0 -0
  138. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/generator/internal/__pycache__/__init__.cpython-311.pyc +0 -0
  139. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/AbstractCommandHandler.cpython-311.pyc +0 -0
  140. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayGetItemHandler.cpython-311.pyc +0 -0
  141. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayGetRankHandler.cpython-311.pyc +0 -0
  142. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayGetSizeHandler.cpython-311.pyc +0 -0
  143. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayHandler.cpython-311.pyc +0 -0
  144. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArraySetItemHandler.cpython-311.pyc +0 -0
  145. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/CastingHandler.cpython-311.pyc +0 -0
  146. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/CreateClassInstanceHandler.cpython-311.pyc +0 -0
  147. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/DestructReferenceHandler.cpython-311.pyc +0 -0
  148. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetEnumItemHandler.cpython-311.pyc +0 -0
  149. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetEnumNameHandler.cpython-311.pyc +0 -0
  150. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetEnumValueHandler.cpython-311.pyc +0 -0
  151. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetInstanceFieldHandler.cpython-311.pyc +0 -0
  152. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetStaticFieldHandler.cpython-311.pyc +0 -0
  153. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetTypeHandler.cpython-311.pyc +0 -0
  154. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/InvokeInstanceMethodHandler.cpython-311.pyc +0 -0
  155. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/InvokeStaticMethodHandler.cpython-311.pyc +0 -0
  156. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/LoadLibraryHandler.cpython-311.pyc +0 -0
  157. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ResolveInstanceHandler.cpython-311.pyc +0 -0
  158. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/SetInstanceFieldHandler.cpython-311.pyc +0 -0
  159. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/SetStaticFieldHandler.cpython-311.pyc +0 -0
  160. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ValueHandler.cpython-311.pyc +0 -0
  161. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/__init__.cpython-311.pyc +0 -0
  162. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/AbstractHandler.cpython-311.pyc +0 -0
  163. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/Handler.cpython-311.pyc +0 -0
  164. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/HandlerDictionary.cpython-311.pyc +0 -0
  165. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/ReferencesCache.cpython-311.pyc +0 -0
  166. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/__init__.cpython-311.pyc +0 -0
  167. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/interpreter/Interpreter.py +7 -5
  168. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/interpreter/__pycache__/Interpreter.cpython-311.pyc +0 -0
  169. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/interpreter/__pycache__/__init__.cpython-311.pyc +0 -0
  170. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/CommandSerializer.py +8 -15
  171. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-311.pyc +0 -0
  172. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/CommandSerializer.cpython-311.pyc +0 -0
  173. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-311.pyc +0 -0
  174. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/TypeSerializer.cpython-311.pyc +0 -0
  175. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/__init__.cpython-311.pyc +0 -0
  176. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/receiver/__pycache__/Receiver.cpython-311.pyc +0 -0
  177. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/receiver/__pycache__/__init__.cpython-311.pyc +0 -0
  178. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/transmitter/Transmitter.py +28 -0
  179. data/lib/javonet-ruby-sdk/Binaries/Python/{MacOs/X64/javonet/core/transmitter/PythonTransmitterWrapper.py → Windows/X64/javonet/core/transmitter/TransmitterWrapper.py} +86 -69
  180. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/RuntimeNameHandler.py +26 -0
  181. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/TcpConnectionData.py +29 -0
  182. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/Command.cpython-311.pyc +0 -0
  183. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/CommandType.cpython-311.pyc +0 -0
  184. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/ConnectionType.cpython-311.pyc +0 -0
  185. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/ExceptionType.cpython-311.pyc +0 -0
  186. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/RuntimeName.cpython-311.pyc +0 -0
  187. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/StringEncodingMode.cpython-311.pyc +0 -0
  188. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/TcpConnectionData.cpython-311.pyc +0 -0
  189. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/Type.cpython-311.pyc +0 -0
  190. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  191. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-311.pyc +0 -0
  192. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/exception/__pycache__/__init__.cpython-311.pyc +0 -0
  193. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/interpreter/interpreter.rb +5 -6
  194. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb +8 -24
  195. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/transmitter/transmitter.rb +21 -12
  196. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/transmitter/transmitter_wrapper.rb +1 -1
  197. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/utils/command.rb +2 -1
  198. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/utils/runtime_name.rb +0 -30
  199. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/utils/runtime_name_handler.rb +34 -0
  200. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/utils/tcp_connection_data.rb +33 -0
  201. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/interpreter/interpreter.rb +5 -6
  202. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb +8 -24
  203. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/transmitter/transmitter.rb +21 -12
  204. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/transmitter/transmitter_wrapper.rb +1 -1
  205. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/utils/command.rb +2 -1
  206. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/utils/runtime_name.rb +0 -30
  207. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/utils/runtime_name_handler.rb +34 -0
  208. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/utils/tcp_connection_data.rb +33 -0
  209. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/interpreter/interpreter.rb +5 -6
  210. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/protocol/command_serializer.rb +8 -24
  211. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/transmitter/transmitter.rb +21 -12
  212. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/transmitter/transmitter_wrapper.rb +1 -1
  213. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/utils/command.rb +2 -1
  214. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/utils/runtime_name.rb +0 -30
  215. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/utils/runtime_name_handler.rb +34 -0
  216. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/utils/tcp_connection_data.rb +33 -0
  217. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  218. data/lib/javonet-ruby-sdk/core/interpreter/interpreter.rb +5 -6
  219. data/lib/javonet-ruby-sdk/core/protocol/command_serializer.rb +8 -24
  220. data/lib/javonet-ruby-sdk/core/transmitter/transmitter.rb +21 -12
  221. data/lib/javonet-ruby-sdk/core/transmitter/transmitter_wrapper.rb +1 -1
  222. data/lib/javonet-ruby-sdk/sdk/config_runtime_factory.rb +92 -0
  223. data/lib/javonet-ruby-sdk/sdk/internal/abstract_config_runtime_factory.rb +30 -0
  224. data/lib/javonet-ruby-sdk/sdk/{internal/invocation_context.rb → invocation_context.rb} +6 -6
  225. data/lib/javonet-ruby-sdk/sdk/javonet.rb +53 -0
  226. data/lib/javonet-ruby-sdk/sdk/{internal/runtime_context.rb → runtime_context.rb} +35 -35
  227. data/lib/javonet-ruby-sdk/sdk/{internal/runtime_factory.rb → runtime_factory.rb} +13 -18
  228. data/lib/javonet-ruby-sdk/sdk/tools/json_file_resolver.rb +55 -0
  229. data/lib/javonet-ruby-sdk/utils/command.rb +2 -1
  230. data/lib/javonet-ruby-sdk/utils/runtime_name.rb +0 -30
  231. data/lib/javonet-ruby-sdk/utils/runtime_name_handler.rb +34 -0
  232. data/lib/javonet-ruby-sdk/utils/tcp_connection_data.rb +33 -0
  233. data/lib/javonet-ruby-sdk.rb +1 -42
  234. metadata +49 -14
  235. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/transmitter/PythonTransmitter.py +0 -24
  236. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/transmitter/PythonTransmitter.py +0 -24
  237. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/transmitter/PythonTransmitter.py +0 -24
  238. /data/lib/javonet-ruby-sdk/sdk/internal/{abstract/abstract_invocation_context.rb → abstract_invocation_context.rb} +0 -0
  239. /data/lib/javonet-ruby-sdk/sdk/internal/{abstract/abstract_runtime_context.rb → abstract_runtime_context.rb} +0 -0
  240. /data/lib/javonet-ruby-sdk/sdk/internal/{abstract/abstract_runtime_factory.rb → abstract_runtime_factory.rb} +0 -0
@@ -0,0 +1,776 @@
1
+ use v5.10;
2
+ use strict;
3
+ use warnings;
4
+ package CPAN::Meta::Requirements::Range;
5
+ # ABSTRACT: a set of version requirements for a CPAN dist
6
+
7
+ our $VERSION = '2.143';
8
+
9
+ use Carp ();
10
+
11
+ #pod =head1 SYNOPSIS
12
+ #pod
13
+ #pod use CPAN::Meta::Requirements::Range;
14
+ #pod
15
+ #pod my $range = CPAN::Meta::Requirements::Range->with_minimum(1);
16
+ #pod
17
+ #pod $range = $range->with_maximum('v2.2');
18
+ #pod
19
+ #pod my $stringified = $range->as_string;
20
+ #pod
21
+ #pod =head1 DESCRIPTION
22
+ #pod
23
+ #pod A CPAN::Meta::Requirements::Range object models a set of version constraints like
24
+ #pod those specified in the F<META.yml> or F<META.json> files in CPAN distributions,
25
+ #pod and as defined by L<CPAN::Meta::Spec>;
26
+ #pod It can be built up by adding more and more constraints, and it will reduce them
27
+ #pod to the simplest representation.
28
+ #pod
29
+ #pod Logically impossible constraints will be identified immediately by thrown
30
+ #pod exceptions.
31
+ #pod
32
+ #pod =cut
33
+
34
+ use Carp ();
35
+
36
+ package
37
+ CPAN::Meta::Requirements::Range::_Base;
38
+
39
+ # To help ExtUtils::MakeMaker bootstrap CPAN::Meta::Requirements on perls
40
+ # before 5.10, we fall back to the EUMM bundled compatibility version module if
41
+ # that's the only thing available. This shouldn't ever happen in a normal CPAN
42
+ # install of CPAN::Meta::Requirements, as version.pm will be picked up from
43
+ # prereqs and be available at runtime.
44
+
45
+ BEGIN {
46
+ eval "use version ()"; ## no critic
47
+ if ( my $err = $@ ) {
48
+ eval "use ExtUtils::MakeMaker::version" or die $err; ## no critic
49
+ }
50
+ }
51
+
52
+ # from version::vpp
53
+ sub _find_magic_vstring {
54
+ my $value = shift;
55
+ my $tvalue = '';
56
+ require B;
57
+ my $sv = B::svref_2object(\$value);
58
+ my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
59
+ while ( $magic ) {
60
+ if ( $magic->TYPE eq 'V' ) {
61
+ $tvalue = $magic->PTR;
62
+ $tvalue =~ s/^v?(.+)$/v$1/;
63
+ last;
64
+ }
65
+ else {
66
+ $magic = $magic->MOREMAGIC;
67
+ }
68
+ }
69
+ return $tvalue;
70
+ }
71
+
72
+ # Perl 5.10.0 didn't have "is_qv" in version.pm
73
+ *_is_qv = version->can('is_qv') ? sub { $_[0]->is_qv } : sub { exists $_[0]->{qv} };
74
+
75
+ # construct once, reuse many times
76
+ my $V0 = version->new(0);
77
+
78
+ # safe if given an unblessed reference
79
+ sub _isa_version {
80
+ UNIVERSAL::isa( $_[0], 'UNIVERSAL' ) && $_[0]->isa('version')
81
+ }
82
+
83
+ sub _version_object {
84
+ my ($self, $version, $module, $bad_version_hook) = @_;
85
+
86
+ my ($vobj, $err);
87
+
88
+ if (not defined $version or (!ref($version) && $version eq '0')) {
89
+ return $V0;
90
+ }
91
+ elsif ( ref($version) eq 'version' || ( ref($version) && _isa_version($version) ) ) {
92
+ $vobj = $version;
93
+ }
94
+ else {
95
+ # hack around version::vpp not handling <3 character vstring literals
96
+ if ( $INC{'version/vpp.pm'} || $INC{'ExtUtils/MakeMaker/version/vpp.pm'} ) {
97
+ my $magic = _find_magic_vstring( $version );
98
+ $version = $magic if length $magic;
99
+ }
100
+ # pad to 3 characters if before 5.8.1 and appears to be a v-string
101
+ if ( $] < 5.008001 && $version !~ /\A[0-9]/ && substr($version,0,1) ne 'v' && length($version) < 3 ) {
102
+ $version .= "\0" x (3 - length($version));
103
+ }
104
+ eval {
105
+ local $SIG{__WARN__} = sub { die "Invalid version: $_[0]" };
106
+ # avoid specific segfault on some older version.pm versions
107
+ die "Invalid version: $version" if $version eq 'version';
108
+ $vobj = version->new($version);
109
+ };
110
+ if ( my $err = $@ ) {
111
+ $vobj = eval { $bad_version_hook->($version, $module) }
112
+ if ref $bad_version_hook eq 'CODE';
113
+ unless (eval { $vobj->isa("version") }) {
114
+ $err =~ s{ at .* line \d+.*$}{};
115
+ die "Can't convert '$version': $err";
116
+ }
117
+ }
118
+ }
119
+
120
+ # ensure no leading '.'
121
+ if ( $vobj =~ m{\A\.} ) {
122
+ $vobj = version->new("0$vobj");
123
+ }
124
+
125
+ # ensure normal v-string form
126
+ if ( _is_qv($vobj) ) {
127
+ $vobj = version->new($vobj->normal);
128
+ }
129
+
130
+ return $vobj;
131
+ }
132
+
133
+ #pod =method with_string_requirement
134
+ #pod
135
+ #pod $req->with_string_requirement('>= 1.208, <= 2.206');
136
+ #pod $req->with_string_requirement(v1.208);
137
+ #pod
138
+ #pod This method parses the passed in string and adds the appropriate requirement.
139
+ #pod A version can be a Perl "v-string". It understands version ranges as described
140
+ #pod in the L<CPAN::Meta::Spec/Version Ranges>. For example:
141
+ #pod
142
+ #pod =over 4
143
+ #pod
144
+ #pod =item 1.3
145
+ #pod
146
+ #pod =item >= 1.3
147
+ #pod
148
+ #pod =item <= 1.3
149
+ #pod
150
+ #pod =item == 1.3
151
+ #pod
152
+ #pod =item != 1.3
153
+ #pod
154
+ #pod =item > 1.3
155
+ #pod
156
+ #pod =item < 1.3
157
+ #pod
158
+ #pod =item >= 1.3, != 1.5, <= 2.0
159
+ #pod
160
+ #pod A version number without an operator is equivalent to specifying a minimum
161
+ #pod (C<E<gt>=>). Extra whitespace is allowed.
162
+ #pod
163
+ #pod =back
164
+ #pod
165
+ #pod =cut
166
+
167
+ my %methods_for_op = (
168
+ '==' => [ qw(with_exact_version) ],
169
+ '!=' => [ qw(with_exclusion) ],
170
+ '>=' => [ qw(with_minimum) ],
171
+ '<=' => [ qw(with_maximum) ],
172
+ '>' => [ qw(with_minimum with_exclusion) ],
173
+ '<' => [ qw(with_maximum with_exclusion) ],
174
+ );
175
+
176
+ sub with_string_requirement {
177
+ my ($self, $req, $module, $bad_version_hook) = @_;
178
+ $module //= 'module';
179
+
180
+ unless ( defined $req && length $req ) {
181
+ $req = 0;
182
+ Carp::carp("Undefined requirement for $module treated as '0'");
183
+ }
184
+
185
+ my $magic = _find_magic_vstring( $req );
186
+ if (length $magic) {
187
+ return $self->with_minimum($magic, $module, $bad_version_hook);
188
+ }
189
+
190
+ my @parts = split qr{\s*,\s*}, $req;
191
+
192
+ for my $part (@parts) {
193
+ my ($op, $ver) = $part =~ m{\A\s*(==|>=|>|<=|<|!=)\s*(.*)\z};
194
+
195
+ if (! defined $op) {
196
+ $self = $self->with_minimum($part, $module, $bad_version_hook);
197
+ } else {
198
+ Carp::croak("illegal requirement string: $req")
199
+ unless my $methods = $methods_for_op{ $op };
200
+
201
+ $self = $self->$_($ver, $module, $bad_version_hook) for @$methods;
202
+ }
203
+ }
204
+
205
+ return $self;
206
+ }
207
+
208
+ #pod =method with_range
209
+ #pod
210
+ #pod $range->with_range($other_range)
211
+ #pod
212
+ #pod This creates a new range object that is a merge two others.
213
+ #pod
214
+ #pod =cut
215
+
216
+ sub with_range {
217
+ my ($self, $other, $module, $bad_version_hook) = @_;
218
+ for my $modifier($other->_as_modifiers) {
219
+ my ($method, $arg) = @$modifier;
220
+ $self = $self->$method($arg, $module, $bad_version_hook);
221
+ }
222
+ return $self;
223
+ }
224
+
225
+ package CPAN::Meta::Requirements::Range;
226
+
227
+ our @ISA = 'CPAN::Meta::Requirements::Range::_Base';
228
+
229
+ sub _clone {
230
+ return (bless { } => $_[0]) unless ref $_[0];
231
+
232
+ my ($s) = @_;
233
+ my %guts = (
234
+ (exists $s->{minimum} ? (minimum => version->new($s->{minimum})) : ()),
235
+ (exists $s->{maximum} ? (maximum => version->new($s->{maximum})) : ()),
236
+
237
+ (exists $s->{exclusions}
238
+ ? (exclusions => [ map { version->new($_) } @{ $s->{exclusions} } ])
239
+ : ()),
240
+ );
241
+
242
+ bless \%guts => ref($s);
243
+ }
244
+
245
+ #pod =method with_exact_version
246
+ #pod
247
+ #pod $range->with_exact_version( $version );
248
+ #pod
249
+ #pod This sets the version required to I<exactly> the given
250
+ #pod version. No other version would be considered acceptable.
251
+ #pod
252
+ #pod This method returns the version range object.
253
+ #pod
254
+ #pod =cut
255
+
256
+ sub with_exact_version {
257
+ my ($self, $version, $module, $bad_version_hook) = @_;
258
+ $module //= 'module';
259
+ $self = $self->_clone;
260
+ $version = $self->_version_object($version, $module, $bad_version_hook);
261
+
262
+ unless ($self->accepts($version)) {
263
+ $self->_reject_requirements(
264
+ $module,
265
+ "exact specification $version outside of range " . $self->as_string
266
+ );
267
+ }
268
+
269
+ return CPAN::Meta::Requirements::Range::_Exact->_new($version);
270
+ }
271
+
272
+ sub _simplify {
273
+ my ($self, $module) = @_;
274
+
275
+ if (defined $self->{minimum} and defined $self->{maximum}) {
276
+ if ($self->{minimum} == $self->{maximum}) {
277
+ if (grep { $_ == $self->{minimum} } @{ $self->{exclusions} || [] }) {
278
+ $self->_reject_requirements(
279
+ $module,
280
+ "minimum and maximum are both $self->{minimum}, which is excluded",
281
+ );
282
+ }
283
+
284
+ return CPAN::Meta::Requirements::Range::_Exact->_new($self->{minimum});
285
+ }
286
+
287
+ if ($self->{minimum} > $self->{maximum}) {
288
+ $self->_reject_requirements(
289
+ $module,
290
+ "minimum $self->{minimum} exceeds maximum $self->{maximum}",
291
+ );
292
+ }
293
+ }
294
+
295
+ # eliminate irrelevant exclusions
296
+ if ($self->{exclusions}) {
297
+ my %seen;
298
+ @{ $self->{exclusions} } = grep {
299
+ (! defined $self->{minimum} or $_ >= $self->{minimum})
300
+ and
301
+ (! defined $self->{maximum} or $_ <= $self->{maximum})
302
+ and
303
+ ! $seen{$_}++
304
+ } @{ $self->{exclusions} };
305
+ }
306
+
307
+ return $self;
308
+ }
309
+
310
+ #pod =method with_minimum
311
+ #pod
312
+ #pod $range->with_minimum( $version );
313
+ #pod
314
+ #pod This adds a new minimum version requirement. If the new requirement is
315
+ #pod redundant to the existing specification, this has no effect.
316
+ #pod
317
+ #pod Minimum requirements are inclusive. C<$version> is required, along with any
318
+ #pod greater version number.
319
+ #pod
320
+ #pod This method returns the version range object.
321
+ #pod
322
+ #pod =cut
323
+
324
+ sub with_minimum {
325
+ my ($self, $minimum, $module, $bad_version_hook) = @_;
326
+ $module //= 'module';
327
+ $self = $self->_clone;
328
+ $minimum = $self->_version_object( $minimum, $module, $bad_version_hook );
329
+
330
+ if (defined (my $old_min = $self->{minimum})) {
331
+ $self->{minimum} = (sort { $b cmp $a } ($minimum, $old_min))[0];
332
+ } else {
333
+ $self->{minimum} = $minimum;
334
+ }
335
+
336
+ return $self->_simplify($module);
337
+ }
338
+
339
+ #pod =method with_maximum
340
+ #pod
341
+ #pod $range->with_maximum( $version );
342
+ #pod
343
+ #pod This adds a new maximum version requirement. If the new requirement is
344
+ #pod redundant to the existing specification, this has no effect.
345
+ #pod
346
+ #pod Maximum requirements are inclusive. No version strictly greater than the given
347
+ #pod version is allowed.
348
+ #pod
349
+ #pod This method returns the version range object.
350
+ #pod
351
+ #pod =cut
352
+
353
+ sub with_maximum {
354
+ my ($self, $maximum, $module, $bad_version_hook) = @_;
355
+ $module //= 'module';
356
+ $self = $self->_clone;
357
+ $maximum = $self->_version_object( $maximum, $module, $bad_version_hook );
358
+
359
+ if (defined (my $old_max = $self->{maximum})) {
360
+ $self->{maximum} = (sort { $a cmp $b } ($maximum, $old_max))[0];
361
+ } else {
362
+ $self->{maximum} = $maximum;
363
+ }
364
+
365
+ return $self->_simplify($module);
366
+ }
367
+
368
+ #pod =method with_exclusion
369
+ #pod
370
+ #pod $range->with_exclusion( $version );
371
+ #pod
372
+ #pod This adds a new excluded version. For example, you might use these three
373
+ #pod method calls:
374
+ #pod
375
+ #pod $range->with_minimum( '1.00' );
376
+ #pod $range->with_maximum( '1.82' );
377
+ #pod
378
+ #pod $range->with_exclusion( '1.75' );
379
+ #pod
380
+ #pod Any version between 1.00 and 1.82 inclusive would be acceptable, except for
381
+ #pod 1.75.
382
+ #pod
383
+ #pod This method returns the requirements object.
384
+ #pod
385
+ #pod =cut
386
+
387
+ sub with_exclusion {
388
+ my ($self, $exclusion, $module, $bad_version_hook) = @_;
389
+ $module //= 'module';
390
+ $self = $self->_clone;
391
+ $exclusion = $self->_version_object( $exclusion, $module, $bad_version_hook );
392
+
393
+ push @{ $self->{exclusions} ||= [] }, $exclusion;
394
+
395
+ return $self->_simplify($module);
396
+ }
397
+
398
+ sub _as_modifiers {
399
+ my ($self) = @_;
400
+ my @mods;
401
+ push @mods, [ with_minimum => $self->{minimum} ] if exists $self->{minimum};
402
+ push @mods, [ with_maximum => $self->{maximum} ] if exists $self->{maximum};
403
+ push @mods, map {; [ with_exclusion => $_ ] } @{$self->{exclusions} || []};
404
+ return @mods;
405
+ }
406
+
407
+ #pod =method as_struct
408
+ #pod
409
+ #pod $range->as_struct( $module );
410
+ #pod
411
+ #pod This returns a data structure containing the version requirements. This should
412
+ #pod not be used for version checks (see L</accepts_module> instead).
413
+ #pod
414
+ #pod =cut
415
+
416
+ sub as_struct {
417
+ my ($self) = @_;
418
+
419
+ return 0 if ! keys %$self;
420
+
421
+ my @exclusions = @{ $self->{exclusions} || [] };
422
+
423
+ my @parts;
424
+
425
+ for my $tuple (
426
+ [ qw( >= > minimum ) ],
427
+ [ qw( <= < maximum ) ],
428
+ ) {
429
+ my ($op, $e_op, $k) = @$tuple;
430
+ if (exists $self->{$k}) {
431
+ my @new_exclusions = grep { $_ != $self->{ $k } } @exclusions;
432
+ if (@new_exclusions == @exclusions) {
433
+ push @parts, [ $op, "$self->{ $k }" ];
434
+ } else {
435
+ push @parts, [ $e_op, "$self->{ $k }" ];
436
+ @exclusions = @new_exclusions;
437
+ }
438
+ }
439
+ }
440
+
441
+ push @parts, map {; [ "!=", "$_" ] } @exclusions;
442
+
443
+ return \@parts;
444
+ }
445
+
446
+ #pod =method as_string
447
+ #pod
448
+ #pod $range->as_string;
449
+ #pod
450
+ #pod This returns a string containing the version requirements in the format
451
+ #pod described in L<CPAN::Meta::Spec>. This should only be used for informational
452
+ #pod purposes such as error messages and should not be interpreted or used for
453
+ #pod comparison (see L</accepts> instead).
454
+ #pod
455
+ #pod =cut
456
+
457
+ sub as_string {
458
+ my ($self) = @_;
459
+
460
+ my @parts = @{ $self->as_struct };
461
+
462
+ return $parts[0][1] if @parts == 1 and $parts[0][0] eq '>=';
463
+
464
+ return join q{, }, map {; join q{ }, @$_ } @parts;
465
+ }
466
+
467
+ sub _reject_requirements {
468
+ my ($self, $module, $error) = @_;
469
+ Carp::croak("illegal requirements for $module: $error")
470
+ }
471
+
472
+ #pod =method accepts
473
+ #pod
474
+ #pod my $bool = $range->accepts($version);
475
+ #pod
476
+ #pod Given a version, this method returns true if the version specification
477
+ #pod accepts the provided version. In other words, given:
478
+ #pod
479
+ #pod '>= 1.00, < 2.00'
480
+ #pod
481
+ #pod We will accept 1.00 and 1.75 but not 0.50 or 2.00.
482
+ #pod
483
+ #pod =cut
484
+
485
+ sub accepts {
486
+ my ($self, $version) = @_;
487
+
488
+ return if defined $self->{minimum} and $version < $self->{minimum};
489
+ return if defined $self->{maximum} and $version > $self->{maximum};
490
+ return if defined $self->{exclusions}
491
+ and grep { $version == $_ } @{ $self->{exclusions} };
492
+
493
+ return 1;
494
+ }
495
+
496
+ #pod =method is_simple
497
+ #pod
498
+ #pod This method returns true if and only if the range is an inclusive minimum
499
+ #pod -- that is, if their string expression is just the version number.
500
+ #pod
501
+ #pod =cut
502
+
503
+ sub is_simple {
504
+ my ($self) = @_;
505
+ # XXX: This is a complete hack, but also entirely correct.
506
+ return if $self->as_string =~ /\s/;
507
+
508
+ return 1;
509
+ }
510
+
511
+ package
512
+ CPAN::Meta::Requirements::Range::_Exact;
513
+
514
+ our @ISA = 'CPAN::Meta::Requirements::Range::_Base';
515
+
516
+ our $VERSION = '2.141';
517
+
518
+ BEGIN {
519
+ eval "use version ()"; ## no critic
520
+ if ( my $err = $@ ) {
521
+ eval "use ExtUtils::MakeMaker::version" or die $err; ## no critic
522
+ }
523
+ }
524
+
525
+ sub _new { bless { version => $_[1] } => $_[0] }
526
+
527
+ sub accepts { return $_[0]{version} == $_[1] }
528
+
529
+ sub _reject_requirements {
530
+ my ($self, $module, $error) = @_;
531
+ Carp::croak("illegal requirements for $module: $error")
532
+ }
533
+
534
+ sub _clone {
535
+ (ref $_[0])->_new( version->new( $_[0]{version} ) )
536
+ }
537
+
538
+ sub with_exact_version {
539
+ my ($self, $version, $module, $bad_version_hook) = @_;
540
+ $module //= 'module';
541
+ $version = $self->_version_object($version, $module, $bad_version_hook);
542
+
543
+ return $self->_clone if $self->accepts($version);
544
+
545
+ $self->_reject_requirements(
546
+ $module,
547
+ "can't be exactly $version when exact requirement is already $self->{version}",
548
+ );
549
+ }
550
+
551
+ sub with_minimum {
552
+ my ($self, $minimum, $module, $bad_version_hook) = @_;
553
+ $module //= 'module';
554
+ $minimum = $self->_version_object( $minimum, $module, $bad_version_hook );
555
+
556
+ return $self->_clone if $self->{version} >= $minimum;
557
+ $self->_reject_requirements(
558
+ $module,
559
+ "minimum $minimum exceeds exact specification $self->{version}",
560
+ );
561
+ }
562
+
563
+ sub with_maximum {
564
+ my ($self, $maximum, $module, $bad_version_hook) = @_;
565
+ $module //= 'module';
566
+ $maximum = $self->_version_object( $maximum, $module, $bad_version_hook );
567
+
568
+ return $self->_clone if $self->{version} <= $maximum;
569
+ $self->_reject_requirements(
570
+ $module,
571
+ "maximum $maximum below exact specification $self->{version}",
572
+ );
573
+ }
574
+
575
+ sub with_exclusion {
576
+ my ($self, $exclusion, $module, $bad_version_hook) = @_;
577
+ $module //= 'module';
578
+ $exclusion = $self->_version_object( $exclusion, $module, $bad_version_hook );
579
+
580
+ return $self->_clone unless $exclusion == $self->{version};
581
+ $self->_reject_requirements(
582
+ $module,
583
+ "tried to exclude $exclusion, which is already exactly specified",
584
+ );
585
+ }
586
+
587
+ sub as_string { return "== $_[0]{version}" }
588
+
589
+ sub as_struct { return [ [ '==', "$_[0]{version}" ] ] }
590
+
591
+ sub _as_modifiers { return [ with_exact_version => $_[0]{version} ] }
592
+
593
+
594
+ 1;
595
+
596
+ # vim: ts=2 sts=2 sw=2 et:
597
+
598
+ __END__
599
+
600
+ =pod
601
+
602
+ =encoding UTF-8
603
+
604
+ =head1 NAME
605
+
606
+ CPAN::Meta::Requirements::Range - a set of version requirements for a CPAN dist
607
+
608
+ =head1 VERSION
609
+
610
+ version 2.143
611
+
612
+ =head1 SYNOPSIS
613
+
614
+ use CPAN::Meta::Requirements::Range;
615
+
616
+ my $range = CPAN::Meta::Requirements::Range->with_minimum(1);
617
+
618
+ $range = $range->with_maximum('v2.2');
619
+
620
+ my $stringified = $range->as_string;
621
+
622
+ =head1 DESCRIPTION
623
+
624
+ A CPAN::Meta::Requirements::Range object models a set of version constraints like
625
+ those specified in the F<META.yml> or F<META.json> files in CPAN distributions,
626
+ and as defined by L<CPAN::Meta::Spec>;
627
+ It can be built up by adding more and more constraints, and it will reduce them
628
+ to the simplest representation.
629
+
630
+ Logically impossible constraints will be identified immediately by thrown
631
+ exceptions.
632
+
633
+ =head1 METHODS
634
+
635
+ =head2 with_string_requirement
636
+
637
+ $req->with_string_requirement('>= 1.208, <= 2.206');
638
+ $req->with_string_requirement(v1.208);
639
+
640
+ This method parses the passed in string and adds the appropriate requirement.
641
+ A version can be a Perl "v-string". It understands version ranges as described
642
+ in the L<CPAN::Meta::Spec/Version Ranges>. For example:
643
+
644
+ =over 4
645
+
646
+ =item 1.3
647
+
648
+ =item >= 1.3
649
+
650
+ =item <= 1.3
651
+
652
+ =item == 1.3
653
+
654
+ =item != 1.3
655
+
656
+ =item > 1.3
657
+
658
+ =item < 1.3
659
+
660
+ =item >= 1.3, != 1.5, <= 2.0
661
+
662
+ A version number without an operator is equivalent to specifying a minimum
663
+ (C<E<gt>=>). Extra whitespace is allowed.
664
+
665
+ =back
666
+
667
+ =head2 with_range
668
+
669
+ $range->with_range($other_range)
670
+
671
+ This creates a new range object that is a merge two others.
672
+
673
+ =head2 with_exact_version
674
+
675
+ $range->with_exact_version( $version );
676
+
677
+ This sets the version required to I<exactly> the given
678
+ version. No other version would be considered acceptable.
679
+
680
+ This method returns the version range object.
681
+
682
+ =head2 with_minimum
683
+
684
+ $range->with_minimum( $version );
685
+
686
+ This adds a new minimum version requirement. If the new requirement is
687
+ redundant to the existing specification, this has no effect.
688
+
689
+ Minimum requirements are inclusive. C<$version> is required, along with any
690
+ greater version number.
691
+
692
+ This method returns the version range object.
693
+
694
+ =head2 with_maximum
695
+
696
+ $range->with_maximum( $version );
697
+
698
+ This adds a new maximum version requirement. If the new requirement is
699
+ redundant to the existing specification, this has no effect.
700
+
701
+ Maximum requirements are inclusive. No version strictly greater than the given
702
+ version is allowed.
703
+
704
+ This method returns the version range object.
705
+
706
+ =head2 with_exclusion
707
+
708
+ $range->with_exclusion( $version );
709
+
710
+ This adds a new excluded version. For example, you might use these three
711
+ method calls:
712
+
713
+ $range->with_minimum( '1.00' );
714
+ $range->with_maximum( '1.82' );
715
+
716
+ $range->with_exclusion( '1.75' );
717
+
718
+ Any version between 1.00 and 1.82 inclusive would be acceptable, except for
719
+ 1.75.
720
+
721
+ This method returns the requirements object.
722
+
723
+ =head2 as_struct
724
+
725
+ $range->as_struct( $module );
726
+
727
+ This returns a data structure containing the version requirements. This should
728
+ not be used for version checks (see L</accepts_module> instead).
729
+
730
+ =head2 as_string
731
+
732
+ $range->as_string;
733
+
734
+ This returns a string containing the version requirements in the format
735
+ described in L<CPAN::Meta::Spec>. This should only be used for informational
736
+ purposes such as error messages and should not be interpreted or used for
737
+ comparison (see L</accepts> instead).
738
+
739
+ =head2 accepts
740
+
741
+ my $bool = $range->accepts($version);
742
+
743
+ Given a version, this method returns true if the version specification
744
+ accepts the provided version. In other words, given:
745
+
746
+ '>= 1.00, < 2.00'
747
+
748
+ We will accept 1.00 and 1.75 but not 0.50 or 2.00.
749
+
750
+ =head2 is_simple
751
+
752
+ This method returns true if and only if the range is an inclusive minimum
753
+ -- that is, if their string expression is just the version number.
754
+
755
+ =head1 AUTHORS
756
+
757
+ =over 4
758
+
759
+ =item *
760
+
761
+ David Golden <dagolden@cpan.org>
762
+
763
+ =item *
764
+
765
+ Ricardo Signes <rjbs@cpan.org>
766
+
767
+ =back
768
+
769
+ =head1 COPYRIGHT AND LICENSE
770
+
771
+ This software is copyright (c) 2010 by David Golden and Ricardo Signes.
772
+
773
+ This is free software; you can redistribute it and/or modify it under
774
+ the same terms as the Perl 5 programming language system itself.
775
+
776
+ =cut