talon_one 6.0.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. checksums.yaml +4 -4
  2. data/.github/.example/.bundle/config +2 -0
  3. data/.github/.example/Gemfile +6 -0
  4. data/.github/.example/Gemfile.lock +47 -0
  5. data/.github/.example/example.rb +85 -0
  6. data/.github/.example/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/json-2.8.2/gem.build_complete +0 -0
  7. data/.github/.example/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/json-2.8.2/gem_make.out +24 -0
  8. data/.github/.example/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/json-2.8.2/json/ext/generator.bundle +0 -0
  9. data/.github/.example/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/json-2.8.2/json/ext/parser.bundle +0 -0
  10. data/.github/.example/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-24/3.3.0/json-2.8.2/mkmf.log +177 -0
  11. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.github/workflows/ruby.yml +41 -0
  12. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.gitignore +8 -0
  13. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.rspec +3 -0
  14. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
  15. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Gemfile +43 -0
  16. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Guardfile +10 -0
  17. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/LICENSE +20 -0
  18. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/README.md +118 -0
  19. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Rakefile +40 -0
  20. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/ethon.gemspec +26 -0
  21. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curl.rb +90 -0
  22. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/classes.rb +65 -0
  23. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/codes.rb +122 -0
  24. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/constants.rb +80 -0
  25. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/form_options.rb +37 -0
  26. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/functions.rb +58 -0
  27. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/infos.rb +151 -0
  28. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/messages.rb +19 -0
  29. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/options.rb +503 -0
  30. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/settings.rb +12 -0
  31. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/callbacks.rb +149 -0
  32. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/debug_info.rb +47 -0
  33. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/features.rb +31 -0
  34. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/form.rb +107 -0
  35. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/header.rb +61 -0
  36. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/actionable.rb +157 -0
  37. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/custom.rb +29 -0
  38. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/delete.rb +25 -0
  39. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/get.rb +24 -0
  40. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/head.rb +24 -0
  41. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/options.rb +24 -0
  42. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/patch.rb +24 -0
  43. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/post.rb +26 -0
  44. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/postable.rb +32 -0
  45. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/put.rb +27 -0
  46. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/putable.rb +25 -0
  47. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http.rb +68 -0
  48. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/informations.rb +116 -0
  49. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/mirror.rb +36 -0
  50. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/operations.rb +64 -0
  51. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/options.rb +50 -0
  52. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/params.rb +29 -0
  53. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/queryable.rb +154 -0
  54. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/response_callbacks.rb +136 -0
  55. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/util.rb +28 -0
  56. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy.rb +315 -0
  57. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/ethon_error.rb +9 -0
  58. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/global_init.rb +13 -0
  59. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/invalid_option.rb +13 -0
  60. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/invalid_value.rb +13 -0
  61. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_add.rb +12 -0
  62. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_fdset.rb +12 -0
  63. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_remove.rb +12 -0
  64. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_timeout.rb +13 -0
  65. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/select.rb +13 -0
  66. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors.rb +17 -0
  67. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/libc.rb +21 -0
  68. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/loggable.rb +59 -0
  69. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/operations.rb +228 -0
  70. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/options.rb +117 -0
  71. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/stack.rb +49 -0
  72. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi.rb +126 -0
  73. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/version.rb +6 -0
  74. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon.rb +36 -0
  75. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/benchmarks.rb +104 -0
  76. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/memory_leaks.rb +114 -0
  77. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/perf_spec_helper.rb +37 -0
  78. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/memory_test_helpers.rb +76 -0
  79. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/os_memory_leak_tracker.rb +48 -0
  80. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/ruby_object_leak_tracker.rb +49 -0
  81. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/curl_spec.rb +38 -0
  82. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/callbacks_spec.rb +81 -0
  83. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/debug_info_spec.rb +54 -0
  84. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/features_spec.rb +24 -0
  85. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/form_spec.rb +104 -0
  86. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/header_spec.rb +79 -0
  87. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/custom_spec.rb +177 -0
  88. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/delete_spec.rb +21 -0
  89. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/get_spec.rb +126 -0
  90. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/head_spec.rb +80 -0
  91. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/options_spec.rb +51 -0
  92. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/patch_spec.rb +51 -0
  93. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/post_spec.rb +317 -0
  94. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/put_spec.rb +168 -0
  95. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http_spec.rb +64 -0
  96. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/informations_spec.rb +126 -0
  97. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/mirror_spec.rb +47 -0
  98. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/operations_spec.rb +271 -0
  99. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/options_spec.rb +193 -0
  100. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/queryable_spec.rb +235 -0
  101. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/response_callbacks_spec.rb +152 -0
  102. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/util_spec.rb +28 -0
  103. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy_spec.rb +203 -0
  104. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/libc_spec.rb +14 -0
  105. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/loggable_spec.rb +22 -0
  106. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/operations_spec.rb +298 -0
  107. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/options_spec.rb +182 -0
  108. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/stack_spec.rb +80 -0
  109. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi_spec.rb +152 -0
  110. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/spec_helper.rb +28 -0
  111. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/localhost_server.rb +95 -0
  112. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/server.rb +115 -0
  113. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/CHANGELOG.md +456 -0
  114. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/COPYING +49 -0
  115. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/Gemfile +21 -0
  116. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/LICENSE +24 -0
  117. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/LICENSE.SPECS +22 -0
  118. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/README.md +137 -0
  119. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/Rakefile +206 -0
  120. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/ffi.gemspec +42 -0
  121. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/2.5/ffi_c.bundle +0 -0
  122. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/2.6/ffi_c.bundle +0 -0
  123. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/2.7/ffi_c.bundle +0 -0
  124. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/3.0/ffi_c.bundle +0 -0
  125. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/3.1/ffi_c.bundle +0 -0
  126. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/3.2/ffi_c.bundle +0 -0
  127. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/3.3/ffi_c.bundle +0 -0
  128. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/abstract_memory.rb +44 -0
  129. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/autopointer.rb +180 -0
  130. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/buffer.rb +4 -0
  131. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/callback.rb +4 -0
  132. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/compat.rb +43 -0
  133. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/data_converter.rb +67 -0
  134. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/dynamic_library.rb +118 -0
  135. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/enum.rb +302 -0
  136. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/errno.rb +43 -0
  137. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/ffi.rb +50 -0
  138. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/function.rb +71 -0
  139. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/io.rb +62 -0
  140. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/library.rb +576 -0
  141. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/library_path.rb +109 -0
  142. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/managedstruct.rb +84 -0
  143. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/memorypointer.rb +1 -0
  144. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  145. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  146. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/aarch64-freebsd12/types.conf +181 -0
  147. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/aarch64-linux/types.conf +175 -0
  148. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  149. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  150. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  151. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  152. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/arm-linux/types.conf +132 -0
  153. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  154. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  155. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  156. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-darwin/types.conf +100 -0
  157. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  158. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  159. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-gnu/types.conf +107 -0
  160. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-linux/types.conf +103 -0
  161. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  162. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  163. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-solaris/types.conf +122 -0
  164. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/i386-windows/types.conf +52 -0
  165. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/ia64-linux/types.conf +104 -0
  166. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  167. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mips-linux/types.conf +102 -0
  168. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mips64-linux/types.conf +104 -0
  169. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  170. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  171. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  172. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  173. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  174. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  175. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  176. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  177. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  178. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  179. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  180. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
  181. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/riscv64-linux/types.conf +104 -0
  182. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/s390-linux/types.conf +102 -0
  183. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/s390x-linux/types.conf +102 -0
  184. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/sparc-linux/types.conf +102 -0
  185. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  186. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/sparcv9-linux/types.conf +102 -0
  187. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  188. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  189. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  190. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  191. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  192. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-dragonflybsd/types.conf +130 -0
  193. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  194. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  195. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  196. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  197. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  198. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  199. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  200. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  201. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  202. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/platform.rb +187 -0
  203. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/pointer.rb +167 -0
  204. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/struct.rb +317 -0
  205. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/struct_by_reference.rb +72 -0
  206. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/struct_layout.rb +96 -0
  207. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/struct_layout_builder.rb +227 -0
  208. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/tools/const_generator.rb +232 -0
  209. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/tools/generator.rb +105 -0
  210. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/tools/generator_task.rb +32 -0
  211. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/tools/struct_generator.rb +195 -0
  212. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/tools/types_generator.rb +137 -0
  213. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/types.rb +222 -0
  214. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/union.rb +43 -0
  215. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/variadic.rb +80 -0
  216. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi/version.rb +3 -0
  217. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/lib/ffi.rb +27 -0
  218. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/rakelib/ffi_gem_helper.rb +65 -0
  219. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/getlogin.rb +8 -0
  220. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/getpid.rb +8 -0
  221. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/gettimeofday.rb +18 -0
  222. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/hello.rb +8 -0
  223. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/hello_ractor.rb +11 -0
  224. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/inotify.rb +60 -0
  225. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/pty.rb +75 -0
  226. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/qsort.rb +20 -0
  227. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/samples/qsort_ractor.rb +28 -0
  228. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/abstract_memory.rbs +165 -0
  229. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/auto_pointer.rbs +27 -0
  230. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/buffer.rbs +18 -0
  231. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/data_converter.rbs +10 -0
  232. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/dynamic_library.rbs +9 -0
  233. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/enum.rbs +38 -0
  234. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/function.rbs +39 -0
  235. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/library.rbs +42 -0
  236. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/native_type.rbs +86 -0
  237. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/pointer.rbs +42 -0
  238. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/struct.rbs +76 -0
  239. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/struct_by_reference.rbs +11 -0
  240. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/struct_by_value.rbs +7 -0
  241. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/struct_layout.rbs +9 -0
  242. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/struct_layout_builder.rbs +5 -0
  243. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi/type.rbs +39 -0
  244. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-arm64-darwin/sig/ffi.rbs +26 -0
  245. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/BSDL +22 -0
  246. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/CHANGES.md +559 -0
  247. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/COPYING +56 -0
  248. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/LEGAL +60 -0
  249. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/README.md +195 -0
  250. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/fbuffer/fbuffer.h +184 -0
  251. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/generator/Makefile +270 -0
  252. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/generator/extconf.rb +10 -0
  253. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/generator/generator.c +1663 -0
  254. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/parser/Makefile +270 -0
  255. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/parser/extconf.rb +12 -0
  256. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/parser/parser.c +3238 -0
  257. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/ext/json/ext/parser/parser.rl +1465 -0
  258. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/json.gemspec +64 -0
  259. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/bigdecimal.rb +58 -0
  260. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/complex.rb +51 -0
  261. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/core.rb +12 -0
  262. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/date.rb +54 -0
  263. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/date_time.rb +67 -0
  264. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/exception.rb +49 -0
  265. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/ostruct.rb +54 -0
  266. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/range.rb +54 -0
  267. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/rational.rb +49 -0
  268. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/regexp.rb +48 -0
  269. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/set.rb +48 -0
  270. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/struct.rb +52 -0
  271. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/symbol.rb +47 -0
  272. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/add/time.rb +52 -0
  273. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/common.rb +876 -0
  274. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/ext/generator/state.rb +105 -0
  275. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/ext/generator.bundle +0 -0
  276. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/ext/parser.bundle +0 -0
  277. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/ext.rb +23 -0
  278. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/generic_object.rb +75 -0
  279. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/truffle_ruby/generator.rb +621 -0
  280. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json/version.rb +5 -0
  281. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/json-2.8.2/lib/json.rb +587 -0
  282. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.github/workflows/ci.yml +30 -0
  283. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.github/workflows/experimental.yml +33 -0
  284. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.gitignore +8 -0
  285. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.rspec +4 -0
  286. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/CHANGELOG.md +410 -0
  287. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/CONTRIBUTING.md +20 -0
  288. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Gemfile +36 -0
  289. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Guardfile +9 -0
  290. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/LICENSE +22 -0
  291. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/README.md +588 -0
  292. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Rakefile +38 -0
  293. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/UPGRADE.md +55 -0
  294. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus/middleware/params_decoder/helper.rb +76 -0
  295. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus/middleware/params_decoder.rb +57 -0
  296. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus.rb +1 -0
  297. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/adapters/faraday.rb +180 -0
  298. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/dalli.rb +28 -0
  299. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/rails.rb +28 -0
  300. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/redis.rb +35 -0
  301. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/config.rb +85 -0
  302. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/easy_factory.rb +206 -0
  303. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors/no_stub.rb +12 -0
  304. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors/typhoeus_error.rb +8 -0
  305. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors.rb +9 -0
  306. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/expectation.rb +217 -0
  307. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/addable.rb +23 -0
  308. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/before.rb +31 -0
  309. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/block_connection.rb +35 -0
  310. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/cacheable.rb +15 -0
  311. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/memoizable.rb +56 -0
  312. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/queueable.rb +83 -0
  313. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/runnable.rb +19 -0
  314. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/stubbable.rb +28 -0
  315. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra.rb +95 -0
  316. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/pool.rb +70 -0
  317. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/railtie.rb +12 -0
  318. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/actions.rb +125 -0
  319. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/before.rb +30 -0
  320. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/block_connection.rb +52 -0
  321. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/cacheable.rb +38 -0
  322. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/callbacks.rb +151 -0
  323. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/marshal.rb +22 -0
  324. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/memoizable.rb +38 -0
  325. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/operations.rb +40 -0
  326. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/responseable.rb +29 -0
  327. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/streamable.rb +34 -0
  328. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/stubbable.rb +30 -0
  329. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request.rb +223 -0
  330. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/cacheable.rb +14 -0
  331. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/header.rb +105 -0
  332. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/informations.rb +305 -0
  333. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/status.rb +106 -0
  334. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response.rb +68 -0
  335. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/version.rb +5 -0
  336. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus.rb +143 -0
  337. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/perf/profile.rb +14 -0
  338. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/perf/vs_nethttp.rb +64 -0
  339. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/rack/typhoeus/middleware/params_decoder/helper_spec.rb +156 -0
  340. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/rack/typhoeus/middleware/params_decoder_spec.rb +31 -0
  341. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/spec_helper.rb +29 -0
  342. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/localhost_server.rb +94 -0
  343. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/memory_cache.rb +15 -0
  344. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/server.rb +116 -0
  345. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/adapters/faraday_spec.rb +339 -0
  346. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/dalli_spec.rb +41 -0
  347. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb +41 -0
  348. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/config_spec.rb +15 -0
  349. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/easy_factory_spec.rb +143 -0
  350. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/errors/no_stub_spec.rb +13 -0
  351. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/expectation_spec.rb +280 -0
  352. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/addable_spec.rb +22 -0
  353. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/before_spec.rb +98 -0
  354. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/block_connection_spec.rb +18 -0
  355. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/cacheable_spec.rb +88 -0
  356. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/memoizable_spec.rb +53 -0
  357. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/queueable_spec.rb +98 -0
  358. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/runnable_spec.rb +137 -0
  359. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/stubbable_spec.rb +48 -0
  360. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra_spec.rb +22 -0
  361. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/pool_spec.rb +137 -0
  362. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/actions_spec.rb +19 -0
  363. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/before_spec.rb +93 -0
  364. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/block_connection_spec.rb +75 -0
  365. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/cacheable_spec.rb +94 -0
  366. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/callbacks_spec.rb +91 -0
  367. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/marshal_spec.rb +60 -0
  368. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/memoizable_spec.rb +34 -0
  369. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/operations_spec.rb +101 -0
  370. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/responseable_spec.rb +13 -0
  371. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/stubbable_spec.rb +45 -0
  372. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request_spec.rb +256 -0
  373. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/header_spec.rb +147 -0
  374. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/informations_spec.rb +323 -0
  375. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/status_spec.rb +256 -0
  376. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response_spec.rb +100 -0
  377. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus_spec.rb +105 -0
  378. data/.github/.example/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/typhoeus.gemspec +25 -0
  379. data/.github/.example/vendor/bundle/ruby/3.3.0/specifications/ethon-0.16.0.gemspec +24 -0
  380. data/.github/.example/vendor/bundle/ruby/3.3.0/specifications/ffi-1.17.0-arm64-darwin.gemspec +31 -0
  381. data/.github/.example/vendor/bundle/ruby/3.3.0/specifications/json-2.8.2.gemspec +0 -0
  382. data/.github/.example/vendor/bundle/ruby/3.3.0/specifications/typhoeus-1.4.1.gemspec +24 -0
  383. data/.github/dependabot.yml +10 -0
  384. data/.github/workflows/test.yml +75 -0
  385. data/README.md +546 -562
  386. data/docker-compose.yml +47 -0
  387. data/docs/AccountAnalytics.md +1 -1
  388. data/docs/Achievement.md +8 -0
  389. data/docs/AdditionalCampaignProperties.md +1 -1
  390. data/docs/AnalyticsProduct.md +23 -0
  391. data/docs/AnalyticsProductSKU.md +21 -0
  392. data/docs/ApplicationCampaignStats.md +2 -0
  393. data/docs/ApplicationCustomer.md +8 -8
  394. data/docs/ApplicationSession.md +2 -2
  395. data/docs/AudienceCustomer.md +2 -2
  396. data/docs/BaseLoyaltyProgram.md +3 -1
  397. data/docs/BulkOperationOnCampaigns.md +3 -1
  398. data/docs/Campaign.md +3 -1
  399. data/docs/CampaignTemplate.md +3 -1
  400. data/docs/CampaignTemplateCouponReservationSettings.md +19 -0
  401. data/docs/CampaignVersions.md +3 -1
  402. data/docs/Change.md +1 -1
  403. data/docs/CouponDeletionFilters.md +1 -1
  404. data/docs/CreateAchievement.md +9 -1
  405. data/docs/CustomerProfile.md +2 -2
  406. data/docs/CustomerProfileAudienceRequestItem.md +1 -1
  407. data/docs/CustomerSession.md +1 -1
  408. data/docs/CustomerSessionV2.md +10 -8
  409. data/docs/FeatureFlag.md +1 -1
  410. data/docs/GenerateCampaignDescription.md +2 -2
  411. data/docs/GenerateCampaignTags.md +2 -2
  412. data/docs/GenerateLoyaltyCard.md +3 -1
  413. data/docs/InlineResponse20020.md +1 -1
  414. data/docs/InlineResponse20021.md +4 -2
  415. data/docs/InlineResponse20022.md +3 -3
  416. data/docs/InlineResponse20023.md +1 -1
  417. data/docs/InlineResponse20024.md +1 -3
  418. data/docs/InlineResponse20025.md +1 -1
  419. data/docs/InlineResponse20026.md +2 -2
  420. data/docs/InlineResponse20027.md +2 -2
  421. data/docs/InlineResponse20028.md +3 -3
  422. data/docs/InlineResponse20029.md +5 -3
  423. data/docs/InlineResponse20030.md +1 -3
  424. data/docs/InlineResponse20031.md +1 -1
  425. data/docs/InlineResponse20032.md +3 -1
  426. data/docs/InlineResponse20033.md +3 -5
  427. data/docs/InlineResponse20034.md +5 -3
  428. data/docs/InlineResponse20035.md +3 -5
  429. data/docs/InlineResponse20036.md +1 -1
  430. data/docs/InlineResponse20037.md +1 -1
  431. data/docs/InlineResponse20038.md +1 -1
  432. data/docs/InlineResponse20039.md +1 -1
  433. data/docs/InlineResponse20040.md +1 -1
  434. data/docs/InlineResponse20041.md +4 -2
  435. data/docs/InlineResponse20042.md +2 -4
  436. data/docs/InlineResponse20043.md +1 -1
  437. data/docs/InlineResponse20044.md +5 -3
  438. data/docs/InlineResponse20045.md +1 -3
  439. data/docs/InlineResponse20046.md +3 -3
  440. data/docs/IntegrationApi.md +8 -8
  441. data/docs/IntegrationCustomerSessionResponse.md +1 -1
  442. data/docs/LedgerInfo.md +2 -2
  443. data/docs/ListCampaignStoreBudgets.md +23 -0
  444. data/docs/ListCampaignStoreBudgetsStore.md +21 -0
  445. data/docs/LoyaltyCard.md +4 -0
  446. data/docs/LoyaltyCardBatch.md +3 -1
  447. data/docs/LoyaltyLedger.md +1 -1
  448. data/docs/LoyaltyMembership.md +1 -1
  449. data/docs/LoyaltyProgram.md +5 -3
  450. data/docs/LoyaltyProgramBalance.md +2 -2
  451. data/docs/LoyaltyProgramEntity.md +5 -1
  452. data/docs/LoyaltyTier.md +6 -2
  453. data/docs/ManagementApi.md +114 -188
  454. data/docs/MessageLogEntry.md +10 -2
  455. data/docs/NewCampaignStoreBudget.md +21 -0
  456. data/docs/NewCampaignStoreBudgetStoreLimit.md +19 -0
  457. data/docs/NewCampaignTemplate.md +2 -0
  458. data/docs/NewCustomerSessionV2.md +4 -4
  459. data/docs/NewLoyaltyProgram.md +2 -0
  460. data/docs/NewLoyaltyTier.md +2 -2
  461. data/docs/NewPicklist.md +1 -1
  462. data/docs/NewWebhook.md +1 -1
  463. data/docs/Picklist.md +1 -1
  464. data/docs/Product.md +1 -1
  465. data/docs/ProductSearchMatch.md +21 -0
  466. data/docs/ProductSkuUnitAnalytics.md +23 -0
  467. data/docs/ProductUnitAnalytics.md +25 -0
  468. data/docs/ScimNewUser.md +1 -1
  469. data/docs/ScimServiceProviderConfigResponse.md +3 -1
  470. data/docs/ScimServiceProviderConfigResponseSort.md +17 -0
  471. data/docs/ScimUser.md +1 -1
  472. data/docs/Store.md +2 -2
  473. data/docs/StrikethroughDebugResponse.md +19 -0
  474. data/docs/SummaryCampaignStoreBudget.md +21 -0
  475. data/docs/TemplateArgDef.md +2 -0
  476. data/docs/UpdateAchievement.md +9 -1
  477. data/docs/UpdateCampaignTemplate.md +2 -0
  478. data/docs/UpdateLoyaltyProgram.md +2 -0
  479. data/docs/UpdateLoyaltyProgramTier.md +21 -0
  480. data/docs/UpdatePicklist.md +1 -1
  481. data/docs/User.md +2 -2
  482. data/docs/ValueMap.md +23 -0
  483. data/docs/Webhook.md +1 -1
  484. data/docs/WebhookLogEntry.md +1 -1
  485. data/docs/WebhookWithOutgoingIntegrationDetails.md +1 -1
  486. data/lib/talon_one/api/integration_api.rb +13 -13
  487. data/lib/talon_one/api/management_api.rb +156 -245
  488. data/lib/talon_one/models/account.rb +0 -1
  489. data/lib/talon_one/models/account_additional_cost.rb +0 -1
  490. data/lib/talon_one/models/achievement.rb +87 -2
  491. data/lib/talon_one/models/add_loyalty_points_effect_props.rb +11 -0
  492. data/lib/talon_one/models/additional_campaign_properties.rb +3 -3
  493. data/lib/talon_one/models/analytics_product.rb +252 -0
  494. data/lib/talon_one/models/analytics_product_sku.rb +242 -0
  495. data/lib/talon_one/models/application.rb +0 -1
  496. data/lib/talon_one/models/application_api_key.rb +0 -1
  497. data/lib/talon_one/models/application_campaign_analytics.rb +2 -2
  498. data/lib/talon_one/models/application_campaign_stats.rb +16 -1
  499. data/lib/talon_one/models/application_cif.rb +0 -1
  500. data/lib/talon_one/models/application_cif_expression.rb +0 -1
  501. data/lib/talon_one/models/application_customer.rb +4 -5
  502. data/lib/talon_one/models/application_event.rb +0 -1
  503. data/lib/talon_one/models/application_referee.rb +0 -1
  504. data/lib/talon_one/models/application_session.rb +1 -2
  505. data/lib/talon_one/models/async_coupon_deletion_job_response.rb +0 -1
  506. data/lib/talon_one/models/attribute.rb +0 -1
  507. data/lib/talon_one/models/audience.rb +0 -1
  508. data/lib/talon_one/models/audience_customer.rb +1 -2
  509. data/lib/talon_one/models/base_loyalty_program.rb +26 -4
  510. data/lib/talon_one/models/base_notification.rb +0 -1
  511. data/lib/talon_one/models/base_notification_webhook.rb +0 -1
  512. data/lib/talon_one/models/bulk_operation_on_campaigns.rb +16 -6
  513. data/lib/talon_one/models/campaign.rb +26 -5
  514. data/lib/talon_one/models/campaign_analytics.rb +0 -1
  515. data/lib/talon_one/models/campaign_collection.rb +0 -1
  516. data/lib/talon_one/models/campaign_collection_without_payload.rb +0 -1
  517. data/lib/talon_one/models/campaign_evaluation_group.rb +0 -1
  518. data/lib/talon_one/models/campaign_group.rb +0 -1
  519. data/lib/talon_one/models/campaign_set.rb +0 -1
  520. data/lib/talon_one/models/campaign_store_budget.rb +0 -1
  521. data/lib/talon_one/models/campaign_template.rb +10 -2
  522. data/lib/talon_one/models/campaign_template_coupon_reservation_settings.rb +243 -0
  523. data/lib/talon_one/models/campaign_versions.rb +45 -1
  524. data/lib/talon_one/models/card_ledger_transaction_log_entry.rb +11 -0
  525. data/lib/talon_one/models/card_ledger_transaction_log_entry_integration_api.rb +11 -0
  526. data/lib/talon_one/models/catalog.rb +0 -1
  527. data/lib/talon_one/models/catalog_item.rb +0 -1
  528. data/lib/talon_one/models/change.rb +0 -1
  529. data/lib/talon_one/models/code_generator_settings.rb +11 -0
  530. data/lib/talon_one/models/collection.rb +0 -1
  531. data/lib/talon_one/models/collection_item.rb +0 -1
  532. data/lib/talon_one/models/collection_without_payload.rb +0 -1
  533. data/lib/talon_one/models/coupon.rb +0 -1
  534. data/lib/talon_one/models/coupon_creation_job.rb +0 -1
  535. data/lib/talon_one/models/coupon_deletion_filters.rb +0 -2
  536. data/lib/talon_one/models/coupon_deletion_job.rb +0 -1
  537. data/lib/talon_one/models/create_achievement.rb +90 -4
  538. data/lib/talon_one/models/custom_effect.rb +0 -1
  539. data/lib/talon_one/models/customer_profile.rb +1 -2
  540. data/lib/talon_one/models/customer_profile_audience_request_item.rb +1 -1
  541. data/lib/talon_one/models/customer_profile_integration_request_v2.rb +1 -1
  542. data/lib/talon_one/models/customer_session.rb +0 -1
  543. data/lib/talon_one/models/customer_session_v2.rb +20 -10
  544. data/lib/talon_one/models/deactivate_user_request.rb +0 -1
  545. data/lib/talon_one/models/deduct_loyalty_points_effect_props.rb +11 -0
  546. data/lib/talon_one/models/effect.rb +1 -1
  547. data/lib/talon_one/models/environment.rb +0 -1
  548. data/lib/talon_one/models/event.rb +0 -1
  549. data/lib/talon_one/models/event_type.rb +0 -1
  550. data/lib/talon_one/models/event_v2.rb +0 -1
  551. data/lib/talon_one/models/export.rb +0 -1
  552. data/lib/talon_one/models/features_feed.rb +0 -1
  553. data/lib/talon_one/models/generate_campaign_description.rb +11 -11
  554. data/lib/talon_one/models/generate_campaign_tags.rb +11 -11
  555. data/lib/talon_one/models/generate_loyalty_card.rb +40 -4
  556. data/lib/talon_one/models/giveaway.rb +0 -1
  557. data/lib/talon_one/models/import.rb +0 -1
  558. data/lib/talon_one/models/inline_response20020.rb +1 -1
  559. data/lib/talon_one/models/inline_response20021.rb +11 -7
  560. data/lib/talon_one/models/inline_response20022.rb +10 -10
  561. data/lib/talon_one/models/inline_response20023.rb +1 -1
  562. data/lib/talon_one/models/inline_response20024.rb +6 -10
  563. data/lib/talon_one/models/inline_response20025.rb +1 -1
  564. data/lib/talon_one/models/inline_response20026.rb +1 -6
  565. data/lib/talon_one/models/inline_response20027.rb +6 -1
  566. data/lib/talon_one/models/inline_response20028.rb +11 -11
  567. data/lib/talon_one/models/inline_response20029.rb +11 -7
  568. data/lib/talon_one/models/inline_response20030.rb +2 -11
  569. data/lib/talon_one/models/inline_response20031.rb +1 -1
  570. data/lib/talon_one/models/inline_response20032.rb +11 -2
  571. data/lib/talon_one/models/inline_response20033.rb +7 -11
  572. data/lib/talon_one/models/inline_response20034.rb +11 -7
  573. data/lib/talon_one/models/inline_response20035.rb +7 -11
  574. data/lib/talon_one/models/inline_response20036.rb +1 -1
  575. data/lib/talon_one/models/inline_response20037.rb +1 -1
  576. data/lib/talon_one/models/inline_response20038.rb +1 -1
  577. data/lib/talon_one/models/inline_response20039.rb +1 -1
  578. data/lib/talon_one/models/inline_response20040.rb +1 -1
  579. data/lib/talon_one/models/inline_response20041.rb +11 -7
  580. data/lib/talon_one/models/inline_response20042.rb +7 -11
  581. data/lib/talon_one/models/inline_response20043.rb +1 -1
  582. data/lib/talon_one/models/inline_response20044.rb +11 -7
  583. data/lib/talon_one/models/inline_response20045.rb +2 -11
  584. data/lib/talon_one/models/inline_response20046.rb +6 -1
  585. data/lib/talon_one/models/integration_coupon.rb +0 -1
  586. data/lib/talon_one/models/integration_customer_session_response.rb +1 -0
  587. data/lib/talon_one/models/integration_event.rb +0 -1
  588. data/lib/talon_one/models/integration_event_v2_request.rb +0 -1
  589. data/lib/talon_one/models/inventory_coupon.rb +0 -1
  590. data/lib/talon_one/models/inventory_referral.rb +0 -1
  591. data/lib/talon_one/models/item_attribute.rb +0 -1
  592. data/lib/talon_one/models/ledger_entry.rb +1 -1
  593. data/lib/talon_one/models/ledger_info.rb +3 -3
  594. data/lib/talon_one/models/library_attribute.rb +0 -1
  595. data/lib/talon_one/models/limit_counter.rb +0 -1
  596. data/lib/talon_one/models/list_campaign_store_budgets.rb +248 -0
  597. data/lib/talon_one/models/list_campaign_store_budgets_store.rb +239 -0
  598. data/lib/talon_one/models/login_params.rb +0 -1
  599. data/lib/talon_one/models/loyalty_balance_with_tier.rb +1 -1
  600. data/lib/talon_one/models/loyalty_card.rb +54 -2
  601. data/lib/talon_one/models/loyalty_card_balances.rb +1 -1
  602. data/lib/talon_one/models/loyalty_card_batch.rb +13 -5
  603. data/lib/talon_one/models/loyalty_program.rb +25 -3
  604. data/lib/talon_one/models/loyalty_program_balance.rb +2 -2
  605. data/lib/talon_one/models/loyalty_program_entity.rb +24 -4
  606. data/lib/talon_one/models/loyalty_program_transaction.rb +11 -0
  607. data/lib/talon_one/models/loyalty_tier.rb +24 -4
  608. data/lib/talon_one/models/management_key.rb +0 -1
  609. data/lib/talon_one/models/message_log_entry.rb +67 -7
  610. data/lib/talon_one/models/model_return.rb +0 -1
  611. data/lib/talon_one/models/multiple_audiences_item.rb +0 -1
  612. data/lib/talon_one/models/multiple_customer_profile_integration_request_item.rb +1 -1
  613. data/lib/talon_one/models/new_account_sign_up.rb +0 -1
  614. data/lib/talon_one/models/new_additional_cost.rb +0 -1
  615. data/lib/talon_one/models/new_application_api_key.rb +0 -1
  616. data/lib/talon_one/models/new_attribute.rb +0 -1
  617. data/lib/talon_one/models/new_audience.rb +0 -1
  618. data/lib/talon_one/models/new_base_notification.rb +0 -1
  619. data/lib/talon_one/models/new_campaign.rb +0 -1
  620. data/lib/talon_one/models/new_campaign_collection.rb +0 -1
  621. data/lib/talon_one/models/new_campaign_set.rb +0 -1
  622. data/lib/talon_one/models/new_campaign_store_budget.rb +283 -0
  623. data/lib/talon_one/models/new_campaign_store_budget_store_limit.rb +227 -0
  624. data/lib/talon_one/models/new_campaign_template.rb +10 -1
  625. data/lib/talon_one/models/new_catalog.rb +0 -1
  626. data/lib/talon_one/models/new_collection.rb +0 -1
  627. data/lib/talon_one/models/new_coupon_creation_job.rb +0 -1
  628. data/lib/talon_one/models/new_coupons.rb +0 -1
  629. data/lib/talon_one/models/new_coupons_for_multiple_recipients.rb +0 -1
  630. data/lib/talon_one/models/new_custom_effect.rb +0 -1
  631. data/lib/talon_one/models/new_customer_session.rb +0 -1
  632. data/lib/talon_one/models/new_customer_session_v2.rb +3 -3
  633. data/lib/talon_one/models/new_event.rb +0 -1
  634. data/lib/talon_one/models/new_event_type.rb +0 -1
  635. data/lib/talon_one/models/new_loyalty_program.rb +24 -2
  636. data/lib/talon_one/models/new_loyalty_tier.rb +2 -2
  637. data/lib/talon_one/models/new_management_key.rb +0 -1
  638. data/lib/talon_one/models/new_multiple_audiences_item.rb +0 -1
  639. data/lib/talon_one/models/new_referral.rb +0 -1
  640. data/lib/talon_one/models/new_referrals_for_multiple_advocates.rb +0 -1
  641. data/lib/talon_one/models/new_role.rb +0 -1
  642. data/lib/talon_one/models/new_role_v2.rb +0 -1
  643. data/lib/talon_one/models/new_saml_connection.rb +1 -1
  644. data/lib/talon_one/models/new_store.rb +0 -1
  645. data/lib/talon_one/models/new_user.rb +0 -1
  646. data/lib/talon_one/models/new_webhook.rb +1 -2
  647. data/lib/talon_one/models/outgoing_integration_template_with_configuration_details.rb +0 -1
  648. data/lib/talon_one/models/picklist.rb +0 -1
  649. data/lib/talon_one/models/product.rb +1 -1
  650. data/lib/talon_one/models/product_search_match.rb +237 -0
  651. data/lib/talon_one/models/product_sku_unit_analytics.rb +256 -0
  652. data/lib/talon_one/models/product_unit_analytics.rb +271 -0
  653. data/lib/talon_one/models/referral.rb +0 -1
  654. data/lib/talon_one/models/revision.rb +0 -1
  655. data/lib/talon_one/models/revision_version.rb +0 -1
  656. data/lib/talon_one/models/role.rb +0 -1
  657. data/lib/talon_one/models/role_assign.rb +0 -1
  658. data/lib/talon_one/models/role_v2.rb +0 -1
  659. data/lib/talon_one/models/rollback_added_loyalty_points_effect_props.rb +11 -0
  660. data/lib/talon_one/models/rollback_deducted_loyalty_points_effect_props.rb +11 -0
  661. data/lib/talon_one/models/ruleset.rb +0 -1
  662. data/lib/talon_one/models/saml_connection.rb +1 -1
  663. data/lib/talon_one/models/scim_new_user.rb +5 -0
  664. data/lib/talon_one/models/scim_service_provider_config_response.rb +13 -4
  665. data/lib/talon_one/models/scim_service_provider_config_response_sort.rb +208 -0
  666. data/lib/talon_one/models/scim_user.rb +5 -0
  667. data/lib/talon_one/models/store.rb +1 -2
  668. data/lib/talon_one/models/strikethrough_debug_response.rb +221 -0
  669. data/lib/talon_one/models/summary_campaign_store_budget.rb +280 -0
  670. data/lib/talon_one/models/talang_attribute.rb +0 -1
  671. data/lib/talon_one/models/template_arg_def.rb +11 -2
  672. data/lib/talon_one/models/template_def.rb +0 -1
  673. data/lib/talon_one/models/template_limit_config.rb +0 -1
  674. data/lib/talon_one/models/transfer_loyalty_card.rb +11 -0
  675. data/lib/talon_one/models/update_achievement.rb +90 -4
  676. data/lib/talon_one/models/update_campaign_evaluation_group.rb +0 -1
  677. data/lib/talon_one/models/update_campaign_group.rb +0 -1
  678. data/lib/talon_one/models/update_campaign_template.rb +10 -1
  679. data/lib/talon_one/models/update_coupon.rb +0 -1
  680. data/lib/talon_one/models/update_coupon_batch.rb +0 -1
  681. data/lib/talon_one/models/update_loyalty_program.rb +24 -2
  682. data/lib/talon_one/models/update_loyalty_program_tier.rb +257 -0
  683. data/lib/talon_one/models/update_picklist.rb +0 -1
  684. data/lib/talon_one/models/user.rb +0 -1
  685. data/lib/talon_one/models/value_map.rb +245 -0
  686. data/lib/talon_one/models/webhook.rb +1 -2
  687. data/lib/talon_one/models/webhook_log_entry.rb +1 -1
  688. data/lib/talon_one/models/webhook_with_outgoing_integration_details.rb +1 -2
  689. data/lib/talon_one/version.rb +1 -1
  690. data/lib/talon_one.rb +15 -4
  691. data/spec/api/integration_api_spec.rb +5 -5
  692. data/spec/api/management_api_spec.rb +58 -76
  693. data/spec/models/achievement_spec.rb +32 -0
  694. data/spec/models/additional_campaign_properties_spec.rb +1 -1
  695. data/spec/models/analytics_product_sku_spec.rb +53 -0
  696. data/spec/models/analytics_product_spec.rb +59 -0
  697. data/spec/models/application_campaign_analytics_spec.rb +1 -1
  698. data/spec/models/application_campaign_stats_spec.rb +6 -0
  699. data/spec/models/base_loyalty_program_spec.rb +10 -0
  700. data/spec/models/bulk_operation_on_campaigns_spec.rb +7 -1
  701. data/spec/models/campaign_spec.rb +11 -1
  702. data/spec/models/campaign_template_coupon_reservation_settings_spec.rb +47 -0
  703. data/spec/models/campaign_template_spec.rb +6 -0
  704. data/spec/models/campaign_versions_spec.rb +10 -0
  705. data/spec/models/create_achievement_spec.rb +32 -0
  706. data/spec/models/customer_session_v2_spec.rb +6 -0
  707. data/spec/models/generate_campaign_description_spec.rb +1 -1
  708. data/spec/models/generate_campaign_tags_spec.rb +1 -1
  709. data/spec/models/generate_loyalty_card_spec.rb +6 -0
  710. data/spec/models/inline_response20021_spec.rb +6 -0
  711. data/spec/models/inline_response20022_spec.rb +2 -2
  712. data/spec/models/inline_response20024_spec.rb +0 -6
  713. data/spec/models/inline_response20028_spec.rb +1 -1
  714. data/spec/models/inline_response20029_spec.rb +6 -0
  715. data/spec/models/inline_response20030_spec.rb +0 -6
  716. data/spec/models/inline_response20032_spec.rb +6 -0
  717. data/spec/models/inline_response20033_spec.rb +0 -6
  718. data/spec/models/inline_response20034_spec.rb +6 -0
  719. data/spec/models/inline_response20035_spec.rb +0 -6
  720. data/spec/models/inline_response20041_spec.rb +6 -0
  721. data/spec/models/inline_response20042_spec.rb +0 -6
  722. data/spec/models/inline_response20044_spec.rb +6 -0
  723. data/spec/models/inline_response20045_spec.rb +0 -6
  724. data/spec/models/limit_config_spec.rb +1 -1
  725. data/spec/models/list_campaign_store_budgets_spec.rb +59 -0
  726. data/spec/models/list_campaign_store_budgets_store_spec.rb +53 -0
  727. data/spec/models/loyalty_card_batch_spec.rb +6 -0
  728. data/spec/models/loyalty_card_spec.rb +12 -0
  729. data/spec/models/loyalty_program_entity_spec.rb +12 -0
  730. data/spec/models/loyalty_program_spec.rb +10 -0
  731. data/spec/models/loyalty_tier_spec.rb +12 -0
  732. data/spec/models/message_log_entry_spec.rb +25 -1
  733. data/spec/models/new_campaign_store_budget_spec.rb +61 -0
  734. data/spec/models/new_campaign_store_budget_store_limit_spec.rb +47 -0
  735. data/spec/models/new_campaign_template_spec.rb +6 -0
  736. data/spec/models/new_loyalty_program_spec.rb +10 -0
  737. data/spec/models/product_search_match_spec.rb +53 -0
  738. data/spec/models/product_sku_unit_analytics_spec.rb +59 -0
  739. data/spec/models/product_unit_analytics_spec.rb +65 -0
  740. data/spec/models/scim_service_provider_config_response_sort_spec.rb +41 -0
  741. data/spec/models/scim_service_provider_config_response_spec.rb +6 -0
  742. data/spec/models/strikethrough_debug_response_spec.rb +47 -0
  743. data/spec/models/summary_campaign_store_budget_spec.rb +61 -0
  744. data/spec/models/template_arg_def_spec.rb +6 -0
  745. data/spec/models/template_limit_config_spec.rb +1 -1
  746. data/spec/models/update_achievement_spec.rb +32 -0
  747. data/spec/models/update_campaign_template_spec.rb +6 -0
  748. data/spec/models/update_loyalty_program_spec.rb +10 -0
  749. data/spec/models/update_loyalty_program_tier_spec.rb +53 -0
  750. data/spec/models/value_map_spec.rb +59 -0
  751. metadata +447 -6
@@ -0,0 +1,576 @@
1
+ #
2
+ # Copyright (C) 2008-2010 Wayne Meissner
3
+ #
4
+ # This file is part of ruby-ffi.
5
+ #
6
+ # All rights reserved.
7
+ #
8
+ # Redistribution and use in source and binary forms, with or without
9
+ # modification, are permitted provided that the following conditions are met:
10
+ #
11
+ # * Redistributions of source code must retain the above copyright notice, this
12
+ # list of conditions and the following disclaimer.
13
+ # * Redistributions in binary form must reproduce the above copyright notice
14
+ # this list of conditions and the following disclaimer in the documentation
15
+ # and/or other materials provided with the distribution.
16
+ # * Neither the name of the Ruby FFI project nor the names of its contributors
17
+ # may be used to endorse or promote products derived from this software
18
+ # without specific prior written permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
24
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
30
+
31
+ require 'ffi/dynamic_library'
32
+
33
+ module FFI
34
+ CURRENT_PROCESS = USE_THIS_PROCESS_AS_LIBRARY = FFI.make_shareable(Object.new)
35
+
36
+ # @param [String, FFI::LibraryPath] lib library name or LibraryPath object
37
+ # @return [String] library name formatted for current platform
38
+ # Transform a generic library name to a platform library name
39
+ # @example
40
+ # # Linux
41
+ # FFI.map_library_name 'c' # -> "libc.so.6"
42
+ # FFI.map_library_name 'jpeg' # -> "libjpeg.so"
43
+ # # Windows
44
+ # FFI.map_library_name 'c' # -> "msvcrt.dll"
45
+ # FFI.map_library_name 'jpeg' # -> "jpeg.dll"
46
+ def self.map_library_name(lib)
47
+ # Mangle the library name to reflect the native library naming conventions
48
+ LibraryPath.wrap(lib).to_s
49
+ end
50
+
51
+ # Exception raised when a function is not found in libraries
52
+ class NotFoundError < LoadError
53
+ def initialize(function, *libraries)
54
+ super("Function '#{function}' not found in [#{libraries[0].nil? ? 'current process' : libraries.join(", ")}]")
55
+ end
56
+ end
57
+
58
+ # This module is the base to use native functions.
59
+ #
60
+ # A basic usage may be:
61
+ # require 'ffi'
62
+ #
63
+ # module Hello
64
+ # extend FFI::Library
65
+ # ffi_lib FFI::Library::LIBC
66
+ # attach_function 'puts', [ :string ], :int
67
+ # end
68
+ #
69
+ # Hello.puts("Hello, World")
70
+ #
71
+ #
72
+ module Library
73
+ CURRENT_PROCESS = FFI::CURRENT_PROCESS
74
+ LIBC = FFI::Platform::LIBC
75
+
76
+ # @param mod extended object
77
+ # @return [nil]
78
+ # @raise {RuntimeError} if +mod+ is not a Module
79
+ # Test if extended object is a Module. If not, raise RuntimeError.
80
+ def self.extended(mod)
81
+ raise RuntimeError.new("must only be extended by module") unless mod.kind_of?(::Module)
82
+ end
83
+
84
+
85
+ # @param [Array] names names of libraries to load
86
+ # @return [Array<DynamicLibrary>]
87
+ # @raise {LoadError} if a library cannot be opened
88
+ # Load native libraries.
89
+ def ffi_lib(*names)
90
+ raise LoadError.new("library names list must not be empty") if names.empty?
91
+
92
+ lib_flags = defined?(@ffi_lib_flags) && @ffi_lib_flags
93
+
94
+ @ffi_libs = names.map do |name|
95
+ FFI::DynamicLibrary.send(:load_library, name, lib_flags)
96
+ end
97
+ end
98
+
99
+ # Set the calling convention for {#attach_function} and {#callback}
100
+ #
101
+ # @see http://en.wikipedia.org/wiki/Stdcall#stdcall
102
+ # @note +:stdcall+ is typically used for attaching Windows API functions
103
+ #
104
+ # @param [Symbol] convention one of +:default+, +:stdcall+
105
+ # @return [Symbol] the new calling convention
106
+ def ffi_convention(convention = nil)
107
+ @ffi_convention ||= :default
108
+ @ffi_convention = convention if convention
109
+ @ffi_convention
110
+ end
111
+
112
+ # @see #ffi_lib
113
+ # @return [Array<FFI::DynamicLibrary>] array of currently loaded FFI libraries
114
+ # @raise [LoadError] if no libraries have been loaded (using {#ffi_lib})
115
+ # Get FFI libraries loaded using {#ffi_lib}.
116
+ def ffi_libraries
117
+ raise LoadError.new("no library specified") if !defined?(@ffi_libs) || @ffi_libs.empty?
118
+ @ffi_libs
119
+ end
120
+
121
+ # Flags used in {#ffi_lib}.
122
+ #
123
+ # This map allows you to supply symbols to {#ffi_lib_flags} instead of
124
+ # the actual constants.
125
+ FlagsMap = {
126
+ :global => DynamicLibrary::RTLD_GLOBAL,
127
+ :local => DynamicLibrary::RTLD_LOCAL,
128
+ :lazy => DynamicLibrary::RTLD_LAZY,
129
+ :now => DynamicLibrary::RTLD_NOW
130
+ }
131
+
132
+ # Sets library flags for {#ffi_lib}.
133
+ #
134
+ # @example
135
+ # ffi_lib_flags(:lazy, :local) # => 5
136
+ #
137
+ # @param [Symbol, …] flags (see {FlagsMap})
138
+ # @return [Integer] the new value
139
+ def ffi_lib_flags(*flags)
140
+ @ffi_lib_flags = flags.inject(0) { |result, f| result | FlagsMap[f] }
141
+ end
142
+
143
+
144
+ ##
145
+ # @overload attach_function(func, args, returns, options = {})
146
+ # @example attach function without an explicit name
147
+ # module Foo
148
+ # extend FFI::Library
149
+ # ffi_lib FFI::Library::LIBC
150
+ # attach_function :malloc, [:size_t], :pointer
151
+ # end
152
+ # # now callable via Foo.malloc
153
+ # @overload attach_function(name, func, args, returns, options = {})
154
+ # @example attach function with an explicit name
155
+ # module Bar
156
+ # extend FFI::Library
157
+ # ffi_lib FFI::Library::LIBC
158
+ # attach_function :c_malloc, :malloc, [:size_t], :pointer
159
+ # end
160
+ # # now callable via Bar.c_malloc
161
+ #
162
+ # Attach C function +func+ to this module.
163
+ #
164
+ #
165
+ # @param [#to_s] name name of ruby method to attach as
166
+ # @param [#to_s] func name of C function to attach
167
+ # @param [Array<Symbol>] args an array of types
168
+ # @param [Symbol] returns type of return value
169
+ # @option options [Boolean] :blocking (@blocking) set to true if the C function is a blocking call
170
+ # @option options [Symbol] :convention (:default) calling convention (see {#ffi_convention})
171
+ # @option options [FFI::Enums] :enums
172
+ # @option options [Hash] :type_map
173
+ #
174
+ # @return [FFI::VariadicInvoker]
175
+ #
176
+ # @raise [FFI::NotFoundError] if +func+ cannot be found in the attached libraries (see {#ffi_lib})
177
+ def attach_function(name, func, args, returns = nil, options = nil)
178
+ mname, a2, a3, a4, a5 = name, func, args, returns, options
179
+ cname, arg_types, ret_type, opts = (a4 && (a2.is_a?(String) || a2.is_a?(Symbol))) ? [ a2, a3, a4, a5 ] : [ mname.to_s, a2, a3, a4 ]
180
+
181
+ # Convert :foo to the native type
182
+ arg_types = arg_types.map { |e| find_type(e) }
183
+ options = {
184
+ :convention => ffi_convention,
185
+ :type_map => defined?(@ffi_typedefs) ? @ffi_typedefs : nil,
186
+ :blocking => defined?(@blocking) && @blocking,
187
+ :enums => defined?(@ffi_enums) ? @ffi_enums : nil,
188
+ }
189
+
190
+ @blocking = false
191
+ options.merge!(opts) if opts && opts.is_a?(Hash)
192
+
193
+ # Try to locate the function in any of the libraries
194
+ invokers = []
195
+ ffi_libraries.each do |lib|
196
+ if invokers.empty?
197
+ begin
198
+ function = nil
199
+ function_names(cname, arg_types).find do |fname|
200
+ function = lib.find_function(fname)
201
+ end
202
+ raise LoadError unless function
203
+
204
+ invokers << if arg_types[-1] == FFI::NativeType::VARARGS
205
+ VariadicInvoker.new(function, arg_types, find_type(ret_type), options)
206
+
207
+ else
208
+ Function.new(find_type(ret_type), arg_types, function, options)
209
+ end
210
+
211
+ rescue LoadError
212
+ end
213
+ end
214
+ end
215
+ invoker = invokers.compact.shift
216
+ raise FFI::NotFoundError.new(cname.to_s, ffi_libraries.map { |lib| lib.name }) unless invoker
217
+
218
+ invoker.attach(self, mname.to_s)
219
+ invoker
220
+ end
221
+
222
+ # @param [#to_s] name function name
223
+ # @param [Array] arg_types function's argument types
224
+ # @return [Array<String>]
225
+ # This function returns a list of possible names to lookup.
226
+ # @note Function names on windows may be decorated if they are using stdcall. See
227
+ # * http://en.wikipedia.org/wiki/Name_mangling#C_name_decoration_in_Microsoft_Windows
228
+ # * http://msdn.microsoft.com/en-us/library/zxk0tw93%28v=VS.100%29.aspx
229
+ # * http://en.wikibooks.org/wiki/X86_Disassembly/Calling_Conventions#STDCALL
230
+ # Note that decorated names can be overridden via def files. Also note that the
231
+ # windows api, although using, doesn't have decorated names.
232
+ def function_names(name, arg_types)
233
+ result = [name.to_s]
234
+ if ffi_convention == :stdcall
235
+ # Get the size of each parameter
236
+ size = arg_types.inject(0) do |mem, arg|
237
+ size = arg.size
238
+ # The size must be a multiple of 4
239
+ size += (4 - size) % 4
240
+ mem + size
241
+ end
242
+
243
+ result << "_#{name.to_s}@#{size}" # win32
244
+ result << "#{name.to_s}@#{size}" # win64
245
+ end
246
+ result
247
+ end
248
+
249
+ # @overload attach_variable(mname, cname, type)
250
+ # @param [#to_s] mname name of ruby method to attach as
251
+ # @param [#to_s] cname name of C variable to attach
252
+ # @param [DataConverter, Struct, Symbol, Type] type C variable's type
253
+ # @example
254
+ # module Bar
255
+ # extend FFI::Library
256
+ # ffi_lib 'my_lib'
257
+ # attach_variable :c_myvar, :myvar, :long
258
+ # end
259
+ # # now callable via Bar.c_myvar
260
+ # @overload attach_variable(cname, type)
261
+ # @param [#to_s] mname name of ruby method to attach as
262
+ # @param [DataConverter, Struct, Symbol, Type] type C variable's type
263
+ # @example
264
+ # module Bar
265
+ # extend FFI::Library
266
+ # ffi_lib 'my_lib'
267
+ # attach_variable :myvar, :long
268
+ # end
269
+ # # now callable via Bar.myvar
270
+ # @return [DynamicLibrary::Symbol]
271
+ # @raise {FFI::NotFoundError} if +cname+ cannot be found in libraries
272
+ #
273
+ # Attach C variable +cname+ to this module.
274
+ def attach_variable(mname, a1, a2 = nil)
275
+ cname, type = a2 ? [ a1, a2 ] : [ mname.to_s, a1 ]
276
+ mname = mname.to_sym
277
+ address = nil
278
+ ffi_libraries.each do |lib|
279
+ begin
280
+ address = lib.find_variable(cname.to_s)
281
+ break unless address.nil?
282
+ rescue LoadError
283
+ end
284
+ end
285
+
286
+ raise FFI::NotFoundError.new(cname, ffi_libraries) if address.nil? || address.null?
287
+ if type.is_a?(Class) && type < FFI::Struct
288
+ # If it is a global struct, just attach directly to the pointer
289
+ s = s = type.new(address) # Assigning twice to suppress unused variable warning
290
+ self.module_eval <<-code, __FILE__, __LINE__
291
+ @ffi_gsvars = {} unless defined?(@ffi_gsvars)
292
+ @ffi_gsvars[#{mname.inspect}] = s
293
+ def self.#{mname}
294
+ @ffi_gsvars[#{mname.inspect}]
295
+ end
296
+ code
297
+
298
+ else
299
+ sc = Class.new(FFI::Struct)
300
+ sc.layout :gvar, find_type(type)
301
+ s = sc.new(address)
302
+ #
303
+ # Attach to this module as mname/mname=
304
+ #
305
+ self.module_eval <<-code, __FILE__, __LINE__
306
+ @ffi_gvars = {} unless defined?(@ffi_gvars)
307
+ @ffi_gvars[#{mname.inspect}] = s
308
+ def self.#{mname}
309
+ @ffi_gvars[#{mname.inspect}][:gvar]
310
+ end
311
+ def self.#{mname}=(value)
312
+ @ffi_gvars[#{mname.inspect}][:gvar] = value
313
+ end
314
+ code
315
+
316
+ end
317
+
318
+ address
319
+ end
320
+
321
+
322
+ # @overload callback(name, params, ret)
323
+ # @param name callback name to add to type map
324
+ # @param [Array] params array of parameters' types
325
+ # @param [DataConverter, Struct, Symbol, Type] ret callback return type
326
+ # @overload callback(params, ret)
327
+ # @param [Array] params array of parameters' types
328
+ # @param [DataConverter, Struct, Symbol, Type] ret callback return type
329
+ # @return [FFI::CallbackInfo]
330
+ def callback(*args)
331
+ raise ArgumentError, "wrong number of arguments" if args.length < 2 || args.length > 3
332
+ name, params, ret = if args.length == 3
333
+ args
334
+ else
335
+ [ nil, args[0], args[1] ]
336
+ end
337
+
338
+ native_params = params.map { |e| find_type(e) }
339
+ raise ArgumentError, "callbacks cannot have variadic parameters" if native_params.include?(FFI::Type::VARARGS)
340
+ options = Hash.new
341
+ options[:convention] = ffi_convention
342
+ options[:enums] = @ffi_enums if defined?(@ffi_enums)
343
+ ret_type = find_type(ret)
344
+ if ret_type == Type::STRING
345
+ raise TypeError, ":string is not allowed as return type of callbacks"
346
+ end
347
+ cb = FFI::CallbackInfo.new(ret_type, native_params, options)
348
+
349
+ # Add to the symbol -> type map (unless there was no name)
350
+ unless name.nil?
351
+ typedef cb, name
352
+ end
353
+
354
+ cb
355
+ end
356
+
357
+ # Register or get an already registered type definition.
358
+ #
359
+ # To register a new type definition, +old+ should be a {FFI::Type}. +add+
360
+ # is in this case the type definition.
361
+ #
362
+ # If +old+ is a {DataConverter}, a {Type::Mapped} is returned.
363
+ #
364
+ # If +old+ is +:enum+
365
+ # * and +add+ is an +Array+, a call to {#enum} is made with +add+ as single parameter;
366
+ # * in others cases, +info+ is used to create a named enum.
367
+ #
368
+ # If +old+ is a key for type map, #typedef get +old+ type definition.
369
+ #
370
+ # @param [DataConverter, Symbol, Type] old
371
+ # @param [Symbol] add
372
+ # @param [Symbol] info
373
+ # @return [FFI::Enum, FFI::Type]
374
+ def typedef(old, add, info=nil)
375
+ @ffi_typedefs = Hash.new unless defined?(@ffi_typedefs)
376
+
377
+ @ffi_typedefs[add] = if old.kind_of?(FFI::Type)
378
+ old
379
+
380
+ elsif @ffi_typedefs.has_key?(old)
381
+ @ffi_typedefs[old]
382
+
383
+ elsif old.is_a?(DataConverter)
384
+ FFI::Type::Mapped.new(old)
385
+
386
+ elsif old == :enum
387
+ if add.kind_of?(Array)
388
+ self.enum(add)
389
+ else
390
+ self.enum(info, add)
391
+ end
392
+
393
+ else
394
+ FFI.find_type(old)
395
+ end
396
+ end
397
+
398
+ # @param [DataConverter, Type, Struct, Symbol] t type to find
399
+ # @return [Type]
400
+ # Find a type definition.
401
+ def find_type(t)
402
+ if t.kind_of?(Type)
403
+ t
404
+
405
+ elsif defined?(@ffi_typedefs) && @ffi_typedefs.has_key?(t)
406
+ @ffi_typedefs[t]
407
+
408
+ elsif t.is_a?(Class) && t < Struct
409
+ Type::POINTER
410
+
411
+ elsif t.is_a?(DataConverter)
412
+ # Add a typedef so next time the converter is used, it hits the cache
413
+ typedef Type::Mapped.new(t), t
414
+
415
+ end || FFI.find_type(t)
416
+ end
417
+
418
+ private
419
+ # Generic enum builder
420
+ # @param [Class] klass can be one of FFI::Enum or FFI::Bitmask
421
+ # @param args (see #enum or #bitmask)
422
+ def generic_enum(klass, *args)
423
+ native_type = args.first.kind_of?(FFI::Type) ? args.shift : nil
424
+ name, values = if args[0].kind_of?(Symbol) && args[1].kind_of?(Array)
425
+ [ args[0], args[1] ]
426
+ elsif args[0].kind_of?(Array)
427
+ [ nil, args[0] ]
428
+ else
429
+ [ nil, args ]
430
+ end
431
+ @ffi_enums = FFI::Enums.new unless defined?(@ffi_enums)
432
+ @ffi_enums << (e = native_type ? klass.new(native_type, values, name) : klass.new(values, name))
433
+
434
+ # If called with a name, add a typedef alias
435
+ typedef(e, name) if name
436
+ e
437
+ end
438
+
439
+ public
440
+ # @overload enum(name, values)
441
+ # Create a named enum.
442
+ # @example
443
+ # enum :foo, [:zero, :one, :two] # named enum
444
+ # @param [Symbol] name name for new enum
445
+ # @param [Array] values values for enum
446
+ # @overload enum(*args)
447
+ # Create an unnamed enum.
448
+ # @example
449
+ # enum :zero, :one, :two # unnamed enum
450
+ # @param args values for enum
451
+ # @overload enum(values)
452
+ # Create an unnamed enum.
453
+ # @example
454
+ # enum [:zero, :one, :two] # unnamed enum, equivalent to above example
455
+ # @param [Array] values values for enum
456
+ # @overload enum(native_type, name, values)
457
+ # Create a named enum and specify the native type.
458
+ # @example
459
+ # enum FFI::Type::UINT64, :foo, [:zero, :one, :two] # named enum
460
+ # @param [FFI::Type] native_type native type for new enum
461
+ # @param [Symbol] name name for new enum
462
+ # @param [Array] values values for enum
463
+ # @overload enum(native_type, *args)
464
+ # Create an unnamed enum and specify the native type.
465
+ # @example
466
+ # enum FFI::Type::UINT64, :zero, :one, :two # unnamed enum
467
+ # @param [FFI::Type] native_type native type for new enum
468
+ # @param args values for enum
469
+ # @overload enum(native_type, values)
470
+ # Create an unnamed enum and specify the native type.
471
+ # @example
472
+ # enum Type::UINT64, [:zero, :one, :two] # unnamed enum, equivalent to above example
473
+ # @param [FFI::Type] native_type native type for new enum
474
+ # @param [Array] values values for enum
475
+ # @return [FFI::Enum]
476
+ # Create a new {FFI::Enum}.
477
+ def enum(*args)
478
+ generic_enum(FFI::Enum, *args)
479
+ end
480
+
481
+ # @overload bitmask(name, values)
482
+ # Create a named bitmask
483
+ # @example
484
+ # bitmask :foo, [:red, :green, :blue] # bits 0,1,2 are used
485
+ # bitmask :foo, [:red, :green, 5, :blue] # bits 0,5,6 are used
486
+ # @param [Symbol] name for new bitmask
487
+ # @param [Array<Symbol, Integer>] values for new bitmask
488
+ # @overload bitmask(*args)
489
+ # Create an unamed bitmask
490
+ # @example
491
+ # bm = bitmask :red, :green, :blue # bits 0,1,2 are used
492
+ # bm = bitmask :red, :green, 5, blue # bits 0,5,6 are used
493
+ # @param [Symbol, Integer] args values for new bitmask
494
+ # @overload bitmask(values)
495
+ # Create an unamed bitmask
496
+ # @example
497
+ # bm = bitmask [:red, :green, :blue] # bits 0,1,2 are used
498
+ # bm = bitmask [:red, :green, 5, blue] # bits 0,5,6 are used
499
+ # @param [Array<Symbol, Integer>] values for new bitmask
500
+ # @overload bitmask(native_type, name, values)
501
+ # Create a named enum and specify the native type.
502
+ # @example
503
+ # bitmask FFI::Type::UINT64, :foo, [:red, :green, :blue]
504
+ # @param [FFI::Type] native_type native type for new bitmask
505
+ # @param [Symbol] name for new bitmask
506
+ # @param [Array<Symbol, Integer>] values for new bitmask
507
+ # @overload bitmask(native_type, *args)
508
+ # @example
509
+ # bitmask FFI::Type::UINT64, :red, :green, :blue
510
+ # @param [FFI::Type] native_type native type for new bitmask
511
+ # @param [Symbol, Integer] args values for new bitmask
512
+ # @overload bitmask(native_type, values)
513
+ # Create a named enum and specify the native type.
514
+ # @example
515
+ # bitmask FFI::Type::UINT64, [:red, :green, :blue]
516
+ # @param [FFI::Type] native_type native type for new bitmask
517
+ # @param [Array<Symbol, Integer>] values for new bitmask
518
+ # @return [FFI::Bitmask]
519
+ # Create a new FFI::Bitmask
520
+ def bitmask(*args)
521
+ generic_enum(FFI::Bitmask, *args)
522
+ end
523
+
524
+ # @param name
525
+ # @return [FFI::Enum]
526
+ # Find an enum by name.
527
+ def enum_type(name)
528
+ @ffi_enums.find(name) if defined?(@ffi_enums)
529
+ end
530
+
531
+ # @param symbol
532
+ # @return [FFI::Enum]
533
+ # Find an enum by a symbol it contains.
534
+ def enum_value(symbol)
535
+ @ffi_enums.__map_symbol(symbol)
536
+ end
537
+
538
+ # Retrieve all attached functions and their function signature
539
+ #
540
+ # This method returns a Hash of method names of attached functions connected by #attach_function and the corresponding function type.
541
+ # The function type responds to #return_type and #param_types which return the FFI types of the function signature.
542
+ #
543
+ # @return [Hash< Symbol => [FFI::Function, FFI::VariadicInvoker] >]
544
+ def attached_functions
545
+ @ffi_functions || {}
546
+ end
547
+
548
+ # Retrieve all attached variables and their type
549
+ #
550
+ # This method returns a Hash of variable names and the corresponding type or variables connected by #attach_variable .
551
+ #
552
+ # @return [Hash< Symbol => ffi_type >]
553
+ def attached_variables
554
+ (
555
+ (defined?(@ffi_gsvars) ? @ffi_gsvars : {}).map do |name, gvar|
556
+ [name, gvar.class]
557
+ end +
558
+ (defined?(@ffi_gvars) ? @ffi_gvars : {}).map do |name, gvar|
559
+ [name, gvar.layout[:gvar].type]
560
+ end
561
+ ).to_h
562
+ end
563
+
564
+ # Freeze all definitions of the module
565
+ #
566
+ # This freezes the module's definitions, so that it can be used in a Ractor.
567
+ # No further methods or variables can be attached and no further enums or typedefs can be created in this module afterwards.
568
+ def freeze
569
+ instance_variables.each do |name|
570
+ var = instance_variable_get(name)
571
+ FFI.make_shareable(var)
572
+ end
573
+ nil
574
+ end
575
+ end
576
+ end
@@ -0,0 +1,109 @@
1
+ #
2
+ # Copyright (C) 2023 Lars Kanis
3
+ #
4
+ # This file is part of ruby-ffi.
5
+ #
6
+ # All rights reserved.
7
+ #
8
+ # Redistribution and use in source and binary forms, with or without
9
+ # modification, are permitted provided that the following conditions are met:
10
+ #
11
+ # * Redistributions of source code must retain the above copyright notice, this
12
+ # list of conditions and the following disclaimer.
13
+ # * Redistributions in binary form must reproduce the above copyright notice
14
+ # this list of conditions and the following disclaimer in the documentation
15
+ # and/or other materials provided with the distribution.
16
+ # * Neither the name of the Ruby FFI project nor the names of its contributors
17
+ # may be used to endorse or promote products derived from this software
18
+ # without specific prior written permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
24
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
30
+
31
+ module FFI
32
+ # Transform a generic library name and ABI number to a platform library name
33
+ #
34
+ # Example:
35
+ # module LibVips
36
+ # extend FFI::Library
37
+ # ffi_lib LibraryPath.new("vips", abi_number: 42)
38
+ # end
39
+ #
40
+ # This translates to the following library file names:
41
+ # libvips-42.dll on Windows
42
+ # libvips.so.42 on Linux
43
+ # libvips.42.dylib on Macos
44
+ #
45
+ # See https://packaging.ubuntu.com/html/libraries.html for more information about library naming.
46
+ class LibraryPath
47
+ attr_reader :name
48
+ attr_reader :abi_number
49
+ attr_reader :root
50
+
51
+ # Build a new library path
52
+ #
53
+ # * <tt>name</tt> : The name of the library without file prefix or suffix.
54
+ # * <tt>abi_number</tt> : The ABI number of the library.
55
+ # * <tt>root</tt> : An optional base path prepended to the library name.
56
+ def initialize(name, abi_number: nil, root: nil)
57
+ @name = name
58
+ @abi_number = abi_number
59
+ @root = root
60
+ end
61
+
62
+ def self.wrap(value)
63
+ # We allow instances of LibraryPath to pass through transparently:
64
+ return value if value.is_a?(self)
65
+
66
+ # We special case a library named 'c' to be the standard C library:
67
+ return Library::LIBC if value == 'c'
68
+
69
+ # If provided a relative file name we convert it into a library path:
70
+ if value && File.basename(value) == value
71
+ return self.new(value)
72
+ end
73
+
74
+ # Otherwise, we assume it's a full path to a library:
75
+ return value
76
+ end
77
+
78
+ def full_name
79
+ # If the abi_number is given, we format it specifically according to platform rules:
80
+ if abi_number
81
+ if Platform.windows?
82
+ "#{Platform::LIBPREFIX}#{name}-#{abi_number}.#{Platform::LIBSUFFIX}"
83
+ elsif Platform.mac?
84
+ "#{Platform::LIBPREFIX}#{name}.#{abi_number}.#{Platform::LIBSUFFIX}"
85
+ else # Linux? BSD? etc.
86
+ "#{Platform::LIBPREFIX}#{name}.#{Platform::LIBSUFFIX}.#{abi_number}"
87
+ end
88
+ else
89
+ # Otherwise we just add prefix and suffix:
90
+ lib = name
91
+ # Add library prefix if missing
92
+ lib = Platform::LIBPREFIX + lib unless lib =~ /^#{Platform::LIBPREFIX}/
93
+ # Add library extension if missing
94
+ r = Platform.windows? || Platform.mac? ? "\\.#{Platform::LIBSUFFIX}$" : "\\.so($|\\.[1234567890]+)"
95
+ lib += ".#{Platform::LIBSUFFIX}" unless lib =~ /#{r}/
96
+ lib
97
+ end
98
+ end
99
+
100
+ def to_s
101
+ if root
102
+ # If the root path is given, we generate the full path:
103
+ File.join(root, full_name)
104
+ else
105
+ full_name
106
+ end
107
+ end
108
+ end
109
+ end