acfs 1.7.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +144 -116
- data/README.md +19 -24
- data/acfs.gemspec +7 -10
- data/lib/acfs/collections/paginatable.rb +11 -11
- data/lib/acfs/configuration.rb +1 -1
- data/lib/acfs/errors.rb +6 -6
- data/lib/acfs/global.rb +2 -2
- data/lib/acfs/location.rb +1 -1
- data/lib/acfs/resource/attributes/uuid.rb +1 -1
- data/lib/acfs/resource/attributes.rb +1 -1
- data/lib/acfs/resource/dirty.rb +1 -1
- data/lib/acfs/resource/operational.rb +4 -4
- data/lib/acfs/resource/query_methods.rb +3 -3
- data/lib/acfs/response/status.rb +1 -1
- data/lib/acfs/service/middleware.rb +2 -2
- data/lib/acfs/singleton_resource.rb +2 -2
- data/lib/acfs/stub.rb +1 -1
- data/lib/acfs/version.rb +2 -2
- data/lib/acfs/yard.rb +1 -0
- data/spec/acfs/adapter/typhoeus_spec.rb +3 -3
- data/spec/acfs/configuration_spec.rb +1 -1
- data/spec/acfs/global_spec.rb +5 -5
- data/spec/acfs/location_spec.rb +1 -1
- data/spec/acfs/middleware/json_spec.rb +1 -1
- data/spec/acfs/middleware/message_pack_spec.rb +1 -1
- data/spec/acfs/operation_spec.rb +1 -1
- data/spec/acfs/resource/attributes/boolean_spec.rb +31 -31
- data/spec/acfs/resource/attributes/date_time_spec.rb +9 -9
- data/spec/acfs/resource/attributes/dict_spec.rb +10 -10
- data/spec/acfs/resource/attributes/float_spec.rb +11 -11
- data/spec/acfs/resource/attributes/integer_spec.rb +6 -6
- data/spec/acfs/resource/attributes/list_spec.rb +1 -1
- data/spec/acfs/resource/attributes/uuid_spec.rb +8 -8
- data/spec/acfs/resource/attributes_spec.rb +8 -8
- data/spec/acfs/resource/dirty_spec.rb +1 -1
- data/spec/acfs/resource/persistence_spec.rb +7 -7
- data/spec/acfs/resource/query_methods_spec.rb +1 -1
- data/spec/acfs/runner_spec.rb +12 -12
- data/spec/acfs/stub_spec.rb +13 -18
- data/spec/acfs_spec.rb +4 -4
- data/spec/spec_helper.rb +9 -5
- data/spec/support/hash.rb +1 -1
- data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/README.md +23 -0
- data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/rubocop-config.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/CHANGELOG.md +205 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/README.rdoc +57 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/CHANGELOG.md +67 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/README.rdoc +40 -0
- data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/CHANGELOG.md +110 -0
- data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/README.rdoc +266 -0
- data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/CHANGELOG.md +157 -0
- data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/README.rdoc +40 -0
- data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
- data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
- data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/README.md +121 -0
- data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
- data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/README.md +243 -0
- data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
- data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/README.md +48 -0
- data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +138 -0
- data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/benchmark.gemspec +32 -0
- data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/LICENSE +56 -0
- data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/bigdecimal.gemspec +57 -0
- data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/README.md +258 -0
- data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/builder.gemspec +49 -0
- data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/CHANGELOG.md +603 -0
- data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/README.md +407 -0
- data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/README.md +167 -0
- data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/connection_pool.gemspec +24 -0
- data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/README.md +43 -0
- data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/LICENSE +18 -0
- data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/README.md +192 -0
- data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/crass.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/License.md +41 -0
- data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
- data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/drb.gemspec +41 -0
- data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/CHANGELOG +111 -0
- data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/README.rdoc +151 -0
- data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
- data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/README.md +118 -0
- data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/ethon.gemspec +26 -0
- data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/CHANGELOG.md +465 -0
- data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE +24 -0
- data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE.SPECS +22 -0
- data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/README.md +137 -0
- data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/ffi.gemspec +42 -0
- data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/LICENSE +19 -0
- data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/README.md +298 -0
- data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/changelog.md +119 -0
- data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/hashdiff.gemspec +39 -0
- data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/README.md +127 -0
- data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/README.md +195 -0
- data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/json.gemspec +64 -0
- data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/README.md +104 -0
- data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/logger.gemspec +28 -0
- data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/CHANGELOG.md +591 -0
- data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/MIT-LICENSE.txt +23 -0
- data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/README.md +410 -0
- data/vendor/bundle/ruby/3.4.0/gems/minitest-5.25.4/README.rdoc +835 -0
- data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/CHANGELOG.md +275 -0
- data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/LICENSE.md +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/README.md +121 -0
- data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE-DEPENDENCIES.md +2224 -0
- data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE.md +9 -0
- data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/README.md +293 -0
- data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
- data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/README.md +222 -0
- data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/ChangeLog +846 -0
- data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
- data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.rdoc +60 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/CHANGELOG.md +998 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/README.md +328 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/license.md +72 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/readme.md +47 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/README.md +139 -0
- data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
- data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
- data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/CHANGELOG.md +255 -0
- data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/MIT-LICENSE +23 -0
- data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/README.md +267 -0
- data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/rake.gemspec +101 -0
- data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/LICENSE +21 -0
- data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/README.md +107 -0
- data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
- data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/README.md +57 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/LICENSE.md +27 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/README.md +47 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/Changelog.md +68 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/LICENSE.txt +27 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/README.md +76 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/rspec-collection_matchers.gemspec +33 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/Changelog.md +2415 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/LICENSE.md +26 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/README.md +389 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/Changelog.md +1352 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/README.md +326 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/Changelog.md +73 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/LICENSE.txt +27 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/README.md +104 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/rspec-its.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/Changelog.md +1299 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/README.md +465 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/Changelog.md +408 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/LICENSE.md +23 -0
- data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/README.md +40 -0
- data/vendor/bundle/ruby/3.4.0/gems/securerandom-0.4.1/README.md +72 -0
- data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/LICENSE.md +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/README.md +45 -0
- data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/thor.gemspec +33 -0
- data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/CHANGELOG.md +410 -0
- data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/LICENSE +22 -0
- data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/README.md +588 -0
- data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/typhoeus.gemspec +25 -0
- data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/LICENSE +19 -0
- data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/README.md +406 -0
- data/vendor/bundle/ruby/3.4.0/gems/uri-1.0.2/README.md +55 -0
- data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/README.md +42 -0
- data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/CHANGELOG.md +2104 -0
- data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/README.md +1222 -0
- data/vendor/bundle/ruby/3.4.0/specifications/actionpack-8.0.1.gemspec +36 -0
- data/vendor/bundle/ruby/3.4.0/specifications/actionview-8.0.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.4.0/specifications/activemodel-8.0.1.gemspec +26 -0
- data/vendor/bundle/ruby/3.4.0/specifications/activesupport-8.0.1.gemspec +38 -0
- data/vendor/bundle/ruby/3.4.0/specifications/addressable-2.8.7.gemspec +30 -0
- data/vendor/bundle/ruby/3.4.0/specifications/appraisal-2.5.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/specifications/base64-0.2.0.gemspec +23 -0
- data/vendor/bundle/ruby/3.4.0/specifications/benchmark-0.4.0.gemspec +23 -0
- data/vendor/bundle/ruby/3.4.0/specifications/bigdecimal-3.1.9.gemspec +25 -0
- data/vendor/bundle/ruby/3.4.0/specifications/builder-3.3.0.gemspec +22 -0
- data/vendor/bundle/ruby/3.4.0/specifications/concurrent-ruby-1.3.5.gemspec +24 -0
- data/vendor/bundle/ruby/3.4.0/specifications/connection_pool-2.5.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.4.0/specifications/crack-1.0.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/crass-1.0.6.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.4.0/specifications/drb-2.2.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.4.0/specifications/erubi-1.13.1.gemspec +29 -0
- data/vendor/bundle/ruby/3.4.0/specifications/ethon-0.16.0.gemspec +24 -0
- data/vendor/bundle/ruby/3.4.0/specifications/ffi-1.17.1-x86_64-linux-gnu.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/specifications/hashdiff-1.1.2.gemspec +30 -0
- data/vendor/bundle/ruby/3.4.0/specifications/i18n-1.14.6.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/json-2.9.1.gemspec +0 -0
- data/vendor/bundle/ruby/3.4.0/specifications/logger-1.6.5.gemspec +22 -0
- data/vendor/bundle/ruby/3.4.0/specifications/loofah-2.24.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/minitest-5.25.4.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/specifications/multi_json-1.15.0.gemspec +26 -0
- data/vendor/bundle/ruby/3.4.0/specifications/nokogiri-1.18.1-x86_64-linux-gnu.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/specifications/public_suffix-6.0.1.gemspec +24 -0
- data/vendor/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rack-3.1.8.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rack-session-2.1.0.gemspec +30 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rack-test-2.2.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rails-html-sanitizer-1.6.2.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rake-13.2.1.gemspec +26 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rake-release-1.3.0.gemspec +26 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rexml-3.4.0.gemspec +25 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-3.13.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-collection_matchers-1.2.1.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-core-3.13.2.gemspec +39 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-expectations-3.13.3.gemspec +33 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-its-2.0.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-mocks-3.13.2.gemspec +33 -0
- data/vendor/bundle/ruby/3.4.0/specifications/rspec-support-3.13.2.gemspec +29 -0
- data/vendor/bundle/ruby/3.4.0/specifications/securerandom-0.4.1.gemspec +23 -0
- data/vendor/bundle/ruby/3.4.0/specifications/thor-1.3.2.gemspec +28 -0
- data/vendor/bundle/ruby/3.4.0/specifications/typhoeus-1.4.1.gemspec +24 -0
- data/vendor/bundle/ruby/3.4.0/specifications/tzinfo-2.0.6.gemspec +30 -0
- data/vendor/bundle/ruby/3.4.0/specifications/uri-1.0.2.gemspec +23 -0
- data/vendor/bundle/ruby/3.4.0/specifications/useragent-0.16.11.gemspec +25 -0
- data/vendor/bundle/ruby/3.4.0/specifications/webmock-3.24.0.gemspec +45 -0
- 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
|