acfs 1.7.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +144 -116
  3. data/README.md +19 -24
  4. data/acfs.gemspec +7 -10
  5. data/lib/acfs/collections/paginatable.rb +11 -11
  6. data/lib/acfs/configuration.rb +1 -1
  7. data/lib/acfs/errors.rb +6 -6
  8. data/lib/acfs/global.rb +2 -2
  9. data/lib/acfs/location.rb +1 -1
  10. data/lib/acfs/resource/attributes/uuid.rb +1 -1
  11. data/lib/acfs/resource/attributes.rb +1 -1
  12. data/lib/acfs/resource/dirty.rb +1 -1
  13. data/lib/acfs/resource/operational.rb +4 -4
  14. data/lib/acfs/resource/query_methods.rb +3 -3
  15. data/lib/acfs/response/status.rb +1 -1
  16. data/lib/acfs/service/middleware.rb +2 -2
  17. data/lib/acfs/singleton_resource.rb +2 -2
  18. data/lib/acfs/stub.rb +1 -1
  19. data/lib/acfs/version.rb +2 -2
  20. data/lib/acfs/yard.rb +1 -0
  21. data/spec/acfs/adapter/typhoeus_spec.rb +3 -3
  22. data/spec/acfs/configuration_spec.rb +1 -1
  23. data/spec/acfs/global_spec.rb +5 -5
  24. data/spec/acfs/location_spec.rb +1 -1
  25. data/spec/acfs/middleware/json_spec.rb +1 -1
  26. data/spec/acfs/middleware/message_pack_spec.rb +1 -1
  27. data/spec/acfs/operation_spec.rb +1 -1
  28. data/spec/acfs/resource/attributes/boolean_spec.rb +31 -31
  29. data/spec/acfs/resource/attributes/date_time_spec.rb +9 -9
  30. data/spec/acfs/resource/attributes/dict_spec.rb +10 -10
  31. data/spec/acfs/resource/attributes/float_spec.rb +11 -11
  32. data/spec/acfs/resource/attributes/integer_spec.rb +6 -6
  33. data/spec/acfs/resource/attributes/list_spec.rb +1 -1
  34. data/spec/acfs/resource/attributes/uuid_spec.rb +8 -8
  35. data/spec/acfs/resource/attributes_spec.rb +8 -8
  36. data/spec/acfs/resource/dirty_spec.rb +1 -1
  37. data/spec/acfs/resource/persistence_spec.rb +7 -7
  38. data/spec/acfs/resource/query_methods_spec.rb +1 -1
  39. data/spec/acfs/runner_spec.rb +12 -12
  40. data/spec/acfs/stub_spec.rb +13 -18
  41. data/spec/acfs_spec.rb +4 -4
  42. data/spec/spec_helper.rb +9 -5
  43. data/spec/support/hash.rb +1 -1
  44. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/LICENSE +21 -0
  45. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/README.md +23 -0
  46. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/rubocop-config.gemspec +31 -0
  47. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/CHANGELOG.md +205 -0
  48. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/MIT-LICENSE +21 -0
  49. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/README.rdoc +57 -0
  50. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/CHANGELOG.md +67 -0
  51. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/MIT-LICENSE +21 -0
  52. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/README.rdoc +40 -0
  53. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/CHANGELOG.md +110 -0
  54. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/MIT-LICENSE +21 -0
  55. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/README.rdoc +266 -0
  56. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/CHANGELOG.md +157 -0
  57. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/MIT-LICENSE +20 -0
  58. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/README.rdoc +40 -0
  59. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
  60. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
  61. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/README.md +121 -0
  62. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
  63. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
  64. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/README.md +243 -0
  65. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
  66. data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/LICENSE.txt +22 -0
  67. data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/README.md +48 -0
  68. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +138 -0
  69. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/benchmark.gemspec +32 -0
  70. data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/LICENSE +56 -0
  71. data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/bigdecimal.gemspec +57 -0
  72. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
  73. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/README.md +258 -0
  74. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/builder.gemspec +49 -0
  75. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/CHANGELOG.md +603 -0
  76. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/LICENSE.txt +21 -0
  77. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/README.md +407 -0
  78. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/LICENSE +20 -0
  79. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/README.md +167 -0
  80. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/connection_pool.gemspec +24 -0
  81. data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/LICENSE +20 -0
  82. data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/README.md +43 -0
  83. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/LICENSE +18 -0
  84. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/README.md +192 -0
  85. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/crass.gemspec +31 -0
  86. data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/License.md +41 -0
  87. data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
  88. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/LICENSE.txt +22 -0
  89. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/drb.gemspec +41 -0
  90. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/CHANGELOG +111 -0
  91. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/MIT-LICENSE +21 -0
  92. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/README.rdoc +151 -0
  93. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
  94. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/LICENSE +20 -0
  95. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/README.md +118 -0
  96. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/ethon.gemspec +26 -0
  97. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/CHANGELOG.md +465 -0
  98. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE +24 -0
  99. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE.SPECS +22 -0
  100. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/README.md +137 -0
  101. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/ffi.gemspec +42 -0
  102. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/LICENSE +19 -0
  103. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/README.md +298 -0
  104. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/changelog.md +119 -0
  105. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/hashdiff.gemspec +39 -0
  106. data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/MIT-LICENSE +20 -0
  107. data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/README.md +127 -0
  108. data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/README.md +195 -0
  109. data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/json.gemspec +64 -0
  110. data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/README.md +104 -0
  111. data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/logger.gemspec +28 -0
  112. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/CHANGELOG.md +591 -0
  113. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/MIT-LICENSE.txt +23 -0
  114. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/README.md +410 -0
  115. data/vendor/bundle/ruby/3.4.0/gems/minitest-5.25.4/README.rdoc +835 -0
  116. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/CHANGELOG.md +275 -0
  117. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/LICENSE.md +20 -0
  118. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/README.md +121 -0
  119. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE-DEPENDENCIES.md +2224 -0
  120. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE.md +9 -0
  121. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/README.md +293 -0
  122. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
  123. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
  124. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/README.md +222 -0
  125. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/ChangeLog +846 -0
  126. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  127. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.rdoc +60 -0
  128. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/CHANGELOG.md +998 -0
  129. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/MIT-LICENSE +20 -0
  130. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/README.md +328 -0
  131. data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/license.md +72 -0
  132. data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/readme.md +47 -0
  133. data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/MIT-LICENSE.txt +20 -0
  134. data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/README.md +139 -0
  135. data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
  136. data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
  137. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/CHANGELOG.md +255 -0
  138. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/MIT-LICENSE +23 -0
  139. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/README.md +267 -0
  140. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
  141. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/README.rdoc +155 -0
  142. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/rake.gemspec +101 -0
  143. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/LICENSE +21 -0
  144. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/README.md +107 -0
  145. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
  146. data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/LICENSE.txt +22 -0
  147. data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/README.md +57 -0
  148. data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/LICENSE.md +27 -0
  149. data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/README.md +47 -0
  150. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/Changelog.md +68 -0
  151. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/LICENSE.txt +27 -0
  152. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/README.md +76 -0
  153. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/rspec-collection_matchers.gemspec +33 -0
  154. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/Changelog.md +2415 -0
  155. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/LICENSE.md +26 -0
  156. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/README.md +389 -0
  157. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/Changelog.md +1352 -0
  158. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/LICENSE.md +25 -0
  159. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/README.md +326 -0
  160. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/Changelog.md +73 -0
  161. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/LICENSE.txt +27 -0
  162. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/README.md +104 -0
  163. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/rspec-its.gemspec +31 -0
  164. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/Changelog.md +1299 -0
  165. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/LICENSE.md +25 -0
  166. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/README.md +465 -0
  167. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/Changelog.md +408 -0
  168. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/LICENSE.md +23 -0
  169. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/README.md +40 -0
  170. data/vendor/bundle/ruby/3.4.0/gems/securerandom-0.4.1/README.md +72 -0
  171. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/LICENSE.md +20 -0
  172. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/README.md +45 -0
  173. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/thor.gemspec +33 -0
  174. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/CHANGELOG.md +410 -0
  175. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/LICENSE +22 -0
  176. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/README.md +588 -0
  177. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/typhoeus.gemspec +25 -0
  178. data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/LICENSE +19 -0
  179. data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/README.md +406 -0
  180. data/vendor/bundle/ruby/3.4.0/gems/uri-1.0.2/README.md +55 -0
  181. data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/LICENSE +20 -0
  182. data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/README.md +42 -0
  183. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/CHANGELOG.md +2104 -0
  184. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/LICENSE +20 -0
  185. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/README.md +1222 -0
  186. data/vendor/bundle/ruby/3.4.0/specifications/actionpack-8.0.1.gemspec +36 -0
  187. data/vendor/bundle/ruby/3.4.0/specifications/actionview-8.0.1.gemspec +33 -0
  188. data/vendor/bundle/ruby/3.4.0/specifications/activemodel-8.0.1.gemspec +26 -0
  189. data/vendor/bundle/ruby/3.4.0/specifications/activesupport-8.0.1.gemspec +38 -0
  190. data/vendor/bundle/ruby/3.4.0/specifications/addressable-2.8.7.gemspec +30 -0
  191. data/vendor/bundle/ruby/3.4.0/specifications/appraisal-2.5.0.gemspec +31 -0
  192. data/vendor/bundle/ruby/3.4.0/specifications/base64-0.2.0.gemspec +23 -0
  193. data/vendor/bundle/ruby/3.4.0/specifications/benchmark-0.4.0.gemspec +23 -0
  194. data/vendor/bundle/ruby/3.4.0/specifications/bigdecimal-3.1.9.gemspec +25 -0
  195. data/vendor/bundle/ruby/3.4.0/specifications/builder-3.3.0.gemspec +22 -0
  196. data/vendor/bundle/ruby/3.4.0/specifications/concurrent-ruby-1.3.5.gemspec +24 -0
  197. data/vendor/bundle/ruby/3.4.0/specifications/connection_pool-2.5.0.gemspec +28 -0
  198. data/vendor/bundle/ruby/3.4.0/specifications/crack-1.0.0.gemspec +27 -0
  199. data/vendor/bundle/ruby/3.4.0/specifications/crass-1.0.6.gemspec +27 -0
  200. data/vendor/bundle/ruby/3.4.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
  201. data/vendor/bundle/ruby/3.4.0/specifications/drb-2.2.1.gemspec +22 -0
  202. data/vendor/bundle/ruby/3.4.0/specifications/erubi-1.13.1.gemspec +29 -0
  203. data/vendor/bundle/ruby/3.4.0/specifications/ethon-0.16.0.gemspec +24 -0
  204. data/vendor/bundle/ruby/3.4.0/specifications/ffi-1.17.1-x86_64-linux-gnu.gemspec +31 -0
  205. data/vendor/bundle/ruby/3.4.0/specifications/hashdiff-1.1.2.gemspec +30 -0
  206. data/vendor/bundle/ruby/3.4.0/specifications/i18n-1.14.6.gemspec +27 -0
  207. data/vendor/bundle/ruby/3.4.0/specifications/json-2.9.1.gemspec +0 -0
  208. data/vendor/bundle/ruby/3.4.0/specifications/logger-1.6.5.gemspec +22 -0
  209. data/vendor/bundle/ruby/3.4.0/specifications/loofah-2.24.0.gemspec +27 -0
  210. data/vendor/bundle/ruby/3.4.0/specifications/minitest-5.25.4.gemspec +31 -0
  211. data/vendor/bundle/ruby/3.4.0/specifications/multi_json-1.15.0.gemspec +26 -0
  212. data/vendor/bundle/ruby/3.4.0/specifications/nokogiri-1.18.1-x86_64-linux-gnu.gemspec +31 -0
  213. data/vendor/bundle/ruby/3.4.0/specifications/public_suffix-6.0.1.gemspec +24 -0
  214. data/vendor/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +28 -0
  215. data/vendor/bundle/ruby/3.4.0/specifications/rack-3.1.8.gemspec +31 -0
  216. data/vendor/bundle/ruby/3.4.0/specifications/rack-session-2.1.0.gemspec +30 -0
  217. data/vendor/bundle/ruby/3.4.0/specifications/rack-test-2.2.0.gemspec +29 -0
  218. data/vendor/bundle/ruby/3.4.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
  219. data/vendor/bundle/ruby/3.4.0/specifications/rails-html-sanitizer-1.6.2.gemspec +27 -0
  220. data/vendor/bundle/ruby/3.4.0/specifications/rake-13.2.1.gemspec +26 -0
  221. data/vendor/bundle/ruby/3.4.0/specifications/rake-release-1.3.0.gemspec +26 -0
  222. data/vendor/bundle/ruby/3.4.0/specifications/rexml-3.4.0.gemspec +25 -0
  223. data/vendor/bundle/ruby/3.4.0/specifications/rspec-3.13.0.gemspec +31 -0
  224. data/vendor/bundle/ruby/3.4.0/specifications/rspec-collection_matchers-1.2.1.gemspec +27 -0
  225. data/vendor/bundle/ruby/3.4.0/specifications/rspec-core-3.13.2.gemspec +39 -0
  226. data/vendor/bundle/ruby/3.4.0/specifications/rspec-expectations-3.13.3.gemspec +33 -0
  227. data/vendor/bundle/ruby/3.4.0/specifications/rspec-its-2.0.0.gemspec +27 -0
  228. data/vendor/bundle/ruby/3.4.0/specifications/rspec-mocks-3.13.2.gemspec +33 -0
  229. data/vendor/bundle/ruby/3.4.0/specifications/rspec-support-3.13.2.gemspec +29 -0
  230. data/vendor/bundle/ruby/3.4.0/specifications/securerandom-0.4.1.gemspec +23 -0
  231. data/vendor/bundle/ruby/3.4.0/specifications/thor-1.3.2.gemspec +28 -0
  232. data/vendor/bundle/ruby/3.4.0/specifications/typhoeus-1.4.1.gemspec +24 -0
  233. data/vendor/bundle/ruby/3.4.0/specifications/tzinfo-2.0.6.gemspec +30 -0
  234. data/vendor/bundle/ruby/3.4.0/specifications/uri-1.0.2.gemspec +23 -0
  235. data/vendor/bundle/ruby/3.4.0/specifications/useragent-0.16.11.gemspec +25 -0
  236. data/vendor/bundle/ruby/3.4.0/specifications/webmock-3.24.0.gemspec +45 -0
  237. metadata +204 -67
@@ -0,0 +1,465 @@
1
+ 1.17.1 / 2024-12-30
2
+ -------------------
3
+
4
+ Fixed:
5
+ * #1117 Restart async callback dispatcher thread after fork.
6
+ * #1133 Add ruby-3.4 native gem.
7
+ * #1134 Fix FFI::DataConverter non-generic usage in RBS files.
8
+
9
+
10
+ 1.17.0 / 2024-06-02
11
+ -------------------
12
+
13
+ Fixed:
14
+ * Add FFI::AbstractMemory#read_array_of_string . It was defined but not exposed to Ruby nor tested. #1070
15
+
16
+
17
+ 1.17.0.rc2 / 2024-04-22
18
+ -------------------
19
+
20
+ Fixed:
21
+ * Add missing write barriers to StructLayout#initialize causing a segfault with GC.stress. #1079
22
+
23
+
24
+ 1.17.0.rc1 / 2024-04-08
25
+ -------------------
26
+
27
+ Fixed:
28
+ * Fix type definitions on `aarch64-linux`. #1067, #1066
29
+ * Use RB_TEST for `Pointer.autorelease=` . #1065
30
+ So that `false` and `nil` are treated as falsey and anything else as truthy.
31
+ * Replace Fixnum by Integer. #1064
32
+ Fixnum is no longer present in the ruby language.
33
+ * Update `FFI::NativeType` doc. #1061
34
+ * Store FFI::Type::Mapped of FFI::StrPtrConverter in global instead of custom type map
35
+ * Various documentation fixes. #1042
36
+ * Update `FFI::Pointer#==` to return `false` if a pointer is compared to a non-pointer object, which is the expected behavior. #1083
37
+ * Avoid warning about undefined wariable `@ffi_functions` #1085
38
+ * Fix a very unlikely GC bug when using a callback block. # 1089
39
+
40
+ Added:
41
+ * Provide binary gems for many platforms. #990
42
+ * Add Windows fat binary gem for Ruby-3.3
43
+ * Add RBS type definitions for many user facing parts of the FFI API. #1042
44
+ * Improve fallback search path logic. #1088
45
+ Respect LD_LIBRARY_PATH and DYLD_LIBRARY_PATH on Macos.
46
+ * Update libffi to current git master branch.
47
+
48
+ Removed:
49
+ * Remove `enum CHAR_ARRAY` which is no longer used. #1063
50
+
51
+
52
+ 1.16.3 / 2023-10-04
53
+ -------------------
54
+
55
+ Fixed:
56
+ * Fix gcc error when building on CentOS 7. #1052
57
+ * Avoid trying to store new DataConverter type in frozen TypeDefs hash. #1057
58
+
59
+
60
+ 1.16.2 / 2023-09-25
61
+ -------------------
62
+
63
+ Fixed:
64
+ * Handle null pointer crash after fork. #1051
65
+
66
+
67
+ 1.16.1 / 2023-09-24
68
+ -------------------
69
+
70
+ Fixed:
71
+ * Fix compiling the builtin libffi. #1049
72
+
73
+
74
+ 1.16.0 / 2023-09-23
75
+ -------------------
76
+
77
+ Fixed:
78
+ * Fix an issue with signed bitmasks when using flags on the most significant bit. #949
79
+ * Fix FFI::Pointer#initialize using NUM2LL instead of NUM2ULL.
80
+ * Fix FFI::Type#inspect to properly display the constant name. #1002
81
+ * Use libffi closure allocations on hppa-Linux. #1017
82
+ Previously they would segfault.
83
+ * Fix class name of Symbol#inspect.
84
+ * Fix MSVC support of libtest. #1028
85
+ * Fix attach_function of functions ending in ? or ! #971
86
+
87
+ Added:
88
+ * Convert all C-based classes to TypedData and use write barriers. #994, #995, #996, #997, #998, #999, #1000, #1001, #1003, #1004, #1005, #1006, #1007, #1008, #1009, #1010, #1011, #1012
89
+ This results in less pressure on the garbage collector, since the objects can be promoted to the old generation, which means they only get marked on major GC.
90
+ * Implement `ObjectSpace.memsize_of()` of all C-based classes.
91
+ * Make FFI Ractor compatible. #1023
92
+ Modules extended per `extend FFI::Library` need to be frozen in order to be used by non-main Ractors.
93
+ This can be done by calling `freeze` below of all C interface definitions.
94
+ * In a Ractor it's possible to:
95
+ * load DLLs and call its functions, access its global variables
96
+ * use builtin typedefs
97
+ * use and modify ractor local typedefs
98
+ * define callbacks
99
+ * receive async callbacks from non-ruby threads
100
+ * use frozen FFI::Library based modules with all attributes (enums, structs, typedefs, functions, callbacks)
101
+ * invoke frozen functions and callbacks defined in the main Ractor
102
+ * use FFI::Struct definitions from the main Ractor
103
+ * In a Ractor it's impossible to:
104
+ * create new FFI::Library based modules
105
+ * create new FFI::Struct definitions
106
+ * use custom global typedefs
107
+ * use non-frozen FFI::Library based modules
108
+ * Allow type retrieval of attached functions+variables. #1023
109
+ * Make FFI classes `GC.compact` friendly. #1021
110
+ * Update libffi and disable custom trampoline when using libffi closure allocation. #1020
111
+ This is because libffi changed the way how closures are allocated to static trampolines.
112
+ * Add types.conf for loongarch64-linux. #943
113
+ * Add types.conf for sw_64-linux (Shen Wei 64-bit, based on Alpha). #1018
114
+ * Add support for aarch64-windows. #1035
115
+ * Windows: Update LoadLibrary error message to include error code. #1026
116
+ * Allow private release method for FFI::ManagedStruct and FFI::AutoPointer. #1029
117
+ * Add support for passing ABI version to FFI.map_library_name. #963
118
+ This adds the new class FFI::LibraryPath .
119
+ * Add support for ruby-3.2 to windows binary gem. #1047
120
+ * Enable debug symbols for `rake compile` builds to ease debugging. #1048
121
+
122
+ Removed:
123
+ * Remove allocator of AbstractMemory. #1013
124
+ This disables AbstractMemory.new, which has no practical use.
125
+ * Remove unused FFI::SizeTypes. #1022
126
+
127
+
128
+ 1.15.5 / 2022-01-10
129
+ -------------------
130
+
131
+ Fixed:
132
+ * Fix long double argument or return values on 32bit i686. #849
133
+ * FFI::ConstGenerator: avoid usage of the same binary file simultaneously. #929
134
+
135
+ Added:
136
+ * Add Windows fat binary gem for Ruby-3.1
137
+
138
+ Removed:
139
+ * Remove Windows fat binary gem for Ruby < 2.4
140
+
141
+
142
+ 1.15.4 / 2021-09-01
143
+ -------------------
144
+
145
+ Fixed:
146
+ * Fix build for uClibc. #913
147
+ * Correct module lookup when including `ffi-module` gem. #912
148
+
149
+ Changed:
150
+ * Use ruby code of the ffi gem in JRuby-9.2.20+. #915
151
+
152
+
153
+ 1.15.3 / 2021-06-16
154
+ -------------------
155
+
156
+ Fixed:
157
+ * Fix temporary packaging issue with libffi. #904
158
+
159
+
160
+ 1.15.2 / 2021-06-16
161
+ -------------------
162
+
163
+ Added:
164
+ * Add support for Windows MINGW-UCRT build. #903
165
+ * Add `/opt/homebrew/lib/` to fallback search paths to improve homebrew support. #880 #882
166
+
167
+ Changed:
168
+ * Regenerate `types.conf` for FreeBSD12 aarch64. #902
169
+
170
+
171
+ 1.15.1 / 2021-05-22
172
+ -------------------
173
+
174
+ Fixed:
175
+ * Append -pthread to linker options. #893
176
+ * Use arm or aarch64 to identify Apple ARM CPU arch. #899
177
+ * Allow overriding `gcc` with the `CC` env var in `const_generator.rb` and `struct_generator.rb`. #897
178
+
179
+
180
+ 1.15.0 / 2021-03-05
181
+ -------------------
182
+
183
+ Fixed:
184
+ * Fix MSVC build
185
+ * Fix async callbacks in conjunction with fork(). #884
186
+
187
+ Added:
188
+ * Allow to pass callbacks in varargs. #885
189
+ * Name the threads for FFI callback dispatcher and async thread calls for easier debugging. #883
190
+ The name can be retrieved by Thread.name and is shown by Thread.list.inspect etc.
191
+ Even gdb shows the thread name on supported operating systems.
192
+ * Add types.conf for powerpc64le-linux
193
+ * Add types.conf for riscv64-linux
194
+ * More release automation of ffi gems
195
+
196
+ Changed:
197
+ * Switch from rubygems-tasks to bundler/gem_helper
198
+
199
+ Removed:
200
+ * Remove unused VariadicInvoker#init
201
+
202
+
203
+ 1.14.2 / 2020-12-21
204
+ -------------------
205
+
206
+ Fixed:
207
+ * Fix builtin libffi on newer Ubuntu caused by an outdated Makefile.in . #863
208
+
209
+
210
+ 1.14.1 / 2020-12-19
211
+ -------------------
212
+
213
+ Changed:
214
+ * Revert changes to FFI::Pointer#write_string made in ffi-1.14.0.
215
+ It breaks compatibilty in a way that can cause hard to find errors. #857
216
+
217
+
218
+ 1.14.0 / 2020-12-18
219
+ -------------------
220
+
221
+ Added:
222
+ * Add types.conf for x86_64-msys, x86_64-haiku, aarch64-openbsd and aarch64-darwin (alias arm64-darwin)
223
+ * Add method AbstractMemory#size_limit? . #829
224
+ * Add new extconf option --enable-libffi-alloc which is enabled per default on Apple M1 (arm64-darwin).
225
+
226
+ Changed:
227
+ * Do NULL pointer check only when array length > 0 . #305
228
+ * Raise an error on an unknown order argument. #830
229
+ * Change FFI::Pointer#write_string to terminate with a NUL byte like other string methods. #805
230
+ * Update bundled libffi to latest master.
231
+
232
+ Removed:
233
+ * Remove win32/stdint.h and stdbool.h because of copyright issue. #693
234
+
235
+ Fixed:
236
+ * Fix possible UTF-8 load error in loader script interpretation. #792
237
+ * Fix segfault on non-array argument to #write_array_of_*
238
+ * Fix memory leak in MethodHandle . #815
239
+ * Fix possible segfault in combination with fiddle or other libffi using gems . #835
240
+ * Fix possibility to use ffi ruby gem with JRuby-9.3 . #763
241
+ * Fix a GC issue, when a callback Proc is used on more than 2 callback signatures. #820
242
+
243
+
244
+ 1.13.1 / 2020-06-09
245
+ -------------------
246
+
247
+ Changed:
248
+ * Revert use of `ucrtbase.dll` as default C library on Windows-MINGW.
249
+ `ucrtbase.dll` is still used on MSWIN target. #790
250
+ * Test for `ffi_prep_closure_loc()` to make sure we can use this function.
251
+ This fixes incorrect use of system libffi on MacOS Mojave (10.14). #787
252
+ * Update types.conf on x86_64-dragonflybsd
253
+
254
+
255
+ 1.13.0 / 2020-06-01
256
+ -------------------
257
+
258
+ Added:
259
+ * Add TruffleRuby support. Almost all specs are running on TruffleRuby and succeed. #768
260
+ * Add ruby source files to the java gem. This allows to ship the Ruby library code per platform java gem and add it as a default gem to JRuby. #763
261
+ * Add FFI::Platform::LONG_DOUBLE_SIZE
262
+ * Add bounds checks for writing to an inline char[] . #756
263
+ * Add long double as callback return value. #771
264
+ * Update type definitions and add types from stdint.h and stddef.h on i386-windows, x86_64-windows, x86_64-darwin, x86_64-linux, arm-linux, powerpc-linux. #749
265
+ * Add new type definitions for powerpc-openbsd and sparcv9-openbsd. #775, #778
266
+
267
+ Changed:
268
+ * Raise required ruby version to >= 2.3.
269
+ * Lots of cleanups and improvements in library, specs and benchmarks.
270
+ * Fix a lot of compiler warnings at the C-extension
271
+ * Fix several install issues on MacOS:
272
+ * Look for libffi in SDK paths, since recent versions of macOS removed it from `/usr/include` . #757
273
+ * Fix error `ld: library not found for -lgcc_s.10.4`
274
+ * Don't built for i386 architecture as it is deprecated
275
+ * Several fixes for MSVC build on Windows. #779
276
+ * Use `ucrtbase.dll` as default C library on Windows instead of old `msvcrt.dll`. #779
277
+ * Update builtin libffi to fix a Powerpc issue with parameters of type long
278
+ * Allow unmodified sourcing of (the ruby code of) this gem in JRuby and TruffleRuby as a default gem. #747
279
+ * Improve check to detect if a module has a #find_type method suitable for FFI. This fixes compatibility with stdlib `mkmf` . #776
280
+
281
+ Removed:
282
+ * Reject callback with `:string` return type at definition, because it didn't work so far and is not save to use. #751, #782
283
+
284
+
285
+ 1.12.2 / 2020-02-01
286
+ -------------------
287
+
288
+ * Fix possible segfault at FFI::Struct#[] and []= after GC.compact . #742
289
+
290
+
291
+ 1.12.1 / 2020-01-14
292
+ -------------------
293
+
294
+ Added:
295
+ * Add binary gem support for ruby-2.7 on Windows
296
+
297
+
298
+ 1.12.0 / 2020-01-14
299
+ -------------------
300
+
301
+ Added:
302
+ * FFI::VERSION is defined as part of `require 'ffi'` now.
303
+ It is no longer necessary to `require 'ffi/version'` .
304
+
305
+ Changed:
306
+ * Update libffi to latest master.
307
+
308
+ Deprecated:
309
+ * Overwriting struct layouts is now warned and will be disallowed in ffi-2.0. #734, #735
310
+
311
+
312
+ 1.11.3 / 2019-11-25
313
+ -------------------
314
+
315
+ Removed:
316
+ * Remove support for tainted objects which cause deprecation warnings in ruby-2.7. #730
317
+
318
+
319
+ 1.11.2 / 2019-11-11
320
+ -------------------
321
+
322
+ Added:
323
+ * Add DragonFlyBSD as a platform. #724
324
+
325
+ Changed:
326
+ * Sort all types.conf files, so that files and changes are easier to compare.
327
+ * Regenerated type conf for freebsd12 and x86_64-linux targets. #722
328
+ * Remove MACOSX_DEPLOYMENT_TARGET that was targeting very old version 10.4. #647
329
+ * Fix library name mangling for non glibc Linux/UNIX. #727
330
+ * Fix compiler warnings raised by ruby-2.7
331
+ * Update libffi to latest master.
332
+
333
+
334
+ 1.11.1 / 2019-05-20
335
+ -------------------
336
+
337
+ Changed:
338
+ * Raise required ruby version to >=2.0. #699, #700
339
+ * Fix a possible linker error on ruby < 2.3 on Linux.
340
+
341
+
342
+ 1.11.0 / 2019-05-17
343
+ -------------------
344
+ This version was yanked on 2019-05-20 to fix an install issue on ruby-1.9.3. #700
345
+
346
+ Added:
347
+ * Add ability to disable or force use of system libffi. #669
348
+ Use like `gem inst ffi -- --enable-system-libffi` .
349
+ * Add ability to call FFI callbacks from outside of FFI call frame. #584
350
+ * Add proper documentation to FFI::Generator and ::Task
351
+ * Add gemspec metadata. #696, #698
352
+
353
+ Changed:
354
+ * Fix stdcall on Win32. #649, #669
355
+ * Fix load paths for FFI::Generator::Task
356
+ * Fix FFI::Pointer#read_string(0) to return a binary String. #692
357
+ * Fix benchmark suite so that it runs on ruby-2.x
358
+ * Move FFI::Platform::CPU from C to Ruby. #663
359
+ * Move FFI::StructByReference to Ruby. #681
360
+ * Move FFI::DataConverter to Ruby (#661)
361
+ * Various cleanups and improvements of specs and benchmarks
362
+
363
+ Removed:
364
+ * Remove ruby-1.8 and 1.9 compatibility code. #683
365
+ * Remove unused spec files. #684
366
+
367
+
368
+ 1.10.0 / 2019-01-06
369
+ -------------------
370
+
371
+ Added:
372
+ * Add /opt/local/lib/ to ffi's fallback library search path. #638
373
+ * Add binary gem support for ruby-2.6 on Windows
374
+ * Add FreeBSD on AArch64 and ARM support. #644
375
+ * Add FFI::LastError.winapi_error on Windows native or Cygwin. #633
376
+
377
+ Changed:
378
+ * Update to rake-compiler-dock-0.7.0
379
+ * Use 64-bit inodes on FreeBSD >= 12. #644
380
+ * Switch time_t and suseconds_t types to long on FreeBSD. #627
381
+ * Make register_t long_long on 64-bit FreeBSD. #644
382
+ * Fix Pointer#write_array_of_type #637
383
+
384
+ Removed:
385
+ * Drop binary gem support for ruby-2.0 and 2.1 on Windows
386
+
387
+
388
+ 1.9.25 / 2018-06-03
389
+ -------------------
390
+
391
+ Changed:
392
+ * Revert closures via libffi.
393
+ This re-adds ClosurePool and fixes compat with SELinux enabled systems. #621
394
+
395
+
396
+ 1.9.24 / 2018-06-02
397
+ -------------------
398
+
399
+ Security Note:
400
+
401
+ This update addresses vulnerability CVE-2018-1000201: DLL loading issue which can be hijacked on Windows OS, when a Symbol is used as DLL name instead of a String. Found by Matthew Bush.
402
+
403
+ Added:
404
+ * Added a CHANGELOG file
405
+ * Add mips64(eb) support, and mips r6 support. (#601)
406
+
407
+ Changed:
408
+ * Update libffi to latest changes on master.
409
+ * Don't search in hardcoded /usr paths on Windows.
410
+ * Don't treat Symbol args different to Strings in ffi_lib.
411
+ * Make sure size_t is defined in Thread.c. Fixes #609
412
+
413
+
414
+ 1.9.23 / 2018-02-25
415
+ -------------------
416
+
417
+ Changed:
418
+ * Fix unnecessary rebuild of configure in darwin multi arch. Fixes #605
419
+
420
+
421
+ 1.9.22 / 2018-02-22
422
+ -------------------
423
+
424
+ Changed:
425
+ * Update libffi to latest changes on master.
426
+ * Update detection of system libffi to match new requirements. Fixes #617
427
+ * Prefer bundled libffi over system libffi on Mac OS.
428
+ * Do closures via libffi. This removes ClosurePool and fixes compat with PaX. #540
429
+ * Use a more deterministic gem packaging.
430
+ * Fix unnecessary update of autoconf files at gem install.
431
+
432
+
433
+ 1.9.21 / 2018-02-06
434
+ -------------------
435
+
436
+ Added:
437
+ * Ruby-2.5 support by Windows binary gems. Fixes #598
438
+ * Add missing win64 types.
439
+ * Added support for Bitmask. (#573)
440
+ * Add support for MSYS2 (#572) and Sparc64 Linux. (#574)
441
+
442
+ Changed:
443
+ * Fix read_string to not throw an error on length 0.
444
+ * Don't use absolute paths for sh and env. Fixes usage on Adroid #528
445
+ * Use Ruby implementation for `which` for better compat with Windows. Fixes #315
446
+ * Fix compatibility with PPC64LE platform. (#577)
447
+ * Normalize sparc64 to sparcv9. (#575)
448
+
449
+ Removed:
450
+ * Drop Ruby 1.8.7 support (#480)
451
+
452
+
453
+ 1.9.18 / 2017-03-03
454
+ -------------------
455
+
456
+ Added:
457
+ * Add compatibility with Ruby-2.4.
458
+
459
+ Changed:
460
+ * Add missing shlwapi.h include to fix Windows build.
461
+ * Avoid undefined behaviour of LoadLibrary() on Windows. #553
462
+
463
+
464
+ 1.9.17 / 2017-01-13
465
+ -------------------
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2008-2016, Ruby FFI project contributors
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+ * Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+ * Neither the name of the Ruby FFI project nor the
12
+ names of its contributors may be used to endorse or promote products
13
+ derived from this software without specific prior written permission.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
19
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2008-2012 Ruby-FFI contributors
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,137 @@
1
+ # Ruby-FFI https://github.com/ffi/ffi/wiki
2
+
3
+ ## Description
4
+
5
+ Ruby-FFI is a gem for programmatically loading dynamically-linked native
6
+ libraries, binding functions within them, and calling those functions
7
+ from Ruby code. Moreover, a Ruby-FFI extension works without changes
8
+ on CRuby (MRI), JRuby, Rubinius and TruffleRuby. [Discover why you should write your next extension
9
+ using Ruby-FFI](https://github.com/ffi/ffi/wiki/why-use-ffi).
10
+
11
+ ## Features
12
+
13
+ * Intuitive DSL
14
+ * Supports all C native types
15
+ * C structs (also nested), enums and global variables
16
+ * Callbacks from C to Ruby
17
+ * Automatic garbage collection of native memory
18
+ * Usable in Ractor: [How-to-use-FFI-in-Ruby-Ractors](https://github.com/ffi/ffi/wiki/Ractors)
19
+
20
+ ## Synopsis
21
+
22
+ ```ruby
23
+ require 'ffi'
24
+
25
+ module MyLib
26
+ extend FFI::Library
27
+ ffi_lib 'c'
28
+ attach_function :puts, [ :string ], :int
29
+ end
30
+
31
+ MyLib.puts 'Hello, World using libc!'
32
+ ```
33
+
34
+ For less minimalistic and more examples you may look at:
35
+
36
+ * the `samples/` folder
37
+ * the examples on the [wiki](https://github.com/ffi/ffi/wiki)
38
+ * the projects using FFI listed on the wiki: https://github.com/ffi/ffi/wiki/projects-using-ffi
39
+
40
+ ## Requirements
41
+
42
+ When installing the gem on CRuby (MRI), you will need:
43
+ * A C compiler (e.g., Xcode on macOS, `gcc` or `clang` on everything else)
44
+ Optionally (speeds up installation):
45
+ * The `libffi` library and development headers - this is commonly in the `libffi-dev` or `libffi-devel` packages
46
+
47
+ The ffi gem comes with a builtin libffi version, which is used, when the system libffi library is not available or too old.
48
+ Use of the system libffi can be enforced by:
49
+ ```
50
+ gem install ffi -- --enable-system-libffi # to install the gem manually
51
+ bundle config build.ffi --enable-system-libffi # for bundle install
52
+ ```
53
+ or prevented by `--disable-system-libffi`.
54
+
55
+ On Linux systems running with [PaX](https://en.wikipedia.org/wiki/PaX) (Gentoo, Alpine, etc.), FFI may trigger `mprotect` errors. You may need to disable [mprotect](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options#Restrict_mprotect.28.29) for ruby (`paxctl -m [/path/to/ruby]`) for the time being until a solution is found.
56
+
57
+ On FreeBSD systems pkgconf must be installed for the gem to be able to compile using clang. Install either via packages `pkg install pkgconf` or from ports via `devel/pkgconf`.
58
+
59
+ On JRuby and TruffleRuby, there are no requirements to install the FFI gem, and `require 'ffi'` works even without installing the gem (i.e., the gem is preinstalled on these implementations).
60
+
61
+ ## Installation
62
+
63
+ From rubygems:
64
+
65
+ [sudo] gem install ffi
66
+
67
+ From a Gemfile using git or GitHub
68
+
69
+ gem 'ffi', github: 'ffi/ffi', submodules: true
70
+
71
+ or from the git repository on github:
72
+
73
+ git clone git://github.com/ffi/ffi.git
74
+ cd ffi
75
+ git submodule update --init --recursive
76
+ bundle install
77
+ rake install
78
+
79
+ ### Install options:
80
+
81
+ * `--enable-system-libffi` : Force usage of system libffi
82
+ * `--disable-system-libffi` : Force usage of builtin libffi
83
+ * `--enable-libffi-alloc` : Force closure allocation by libffi
84
+ * `--disable-libffi-alloc` : Force closure allocation by builtin method
85
+
86
+ ## License
87
+
88
+ The ffi library is covered by the BSD license, also see the LICENSE file.
89
+ The specs are covered by the same license as [ruby/spec](https://github.com/ruby/spec), the MIT license.
90
+
91
+ ## Credits
92
+
93
+ The following people have submitted code, bug reports, or otherwise contributed to the success of this project:
94
+
95
+ * Alban Peignier <alban.peignier@free.fr>
96
+ * Aman Gupta <aman@tmm1.net>
97
+ * Andrea Fazzi <andrea.fazzi@alcacoop.it>
98
+ * Andreas Niederl <rico32@gmx.net>
99
+ * Andrew Cholakian <andrew@andrewvc.com>
100
+ * Antonio Terceiro <terceiro@softwarelivre.org>
101
+ * Benoit Daloze <eregontp@gmail.com>
102
+ * Brian Candler <B.Candler@pobox.com>
103
+ * Brian D. Burns <burns180@gmail.com>
104
+ * Bryan Kearney <bkearney@redhat.com>
105
+ * Charlie Savage <cfis@zerista.com>
106
+ * Chikanaga Tomoyuki <nagachika00@gmail.com>
107
+ * Hongli Lai <hongli@phusion.nl>
108
+ * Ian MacLeod <ian@nevir.net>
109
+ * Jake Douglas <jake@shiftedlabs.com>
110
+ * Jean-Dominique Morani <jdmorani@mac.com>
111
+ * Jeremy Hinegardner <jeremy@hinegardner.org>
112
+ * Jesús García Sáez <blaxter@gmail.com>
113
+ * Joe Khoobyar <joe@ankhcraft.com>
114
+ * Jurij Smakov <jurij@wooyd.org>
115
+ * KISHIMOTO, Makoto <ksmakoto@dd.iij4u.or.jp>
116
+ * Kim Burgestrand <kim@burgestrand.se>
117
+ * Lars Kanis <lars@greiz-reinsdorf.de>
118
+ * Luc Heinrich <luc@honk-honk.com>
119
+ * Luis Lavena <luislavena@gmail.com>
120
+ * Matijs van Zuijlen <matijs@matijs.net>
121
+ * Matthew King <automatthew@gmail.com>
122
+ * Mike Dalessio <mike.dalessio@gmail.com>
123
+ * NARUSE, Yui <naruse@airemix.jp>
124
+ * Park Heesob <phasis@gmail.com>
125
+ * Shin Yee <shinyee@speedgocomputing.com>
126
+ * Stephen Bannasch <stephen.bannasch@gmail.com>
127
+ * Suraj N. Kurapati <sunaku@gmail.com>
128
+ * Sylvain Daubert <sylvain.daubert@laposte.net>
129
+ * Victor Costan
130
+ * beoran@gmail.com
131
+ * ctide <christide@christide.com>
132
+ * emboss <Martin.Bosslet@googlemail.com>
133
+ * hobophobe <unusualtears@gmail.com>
134
+ * meh <meh@paranoici.org>
135
+ * postmodern <postmodern.mod3@gmail.com>
136
+ * wycats@gmail.com <wycats@gmail.com>
137
+ * Wayne Meissner <wmeissner@gmail.com>
@@ -0,0 +1,42 @@
1
+ require File.expand_path("../lib/#{File.basename(__FILE__, '.gemspec')}/version", __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'ffi'
5
+ s.version = FFI::VERSION
6
+ s.author = 'Wayne Meissner'
7
+ s.email = 'wmeissner@gmail.com'
8
+ s.homepage = 'https://github.com/ffi/ffi/wiki'
9
+ s.summary = 'Ruby FFI'
10
+ s.description = 'Ruby FFI library'
11
+ if s.respond_to?(:metadata)
12
+ s.metadata['bug_tracker_uri'] = 'https://github.com/ffi/ffi/issues'
13
+ s.metadata['changelog_uri'] = 'https://github.com/ffi/ffi/blob/master/CHANGELOG.md'
14
+ s.metadata['documentation_uri'] = 'https://github.com/ffi/ffi/wiki'
15
+ s.metadata['wiki_uri'] = 'https://github.com/ffi/ffi/wiki'
16
+ s.metadata['source_code_uri'] = 'https://github.com/ffi/ffi/'
17
+ s.metadata['mailing_list_uri'] = 'http://groups.google.com/group/ruby-ffi'
18
+ end
19
+ s.files = `git ls-files -z`.split("\x0").reject do |f|
20
+ f =~ /^(\.|bench|gen|libtest|nbproject|spec)/
21
+ end
22
+
23
+ # Add libffi git files
24
+ lfs = `git --git-dir ext/ffi_c/libffi/.git ls-files -z`.split("\x0")
25
+ # Add autoconf generated files of libffi
26
+ lfs += %w[ compile configure config.guess config.sub install-sh ltmain.sh missing fficonfig.h.in ]
27
+ # Add automake generated files of libffi
28
+ lfs += `git --git-dir ext/ffi_c/libffi/.git ls-files -z *.am */*.am`.gsub(".am\0", ".in\0").split("\x0")
29
+ s.files += lfs.map do |f|
30
+ File.join("ext/ffi_c/libffi", f)
31
+ end
32
+
33
+ s.extensions << 'ext/ffi_c/extconf.rb'
34
+ s.rdoc_options = %w[--exclude=ext/ffi_c/.*\.o$ --exclude=ffi_c\.(bundle|so)$]
35
+ s.license = 'BSD-3-Clause'
36
+ s.require_paths << 'ext/ffi_c'
37
+ s.required_ruby_version = '>= 2.5'
38
+ s.add_development_dependency 'rake', '~> 13.0'
39
+ s.add_development_dependency 'rake-compiler', '~> 1.1'
40
+ s.add_development_dependency 'rake-compiler-dock', '~> 1.0'
41
+ s.add_development_dependency 'rspec', '~> 2.14.1'
42
+ end