javonet-ruby-sdk 2.1.10 → 2.1.11

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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/javonet-ruby-sdk.gemspec +11 -10
  4. data/lib/javonet-ruby-sdk/Binaries/Clr/Windows/X64/Javonet.Clr.Utils.dll +0 -0
  5. data/lib/javonet-ruby-sdk/Binaries/Clr/Windows/X64/JavonetClrRuntime.dll +0 -0
  6. data/lib/javonet-ruby-sdk/Binaries/Cpp/Windows/X64/JavonetCppRuntime.dll +0 -0
  7. data/lib/javonet-ruby-sdk/Binaries/Go/MacOs/X64/libJavonetGoRuntime.dylib +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Jvm/Linux/X64/JavonetJvmRuntime.jar +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Jvm/MacOs/X64/JavonetJvmRuntime.jar +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Jvm/Windows/X64/JavonetJvmRuntime.jar +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  20. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  23. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Netcore/Linux/X64/Javonet.Netcore.Core.dll +0 -0
  40. data/lib/javonet-ruby-sdk/Binaries/Netcore/Linux/X64/Javonet.Netcore.Utils.dll +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Netcore/MacOs/X64/Javonet.Netcore.Core.dll +0 -0
  42. data/lib/javonet-ruby-sdk/Binaries/Netcore/MacOs/X64/Javonet.Netcore.Utils.dll +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Netcore/Windows/X64/Javonet.Netcore.Core.dll +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Netcore/Windows/X64/Javonet.Netcore.Utils.dll +0 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/exception/ExceptionThrower.js +29 -8
  46. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/ArrayGetItemHandler.js +18 -4
  47. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/ArrayGetRankHandler.js +17 -1
  48. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/ArrayGetSizeHandler.js +9 -3
  49. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/ArraySetItemHandler.js +20 -4
  50. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/CastingHandler.js +1 -1
  51. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/CreateClassInstanceHandler.js +3 -3
  52. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/GetGlobalStaticFieldHandler.js +2 -2
  53. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/GetInstanceFieldHandler.js +4 -5
  54. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/GetStaticFieldHandler.js +4 -5
  55. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/GetTypeHandler.js +2 -2
  56. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/InvokeGlobalMethodHandler.js +3 -5
  57. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/InvokeInstanceMethodHandler.js +4 -5
  58. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/InvokeStaticMethodHandler.js +3 -3
  59. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/LoadLibraryHandler.js +2 -2
  60. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/ReferencesCache.js +1 -1
  61. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/SetGlobalStaticFieldHandler.js +2 -2
  62. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/SetInstanceFieldHandler.js +3 -3
  63. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/SetStaticFieldHandler.js +3 -3
  64. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/ValueHandler.js +1 -1
  65. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/exception/ExceptionThrower.js +29 -8
  66. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/ArrayGetItemHandler.js +18 -4
  67. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/ArrayGetRankHandler.js +17 -1
  68. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/ArrayGetSizeHandler.js +9 -3
  69. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/ArraySetItemHandler.js +20 -4
  70. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/CastingHandler.js +1 -1
  71. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/CreateClassInstanceHandler.js +3 -3
  72. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/GetGlobalStaticFieldHandler.js +2 -2
  73. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/GetInstanceFieldHandler.js +4 -5
  74. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/GetStaticFieldHandler.js +4 -5
  75. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/GetTypeHandler.js +2 -2
  76. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/InvokeGlobalMethodHandler.js +3 -5
  77. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/InvokeInstanceMethodHandler.js +4 -5
  78. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/InvokeStaticMethodHandler.js +3 -3
  79. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/LoadLibraryHandler.js +2 -2
  80. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/ReferencesCache.js +1 -1
  81. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/SetGlobalStaticFieldHandler.js +2 -2
  82. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/SetInstanceFieldHandler.js +3 -3
  83. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/SetStaticFieldHandler.js +3 -3
  84. data/lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/ValueHandler.js +1 -1
  85. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/exception/ExceptionThrower.js +29 -8
  86. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/ArrayGetItemHandler.js +18 -4
  87. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/ArrayGetRankHandler.js +17 -1
  88. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/ArrayGetSizeHandler.js +9 -3
  89. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/ArraySetItemHandler.js +20 -4
  90. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/CastingHandler.js +1 -1
  91. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/CreateClassInstanceHandler.js +3 -3
  92. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/GetGlobalStaticFieldHandler.js +2 -2
  93. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/GetInstanceFieldHandler.js +4 -5
  94. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/GetStaticFieldHandler.js +4 -5
  95. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/GetTypeHandler.js +2 -2
  96. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/InvokeGlobalMethodHandler.js +3 -5
  97. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/InvokeInstanceMethodHandler.js +4 -5
  98. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/InvokeStaticMethodHandler.js +3 -3
  99. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/LoadLibraryHandler.js +2 -2
  100. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/ReferencesCache.js +1 -1
  101. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/SetGlobalStaticFieldHandler.js +2 -2
  102. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/SetInstanceFieldHandler.js +3 -3
  103. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/SetStaticFieldHandler.js +3 -3
  104. data/lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/handler/ValueHandler.js +1 -1
  105. 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
  106. 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
  107. 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
  108. 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
  109. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  110. 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
  111. 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
  112. 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
  113. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  114. 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
  115. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +89 -89
  116. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Class/Load/XS/XS.bundle +0 -0
  117. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Clone/Clone.bundle +0 -0
  118. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Data/UUID/UUID.bundle +0 -0
  119. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/FFI/Platypus/Platypus.bundle +0 -0
  120. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Moose/Moose.bundle +0 -0
  121. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/PPI/XS/XS.bundle +0 -0
  122. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Package/Stash/XS/XS.bundle +0 -0
  123. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Params/Util/Util.bundle +0 -0
  124. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Scalar/Util/Numeric/Numeric.bundle +0 -0
  125. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Want/Want.bundle +0 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/autobox/autobox.bundle +0 -0
  127. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/FFI-Platypus/include/ffi_platypus_config.h +2 -2
  128. data/lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/perllocal.pod +86 -86
  129. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  130. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  131. 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
  132. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  133. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  134. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +17 -17
  135. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/handler/CommandHandler/ArrayGetItemHandler.py +8 -7
  136. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/handler/CommandHandler/ArrayGetRankHandler.py +7 -4
  137. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/handler/CommandHandler/ArrayGetSizeHandler.py +7 -3
  138. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/handler/CommandHandler/ArraySetItemHandler.py +14 -2
  139. data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/core/handler/Handler.py +1 -3
  140. data/lib/javonet-ruby-sdk/Binaries/Python/{Windows/X64/javonet/core → Linux/X64/javonet/utils}/exception/ExceptionThrower.py +63 -48
  141. data/lib/javonet-ruby-sdk/Binaries/Python/{MacOs/X64/javonet/core → Linux/X64/javonet/utils}/exception/JavonetException.py +0 -2
  142. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/handler/CommandHandler/ArrayGetItemHandler.py +8 -7
  143. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/handler/CommandHandler/ArrayGetRankHandler.py +7 -4
  144. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/handler/CommandHandler/ArrayGetSizeHandler.py +7 -3
  145. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/handler/CommandHandler/ArraySetItemHandler.py +14 -2
  146. data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/core/handler/Handler.py +1 -3
  147. data/lib/javonet-ruby-sdk/Binaries/Python/{Linux/X64/javonet/core → MacOs/X64/javonet/utils}/exception/ExceptionThrower.py +26 -11
  148. data/lib/javonet-ruby-sdk/Binaries/Python/{Linux/X64/javonet/core → MacOs/X64/javonet/utils}/exception/JavonetException.py +0 -2
  149. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/__pycache__/__init__.cpython-311.pyc +0 -0
  150. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/generator/__pycache__/__init__.cpython-311.pyc +0 -0
  151. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/generator/internal/__pycache__/PythonStringBuilder.cpython-311.pyc +0 -0
  152. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/generator/internal/__pycache__/__init__.cpython-311.pyc +0 -0
  153. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/ArrayGetItemHandler.py +8 -7
  154. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/ArrayGetRankHandler.py +7 -4
  155. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/ArrayGetSizeHandler.py +7 -3
  156. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/ArraySetItemHandler.py +14 -2
  157. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/AbstractCommandHandler.cpython-311.pyc +0 -0
  158. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayGetItemHandler.cpython-311.pyc +0 -0
  159. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayGetRankHandler.cpython-311.pyc +0 -0
  160. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayGetSizeHandler.cpython-311.pyc +0 -0
  161. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArrayHandler.cpython-311.pyc +0 -0
  162. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ArraySetItemHandler.cpython-311.pyc +0 -0
  163. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/CastingHandler.cpython-311.pyc +0 -0
  164. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/CreateClassInstanceHandler.cpython-311.pyc +0 -0
  165. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/DestructReferenceHandler.cpython-311.pyc +0 -0
  166. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetEnumItemHandler.cpython-311.pyc +0 -0
  167. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetEnumNameHandler.cpython-311.pyc +0 -0
  168. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetEnumValueHandler.cpython-311.pyc +0 -0
  169. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetInstanceFieldHandler.cpython-311.pyc +0 -0
  170. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetStaticFieldHandler.cpython-311.pyc +0 -0
  171. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/GetTypeHandler.cpython-311.pyc +0 -0
  172. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/InvokeInstanceMethodHandler.cpython-311.pyc +0 -0
  173. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/InvokeStaticMethodHandler.cpython-311.pyc +0 -0
  174. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/LoadLibraryHandler.cpython-311.pyc +0 -0
  175. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ResolveInstanceHandler.cpython-311.pyc +0 -0
  176. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/SetInstanceFieldHandler.cpython-311.pyc +0 -0
  177. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/SetStaticFieldHandler.cpython-311.pyc +0 -0
  178. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/ValueHandler.cpython-311.pyc +0 -0
  179. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/CommandHandler/__pycache__/__init__.cpython-311.pyc +0 -0
  180. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/Handler.py +1 -3
  181. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/AbstractHandler.cpython-311.pyc +0 -0
  182. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/Handler.cpython-311.pyc +0 -0
  183. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/HandlerDictionary.cpython-311.pyc +0 -0
  184. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/ReferencesCache.cpython-311.pyc +0 -0
  185. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/handler/__pycache__/__init__.cpython-311.pyc +0 -0
  186. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/interpreter/__pycache__/Interpreter.cpython-311.pyc +0 -0
  187. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/interpreter/__pycache__/__init__.cpython-311.pyc +0 -0
  188. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-311.pyc +0 -0
  189. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/CommandSerializer.cpython-311.pyc +0 -0
  190. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-311.pyc +0 -0
  191. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/TypeSerializer.cpython-311.pyc +0 -0
  192. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/protocol/__pycache__/__init__.cpython-311.pyc +0 -0
  193. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/receiver/__pycache__/Receiver.cpython-311.pyc +0 -0
  194. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/receiver/__pycache__/__init__.cpython-311.pyc +0 -0
  195. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/Command.cpython-311.pyc +0 -0
  196. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/CommandType.cpython-311.pyc +0 -0
  197. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/ConnectionType.cpython-311.pyc +0 -0
  198. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/ExceptionType.cpython-311.pyc +0 -0
  199. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/RuntimeName.cpython-311.pyc +0 -0
  200. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/StringEncodingMode.cpython-311.pyc +0 -0
  201. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/Type.cpython-311.pyc +0 -0
  202. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  203. data/lib/javonet-ruby-sdk/Binaries/Python/{MacOs/X64/javonet/core → Windows/X64/javonet/utils}/exception/ExceptionThrower.py +63 -48
  204. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/{core → utils}/exception/JavonetException.py +0 -2
  205. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/{core → utils}/exception/__pycache__/ExceptionSerializer.cpython-311.pyc +0 -0
  206. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/utils/exception/__pycache__/__init__.cpython-311.pyc +0 -0
  207. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/handler/command_handler/array_get_item_handler.rb +31 -4
  208. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/handler/command_handler/array_get_rank_handler.rb +13 -1
  209. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/handler/command_handler/array_get_size_handler.rb +21 -2
  210. data/lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/handler/command_handler/array_set_item_handler.rb +30 -4
  211. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/handler/command_handler/array_get_item_handler.rb +31 -4
  212. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/handler/command_handler/array_get_rank_handler.rb +13 -1
  213. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/handler/command_handler/array_get_size_handler.rb +21 -2
  214. data/lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/handler/command_handler/array_set_item_handler.rb +30 -4
  215. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/handler/command_handler/array_get_item_handler.rb +31 -4
  216. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/handler/command_handler/array_get_rank_handler.rb +13 -1
  217. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/handler/command_handler/array_get_size_handler.rb +21 -2
  218. data/lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/handler/command_handler/array_set_item_handler.rb +30 -4
  219. data/lib/javonet-ruby-sdk/core/handler/command_handler/array_get_item_handler.rb +31 -4
  220. data/lib/javonet-ruby-sdk/core/handler/command_handler/array_get_rank_handler.rb +13 -1
  221. data/lib/javonet-ruby-sdk/core/handler/command_handler/array_get_size_handler.rb +21 -2
  222. data/lib/javonet-ruby-sdk/core/handler/command_handler/array_set_item_handler.rb +30 -4
  223. data/lib/javonet-ruby-sdk/sdk/internal/invocation_context.rb +5 -5
  224. metadata +70 -56
  225. data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/core/exception/__pycache__/__init__.cpython-311.pyc +0 -0
  226. /data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/{core → utils}/exception/ExceptionSerializer.py +0 -0
  227. /data/lib/javonet-ruby-sdk/Binaries/Python/Linux/X64/javonet/{core → utils}/exception/__init__.py +0 -0
  228. /data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/{core → utils}/exception/ExceptionSerializer.py +0 -0
  229. /data/lib/javonet-ruby-sdk/Binaries/Python/MacOs/X64/javonet/{core → utils}/exception/__init__.py +0 -0
  230. /data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/{core → utils}/exception/ExceptionSerializer.py +0 -0
  231. /data/lib/javonet-ruby-sdk/Binaries/Python/Windows/X64/javonet/{core → utils}/exception/__init__.py +0 -0
@@ -1,5 +1,3 @@
1
- import traceback
2
-
3
1
  from javonet.core.handler.AbstractHandler import AbstractHandler
4
2
  from javonet.core.handler.CommandHandler.ValueHandler import ValueHandler
5
3
  from javonet.core.handler.CommandHandler.LoadLibraryHandler import LoadLibraryHandler
@@ -25,7 +23,7 @@ from javonet.core.handler.CommandHandler.GetEnumValueHandler import GetEnumValue
25
23
 
26
24
  from javonet.core.handler.HandlerDictionary import handler_dict
27
25
  from javonet.core.handler.ReferencesCache import ReferencesCache
28
- from javonet.core.exception.ExceptionSerializer import ExceptionSerializer
26
+ from javonet.utils.exception.ExceptionSerializer import ExceptionSerializer
29
27
  from javonet.utils.CommandType import CommandType
30
28
  from javonet.utils.Command import Command
31
29
 
@@ -1,48 +1,63 @@
1
- import re
2
-
3
- from javonet.core.exception.JavonetException import JavonetException
4
- from javonet.utils.Command import Command
5
- from javonet.utils.ExceptionType import ExceptionType
6
-
7
-
8
- class ExceptionThrower:
9
-
10
- @staticmethod
11
- def throw_exception(command_exception: Command):
12
- original_exception = ExceptionType.to_exception(command_exception.get_payload()[0])
13
- javonet_stack_command = command_exception.get_payload()[1]
14
- exception_name = command_exception.get_payload()[2]
15
- exception_message = command_exception.get_payload()[3]
16
-
17
- stack_classes, stack_methods, stack_lines, stack_files = ExceptionThrower.get_local_stack_trace(
18
- command_exception.get_payload()[4],
19
- command_exception.get_payload()[5],
20
- command_exception.get_payload()[6],
21
- command_exception.get_payload()[7])
22
- traceback_str = ""
23
-
24
- for i in range(len(stack_classes)):
25
- if i < len(stack_files) and stack_files[i]:
26
- traceback_str += "File \"{}\"".format(stack_files[i])
27
- if i < len(stack_lines) and stack_lines[i]:
28
- traceback_str += ", line {}".format(stack_lines[i])
29
- if i < len(stack_methods) and stack_methods[i]:
30
- traceback_str += ", in {}".format(stack_methods[i])
31
- traceback_str += "\n"
32
- if i < len(stack_classes) and stack_classes[i]:
33
- traceback_str += " {}\n".format(stack_classes[i])
34
-
35
- return ExceptionThrower.raise_exception(original_exception, exception_message, traceback_str)
36
-
37
- @staticmethod
38
- def raise_exception(original_exception, exception_message, traceback_str):
39
- return JavonetException(str(original_exception), exception_message, traceback_str)
40
-
41
- @staticmethod
42
- def get_local_stack_trace(stack_trace_classes, stack_trace_methods, stack_trace_lines, stack_trace_files):
43
- stack_classes = re.split("\\|", stack_trace_classes)
44
- stack_methods = re.split("\\|", stack_trace_methods)
45
- stack_lines = re.split("\\|", stack_trace_lines)
46
- stack_files = re.split("\\|", stack_trace_files)
47
-
48
- return [stack_classes, stack_methods, stack_lines, stack_files]
1
+ import re
2
+
3
+ from javonet.utils.exception.JavonetException import JavonetException
4
+ from javonet.utils.Command import Command
5
+ from javonet.utils.ExceptionType import ExceptionType
6
+
7
+
8
+ class ExceptionThrower:
9
+
10
+ @staticmethod
11
+ def throw_exception(command_exception: Command):
12
+ stack_classes, stack_methods, stack_lines, stack_files = "", "", "", ""
13
+ exception_message = "Python Exception with empty message"
14
+ exception_name = "Python exception"
15
+ javonet_stack_command = ""
16
+ traceback_str = ""
17
+
18
+ exception_payload_len = len(command_exception.payload)
19
+ if exception_payload_len >=8:
20
+ stack_classes, stack_methods, stack_lines, stack_files = ExceptionThrower.get_local_stack_trace(
21
+ command_exception.get_payload()[4],
22
+ command_exception.get_payload()[5],
23
+ command_exception.get_payload()[6],
24
+ command_exception.get_payload()[7])
25
+
26
+ if exception_payload_len >= 4:
27
+ exception_message = command_exception.get_payload()[3]
28
+
29
+ if exception_payload_len >= 3:
30
+ exception_name = command_exception.get_payload()[2]
31
+
32
+ if exception_payload_len >= 2:
33
+ javonet_stack_command = command_exception.get_payload()[1]
34
+
35
+ if exception_payload_len >= 1:
36
+ original_exception = ExceptionType.to_exception(command_exception.get_payload()[0])
37
+
38
+
39
+ for i in range(len(stack_classes)):
40
+ if i < len(stack_files) and stack_files[i]:
41
+ traceback_str += "File \"{}\"".format(stack_files[i])
42
+ if i < len(stack_lines) and stack_lines[i]:
43
+ traceback_str += ", line {}".format(stack_lines[i])
44
+ if i < len(stack_methods) and stack_methods[i]:
45
+ traceback_str += ", in {}".format(stack_methods[i])
46
+ traceback_str += "\n"
47
+ if i < len(stack_classes) and stack_classes[i]:
48
+ traceback_str += " {}\n".format(stack_classes[i])
49
+
50
+ return ExceptionThrower.raise_exception(original_exception, exception_message, traceback_str)
51
+
52
+ @staticmethod
53
+ def raise_exception(original_exception, exception_message, traceback_str):
54
+ return JavonetException(str(original_exception), exception_message, traceback_str)
55
+
56
+ @staticmethod
57
+ def get_local_stack_trace(stack_trace_classes, stack_trace_methods, stack_trace_lines, stack_trace_files):
58
+ stack_classes = re.split("\\|", stack_trace_classes)
59
+ stack_methods = re.split("\\|", stack_trace_methods)
60
+ stack_lines = re.split("\\|", stack_trace_lines)
61
+ stack_files = re.split("\\|", stack_trace_files)
62
+
63
+ return [stack_classes, stack_methods, stack_lines, stack_files]
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  class JavonetException(Exception):
4
2
  def __init__(self, name, message, traceback_str):
5
3
  self.name = name
@@ -10,11 +10,38 @@ class ArrayGetItemHandler < AbstractCommandHandler
10
10
  if command.payload.length < @required_parameters_count
11
11
  raise ArgumentError.new "Array get item parameters mismatch"
12
12
  end
13
- array = command.payload[0]
14
- index = command.payload[1,]
15
- return array[index]
13
+
14
+ if command.payload[0].is_a? Array
15
+ return get_item_array(command)
16
+ elsif command.payload[0].is_a? Hash
17
+ return get_item_hash(command)
18
+ else
19
+ raise ArgumentError.new "Cannot get element from %s" % [command.payload[0]]
20
+ end
16
21
  rescue Exception => e
17
- return e
22
+ e
23
+ end
24
+ end
25
+
26
+ def get_item_array(command)
27
+ array = command.payload[0]
28
+ indexes = if command.payload[1].is_a? Array
29
+ command.payload[1]
30
+ else
31
+ command.payload[1..]
32
+ end
33
+
34
+ if array.is_a? Array
35
+ indexes.each { |i|
36
+ array = array[i]
37
+ }
38
+ array
18
39
  end
19
40
  end
41
+
42
+ def get_item_hash(command)
43
+ hash = command.payload[0]
44
+ key = command.payload[1]
45
+ hash[key]
46
+ end
20
47
  end
@@ -1,9 +1,21 @@
1
1
  require_relative 'abstract_command_handler'
2
2
 
3
3
  class ArrayGetRankHandler < AbstractCommandHandler
4
+ def initialize
5
+ @required_parameters_count = 1
6
+ end
4
7
  def process(command)
5
8
  begin
6
- raise ArgumentError.new "ArrayGetRankHandler not implemented"
9
+ if command.payload.length < @required_parameters_count
10
+ raise ArgumentError.new "Array get rank parameters mismatch"
11
+ end
12
+ array = command.payload[0]
13
+ rank = 0
14
+ while array.is_a? Array
15
+ rank = rank + 1
16
+ array = array[0]
17
+ end
18
+ return rank
7
19
  rescue Exception => e
8
20
  return e
9
21
  end
@@ -4,15 +4,34 @@ class ArrayGetSizeHandler < AbstractCommandHandler
4
4
  def initialize
5
5
  @required_parameters_count = 1
6
6
  end
7
+
7
8
  def process(command)
8
9
  begin
9
10
  if command.payload.length < @required_parameters_count
10
11
  raise ArgumentError.new "Array get size parameters mismatch"
11
12
  end
12
- array = command.payload[0]
13
- return array.length()
13
+
14
+ if command.payload[0].is_a? Array
15
+ return get_size_array(command)
16
+ else
17
+ return get_size(command)
18
+ end
14
19
  rescue Exception => e
15
20
  return e
16
21
  end
17
22
  end
23
+
24
+ def get_size_array(command)
25
+ array = command.payload[0]
26
+ size = 1
27
+ while array.is_a? Array
28
+ size = size * array.length
29
+ array = array[0]
30
+ end
31
+ size
32
+ end
33
+
34
+ def get_size(command)
35
+ command.payload[0].length
36
+ end
18
37
  end
@@ -4,18 +4,44 @@ class ArraySetItemHandler < AbstractCommandHandler
4
4
  def initialize
5
5
  @required_parameters_count = 3
6
6
  end
7
+
7
8
  def process(command)
8
9
  begin
9
10
  if command.payload.length < @required_parameters_count
10
11
  raise ArgumentError.new "Array set item parameters mismatch"
11
12
  end
12
- array = command.payload[0]
13
- value = command.payload[1]
14
- index = command.payload[2,]
15
- array[index] = value
13
+ if command.payload[0].is_a? Array
14
+ set_item_array(command)
15
+ elsif command.payload[0].is_a? Hash
16
+ set_item_hash(command)
17
+ else
18
+ raise ArgumentError.new "Cannot set element of %s" % [command.payload[0]]
19
+ end
16
20
  return 0
17
21
  rescue Exception => e
18
22
  return e
19
23
  end
20
24
  end
25
+
26
+ def set_item_array(command)
27
+ array = command.payload[0]
28
+ value = command.payload[1]
29
+ indexes = if command.payload[2].is_a? Array
30
+ command.payload[2]
31
+ else
32
+ command.payload[2..]
33
+ end
34
+ indexes[..-2].each { |i|
35
+ array = array[i]
36
+ }
37
+ array[indexes[-1]] = value
38
+ end
39
+
40
+ def set_item_hash(command)
41
+ hash = command.payload[0]
42
+ key = command.payload[1]
43
+ value = command.payload[2]
44
+ hash[key] = value
45
+ end
46
+
21
47
  end
@@ -10,11 +10,38 @@ class ArrayGetItemHandler < AbstractCommandHandler
10
10
  if command.payload.length < @required_parameters_count
11
11
  raise ArgumentError.new "Array get item parameters mismatch"
12
12
  end
13
- array = command.payload[0]
14
- index = command.payload[1,]
15
- return array[index]
13
+
14
+ if command.payload[0].is_a? Array
15
+ return get_item_array(command)
16
+ elsif command.payload[0].is_a? Hash
17
+ return get_item_hash(command)
18
+ else
19
+ raise ArgumentError.new "Cannot get element from %s" % [command.payload[0]]
20
+ end
16
21
  rescue Exception => e
17
- return e
22
+ e
23
+ end
24
+ end
25
+
26
+ def get_item_array(command)
27
+ array = command.payload[0]
28
+ indexes = if command.payload[1].is_a? Array
29
+ command.payload[1]
30
+ else
31
+ command.payload[1..]
32
+ end
33
+
34
+ if array.is_a? Array
35
+ indexes.each { |i|
36
+ array = array[i]
37
+ }
38
+ array
18
39
  end
19
40
  end
41
+
42
+ def get_item_hash(command)
43
+ hash = command.payload[0]
44
+ key = command.payload[1]
45
+ hash[key]
46
+ end
20
47
  end
@@ -1,9 +1,21 @@
1
1
  require_relative 'abstract_command_handler'
2
2
 
3
3
  class ArrayGetRankHandler < AbstractCommandHandler
4
+ def initialize
5
+ @required_parameters_count = 1
6
+ end
4
7
  def process(command)
5
8
  begin
6
- raise ArgumentError.new "ArrayGetRankHandler not implemented"
9
+ if command.payload.length < @required_parameters_count
10
+ raise ArgumentError.new "Array get rank parameters mismatch"
11
+ end
12
+ array = command.payload[0]
13
+ rank = 0
14
+ while array.is_a? Array
15
+ rank = rank + 1
16
+ array = array[0]
17
+ end
18
+ return rank
7
19
  rescue Exception => e
8
20
  return e
9
21
  end
@@ -4,15 +4,34 @@ class ArrayGetSizeHandler < AbstractCommandHandler
4
4
  def initialize
5
5
  @required_parameters_count = 1
6
6
  end
7
+
7
8
  def process(command)
8
9
  begin
9
10
  if command.payload.length < @required_parameters_count
10
11
  raise ArgumentError.new "Array get size parameters mismatch"
11
12
  end
12
- array = command.payload[0]
13
- return array.length()
13
+
14
+ if command.payload[0].is_a? Array
15
+ return get_size_array(command)
16
+ else
17
+ return get_size(command)
18
+ end
14
19
  rescue Exception => e
15
20
  return e
16
21
  end
17
22
  end
23
+
24
+ def get_size_array(command)
25
+ array = command.payload[0]
26
+ size = 1
27
+ while array.is_a? Array
28
+ size = size * array.length
29
+ array = array[0]
30
+ end
31
+ size
32
+ end
33
+
34
+ def get_size(command)
35
+ command.payload[0].length
36
+ end
18
37
  end
@@ -4,18 +4,44 @@ class ArraySetItemHandler < AbstractCommandHandler
4
4
  def initialize
5
5
  @required_parameters_count = 3
6
6
  end
7
+
7
8
  def process(command)
8
9
  begin
9
10
  if command.payload.length < @required_parameters_count
10
11
  raise ArgumentError.new "Array set item parameters mismatch"
11
12
  end
12
- array = command.payload[0]
13
- value = command.payload[1]
14
- index = command.payload[2,]
15
- array[index] = value
13
+ if command.payload[0].is_a? Array
14
+ set_item_array(command)
15
+ elsif command.payload[0].is_a? Hash
16
+ set_item_hash(command)
17
+ else
18
+ raise ArgumentError.new "Cannot set element of %s" % [command.payload[0]]
19
+ end
16
20
  return 0
17
21
  rescue Exception => e
18
22
  return e
19
23
  end
20
24
  end
25
+
26
+ def set_item_array(command)
27
+ array = command.payload[0]
28
+ value = command.payload[1]
29
+ indexes = if command.payload[2].is_a? Array
30
+ command.payload[2]
31
+ else
32
+ command.payload[2..]
33
+ end
34
+ indexes[..-2].each { |i|
35
+ array = array[i]
36
+ }
37
+ array[indexes[-1]] = value
38
+ end
39
+
40
+ def set_item_hash(command)
41
+ hash = command.payload[0]
42
+ key = command.payload[1]
43
+ value = command.payload[2]
44
+ hash[key] = value
45
+ end
46
+
21
47
  end
@@ -10,11 +10,38 @@ class ArrayGetItemHandler < AbstractCommandHandler
10
10
  if command.payload.length < @required_parameters_count
11
11
  raise ArgumentError.new "Array get item parameters mismatch"
12
12
  end
13
- array = command.payload[0]
14
- index = command.payload[1,]
15
- return array[index]
13
+
14
+ if command.payload[0].is_a? Array
15
+ return get_item_array(command)
16
+ elsif command.payload[0].is_a? Hash
17
+ return get_item_hash(command)
18
+ else
19
+ raise ArgumentError.new "Cannot get element from %s" % [command.payload[0]]
20
+ end
16
21
  rescue Exception => e
17
- return e
22
+ e
23
+ end
24
+ end
25
+
26
+ def get_item_array(command)
27
+ array = command.payload[0]
28
+ indexes = if command.payload[1].is_a? Array
29
+ command.payload[1]
30
+ else
31
+ command.payload[1..]
32
+ end
33
+
34
+ if array.is_a? Array
35
+ indexes.each { |i|
36
+ array = array[i]
37
+ }
38
+ array
18
39
  end
19
40
  end
41
+
42
+ def get_item_hash(command)
43
+ hash = command.payload[0]
44
+ key = command.payload[1]
45
+ hash[key]
46
+ end
20
47
  end
@@ -1,9 +1,21 @@
1
1
  require_relative 'abstract_command_handler'
2
2
 
3
3
  class ArrayGetRankHandler < AbstractCommandHandler
4
+ def initialize
5
+ @required_parameters_count = 1
6
+ end
4
7
  def process(command)
5
8
  begin
6
- raise ArgumentError.new "ArrayGetRankHandler not implemented"
9
+ if command.payload.length < @required_parameters_count
10
+ raise ArgumentError.new "Array get rank parameters mismatch"
11
+ end
12
+ array = command.payload[0]
13
+ rank = 0
14
+ while array.is_a? Array
15
+ rank = rank + 1
16
+ array = array[0]
17
+ end
18
+ return rank
7
19
  rescue Exception => e
8
20
  return e
9
21
  end