vagrant-unbundled 2.2.2.0 → 2.2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1119) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +41 -0
  4. data/Gemfile.lock +15 -15
  5. data/RELEASE.md +1 -1
  6. data/bin/vagrant +18 -0
  7. data/lib/vagrant/action/builtin/box_check_outdated.rb +2 -1
  8. data/lib/vagrant/errors.rb +8 -0
  9. data/lib/vagrant/machine.rb +4 -0
  10. data/lib/vagrant/util/checkpoint_client.rb +2 -2
  11. data/lib/vagrant/util/experimental.rb +76 -0
  12. data/lib/vagrant/util/guest_inspection.rb +5 -1
  13. data/lib/vagrant/util/platform.rb +20 -0
  14. data/lib/vagrant/util/powershell.rb +2 -2
  15. data/lib/vagrant/util/ssh.rb +4 -0
  16. data/plugins/commands/cloud/publish.rb +15 -4
  17. data/plugins/commands/package/command.rb +4 -1
  18. data/plugins/commands/powershell/command.rb +15 -8
  19. data/plugins/commands/powershell/errors.rb +4 -0
  20. data/plugins/commands/snapshot/command/pop.rb +6 -0
  21. data/plugins/commands/snapshot/command/restore.rb +6 -0
  22. data/plugins/commands/snapshot/command/root.rb +7 -3
  23. data/plugins/commands/ssh_config/command.rb +1 -0
  24. data/plugins/commands/validate/command.rb +58 -0
  25. data/plugins/communicators/ssh/communicator.rb +11 -3
  26. data/plugins/communicators/winrm/shell.rb +22 -12
  27. data/plugins/guests/alt/cap/configure_networks.rb +5 -2
  28. data/plugins/guests/coreos/cap/configure_networks.rb +1 -1
  29. data/plugins/guests/redhat/cap/configure_networks.rb +5 -2
  30. data/plugins/hosts/void/cap/nfs.rb +24 -0
  31. data/plugins/hosts/void/host.rb +22 -0
  32. data/plugins/hosts/void/plugin.rb +30 -0
  33. data/plugins/hosts/windows/cap/smb.rb +15 -9
  34. data/plugins/hosts/windows/scripts/unset_share.ps1 +1 -1
  35. data/plugins/kernel_v2/config/ssh_connect.rb +22 -0
  36. data/plugins/providers/virtualbox/action/set_default_nic_type.rb +1 -1
  37. data/plugins/providers/virtualbox/action.rb +5 -1
  38. data/plugins/provisioners/file/provisioner.rb +2 -0
  39. data/plugins/provisioners/salt/bootstrap-salt.ps1 +1 -1
  40. data/plugins/provisioners/salt/config.rb +7 -0
  41. data/plugins/provisioners/shell/config.rb +4 -1
  42. data/plugins/provisioners/shell/provisioner.rb +5 -1
  43. data/plugins/synced_folders/rsync/command/rsync.rb +7 -0
  44. data/plugins/synced_folders/rsync/command/rsync_auto.rb +11 -5
  45. data/plugins/synced_folders/rsync/default_unix_cap.rb +1 -0
  46. data/plugins/synced_folders/rsync/helper.rb +79 -7
  47. data/templates/commands/ssh_config/config.erb +3 -0
  48. data/templates/guests/freebsd/network_static.erb +1 -1
  49. data/templates/guests/freebsd/network_static6.erb +1 -1
  50. data/templates/locales/command_ps.yml +7 -2
  51. data/templates/locales/en.yml +39 -3
  52. data/vagrant.gemspec +2 -2
  53. data/vendor/bundle/ruby/2.5.0/bin/rwinrm +5 -5
  54. data/vendor/bundle/ruby/2.5.0/bin/rwinrmcp +5 -5
  55. data/vendor/bundle/ruby/2.5.0/bin/vagrant +5 -5
  56. data/vendor/bundle/ruby/2.5.0/bin/vagrant-spec +5 -5
  57. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/.gitignore +18 -0
  58. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/.travis.yml +10 -0
  59. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/Gemfile +5 -0
  60. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/LICENSE.txt +373 -0
  61. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/README.md +319 -0
  62. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/Rakefile +1 -0
  63. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/cli/box_spec.rb +198 -0
  64. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/cli/init_spec.rb +42 -0
  65. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/cli/plugin_spec.rb +164 -0
  66. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/cli/version_spec.rb +15 -0
  67. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/output/box_output.rb +41 -0
  68. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/output/plugin_output.rb +34 -0
  69. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/output/version_output.rb +10 -0
  70. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provider/basic_spec.rb +90 -0
  71. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provider/network_forwarded_port_spec.rb +25 -0
  72. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provider/network_private_network_spec.rb +25 -0
  73. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provider/package_spec.rb +65 -0
  74. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provider/synced_folder_spec.rb +33 -0
  75. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provisioner/chef_solo_spec.rb +31 -0
  76. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provisioner/docker_spec.rb +26 -0
  77. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provisioner/puppet_spec.rb +31 -0
  78. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/provisioner/shell_spec.rb +45 -0
  79. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-boxes/empty/metadata.json +1 -0
  80. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-boxes/empty.box +0 -0
  81. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-plugins/README.md +4 -0
  82. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-plugins/vagrant-spec-helper-basic/gem-0.1.0.gemspec +18 -0
  83. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-plugins/vagrant-spec-helper-basic/gem-0.2.0.gemspec +18 -0
  84. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-plugins/vagrant-spec-helper-basic/gem-renamed-0.1.0.gemspec +18 -0
  85. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-plugins/vagrant-spec-helper-basic/lib/vagrant-spec-helper-basic.rb +10 -0
  86. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-plugins/vagrant-spec-helper-basic/lib/vshb/command.rb +7 -0
  87. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/network_forwarded_port/Vagrantfile +5 -0
  88. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/network_private_network/Vagrantfile +5 -0
  89. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_chef_solo/Vagrantfile +14 -0
  90. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_chef_solo/basic/cookbooks/foo/recipes/default.rb +3 -0
  91. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_chef_solo/basic-roles/cookbooks/bar/recipes/default.rb +3 -0
  92. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_chef_solo/basic-roles/roles/foo.rb +2 -0
  93. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_docker/Vagrantfile +5 -0
  94. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_puppet/Vagrantfile +10 -0
  95. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_puppet/basic-modules/manifests/default.pp +1 -0
  96. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_puppet/basic-modules/modules/foo/manifests/init.pp +5 -0
  97. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_puppet/manifests/default.pp +3 -0
  98. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_shell/Vagrantfile +10 -0
  99. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_shell/args.sh +4 -0
  100. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_shell/path.sh +3 -0
  101. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_shell/user.sh +3 -0
  102. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/provisioner_shell/user_root.sh +3 -0
  103. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/synced_folder_nfs/Vagrantfile +7 -0
  104. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/synced_folder_nfs/foo +1 -0
  105. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/synced_folder_rsync/Vagrantfile +6 -0
  106. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/synced_folder_rsync/foo +1 -0
  107. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/synced_folders/Vagrantfile +6 -0
  108. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/synced_folders/foo +1 -0
  109. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/triggers-advanced/Vagrantfile +44 -0
  110. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/triggers-advanced/fail.sh +1 -0
  111. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/triggers-advanced/script.sh +1 -0
  112. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/triggers-advanced/test.sh +1 -0
  113. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/support-skeletons/triggers-basic/Vagrantfile +25 -0
  114. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/synced_folder/nfs_spec.rb +29 -0
  115. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/synced_folder/rsync_spec.rb +38 -0
  116. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/triggers/triggers_advanced_spec.rb +57 -0
  117. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/acceptance/triggers/triggers_basic_spec.rb +33 -0
  118. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/bin/vagrant-spec +7 -0
  119. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/configuration.rb +81 -0
  120. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/isolated_environment.rb +90 -0
  121. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/output.rb +38 -0
  122. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/rspec/context.rb +96 -0
  123. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/rspec/formatter.rb +33 -0
  124. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/rspec/matcher_exit_with.rb +12 -0
  125. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/rspec/matcher_match_output.rb +15 -0
  126. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/rspec/shared_provider_synced_folder.rb +33 -0
  127. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/rspec.rb +9 -0
  128. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance/runner.rb +76 -0
  129. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/acceptance.rb +29 -0
  130. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/cli.rb +48 -0
  131. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/components.rb +57 -0
  132. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/isolated_environment.rb +44 -0
  133. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/server.rb +37 -0
  134. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/subprocess.rb +259 -0
  135. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/unit/dummy_provider.rb +51 -0
  136. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/unit/isolated_environment.rb +230 -0
  137. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/unit/rspec/context.rb +104 -0
  138. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/unit/rspec.rb +1 -0
  139. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/unit.rb +17 -0
  140. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/vagrant-plugin/command.rb +67 -0
  141. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/vagrant-plugin/plugin.rb +17 -0
  142. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/version.rb +5 -0
  143. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec/which.rb +36 -0
  144. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/lib/vagrant-spec.rb +25 -0
  145. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/acceptance/configuration_spec.rb +25 -0
  146. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/acceptance/isolated_environment_spec.rb +43 -0
  147. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/acceptance/shared/isolated_environment_spec.rb +43 -0
  148. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/acceptance/shared/output_spec.rb +53 -0
  149. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/components_spec.rb +62 -0
  150. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/isolated_environment_spec.rb +31 -0
  151. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/subprocess_spec.rb +9 -0
  152. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/spec/unit/isolated_environment_spec.rb +64 -0
  153. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-abfc34474d12/vagrant-spec.gemspec +47 -0
  154. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/FETCH_HEAD +1 -0
  155. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/objects/0c/239961181935240f946cac9b66357c8eeada52 +0 -0
  156. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/objects/0d/d52403c3e3b78f75069403c7bdad316089219c +0 -0
  157. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/objects/2f/1b24bccecd7df752689690ce047729a2031c00 +0 -0
  158. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/objects/62/67f4c29ab1aa79bbd06e5e20a612ffa1152396 +0 -0
  159. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/objects/ab/fc34474d122235d56e4c6b6fb5d3e35bedfa90 +1 -0
  160. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/objects/f0/af3a58fe2b5dcdb88118f33313c6ead75fdff8 +0 -0
  161. data/vendor/bundle/ruby/2.5.0/cache/bundler/git/vagrant-spec-126eabde74f0d7efed2a1138913efa8a256083c9/refs/heads/master +1 -0
  162. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.10.0/ffi_c.so +0 -0
  163. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.10.0/gem.build_complete +0 -0
  164. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.10.0/gem_make.out +50 -0
  165. data/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/ffi-1.10.0/mkmf.log +434 -0
  166. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/CHANGELOG.md +465 -0
  167. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/Gemfile +39 -0
  168. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/LICENSE.md +23 -0
  169. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/README.md +349 -0
  170. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/Rakefile +346 -0
  171. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/ConcurrentRubyService.java +17 -0
  172. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/AtomicReferenceLibrary.java +175 -0
  173. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/JRubyMapBackendLibrary.java +248 -0
  174. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicBooleanLibrary.java +93 -0
  175. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +113 -0
  176. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +159 -0
  177. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java +306 -0
  178. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMap.java +31 -0
  179. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMapV8.java +3863 -0
  180. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/LongAdder.java +203 -0
  181. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/Striped64.java +342 -0
  182. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/ConcurrentHashMapV8.java +3800 -0
  183. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/LongAdder.java +204 -0
  184. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/Striped64.java +291 -0
  185. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166y/ThreadLocalRandom.java +199 -0
  186. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/agent.rb +587 -0
  187. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/array.rb +66 -0
  188. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/async.rb +445 -0
  189. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atom.rb +222 -0
  190. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/abstract_thread_local_var.rb +66 -0
  191. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_boolean.rb +126 -0
  192. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_fixnum.rb +143 -0
  193. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_markable_reference.rb +164 -0
  194. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/atomic_reference.rb +204 -0
  195. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/count_down_latch.rb +100 -0
  196. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/cyclic_barrier.rb +128 -0
  197. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/event.rb +109 -0
  198. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/java_count_down_latch.rb +42 -0
  199. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/java_thread_local_var.rb +37 -0
  200. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_atomic_boolean.rb +62 -0
  201. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_atomic_fixnum.rb +75 -0
  202. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_count_down_latch.rb +44 -0
  203. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/mutex_semaphore.rb +115 -0
  204. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/read_write_lock.rb +254 -0
  205. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/reentrant_read_write_lock.rb +379 -0
  206. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/ruby_thread_local_var.rb +161 -0
  207. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/semaphore.rb +145 -0
  208. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic/thread_local_var.rb +104 -0
  209. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic_reference/mutex_atomic.rb +56 -0
  210. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomic_reference/numeric_cas_wrapper.rb +28 -0
  211. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/atomics.rb +10 -0
  212. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/copy_on_notify_observer_set.rb +107 -0
  213. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/copy_on_write_observer_set.rb +111 -0
  214. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/java_non_concurrent_priority_queue.rb +84 -0
  215. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/lock_free_stack.rb +158 -0
  216. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/atomic_reference_map_backend.rb +927 -0
  217. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/mri_map_backend.rb +66 -0
  218. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/non_concurrent_map_backend.rb +140 -0
  219. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/map/synchronized_map_backend.rb +82 -0
  220. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/non_concurrent_priority_queue.rb +143 -0
  221. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb +150 -0
  222. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/deprecation.rb +34 -0
  223. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/dereferenceable.rb +73 -0
  224. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/logging.rb +32 -0
  225. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/obligation.rb +220 -0
  226. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concern/observable.rb +110 -0
  227. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/concurrent_ruby.jar +0 -0
  228. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/configuration.rb +184 -0
  229. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/constants.rb +8 -0
  230. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/dataflow.rb +81 -0
  231. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/delay.rb +199 -0
  232. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/errors.rb +69 -0
  233. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/exchanger.rb +352 -0
  234. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/abstract_executor_service.rb +134 -0
  235. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/cached_thread_pool.rb +62 -0
  236. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/executor_service.rb +185 -0
  237. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/fixed_thread_pool.rb +206 -0
  238. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/immediate_executor.rb +66 -0
  239. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/indirect_immediate_executor.rb +44 -0
  240. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_executor_service.rb +91 -0
  241. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_single_thread_executor.rb +29 -0
  242. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/java_thread_pool_executor.rb +123 -0
  243. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_executor_service.rb +78 -0
  244. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_single_thread_executor.rb +22 -0
  245. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/ruby_thread_pool_executor.rb +362 -0
  246. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/safe_task_executor.rb +35 -0
  247. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serial_executor_service.rb +34 -0
  248. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serialized_execution.rb +107 -0
  249. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/serialized_execution_delegator.rb +28 -0
  250. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/simple_executor_service.rb +100 -0
  251. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/single_thread_executor.rb +56 -0
  252. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/thread_pool_executor.rb +87 -0
  253. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executor/timer_set.rb +175 -0
  254. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/executors.rb +20 -0
  255. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/future.rb +141 -0
  256. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/hash.rb +59 -0
  257. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/immutable_struct.rb +93 -0
  258. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/ivar.rb +207 -0
  259. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/map.rb +337 -0
  260. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/maybe.rb +229 -0
  261. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/mutable_struct.rb +229 -0
  262. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/mvar.rb +242 -0
  263. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/options.rb +42 -0
  264. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promise.rb +579 -0
  265. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/promises.rb +1936 -0
  266. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/re_include.rb +58 -0
  267. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/scheduled_task.rb +318 -0
  268. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/set.rb +66 -0
  269. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/settable_struct.rb +129 -0
  270. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_lockable_object.rb +98 -0
  271. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_object.rb +24 -0
  272. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/abstract_struct.rb +159 -0
  273. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/condition.rb +58 -0
  274. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_lockable_object.rb +13 -0
  275. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/jruby_object.rb +44 -0
  276. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lock.rb +34 -0
  277. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/lockable_object.rb +74 -0
  278. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mri_object.rb +43 -0
  279. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/mutex_lockable_object.rb +76 -0
  280. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/object.rb +157 -0
  281. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_lockable_object.rb +65 -0
  282. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/rbx_object.rb +48 -0
  283. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/truffleruby_object.rb +46 -0
  284. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization/volatile.rb +36 -0
  285. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/synchronization.rb +30 -0
  286. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/synchronized_delegator.rb +50 -0
  287. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/adder.rb +74 -0
  288. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/cheap_lockable.rb +118 -0
  289. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/data_structures.rb +63 -0
  290. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/power_of_two_tuple.rb +38 -0
  291. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/striped64.rb +246 -0
  292. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/volatile.rb +75 -0
  293. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util/xor_shift_random.rb +50 -0
  294. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/thread_safe/util.rb +16 -0
  295. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/timer_task.rb +334 -0
  296. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/tuple.rb +86 -0
  297. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/tvar.rb +258 -0
  298. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/at_exit.rb +97 -0
  299. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/engine.rb +56 -0
  300. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/monotonic_time.rb +58 -0
  301. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/native_extension_loader.rb +79 -0
  302. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/native_integer.rb +53 -0
  303. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/utility/processor_counter.rb +158 -0
  304. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent/version.rb +4 -0
  305. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent-ruby.rb +1 -0
  306. data/vendor/bundle/ruby/2.5.0/gems/concurrent-ruby-1.1.4/lib/concurrent.rb +134 -0
  307. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/.gitignore +22 -0
  308. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/.gitmodules +3 -0
  309. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/.travis.yml +43 -0
  310. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/.yardopts +5 -0
  311. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/CHANGELOG.md +98 -0
  312. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/COPYING +49 -0
  313. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/Gemfile +15 -0
  314. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/LICENSE +24 -0
  315. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/LICENSE.SPECS +22 -0
  316. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/README.md +112 -0
  317. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/Rakefile +268 -0
  318. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/appveyor.yml +22 -0
  319. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/.sitearchdir.time +0 -0
  320. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/AbstractMemory.c +1109 -0
  321. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/AbstractMemory.h +175 -0
  322. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/AbstractMemory.o +0 -0
  323. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ArrayType.c +162 -0
  324. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ArrayType.h +59 -0
  325. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ArrayType.o +0 -0
  326. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Buffer.c +365 -0
  327. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Buffer.o +0 -0
  328. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Call.c +520 -0
  329. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Call.h +110 -0
  330. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Call.o +0 -0
  331. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ClosurePool.c +283 -0
  332. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ClosurePool.h +57 -0
  333. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ClosurePool.o +0 -0
  334. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/DataConverter.c +91 -0
  335. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/DataConverter.o +0 -0
  336. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/DynamicLibrary.c +339 -0
  337. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/DynamicLibrary.h +98 -0
  338. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/DynamicLibrary.o +0 -0
  339. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Function.c +1001 -0
  340. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Function.h +87 -0
  341. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Function.o +0 -0
  342. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/FunctionInfo.c +271 -0
  343. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/FunctionInfo.o +0 -0
  344. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/LastError.c +229 -0
  345. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/LastError.h +47 -0
  346. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/LastError.o +0 -0
  347. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/LongDouble.c +63 -0
  348. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/LongDouble.h +51 -0
  349. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/LongDouble.o +0 -0
  350. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Makefile +263 -0
  351. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MappedType.c +168 -0
  352. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MappedType.h +59 -0
  353. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MappedType.o +0 -0
  354. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MemoryPointer.c +197 -0
  355. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MemoryPointer.h +53 -0
  356. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MemoryPointer.o +0 -0
  357. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MethodHandle.c +358 -0
  358. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MethodHandle.h +55 -0
  359. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/MethodHandle.o +0 -0
  360. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Platform.c +129 -0
  361. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Platform.h +45 -0
  362. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Platform.o +0 -0
  363. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Pointer.c +508 -0
  364. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Pointer.h +63 -0
  365. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Pointer.o +0 -0
  366. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Struct.c +829 -0
  367. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Struct.h +106 -0
  368. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Struct.o +0 -0
  369. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructByReference.c +190 -0
  370. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructByReference.h +50 -0
  371. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructByReference.o +0 -0
  372. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructByValue.c +150 -0
  373. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructByValue.h +55 -0
  374. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructByValue.o +0 -0
  375. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructLayout.c +698 -0
  376. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/StructLayout.o +0 -0
  377. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Thread.c +353 -0
  378. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Thread.h +95 -0
  379. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Thread.o +0 -0
  380. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Type.c +397 -0
  381. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Type.h +62 -0
  382. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Type.o +0 -0
  383. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Types.c +139 -0
  384. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Types.h +89 -0
  385. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Types.o +0 -0
  386. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Variadic.c +304 -0
  387. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/Variadic.o +0 -0
  388. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/compat.h +78 -0
  389. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/extconf.h +12 -0
  390. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/extconf.rb +72 -0
  391. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ffi.c +98 -0
  392. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ffi.o +0 -0
  393. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/ffi_c.so +0 -0
  394. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/.appveyor.yml +50 -0
  395. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/.gitignore +38 -0
  396. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/.travis.yml +34 -0
  397. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.libffi +584 -0
  398. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.libffi-3.1 +6000 -0
  399. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  400. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  401. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/LICENSE +21 -0
  402. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +352 -0
  403. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/Makefile.am +166 -0
  404. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/Makefile.in +1809 -0
  405. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/README.md +461 -0
  406. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/acinclude.m4 +479 -0
  407. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/autogen.sh +2 -0
  408. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/config.guess +1466 -0
  409. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/config.sub +1836 -0
  410. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/configure +21978 -0
  411. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/configure.ac +390 -0
  412. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/configure.host +289 -0
  413. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  414. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/Makefile.in +811 -0
  415. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/libffi.texi +985 -0
  416. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/version.texi +4 -0
  417. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/fficonfig.h.in +210 -0
  418. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +203 -0
  419. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/include/Makefile.am +9 -0
  420. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/include/Makefile.in +604 -0
  421. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/include/ffi.h.in +511 -0
  422. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  423. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/include/ffi_common.h +149 -0
  424. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/install-sh +508 -0
  425. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/libffi.map.in +80 -0
  426. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/libffi.pc.in +11 -0
  427. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +1043 -0
  428. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/libtool-ldflags +106 -0
  429. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/libtool-version +29 -0
  430. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/ltmain.sh +11156 -0
  431. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  432. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_append_flag.m4 +71 -0
  433. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +194 -0
  434. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +122 -0
  435. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +74 -0
  436. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +87 -0
  437. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_configure_args.m4 +70 -0
  438. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +302 -0
  439. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +263 -0
  440. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +89 -0
  441. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_require_defined.m4 +37 -0
  442. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/man/Makefile.am +8 -0
  443. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/man/Makefile.in +558 -0
  444. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi.3 +41 -0
  445. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  446. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi_prep_cif.3 +68 -0
  447. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  448. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/missing +215 -0
  449. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/msvcc.sh +328 -0
  450. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
  451. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  452. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  453. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  454. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/ffi.c +521 -0
  455. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/ffitarget.h +57 -0
  456. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  457. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/osf.S +282 -0
  458. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  459. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  460. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  461. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/ffi.c +819 -0
  462. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/ffitarget.h +82 -0
  463. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  464. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/sysv.S +383 -0
  465. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/avr32/ffi.c +423 -0
  466. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/avr32/ffitarget.h +55 -0
  467. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/avr32/sysv.S +208 -0
  468. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  469. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  470. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  471. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/closures.c +966 -0
  472. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/cris/ffi.c +386 -0
  473. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/cris/ffitarget.h +56 -0
  474. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  475. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/debug.c +64 -0
  476. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/dlmalloc.c +5166 -0
  477. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  478. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  479. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/frv/ffitarget.h +62 -0
  480. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/ffi.c +604 -0
  481. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/ffitarget.h +56 -0
  482. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  483. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/unix.S +567 -0
  484. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/java_raw_api.c +374 -0
  485. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  486. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m32r/ffitarget.h +53 -0
  487. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  488. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m68k/ffi.c +362 -0
  489. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m68k/ffitarget.h +54 -0
  490. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m68k/sysv.S +357 -0
  491. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  492. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  493. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  494. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  495. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/metag/ffitarget.h +53 -0
  496. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  497. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  498. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  499. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  500. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/ffi.c +1130 -0
  501. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/ffitarget.h +244 -0
  502. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/n32.S +663 -0
  503. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/o32.S +502 -0
  504. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/moxie/eabi.S +101 -0
  505. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/moxie/ffi.c +285 -0
  506. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  507. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  508. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  509. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  510. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  511. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  512. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  513. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/ffi.c +719 -0
  514. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/ffitarget.h +85 -0
  515. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  516. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  517. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/aix.S +566 -0
  518. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/aix_closure.S +694 -0
  519. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  520. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/darwin.S +378 -0
  521. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +571 -0
  522. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi.c +173 -0
  523. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +1440 -0
  524. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +974 -0
  525. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  526. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  527. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffitarget.h +198 -0
  528. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/linux64.S +228 -0
  529. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +488 -0
  530. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +397 -0
  531. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/sysv.S +175 -0
  532. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/prep_cif.c +261 -0
  533. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/raw_api.c +267 -0
  534. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/riscv/ffi.c +445 -0
  535. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/riscv/ffitarget.h +68 -0
  536. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/riscv/sysv.S +214 -0
  537. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/ffi.c +756 -0
  538. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/ffitarget.h +70 -0
  539. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  540. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/sysv.S +325 -0
  541. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh/ffi.c +717 -0
  542. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh/ffitarget.h +54 -0
  543. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  544. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh64/ffi.c +469 -0
  545. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh64/ffitarget.h +58 -0
  546. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh64/sysv.S +539 -0
  547. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/ffi.c +468 -0
  548. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  549. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/ffitarget.h +81 -0
  550. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  551. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/v8.S +443 -0
  552. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/v9.S +440 -0
  553. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  554. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  555. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  556. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/types.c +108 -0
  557. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  558. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  559. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  560. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  561. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffi.c +753 -0
  562. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffi64.c +884 -0
  563. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffitarget.h +147 -0
  564. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffiw64.c +308 -0
  565. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  566. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  567. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/sysv.S +1043 -0
  568. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/unix64.S +525 -0
  569. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/win64.S +232 -0
  570. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  571. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  572. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  573. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/src/xtensa/sysv.S +258 -0
  574. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/stamp-h.in +1 -0
  575. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/Makefile.am +117 -0
  576. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/Makefile.in +608 -0
  577. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  578. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/lib/libffi.exp +636 -0
  579. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +283 -0
  580. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  581. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +28 -0
  582. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +78 -0
  583. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +50 -0
  584. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +58 -0
  585. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1745 -0
  586. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2885 -0
  587. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +743 -0
  588. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  589. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +46 -0
  590. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +43 -0
  591. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +89 -0
  592. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +81 -0
  593. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +81 -0
  594. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +82 -0
  595. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +89 -0
  596. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +92 -0
  597. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +90 -0
  598. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +95 -0
  599. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_simple.c +55 -0
  600. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +94 -0
  601. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +95 -0
  602. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +96 -0
  603. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +102 -0
  604. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +89 -0
  605. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +91 -0
  606. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +93 -0
  607. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +113 -0
  608. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +90 -0
  609. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +95 -0
  610. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +90 -0
  611. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +90 -0
  612. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3float.c +95 -0
  613. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +98 -0
  614. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +90 -0
  615. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +109 -0
  616. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +98 -0
  617. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +124 -0
  618. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +113 -0
  619. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +99 -0
  620. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +117 -0
  621. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +97 -0
  622. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +88 -0
  623. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +90 -0
  624. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +91 -0
  625. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +93 -0
  626. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +91 -0
  627. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +92 -0
  628. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +132 -0
  629. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +115 -0
  630. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +95 -0
  631. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +91 -0
  632. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +91 -0
  633. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +92 -0
  634. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +91 -0
  635. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +91 -0
  636. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +93 -0
  637. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +66 -0
  638. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +43 -0
  639. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +61 -0
  640. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +42 -0
  641. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +105 -0
  642. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +61 -0
  643. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  644. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  645. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +74 -0
  646. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +74 -0
  647. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +86 -0
  648. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +91 -0
  649. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +74 -0
  650. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +86 -0
  651. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +74 -0
  652. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +142 -0
  653. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +44 -0
  654. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +42 -0
  655. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +42 -0
  656. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  657. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +42 -0
  658. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  659. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +43 -0
  660. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  661. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  662. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +47 -0
  663. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +43 -0
  664. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  665. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +36 -0
  666. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +26 -0
  667. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +138 -0
  668. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  669. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +60 -0
  670. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +60 -0
  671. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +74 -0
  672. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  673. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  674. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +341 -0
  675. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many.c +59 -0
  676. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  677. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  678. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  679. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +52 -0
  680. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +152 -0
  681. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +161 -0
  682. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +134 -0
  683. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  684. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +110 -0
  685. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +111 -0
  686. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +111 -0
  687. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +112 -0
  688. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +131 -0
  689. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +111 -0
  690. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +131 -0
  691. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +131 -0
  692. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  693. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  694. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +90 -0
  695. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  696. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  697. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +36 -0
  698. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  699. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  700. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  701. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  702. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  703. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  704. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  705. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  706. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +43 -0
  707. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  708. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  709. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  710. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  711. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +145 -0
  712. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +148 -0
  713. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +124 -0
  714. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +125 -0
  715. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  716. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  717. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  718. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  719. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +67 -0
  720. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +57 -0
  721. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  722. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +60 -0
  723. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +64 -0
  724. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +66 -0
  725. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  726. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  727. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +81 -0
  728. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +68 -0
  729. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +70 -0
  730. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  731. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc +117 -0
  732. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc +54 -0
  733. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  734. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  735. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  736. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  737. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  738. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  739. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  740. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  741. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  742. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  743. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  744. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  745. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  746. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  747. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  748. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  749. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  750. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  751. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  752. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  753. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +36 -0
  754. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  755. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  756. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  757. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  758. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  759. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  760. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  761. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  762. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  763. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  764. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  765. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  766. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  767. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  768. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  769. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  770. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  771. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  772. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  773. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  774. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  775. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  776. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  777. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  778. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  779. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  780. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  781. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  782. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  783. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  784. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi.bsd.mk +40 -0
  785. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi.darwin.mk +105 -0
  786. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi.gnu.mk +32 -0
  787. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi.mk +18 -0
  788. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi.vc.mk +26 -0
  789. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/libffi.vc64.mk +26 -0
  790. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/rbffi.h +57 -0
  791. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/rbffi_endian.h +59 -0
  792. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/win32/stdbool.h +8 -0
  793. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ext/ffi_c/win32/stdint.h +201 -0
  794. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/ffi.gemspec +36 -0
  795. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/autopointer.rb +203 -0
  796. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/buffer.rb +4 -0
  797. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/callback.rb +4 -0
  798. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/enum.rb +296 -0
  799. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/errno.rb +43 -0
  800. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/ffi.rb +44 -0
  801. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/io.rb +62 -0
  802. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/library.rb +588 -0
  803. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/managedstruct.rb +84 -0
  804. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/memorypointer.rb +1 -0
  805. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  806. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/aarch64-freebsd12/types.conf +128 -0
  807. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/aarch64-linux/types.conf +104 -0
  808. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  809. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  810. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/arm-linux/types.conf +104 -0
  811. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  812. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-darwin/types.conf +100 -0
  813. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  814. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  815. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-gnu/types.conf +107 -0
  816. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-linux/types.conf +103 -0
  817. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  818. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  819. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-solaris/types.conf +122 -0
  820. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/i386-windows/types.conf +105 -0
  821. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/ia64-linux/types.conf +104 -0
  822. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mips-linux/types.conf +102 -0
  823. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mips64-linux/types.conf +104 -0
  824. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  825. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  826. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  827. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  828. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  829. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  830. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  831. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  832. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/powerpc-linux/types.conf +100 -0
  833. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  834. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/s390-linux/types.conf +102 -0
  835. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/s390x-linux/types.conf +102 -0
  836. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/sparc-linux/types.conf +102 -0
  837. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  838. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  839. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  840. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  841. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-darwin/types.conf +126 -0
  842. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  843. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-freebsd12/types.conf +128 -0
  844. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-linux/types.conf +102 -0
  845. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  846. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  847. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  848. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform/x86_64-windows/types.conf +120 -0
  849. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/platform.rb +170 -0
  850. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/pointer.rb +160 -0
  851. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/struct.rb +371 -0
  852. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/struct_layout_builder.rb +227 -0
  853. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/tools/const_generator.rb +229 -0
  854. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/tools/generator.rb +60 -0
  855. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/tools/generator_task.rb +36 -0
  856. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/tools/struct_generator.rb +194 -0
  857. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/tools/types_generator.rb +134 -0
  858. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/types.rb +194 -0
  859. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/union.rb +43 -0
  860. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/variadic.rb +78 -0
  861. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi/version.rb +3 -0
  862. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi.rb +20 -0
  863. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/lib/ffi_c.so +0 -0
  864. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/getlogin.rb +8 -0
  865. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/getpid.rb +8 -0
  866. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/gettimeofday.rb +18 -0
  867. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/hello.rb +7 -0
  868. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/inotify.rb +60 -0
  869. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/pty.rb +76 -0
  870. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/qsort.rb +21 -0
  871. data/vendor/bundle/ruby/2.5.0/gems/ffi-1.10.0/samples/sample_helper.rb +6 -0
  872. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/.gitignore +15 -0
  873. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/.rspec +1 -0
  874. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/.rubocop.yml +21 -0
  875. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/.travis.yml +10 -0
  876. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/.yardopts +1 -0
  877. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/Gemfile +6 -0
  878. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/LICENSE +19 -0
  879. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/README.md +265 -0
  880. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/Rakefile +16 -0
  881. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/changelog.md +76 -0
  882. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/hashdiff.gemspec +27 -0
  883. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff/diff.rb +224 -0
  884. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff/lcs.rb +64 -0
  885. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff/linear_compare_array.rb +157 -0
  886. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff/patch.rb +86 -0
  887. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff/util.rb +142 -0
  888. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff/version.rb +3 -0
  889. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/lib/hashdiff.rb +6 -0
  890. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/best_diff_spec.rb +73 -0
  891. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/diff_array_spec.rb +58 -0
  892. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/diff_spec.rb +339 -0
  893. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/lcs_spec.rb +74 -0
  894. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/linear_compare_array_spec.rb +48 -0
  895. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/patch_spec.rb +183 -0
  896. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/hash_diff/util_spec.rb +85 -0
  897. data/vendor/bundle/ruby/2.5.0/gems/hashdiff-0.3.8/spec/spec_helper.rb +13 -0
  898. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/.gitignore +10 -0
  899. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/.rubocop.yml +5 -0
  900. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/.rubocop_todo.yml +969 -0
  901. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/.travis.yml +53 -0
  902. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/CHANGES.txt +634 -0
  903. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/Gemfile +11 -0
  904. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/Gemfile.noed25519 +10 -0
  905. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/Gemfile.noed25519.lock +41 -0
  906. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/ISSUE_TEMPLATE.md +30 -0
  907. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/LICENSE.txt +19 -0
  908. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/Manifest +133 -0
  909. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/README.rdoc +194 -0
  910. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/Rakefile +105 -0
  911. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/THANKS.txt +110 -0
  912. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/appveyor.yml +56 -0
  913. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/agent.rb +268 -0
  914. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/certificate.rb +171 -0
  915. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/constants.rb +21 -0
  916. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/ed25519.rb +169 -0
  917. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/ed25519_loader.rb +34 -0
  918. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/key_manager.rb +269 -0
  919. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/methods/abstract.rb +70 -0
  920. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/methods/hostbased.rb +74 -0
  921. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/methods/keyboard_interactive.rb +75 -0
  922. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/methods/none.rb +37 -0
  923. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/methods/password.rb +81 -0
  924. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/methods/publickey.rb +97 -0
  925. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/pageant.rb +497 -0
  926. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/pub_key_fingerprint.rb +44 -0
  927. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/authentication/session.rb +161 -0
  928. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/buffer.rb +438 -0
  929. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/buffered_io.rb +204 -0
  930. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/config.rb +372 -0
  931. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/connection/channel.rb +680 -0
  932. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/connection/constants.rb +37 -0
  933. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/connection/event_loop.rb +118 -0
  934. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/connection/keepalive.rb +59 -0
  935. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/connection/session.rb +708 -0
  936. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/connection/term.rb +182 -0
  937. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/errors.rb +106 -0
  938. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/key_factory.rb +132 -0
  939. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/known_hosts.rb +181 -0
  940. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/loggable.rb +63 -0
  941. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/packet.rb +106 -0
  942. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/prompt.rb +64 -0
  943. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/command.rb +124 -0
  944. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/errors.rb +18 -0
  945. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/http.rb +100 -0
  946. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/https.rb +52 -0
  947. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/jump.rb +56 -0
  948. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/socks4.rb +69 -0
  949. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/proxy/socks5.rb +143 -0
  950. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/ruby_compat.rb +13 -0
  951. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/service/forward.rb +425 -0
  952. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/channel.rb +149 -0
  953. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/extensions.rb +173 -0
  954. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/kex.rb +48 -0
  955. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/local_packet.rb +55 -0
  956. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/packet.rb +101 -0
  957. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/remote_packet.rb +42 -0
  958. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/script.rb +182 -0
  959. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test/socket.rb +68 -0
  960. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/test.rb +94 -0
  961. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/algorithms.rb +460 -0
  962. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/cipher_factory.rb +119 -0
  963. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/constants.rb +36 -0
  964. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/ctr.rb +121 -0
  965. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/abstract.rb +82 -0
  966. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/md5.rb +12 -0
  967. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/md5_96.rb +11 -0
  968. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/none.rb +15 -0
  969. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/ripemd160.rb +13 -0
  970. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/sha1.rb +13 -0
  971. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/sha1_96.rb +11 -0
  972. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/sha2_256.rb +15 -0
  973. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/sha2_256_96.rb +13 -0
  974. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/sha2_512.rb +14 -0
  975. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac/sha2_512_96.rb +13 -0
  976. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/hmac.rb +45 -0
  977. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/identity_cipher.rb +59 -0
  978. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +51 -0
  979. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +231 -0
  980. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +79 -0
  981. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb +15 -0
  982. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +100 -0
  983. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb +20 -0
  984. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb +20 -0
  985. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/kex.rb +26 -0
  986. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/key_expander.rb +31 -0
  987. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/openssl.rb +252 -0
  988. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/packet_stream.rb +246 -0
  989. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/server_version.rb +76 -0
  990. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/session.rb +352 -0
  991. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/transport/state.rb +208 -0
  992. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/verifiers/accept_new.rb +35 -0
  993. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +34 -0
  994. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/verifiers/always.rb +56 -0
  995. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/verifiers/never.rb +21 -0
  996. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh/version.rb +68 -0
  997. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/lib/net/ssh.rb +322 -0
  998. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/net-ssh-public_cert.pem +21 -0
  999. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/net-ssh.gemspec +42 -0
  1000. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/support/arcfour_check.rb +20 -0
  1001. data/vendor/bundle/ruby/2.5.0/gems/net-ssh-5.1.0/support/ssh_tunnel_bug.rb +65 -0
  1002. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/.gitignore +21 -0
  1003. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/.travis.yml +21 -0
  1004. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/.yardopts +4 -0
  1005. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/Gemfile +16 -0
  1006. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/LICENSE.md +10 -0
  1007. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/README.md +103 -0
  1008. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/Rakefile +14 -0
  1009. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/errors.rb +3 -0
  1010. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/event.rb +146 -0
  1011. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/native/flags.rb +94 -0
  1012. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/native.rb +33 -0
  1013. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/notifier.rb +315 -0
  1014. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/version.rb +24 -0
  1015. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify/watcher.rb +88 -0
  1016. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/lib/rb-inotify.rb +15 -0
  1017. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/rb-inotify.gemspec +28 -0
  1018. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/spec/inotify_spec.rb +9 -0
  1019. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/spec/notifier_spec.rb +170 -0
  1020. data/vendor/bundle/ruby/2.5.0/gems/rb-inotify-0.10.0/spec/spec_helper.rb +29 -0
  1021. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/LICENSE +22 -0
  1022. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/README.md +67 -0
  1023. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/bin/vagrant_cloud +6 -0
  1024. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/account.rb +195 -0
  1025. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/box.rb +190 -0
  1026. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/client.rb +73 -0
  1027. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/errors.rb +35 -0
  1028. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/provider.rb +149 -0
  1029. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/search.rb +31 -0
  1030. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud/version.rb +202 -0
  1031. data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.2/lib/vagrant_cloud.rb +11 -0
  1032. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/LICENSE +202 -0
  1033. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/README.md +276 -0
  1034. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/bin/rwinrm +90 -0
  1035. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/connection.rb +84 -0
  1036. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/connection_opts.rb +90 -0
  1037. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/exceptions.rb +88 -0
  1038. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/http/response_handler.rb +127 -0
  1039. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/http/transport.rb +462 -0
  1040. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/http/transport_factory.rb +64 -0
  1041. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/output.rb +58 -0
  1042. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/create_pipeline.xml.erb +167 -0
  1043. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/fragment.rb +68 -0
  1044. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/init_runspace_pool.xml.erb +224 -0
  1045. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message.rb +128 -0
  1046. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/base.rb +47 -0
  1047. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/error_record.rb +66 -0
  1048. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/pipeline_host_call.rb +30 -0
  1049. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/pipeline_output.rb +48 -0
  1050. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/pipeline_state.rb +38 -0
  1051. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/runspacepool_host_call.rb +30 -0
  1052. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/runspacepool_state.rb +37 -0
  1053. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data/session_capability.rb +34 -0
  1054. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_data.rb +40 -0
  1055. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_defragmenter.rb +62 -0
  1056. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_factory.rb +74 -0
  1057. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/message_fragmenter.rb +58 -0
  1058. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/powershell_output_decoder.rb +142 -0
  1059. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/receive_response_reader.rb +95 -0
  1060. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/session_capability.xml.erb +7 -0
  1061. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/psrp/uuid.rb +39 -0
  1062. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/shells/base.rb +187 -0
  1063. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/shells/cmd.rb +63 -0
  1064. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/shells/power_shell.rb +206 -0
  1065. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/shells/retryable.rb +44 -0
  1066. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/shells/shell_factory.rb +56 -0
  1067. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/version.rb +5 -0
  1068. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/base.rb +57 -0
  1069. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/cleanup_command.rb +60 -0
  1070. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/close_shell.rb +49 -0
  1071. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/command.rb +100 -0
  1072. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/command_output.rb +75 -0
  1073. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/command_output_decoder.rb +54 -0
  1074. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/configuration.rb +44 -0
  1075. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/create_pipeline.rb +64 -0
  1076. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/create_shell.rb +115 -0
  1077. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/header.rb +213 -0
  1078. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/init_runspace_pool.rb +96 -0
  1079. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/iso8601_duration.rb +58 -0
  1080. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/keep_alive.rb +66 -0
  1081. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/receive_response_reader.rb +128 -0
  1082. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/send_data.rb +66 -0
  1083. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/soap.rb +49 -0
  1084. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/wql_pull.rb +54 -0
  1085. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/wql_query.rb +98 -0
  1086. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm/wsmv/write_stdin.rb +86 -0
  1087. data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.1/lib/winrm.rb +37 -0
  1088. data/vendor/bundle/ruby/2.5.0/gems/winrm-elevated-1.1.1/LICENSE +202 -0
  1089. data/vendor/bundle/ruby/2.5.0/gems/winrm-elevated-1.1.1/README.md +99 -0
  1090. data/vendor/bundle/ruby/2.5.0/gems/winrm-elevated-1.1.1/lib/winrm/shells/elevated.rb +103 -0
  1091. data/vendor/bundle/ruby/2.5.0/gems/winrm-elevated-1.1.1/lib/winrm-elevated/scripts/elevated_shell.ps1 +116 -0
  1092. data/vendor/bundle/ruby/2.5.0/gems/winrm-elevated-1.1.1/lib/winrm-elevated.rb +17 -0
  1093. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/LICENSE +202 -0
  1094. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/README.md +82 -0
  1095. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/bin/rwinrmcp +85 -0
  1096. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/core/file_transporter.rb +566 -0
  1097. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/core/tmp_zip.rb +176 -0
  1098. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/exceptions.rb +27 -0
  1099. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/file_manager.rb +156 -0
  1100. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/check_files.ps1.erb +49 -0
  1101. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/checksum.ps1.erb +13 -0
  1102. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/create_dir.ps1.erb +6 -0
  1103. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/delete.ps1.erb +6 -0
  1104. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/download.ps1.erb +17 -0
  1105. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/exists.ps1.erb +10 -0
  1106. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/extract_files.ps1.erb +52 -0
  1107. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs/scripts/scripts.rb +31 -0
  1108. data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.2/lib/winrm-fs.rb +27 -0
  1109. data/vendor/bundle/ruby/2.5.0/specifications/concurrent-ruby-1.1.4.gemspec +23 -0
  1110. data/vendor/bundle/ruby/2.5.0/specifications/ffi-1.10.0.gemspec +49 -0
  1111. data/vendor/bundle/ruby/2.5.0/specifications/hashdiff-0.3.8.gemspec +45 -0
  1112. data/vendor/bundle/ruby/2.5.0/specifications/net-ssh-5.1.0.gemspec +55 -0
  1113. data/vendor/bundle/ruby/2.5.0/specifications/rb-inotify-0.10.0.gemspec +44 -0
  1114. data/vendor/bundle/ruby/2.5.0/specifications/vagrant_cloud-2.0.2.gemspec +45 -0
  1115. data/vendor/bundle/ruby/2.5.0/specifications/winrm-2.3.1.gemspec +73 -0
  1116. data/vendor/bundle/ruby/2.5.0/specifications/winrm-elevated-1.1.1.gemspec +47 -0
  1117. data/vendor/bundle/ruby/2.5.0/specifications/winrm-fs-1.3.2.gemspec +58 -0
  1118. data/version.txt +1 -1
  1119. metadata +1072 -8
@@ -0,0 +1,1936 @@
1
+ require 'concurrent/synchronization'
2
+ require 'concurrent/atomic/atomic_boolean'
3
+ require 'concurrent/atomic/atomic_fixnum'
4
+ require 'concurrent/collection/lock_free_stack'
5
+ require 'concurrent/errors'
6
+ require 'concurrent/re_include'
7
+
8
+ module Concurrent
9
+
10
+ # {include:file:docs-source/promises-main.md}
11
+ module Promises
12
+
13
+ # @!macro promises.param.default_executor
14
+ # @param [Executor, :io, :fast] default_executor Instance of an executor or a name of the
15
+ # global executor. Default executor propagates to chained futures unless overridden with
16
+ # executor parameter or changed with {AbstractEventFuture#with_default_executor}.
17
+ #
18
+ # @!macro promises.param.executor
19
+ # @param [Executor, :io, :fast] executor Instance of an executor or a name of the
20
+ # global executor. The task is executed on it, default executor remains unchanged.
21
+ #
22
+ # @!macro promises.param.args
23
+ # @param [Object] args arguments which are passed to the task when it's executed.
24
+ # (It might be prepended with other arguments, see the @yeild section).
25
+ #
26
+ # @!macro promises.shortcut.on
27
+ # Shortcut of {#$0_on} with default `:io` executor supplied.
28
+ # @see #$0_on
29
+ #
30
+ # @!macro promises.shortcut.using
31
+ # Shortcut of {#$0_using} with default `:io` executor supplied.
32
+ # @see #$0_using
33
+ #
34
+ # @!macro promise.param.task-future
35
+ # @yieldreturn will become result of the returned Future.
36
+ # Its returned value becomes {Future#value} fulfilling it,
37
+ # raised exception becomes {Future#reason} rejecting it.
38
+ #
39
+ # @!macro promise.param.callback
40
+ # @yieldreturn is forgotten.
41
+
42
+ # Container of all {Future}, {Event} factory methods. They are never constructed directly with
43
+ # new.
44
+ module FactoryMethods
45
+ extend ReInclude
46
+
47
+ module Configuration
48
+ # @return [Executor, :io, :fast] the executor which is used when none is supplied
49
+ # to a factory method. The method can be overridden in the receivers of
50
+ # `include FactoryMethod`
51
+ def default_executor
52
+ :io
53
+ end
54
+ end
55
+
56
+ include Configuration
57
+
58
+ # @!macro promises.shortcut.on
59
+ # @return [ResolvableEvent]
60
+ def resolvable_event
61
+ resolvable_event_on default_executor
62
+ end
63
+
64
+ # Created resolvable event, user is responsible for resolving the event once by
65
+ # {Promises::ResolvableEvent#resolve}.
66
+ #
67
+ # @!macro promises.param.default_executor
68
+ # @return [ResolvableEvent]
69
+ def resolvable_event_on(default_executor = self.default_executor)
70
+ ResolvableEventPromise.new(default_executor).future
71
+ end
72
+
73
+ # @!macro promises.shortcut.on
74
+ # @return [ResolvableFuture]
75
+ def resolvable_future
76
+ resolvable_future_on default_executor
77
+ end
78
+
79
+ # Creates resolvable future, user is responsible for resolving the future once by
80
+ # {Promises::ResolvableFuture#resolve}, {Promises::ResolvableFuture#fulfill},
81
+ # or {Promises::ResolvableFuture#reject}
82
+ #
83
+ # @!macro promises.param.default_executor
84
+ # @return [ResolvableFuture]
85
+ def resolvable_future_on(default_executor = self.default_executor)
86
+ ResolvableFuturePromise.new(default_executor).future
87
+ end
88
+
89
+ # @!macro promises.shortcut.on
90
+ # @return [Future]
91
+ def future(*args, &task)
92
+ future_on(default_executor, *args, &task)
93
+ end
94
+
95
+ # @!macro promises.future-on1
96
+ # Constructs new Future which will be resolved after block is evaluated on default executor.
97
+ # Evaluation begins immediately.
98
+ #
99
+ # @!macro promises.future-on2
100
+ # @!macro promises.param.default_executor
101
+ # @!macro promises.param.args
102
+ # @yield [*args] to the task.
103
+ # @!macro promise.param.task-future
104
+ # @return [Future]
105
+ def future_on(default_executor, *args, &task)
106
+ ImmediateEventPromise.new(default_executor).future.then(*args, &task)
107
+ end
108
+
109
+ # Creates resolved future with will be either fulfilled with the given value or rejection with
110
+ # the given reason.
111
+ #
112
+ # @!macro promises.param.default_executor
113
+ # @return [Future]
114
+ def resolved_future(fulfilled, value, reason, default_executor = self.default_executor)
115
+ ImmediateFuturePromise.new(default_executor, fulfilled, value, reason).future
116
+ end
117
+
118
+ # Creates resolved future with will be fulfilled with the given value.
119
+ #
120
+ # @!macro promises.param.default_executor
121
+ # @return [Future]
122
+ def fulfilled_future(value, default_executor = self.default_executor)
123
+ resolved_future true, value, nil, default_executor
124
+ end
125
+
126
+ # Creates resolved future with will be rejected with the given reason.
127
+ #
128
+ # @!macro promises.param.default_executor
129
+ # @return [Future]
130
+ def rejected_future(reason, default_executor = self.default_executor)
131
+ resolved_future false, nil, reason, default_executor
132
+ end
133
+
134
+ # Creates resolved event.
135
+ #
136
+ # @!macro promises.param.default_executor
137
+ # @return [Event]
138
+ def resolved_event(default_executor = self.default_executor)
139
+ ImmediateEventPromise.new(default_executor).event
140
+ end
141
+
142
+ # General constructor. Behaves differently based on the argument's type. It's provided for convenience
143
+ # but it's better to be explicit.
144
+ #
145
+ # @see rejected_future, resolved_event, fulfilled_future
146
+ # @!macro promises.param.default_executor
147
+ # @return [Event, Future]
148
+ #
149
+ # @overload create(nil, default_executor = self.default_executor)
150
+ # @param [nil] nil
151
+ # @return [Event] resolved event.
152
+ #
153
+ # @overload create(a_future, default_executor = self.default_executor)
154
+ # @param [Future] a_future
155
+ # @return [Future] a future which will be resolved when a_future is.
156
+ #
157
+ # @overload create(an_event, default_executor = self.default_executor)
158
+ # @param [Event] an_event
159
+ # @return [Event] an event which will be resolved when an_event is.
160
+ #
161
+ # @overload create(exception, default_executor = self.default_executor)
162
+ # @param [Exception] exception
163
+ # @return [Future] a rejected future with the exception as its reason.
164
+ #
165
+ # @overload create(value, default_executor = self.default_executor)
166
+ # @param [Object] value when none of the above overloads fits
167
+ # @return [Future] a fulfilled future with the value.
168
+ def make_future(argument = nil, default_executor = self.default_executor)
169
+ case argument
170
+ when AbstractEventFuture
171
+ # returning wrapper would change nothing
172
+ argument
173
+ when Exception
174
+ rejected_future argument, default_executor
175
+ when nil
176
+ resolved_event default_executor
177
+ else
178
+ fulfilled_future argument, default_executor
179
+ end
180
+ end
181
+
182
+ # @!macro promises.shortcut.on
183
+ # @return [Future]
184
+ def delay(*args, &task)
185
+ delay_on default_executor, *args, &task
186
+ end
187
+
188
+ # @!macro promises.future-on1
189
+ # The task will be evaluated only after the future is touched, see {AbstractEventFuture#touch}
190
+ #
191
+ # @!macro promises.future-on2
192
+ def delay_on(default_executor, *args, &task)
193
+ DelayPromise.new(default_executor).event.chain(*args, &task)
194
+ end
195
+
196
+ # @!macro promises.shortcut.on
197
+ # @return [Future]
198
+ def schedule(intended_time, *args, &task)
199
+ schedule_on default_executor, intended_time, *args, &task
200
+ end
201
+
202
+ # @!macro promises.future-on1
203
+ # The task is planned for execution in intended_time.
204
+ #
205
+ # @!macro promises.future-on2
206
+ # @!macro promises.param.intended_time
207
+ # @param [Numeric, Time] intended_time `Numeric` means to run in `intended_time` seconds.
208
+ # `Time` means to run on `intended_time`.
209
+ def schedule_on(default_executor, intended_time, *args, &task)
210
+ ScheduledPromise.new(default_executor, intended_time).event.chain(*args, &task)
211
+ end
212
+
213
+ # @!macro promises.shortcut.on
214
+ # @return [Future]
215
+ def zip_futures(*futures_and_or_events)
216
+ zip_futures_on default_executor, *futures_and_or_events
217
+ end
218
+
219
+ # Creates new future which is resolved after all futures_and_or_events are resolved.
220
+ # Its value is array of zipped future values. Its reason is array of reasons for rejection.
221
+ # If there is an error it rejects.
222
+ # @!macro promises.event-conversion
223
+ # If event is supplied, which does not have value and can be only resolved, it's
224
+ # represented as `:fulfilled` with value `nil`.
225
+ #
226
+ # @!macro promises.param.default_executor
227
+ # @param [AbstractEventFuture] futures_and_or_events
228
+ # @return [Future]
229
+ def zip_futures_on(default_executor, *futures_and_or_events)
230
+ ZipFuturesPromise.new_blocked_by(futures_and_or_events, default_executor).future
231
+ end
232
+
233
+ alias_method :zip, :zip_futures
234
+
235
+ # @!macro promises.shortcut.on
236
+ # @return [Event]
237
+ def zip_events(*futures_and_or_events)
238
+ zip_events_on default_executor, *futures_and_or_events
239
+ end
240
+
241
+ # Creates new event which is resolved after all futures_and_or_events are resolved.
242
+ # (Future is resolved when fulfilled or rejected.)
243
+ #
244
+ # @!macro promises.param.default_executor
245
+ # @param [AbstractEventFuture] futures_and_or_events
246
+ # @return [Event]
247
+ def zip_events_on(default_executor, *futures_and_or_events)
248
+ ZipEventsPromise.new_blocked_by(futures_and_or_events, default_executor).event
249
+ end
250
+
251
+ # @!macro promises.shortcut.on
252
+ # @return [Future]
253
+ def any_resolved_future(*futures_and_or_events)
254
+ any_resolved_future_on default_executor, *futures_and_or_events
255
+ end
256
+
257
+ alias_method :any, :any_resolved_future
258
+
259
+ # Creates new future which is resolved after first futures_and_or_events is resolved.
260
+ # Its result equals result of the first resolved future.
261
+ # @!macro promises.any-touch
262
+ # If resolved it does not propagate {AbstractEventFuture#touch}, leaving delayed
263
+ # futures un-executed if they are not required any more.
264
+ # @!macro promises.event-conversion
265
+ #
266
+ # @!macro promises.param.default_executor
267
+ # @param [AbstractEventFuture] futures_and_or_events
268
+ # @return [Future]
269
+ def any_resolved_future_on(default_executor, *futures_and_or_events)
270
+ AnyResolvedFuturePromise.new_blocked_by(futures_and_or_events, default_executor).future
271
+ end
272
+
273
+ # @!macro promises.shortcut.on
274
+ # @return [Future]
275
+ def any_fulfilled_future(*futures_and_or_events)
276
+ any_fulfilled_future_on default_executor, *futures_and_or_events
277
+ end
278
+
279
+ # Creates new future which is resolved after first of futures_and_or_events is fulfilled.
280
+ # Its result equals result of the first resolved future or if all futures_and_or_events reject,
281
+ # it has reason of the last resolved future.
282
+ # @!macro promises.any-touch
283
+ # @!macro promises.event-conversion
284
+ #
285
+ # @!macro promises.param.default_executor
286
+ # @param [AbstractEventFuture] futures_and_or_events
287
+ # @return [Future]
288
+ def any_fulfilled_future_on(default_executor, *futures_and_or_events)
289
+ AnyFulfilledFuturePromise.new_blocked_by(futures_and_or_events, default_executor).future
290
+ end
291
+
292
+ # @!macro promises.shortcut.on
293
+ # @return [Future]
294
+ def any_event(*futures_and_or_events)
295
+ any_event_on default_executor, *futures_and_or_events
296
+ end
297
+
298
+ # Creates new event which becomes resolved after first of the futures_and_or_events resolves.
299
+ # @!macro promises.any-touch
300
+ #
301
+ # @!macro promises.param.default_executor
302
+ # @param [AbstractEventFuture] futures_and_or_events
303
+ # @return [Event]
304
+ def any_event_on(default_executor, *futures_and_or_events)
305
+ AnyResolvedEventPromise.new_blocked_by(futures_and_or_events, default_executor).event
306
+ end
307
+
308
+ # TODO consider adding first(count, *futures)
309
+ # TODO consider adding zip_by(slice, *futures) processing futures in slices
310
+ # TODO or rather a generic aggregator taking a function
311
+ end
312
+
313
+ module InternalStates
314
+ # @private
315
+ class State
316
+ def resolved?
317
+ raise NotImplementedError
318
+ end
319
+
320
+ def to_sym
321
+ raise NotImplementedError
322
+ end
323
+ end
324
+
325
+ private_constant :State
326
+
327
+ # @private
328
+ class Pending < State
329
+ def resolved?
330
+ false
331
+ end
332
+
333
+ def to_sym
334
+ :pending
335
+ end
336
+ end
337
+
338
+ private_constant :Pending
339
+
340
+ # @private
341
+ class ResolvedWithResult < State
342
+ def resolved?
343
+ true
344
+ end
345
+
346
+ def to_sym
347
+ :resolved
348
+ end
349
+
350
+ def result
351
+ [fulfilled?, value, reason]
352
+ end
353
+
354
+ def fulfilled?
355
+ raise NotImplementedError
356
+ end
357
+
358
+ def value
359
+ raise NotImplementedError
360
+ end
361
+
362
+ def reason
363
+ raise NotImplementedError
364
+ end
365
+
366
+ def apply
367
+ raise NotImplementedError
368
+ end
369
+ end
370
+
371
+ private_constant :ResolvedWithResult
372
+
373
+ # @private
374
+ class Fulfilled < ResolvedWithResult
375
+
376
+ def initialize(value)
377
+ @Value = value
378
+ end
379
+
380
+ def fulfilled?
381
+ true
382
+ end
383
+
384
+ def apply(args, block)
385
+ block.call value, *args
386
+ end
387
+
388
+ def value
389
+ @Value
390
+ end
391
+
392
+ def reason
393
+ nil
394
+ end
395
+
396
+ def to_sym
397
+ :fulfilled
398
+ end
399
+ end
400
+
401
+ private_constant :Fulfilled
402
+
403
+ # @private
404
+ class FulfilledArray < Fulfilled
405
+ def apply(args, block)
406
+ block.call(*value, *args)
407
+ end
408
+ end
409
+
410
+ private_constant :FulfilledArray
411
+
412
+ # @private
413
+ class Rejected < ResolvedWithResult
414
+ def initialize(reason)
415
+ @Reason = reason
416
+ end
417
+
418
+ def fulfilled?
419
+ false
420
+ end
421
+
422
+ def value
423
+ nil
424
+ end
425
+
426
+ def reason
427
+ @Reason
428
+ end
429
+
430
+ def to_sym
431
+ :rejected
432
+ end
433
+
434
+ def apply(args, block)
435
+ block.call reason, *args
436
+ end
437
+ end
438
+
439
+ private_constant :Rejected
440
+
441
+ # @private
442
+ class PartiallyRejected < ResolvedWithResult
443
+ def initialize(value, reason)
444
+ super()
445
+ @Value = value
446
+ @Reason = reason
447
+ end
448
+
449
+ def fulfilled?
450
+ false
451
+ end
452
+
453
+ def to_sym
454
+ :rejected
455
+ end
456
+
457
+ def value
458
+ @Value
459
+ end
460
+
461
+ def reason
462
+ @Reason
463
+ end
464
+
465
+ def apply(args, block)
466
+ block.call(*reason, *args)
467
+ end
468
+ end
469
+
470
+ private_constant :PartiallyRejected
471
+
472
+ PENDING = Pending.new
473
+ RESOLVED = Fulfilled.new(nil)
474
+
475
+ def RESOLVED.to_sym
476
+ :resolved
477
+ end
478
+
479
+ private_constant :PENDING, :RESOLVED
480
+ end
481
+
482
+ private_constant :InternalStates
483
+
484
+ # Common ancestor of {Event} and {Future} classes, many shared methods are defined here.
485
+ class AbstractEventFuture < Synchronization::Object
486
+ safe_initialization!
487
+ private(*attr_atomic(:internal_state) - [:internal_state])
488
+
489
+ include InternalStates
490
+
491
+ def initialize(promise, default_executor)
492
+ super()
493
+ @Lock = Mutex.new
494
+ @Condition = ConditionVariable.new
495
+ @Promise = promise
496
+ @DefaultExecutor = default_executor
497
+ @Callbacks = LockFreeStack.new
498
+ @Waiters = AtomicFixnum.new 0
499
+ self.internal_state = PENDING
500
+ end
501
+
502
+ private :initialize
503
+
504
+ # @!macro promises.shortcut.event-future
505
+ # @see Event#$0
506
+ # @see Future#$0
507
+
508
+ # @!macro promises.param.timeout
509
+ # @param [Numeric] timeout the maximum time in second to wait.
510
+
511
+ # @!macro promises.warn.blocks
512
+ # @note This function potentially blocks current thread until the Future is resolved.
513
+ # Be careful it can deadlock. Try to chain instead.
514
+
515
+ # Returns its state.
516
+ # @return [Symbol]
517
+ #
518
+ # @overload an_event.state
519
+ # @return [:pending, :resolved]
520
+ # @overload a_future.state
521
+ # Both :fulfilled, :rejected implies :resolved.
522
+ # @return [:pending, :fulfilled, :rejected]
523
+ def state
524
+ internal_state.to_sym
525
+ end
526
+
527
+ # Is it in pending state?
528
+ # @return [Boolean]
529
+ def pending?
530
+ !internal_state.resolved?
531
+ end
532
+
533
+ # Is it in resolved state?
534
+ # @return [Boolean]
535
+ def resolved?
536
+ internal_state.resolved?
537
+ end
538
+
539
+ # Propagates touch. Requests all the delayed futures, which it depends on, to be
540
+ # executed. This method is called by any other method requiring resolved state, like {#wait}.
541
+ # @return [self]
542
+ def touch
543
+ @Promise.touch
544
+ self
545
+ end
546
+
547
+ # @!macro promises.touches
548
+ # Calls {AbstractEventFuture#touch}.
549
+
550
+ # @!macro promises.method.wait
551
+ # Wait (block the Thread) until receiver is {#resolved?}.
552
+ # @!macro promises.touches
553
+ #
554
+ # @!macro promises.warn.blocks
555
+ # @!macro promises.param.timeout
556
+ # @return [Future, true, false] self implies timeout was not used, true implies timeout was used
557
+ # and it was resolved, false implies it was not resolved within timeout.
558
+ def wait(timeout = nil)
559
+ result = wait_until_resolved(timeout)
560
+ timeout ? result : self
561
+ end
562
+
563
+ # Returns default executor.
564
+ # @return [Executor] default executor
565
+ # @see #with_default_executor
566
+ # @see FactoryMethods#future_on
567
+ # @see FactoryMethods#resolvable_future
568
+ # @see FactoryMethods#any_fulfilled_future_on
569
+ # @see similar
570
+ def default_executor
571
+ @DefaultExecutor
572
+ end
573
+
574
+ # @!macro promises.shortcut.on
575
+ # @return [Future]
576
+ def chain(*args, &task)
577
+ chain_on @DefaultExecutor, *args, &task
578
+ end
579
+
580
+ # Chains the task to be executed asynchronously on executor after it is resolved.
581
+ #
582
+ # @!macro promises.param.executor
583
+ # @!macro promises.param.args
584
+ # @return [Future]
585
+ # @!macro promise.param.task-future
586
+ #
587
+ # @overload an_event.chain_on(executor, *args, &task)
588
+ # @yield [*args] to the task.
589
+ # @overload a_future.chain_on(executor, *args, &task)
590
+ # @yield [fulfilled, value, reason, *args] to the task.
591
+ # @yieldparam [true, false] fulfilled
592
+ # @yieldparam [Object] value
593
+ # @yieldparam [Exception] reason
594
+ def chain_on(executor, *args, &task)
595
+ ChainPromise.new_blocked_by1(self, @DefaultExecutor, executor, args, &task).future
596
+ end
597
+
598
+ # @return [String] Short string representation.
599
+ def to_s
600
+ format '%s %s>', super[0..-2], state
601
+ end
602
+
603
+ alias_method :inspect, :to_s
604
+
605
+ # Resolves the resolvable when receiver is resolved.
606
+ #
607
+ # @param [Resolvable] resolvable
608
+ # @return [self]
609
+ def chain_resolvable(resolvable)
610
+ on_resolution! { resolvable.resolve_with internal_state }
611
+ end
612
+
613
+ alias_method :tangle, :chain_resolvable
614
+
615
+ # @!macro promises.shortcut.using
616
+ # @return [self]
617
+ def on_resolution(*args, &callback)
618
+ on_resolution_using @DefaultExecutor, *args, &callback
619
+ end
620
+
621
+ # Stores the callback to be executed synchronously on resolving thread after it is
622
+ # resolved.
623
+ #
624
+ # @!macro promises.param.args
625
+ # @!macro promise.param.callback
626
+ # @return [self]
627
+ #
628
+ # @overload an_event.on_resolution!(*args, &callback)
629
+ # @yield [*args] to the callback.
630
+ # @overload a_future.on_resolution!(*args, &callback)
631
+ # @yield [fulfilled, value, reason, *args] to the callback.
632
+ # @yieldparam [true, false] fulfilled
633
+ # @yieldparam [Object] value
634
+ # @yieldparam [Exception] reason
635
+ def on_resolution!(*args, &callback)
636
+ add_callback :callback_on_resolution, args, callback
637
+ end
638
+
639
+ # Stores the callback to be executed asynchronously on executor after it is resolved.
640
+ #
641
+ # @!macro promises.param.executor
642
+ # @!macro promises.param.args
643
+ # @!macro promise.param.callback
644
+ # @return [self]
645
+ #
646
+ # @overload an_event.on_resolution_using(executor, *args, &callback)
647
+ # @yield [*args] to the callback.
648
+ # @overload a_future.on_resolution_using(executor, *args, &callback)
649
+ # @yield [fulfilled, value, reason, *args] to the callback.
650
+ # @yieldparam [true, false] fulfilled
651
+ # @yieldparam [Object] value
652
+ # @yieldparam [Exception] reason
653
+ def on_resolution_using(executor, *args, &callback)
654
+ add_callback :async_callback_on_resolution, executor, args, callback
655
+ end
656
+
657
+ # @!macro promises.method.with_default_executor
658
+ # Crates new object with same class with the executor set as its new default executor.
659
+ # Any futures depending on it will use the new default executor.
660
+ # @!macro promises.shortcut.event-future
661
+ # @abstract
662
+ # @return [AbstractEventFuture]
663
+ def with_default_executor(executor)
664
+ raise NotImplementedError
665
+ end
666
+
667
+ # @!visibility private
668
+ def resolve_with(state, raise_on_reassign = true)
669
+ if compare_and_set_internal_state(PENDING, state)
670
+ # go to synchronized block only if there were waiting threads
671
+ @Lock.synchronize { @Condition.broadcast } unless @Waiters.value == 0
672
+ call_callbacks state
673
+ else
674
+ return rejected_resolution(raise_on_reassign, state)
675
+ end
676
+ self
677
+ end
678
+
679
+ # For inspection.
680
+ # @!visibility private
681
+ # @return [Array<AbstractPromise>]
682
+ def blocks
683
+ @Callbacks.each_with_object([]) do |(method, args), promises|
684
+ promises.push(args[0]) if method == :callback_notify_blocked
685
+ end
686
+ end
687
+
688
+ # For inspection.
689
+ # @!visibility private
690
+ def callbacks
691
+ @Callbacks.each.to_a
692
+ end
693
+
694
+ # For inspection.
695
+ # @!visibility private
696
+ def promise
697
+ @Promise
698
+ end
699
+
700
+ # For inspection.
701
+ # @!visibility private
702
+ def touched?
703
+ promise.touched?
704
+ end
705
+
706
+ # For inspection.
707
+ # @!visibility private
708
+ def waiting_threads
709
+ @Waiters.each.to_a
710
+ end
711
+
712
+ # @!visibility private
713
+ def add_callback_notify_blocked(promise, index)
714
+ add_callback :callback_notify_blocked, promise, index
715
+ end
716
+
717
+ # @!visibility private
718
+ def add_callback_clear_delayed_node(node)
719
+ add_callback(:callback_clear_delayed_node, node)
720
+ end
721
+
722
+ private
723
+
724
+ def add_callback(method, *args)
725
+ state = internal_state
726
+ if state.resolved?
727
+ call_callback method, state, args
728
+ else
729
+ @Callbacks.push [method, args]
730
+ state = internal_state
731
+ # take back if it was resolved in the meanwhile
732
+ call_callbacks state if state.resolved?
733
+ end
734
+ self
735
+ end
736
+
737
+ def callback_clear_delayed_node(state, node)
738
+ node.value = nil
739
+ end
740
+
741
+ # @return [Boolean]
742
+ def wait_until_resolved(timeout)
743
+ return true if resolved?
744
+
745
+ touch
746
+
747
+ @Lock.synchronize do
748
+ @Waiters.increment
749
+ begin
750
+ unless resolved?
751
+ @Condition.wait @Lock, timeout
752
+ end
753
+ ensure
754
+ # JRuby may raise ConcurrencyError
755
+ @Waiters.decrement
756
+ end
757
+ end
758
+ resolved?
759
+ end
760
+
761
+ def call_callback(method, state, args)
762
+ self.send method, state, *args
763
+ end
764
+
765
+ def call_callbacks(state)
766
+ method, args = @Callbacks.pop
767
+ while method
768
+ call_callback method, state, args
769
+ method, args = @Callbacks.pop
770
+ end
771
+ end
772
+
773
+ def with_async(executor, *args, &block)
774
+ Concurrent.executor(executor).post(*args, &block)
775
+ end
776
+
777
+ def async_callback_on_resolution(state, executor, args, callback)
778
+ with_async(executor, state, args, callback) do |st, ar, cb|
779
+ callback_on_resolution st, ar, cb
780
+ end
781
+ end
782
+
783
+ def callback_notify_blocked(state, promise, index)
784
+ promise.on_blocker_resolution self, index
785
+ end
786
+ end
787
+
788
+ # Represents an event which will happen in future (will be resolved). The event is either
789
+ # pending or resolved. It should be always resolved. Use {Future} to communicate rejections and
790
+ # cancellation.
791
+ class Event < AbstractEventFuture
792
+
793
+ alias_method :then, :chain
794
+
795
+
796
+ # @!macro promises.method.zip
797
+ # Creates a new event or a future which will be resolved when receiver and other are.
798
+ # Returns an event if receiver and other are events, otherwise returns a future.
799
+ # If just one of the parties is Future then the result
800
+ # of the returned future is equal to the result of the supplied future. If both are futures
801
+ # then the result is as described in {FactoryMethods#zip_futures_on}.
802
+ #
803
+ # @return [Future, Event]
804
+ def zip(other)
805
+ if other.is_a?(Future)
806
+ ZipFutureEventPromise.new_blocked_by2(other, self, @DefaultExecutor).future
807
+ else
808
+ ZipEventEventPromise.new_blocked_by2(self, other, @DefaultExecutor).event
809
+ end
810
+ end
811
+
812
+ alias_method :&, :zip
813
+
814
+ # Creates a new event which will be resolved when the first of receiver, `event_or_future`
815
+ # resolves.
816
+ #
817
+ # @return [Event]
818
+ def any(event_or_future)
819
+ AnyResolvedEventPromise.new_blocked_by2(self, event_or_future, @DefaultExecutor).event
820
+ end
821
+
822
+ alias_method :|, :any
823
+
824
+ # Creates new event dependent on receiver which will not evaluate until touched, see {#touch}.
825
+ # In other words, it inserts delay into the chain of Futures making rest of it lazy evaluated.
826
+ #
827
+ # @return [Event]
828
+ def delay
829
+ event = DelayPromise.new(@DefaultExecutor).event
830
+ ZipEventEventPromise.new_blocked_by2(self, event, @DefaultExecutor).event
831
+ end
832
+
833
+ # @!macro promise.method.schedule
834
+ # Creates new event dependent on receiver scheduled to execute on/in intended_time.
835
+ # In time is interpreted from the moment the receiver is resolved, therefore it inserts
836
+ # delay into the chain.
837
+ #
838
+ # @!macro promises.param.intended_time
839
+ # @return [Event]
840
+ def schedule(intended_time)
841
+ chain do
842
+ event = ScheduledPromise.new(@DefaultExecutor, intended_time).event
843
+ ZipEventEventPromise.new_blocked_by2(self, event, @DefaultExecutor).event
844
+ end.flat_event
845
+ end
846
+
847
+ # Converts event to a future. The future is fulfilled when the event is resolved, the future may never fail.
848
+ #
849
+ # @return [Future]
850
+ def to_future
851
+ future = Promises.resolvable_future
852
+ ensure
853
+ chain_resolvable(future)
854
+ end
855
+
856
+ # Returns self, since this is event
857
+ # @return [Event]
858
+ def to_event
859
+ self
860
+ end
861
+
862
+ # @!macro promises.method.with_default_executor
863
+ # @return [Event]
864
+ def with_default_executor(executor)
865
+ EventWrapperPromise.new_blocked_by1(self, executor).event
866
+ end
867
+
868
+ private
869
+
870
+ def rejected_resolution(raise_on_reassign, state)
871
+ Concurrent::MultipleAssignmentError.new('Event can be resolved only once') if raise_on_reassign
872
+ return false
873
+ end
874
+
875
+ def callback_on_resolution(state, args, callback)
876
+ callback.call(*args)
877
+ end
878
+ end
879
+
880
+ # Represents a value which will become available in future. May reject with a reason instead,
881
+ # e.g. when the tasks raises an exception.
882
+ class Future < AbstractEventFuture
883
+
884
+ # Is it in fulfilled state?
885
+ # @return [Boolean]
886
+ def fulfilled?
887
+ state = internal_state
888
+ state.resolved? && state.fulfilled?
889
+ end
890
+
891
+ # Is it in rejected state?
892
+ # @return [Boolean]
893
+ def rejected?
894
+ state = internal_state
895
+ state.resolved? && !state.fulfilled?
896
+ end
897
+
898
+ # @!macro promises.warn.nil
899
+ # @note Make sure returned `nil` is not confused with timeout, no value when rejected,
900
+ # no reason when fulfilled, etc.
901
+ # Use more exact methods if needed, like {#wait}, {#value!}, {#result}, etc.
902
+
903
+ # @!macro promises.method.value
904
+ # Return value of the future.
905
+ # @!macro promises.touches
906
+ #
907
+ # @!macro promises.warn.blocks
908
+ # @!macro promises.warn.nil
909
+ # @!macro promises.param.timeout
910
+ # @return [Object, nil] the value of the Future when fulfilled, nil on timeout or rejection.
911
+ def value(timeout = nil)
912
+ internal_state.value if wait_until_resolved timeout
913
+ end
914
+
915
+ # Returns reason of future's rejection.
916
+ # @!macro promises.touches
917
+ #
918
+ # @!macro promises.warn.blocks
919
+ # @!macro promises.warn.nil
920
+ # @!macro promises.param.timeout
921
+ # @return [Exception, nil] nil on timeout or fulfillment.
922
+ def reason(timeout = nil)
923
+ internal_state.reason if wait_until_resolved timeout
924
+ end
925
+
926
+ # Returns triplet fulfilled?, value, reason.
927
+ # @!macro promises.touches
928
+ #
929
+ # @!macro promises.warn.blocks
930
+ # @!macro promises.param.timeout
931
+ # @return [Array(Boolean, Object, Exception), nil] triplet of fulfilled?, value, reason, or nil
932
+ # on timeout.
933
+ def result(timeout = nil)
934
+ internal_state.result if wait_until_resolved timeout
935
+ end
936
+
937
+ # @!macro promises.method.wait
938
+ # @raise [Exception] {#reason} on rejection
939
+ def wait!(timeout = nil)
940
+ result = wait_until_resolved!(timeout)
941
+ timeout ? result : self
942
+ end
943
+
944
+ # @!macro promises.method.value
945
+ # @return [Object, nil] the value of the Future when fulfilled, nil on timeout.
946
+ # @raise [Exception] {#reason} on rejection
947
+ def value!(timeout = nil)
948
+ internal_state.value if wait_until_resolved! timeout
949
+ end
950
+
951
+ # Allows rejected Future to be risen with `raise` method.
952
+ # @example
953
+ # raise Promises.rejected_future(StandardError.new("boom"))
954
+ # @raise [StandardError] when raising not rejected future
955
+ # @return [Exception]
956
+ def exception(*args)
957
+ raise Concurrent::Error, 'it is not rejected' unless rejected?
958
+ reason = Array(internal_state.reason).flatten.compact
959
+ if reason.size > 1
960
+ ex = Concurrent::MultipleErrors.new reason
961
+ ex.set_backtrace(caller)
962
+ ex
963
+ else
964
+ ex = reason[0].clone.exception(*args)
965
+ ex.set_backtrace Array(ex.backtrace) + caller
966
+ ex
967
+ end
968
+ end
969
+
970
+ # @!macro promises.shortcut.on
971
+ # @return [Future]
972
+ def then(*args, &task)
973
+ then_on @DefaultExecutor, *args, &task
974
+ end
975
+
976
+ # Chains the task to be executed asynchronously on executor after it fulfills. Does not run
977
+ # the task if it rejects. It will resolve though, triggering any dependent futures.
978
+ #
979
+ # @!macro promises.param.executor
980
+ # @!macro promises.param.args
981
+ # @!macro promise.param.task-future
982
+ # @return [Future]
983
+ # @yield [value, *args] to the task.
984
+ def then_on(executor, *args, &task)
985
+ ThenPromise.new_blocked_by1(self, @DefaultExecutor, executor, args, &task).future
986
+ end
987
+
988
+ # @!macro promises.shortcut.on
989
+ # @return [Future]
990
+ def rescue(*args, &task)
991
+ rescue_on @DefaultExecutor, *args, &task
992
+ end
993
+
994
+ # Chains the task to be executed asynchronously on executor after it rejects. Does not run
995
+ # the task if it fulfills. It will resolve though, triggering any dependent futures.
996
+ #
997
+ # @!macro promises.param.executor
998
+ # @!macro promises.param.args
999
+ # @!macro promise.param.task-future
1000
+ # @return [Future]
1001
+ # @yield [reason, *args] to the task.
1002
+ def rescue_on(executor, *args, &task)
1003
+ RescuePromise.new_blocked_by1(self, @DefaultExecutor, executor, args, &task).future
1004
+ end
1005
+
1006
+ # @!macro promises.method.zip
1007
+ # @return [Future]
1008
+ def zip(other)
1009
+ if other.is_a?(Future)
1010
+ ZipFuturesPromise.new_blocked_by2(self, other, @DefaultExecutor).future
1011
+ else
1012
+ ZipFutureEventPromise.new_blocked_by2(self, other, @DefaultExecutor).future
1013
+ end
1014
+ end
1015
+
1016
+ alias_method :&, :zip
1017
+
1018
+ # Creates a new event which will be resolved when the first of receiver, `event_or_future`
1019
+ # resolves. Returning future will have value nil if event_or_future is event and resolves
1020
+ # first.
1021
+ #
1022
+ # @return [Future]
1023
+ def any(event_or_future)
1024
+ AnyResolvedFuturePromise.new_blocked_by2(self, event_or_future, @DefaultExecutor).future
1025
+ end
1026
+
1027
+ alias_method :|, :any
1028
+
1029
+ # Creates new future dependent on receiver which will not evaluate until touched, see {#touch}.
1030
+ # In other words, it inserts delay into the chain of Futures making rest of it lazy evaluated.
1031
+ #
1032
+ # @return [Future]
1033
+ def delay
1034
+ event = DelayPromise.new(@DefaultExecutor).event
1035
+ ZipFutureEventPromise.new_blocked_by2(self, event, @DefaultExecutor).future
1036
+ end
1037
+
1038
+ # @!macro promise.method.schedule
1039
+ # @return [Future]
1040
+ def schedule(intended_time)
1041
+ chain do
1042
+ event = ScheduledPromise.new(@DefaultExecutor, intended_time).event
1043
+ ZipFutureEventPromise.new_blocked_by2(self, event, @DefaultExecutor).future
1044
+ end.flat
1045
+ end
1046
+
1047
+ # @!macro promises.method.with_default_executor
1048
+ # @return [Future]
1049
+ def with_default_executor(executor)
1050
+ FutureWrapperPromise.new_blocked_by1(self, executor).future
1051
+ end
1052
+
1053
+ # Creates new future which will have result of the future returned by receiver. If receiver
1054
+ # rejects it will have its rejection.
1055
+ #
1056
+ # @param [Integer] level how many levels of futures should flatten
1057
+ # @return [Future]
1058
+ def flat_future(level = 1)
1059
+ FlatFuturePromise.new_blocked_by1(self, level, @DefaultExecutor).future
1060
+ end
1061
+
1062
+ alias_method :flat, :flat_future
1063
+
1064
+ # Creates new event which will be resolved when the returned event by receiver is.
1065
+ # Be careful if the receiver rejects it will just resolve since Event does not hold reason.
1066
+ #
1067
+ # @return [Event]
1068
+ def flat_event
1069
+ FlatEventPromise.new_blocked_by1(self, @DefaultExecutor).event
1070
+ end
1071
+
1072
+ # @!macro promises.shortcut.using
1073
+ # @return [self]
1074
+ def on_fulfillment(*args, &callback)
1075
+ on_fulfillment_using @DefaultExecutor, *args, &callback
1076
+ end
1077
+
1078
+ # Stores the callback to be executed synchronously on resolving thread after it is
1079
+ # fulfilled. Does nothing on rejection.
1080
+ #
1081
+ # @!macro promises.param.args
1082
+ # @!macro promise.param.callback
1083
+ # @return [self]
1084
+ # @yield [value, *args] to the callback.
1085
+ def on_fulfillment!(*args, &callback)
1086
+ add_callback :callback_on_fulfillment, args, callback
1087
+ end
1088
+
1089
+ # Stores the callback to be executed asynchronously on executor after it is
1090
+ # fulfilled. Does nothing on rejection.
1091
+ #
1092
+ # @!macro promises.param.executor
1093
+ # @!macro promises.param.args
1094
+ # @!macro promise.param.callback
1095
+ # @return [self]
1096
+ # @yield [value, *args] to the callback.
1097
+ def on_fulfillment_using(executor, *args, &callback)
1098
+ add_callback :async_callback_on_fulfillment, executor, args, callback
1099
+ end
1100
+
1101
+ # @!macro promises.shortcut.using
1102
+ # @return [self]
1103
+ def on_rejection(*args, &callback)
1104
+ on_rejection_using @DefaultExecutor, *args, &callback
1105
+ end
1106
+
1107
+ # Stores the callback to be executed synchronously on resolving thread after it is
1108
+ # rejected. Does nothing on fulfillment.
1109
+ #
1110
+ # @!macro promises.param.args
1111
+ # @!macro promise.param.callback
1112
+ # @return [self]
1113
+ # @yield [reason, *args] to the callback.
1114
+ def on_rejection!(*args, &callback)
1115
+ add_callback :callback_on_rejection, args, callback
1116
+ end
1117
+
1118
+ # Stores the callback to be executed asynchronously on executor after it is
1119
+ # rejected. Does nothing on fulfillment.
1120
+ #
1121
+ # @!macro promises.param.executor
1122
+ # @!macro promises.param.args
1123
+ # @!macro promise.param.callback
1124
+ # @return [self]
1125
+ # @yield [reason, *args] to the callback.
1126
+ def on_rejection_using(executor, *args, &callback)
1127
+ add_callback :async_callback_on_rejection, executor, args, callback
1128
+ end
1129
+
1130
+ # Allows to use futures as green threads. The receiver has to evaluate to a future which
1131
+ # represents what should be done next. It basically flattens indefinitely until non Future
1132
+ # values is returned which becomes result of the returned future. Any encountered exception
1133
+ # will become reason of the returned future.
1134
+ #
1135
+ # @return [Future]
1136
+ # @example
1137
+ # body = lambda do |v|
1138
+ # v += 1
1139
+ # v < 5 ? Promises.future(v, &body) : v
1140
+ # end
1141
+ # Promises.future(0, &body).run.value! # => 5
1142
+ def run
1143
+ RunFuturePromise.new_blocked_by1(self, @DefaultExecutor).future
1144
+ end
1145
+
1146
+ # @!visibility private
1147
+ def apply(args, block)
1148
+ internal_state.apply args, block
1149
+ end
1150
+
1151
+ # Converts future to event which is resolved when future is resolved by fulfillment or rejection.
1152
+ #
1153
+ # @return [Event]
1154
+ def to_event
1155
+ event = Promises.resolvable_event
1156
+ ensure
1157
+ chain_resolvable(event)
1158
+ end
1159
+
1160
+ # Returns self, since this is a future
1161
+ # @return [Future]
1162
+ def to_future
1163
+ self
1164
+ end
1165
+
1166
+ private
1167
+
1168
+ def rejected_resolution(raise_on_reassign, state)
1169
+ if raise_on_reassign
1170
+ raise Concurrent::MultipleAssignmentError.new(
1171
+ "Future can be resolved only once. It's #{result}, trying to set #{state.result}.",
1172
+ current_result: result, new_result: state.result)
1173
+ end
1174
+ return false
1175
+ end
1176
+
1177
+ def wait_until_resolved!(timeout = nil)
1178
+ result = wait_until_resolved(timeout)
1179
+ raise self if rejected?
1180
+ result
1181
+ end
1182
+
1183
+ def async_callback_on_fulfillment(state, executor, args, callback)
1184
+ with_async(executor, state, args, callback) do |st, ar, cb|
1185
+ callback_on_fulfillment st, ar, cb
1186
+ end
1187
+ end
1188
+
1189
+ def async_callback_on_rejection(state, executor, args, callback)
1190
+ with_async(executor, state, args, callback) do |st, ar, cb|
1191
+ callback_on_rejection st, ar, cb
1192
+ end
1193
+ end
1194
+
1195
+ def callback_on_fulfillment(state, args, callback)
1196
+ state.apply args, callback if state.fulfilled?
1197
+ end
1198
+
1199
+ def callback_on_rejection(state, args, callback)
1200
+ state.apply args, callback unless state.fulfilled?
1201
+ end
1202
+
1203
+ def callback_on_resolution(state, args, callback)
1204
+ callback.call(*state.result, *args)
1205
+ end
1206
+
1207
+ end
1208
+
1209
+ # Marker module of Future, Event resolved manually by user.
1210
+ module Resolvable
1211
+ end
1212
+
1213
+ # A Event which can be resolved by user.
1214
+ class ResolvableEvent < Event
1215
+ include Resolvable
1216
+
1217
+
1218
+ # @!macro raise_on_reassign
1219
+ # @raise [MultipleAssignmentError] when already resolved and raise_on_reassign is true.
1220
+
1221
+ # @!macro promise.param.raise_on_reassign
1222
+ # @param [Boolean] raise_on_reassign should method raise exception if already resolved
1223
+ # @return [self, false] false is returner when raise_on_reassign is false and the receiver
1224
+ # is already resolved.
1225
+ #
1226
+
1227
+ # Makes the event resolved, which triggers all dependent futures.
1228
+ #
1229
+ # @!macro promise.param.raise_on_reassign
1230
+ def resolve(raise_on_reassign = true)
1231
+ resolve_with RESOLVED, raise_on_reassign
1232
+ end
1233
+
1234
+ # Creates new event wrapping receiver, effectively hiding the resolve method.
1235
+ #
1236
+ # @return [Event]
1237
+ def with_hidden_resolvable
1238
+ @with_hidden_resolvable ||= EventWrapperPromise.new_blocked_by1(self, @DefaultExecutor).event
1239
+ end
1240
+ end
1241
+
1242
+ # A Future which can be resolved by user.
1243
+ class ResolvableFuture < Future
1244
+ include Resolvable
1245
+
1246
+ # Makes the future resolved with result of triplet `fulfilled?`, `value`, `reason`,
1247
+ # which triggers all dependent futures.
1248
+ #
1249
+ # @!macro promise.param.raise_on_reassign
1250
+ def resolve(fulfilled = true, value = nil, reason = nil, raise_on_reassign = true)
1251
+ resolve_with(fulfilled ? Fulfilled.new(value) : Rejected.new(reason), raise_on_reassign)
1252
+ end
1253
+
1254
+ # Makes the future fulfilled with `value`,
1255
+ # which triggers all dependent futures.
1256
+ #
1257
+ # @!macro promise.param.raise_on_reassign
1258
+ def fulfill(value, raise_on_reassign = true)
1259
+ promise.fulfill(value, raise_on_reassign)
1260
+ end
1261
+
1262
+ # Makes the future rejected with `reason`,
1263
+ # which triggers all dependent futures.
1264
+ #
1265
+ # @!macro promise.param.raise_on_reassign
1266
+ def reject(reason, raise_on_reassign = true)
1267
+ promise.reject(reason, raise_on_reassign)
1268
+ end
1269
+
1270
+ # Evaluates the block and sets its result as future's value fulfilling, if the block raises
1271
+ # an exception the future rejects with it.
1272
+ # @yield [*args] to the block.
1273
+ # @yieldreturn [Object] value
1274
+ # @return [self]
1275
+ def evaluate_to(*args, &block)
1276
+ promise.evaluate_to(*args, block)
1277
+ end
1278
+
1279
+ # Evaluates the block and sets its result as future's value fulfilling, if the block raises
1280
+ # an exception the future rejects with it.
1281
+ # @yield [*args] to the block.
1282
+ # @yieldreturn [Object] value
1283
+ # @return [self]
1284
+ # @raise [Exception] also raise reason on rejection.
1285
+ def evaluate_to!(*args, &block)
1286
+ promise.evaluate_to(*args, block).wait!
1287
+ end
1288
+
1289
+ # Creates new future wrapping receiver, effectively hiding the resolve method and similar.
1290
+ #
1291
+ # @return [Future]
1292
+ def with_hidden_resolvable
1293
+ @with_hidden_resolvable ||= FutureWrapperPromise.new_blocked_by1(self, @DefaultExecutor).future
1294
+ end
1295
+ end
1296
+
1297
+ # @abstract
1298
+ # @private
1299
+ class AbstractPromise < Synchronization::Object
1300
+ safe_initialization!
1301
+ include InternalStates
1302
+
1303
+ def initialize(future)
1304
+ super()
1305
+ @Future = future
1306
+ end
1307
+
1308
+ def future
1309
+ @Future
1310
+ end
1311
+
1312
+ alias_method :event, :future
1313
+
1314
+ def default_executor
1315
+ future.default_executor
1316
+ end
1317
+
1318
+ def state
1319
+ future.state
1320
+ end
1321
+
1322
+ def touch
1323
+ end
1324
+
1325
+ def to_s
1326
+ format '%s %s>', super[0..-2], @Future
1327
+ end
1328
+
1329
+ alias_method :inspect, :to_s
1330
+
1331
+ def delayed_because
1332
+ nil
1333
+ end
1334
+
1335
+ private
1336
+
1337
+ def resolve_with(new_state, raise_on_reassign = true)
1338
+ @Future.resolve_with(new_state, raise_on_reassign)
1339
+ end
1340
+
1341
+ # @return [Future]
1342
+ def evaluate_to(*args, block)
1343
+ resolve_with Fulfilled.new(block.call(*args))
1344
+ rescue Exception => error
1345
+ resolve_with Rejected.new(error)
1346
+ raise error unless error.is_a?(StandardError)
1347
+ end
1348
+ end
1349
+
1350
+ class ResolvableEventPromise < AbstractPromise
1351
+ def initialize(default_executor)
1352
+ super ResolvableEvent.new(self, default_executor)
1353
+ end
1354
+ end
1355
+
1356
+ class ResolvableFuturePromise < AbstractPromise
1357
+ def initialize(default_executor)
1358
+ super ResolvableFuture.new(self, default_executor)
1359
+ end
1360
+
1361
+ def fulfill(value, raise_on_reassign)
1362
+ resolve_with Fulfilled.new(value), raise_on_reassign
1363
+ end
1364
+
1365
+ def reject(reason, raise_on_reassign)
1366
+ resolve_with Rejected.new(reason), raise_on_reassign
1367
+ end
1368
+
1369
+ public :evaluate_to
1370
+ end
1371
+
1372
+ # @abstract
1373
+ class InnerPromise < AbstractPromise
1374
+ end
1375
+
1376
+ # @abstract
1377
+ class BlockedPromise < InnerPromise
1378
+
1379
+ private_class_method :new
1380
+
1381
+ def self.new_blocked_by1(blocker, *args, &block)
1382
+ blocker_delayed = blocker.promise.delayed_because
1383
+ promise = new(blocker_delayed, 1, *args, &block)
1384
+ blocker.add_callback_notify_blocked promise, 0
1385
+ promise
1386
+ end
1387
+
1388
+ def self.new_blocked_by2(blocker1, blocker2, *args, &block)
1389
+ blocker_delayed1 = blocker1.promise.delayed_because
1390
+ blocker_delayed2 = blocker2.promise.delayed_because
1391
+ delayed = if blocker_delayed1 && blocker_delayed2
1392
+ # TODO (pitr-ch 23-Dec-2016): use arrays when we know it will not grow (only flat adds delay)
1393
+ LockFreeStack.of2(blocker_delayed1, blocker_delayed2)
1394
+ else
1395
+ blocker_delayed1 || blocker_delayed2
1396
+ end
1397
+ promise = new(delayed, 2, *args, &block)
1398
+ blocker1.add_callback_notify_blocked promise, 0
1399
+ blocker2.add_callback_notify_blocked promise, 1
1400
+ promise
1401
+ end
1402
+
1403
+ def self.new_blocked_by(blockers, *args, &block)
1404
+ delayed = blockers.reduce(nil) { |d, f| add_delayed d, f.promise.delayed_because }
1405
+ promise = new(delayed, blockers.size, *args, &block)
1406
+ blockers.each_with_index { |f, i| f.add_callback_notify_blocked promise, i }
1407
+ promise
1408
+ end
1409
+
1410
+ def self.add_delayed(delayed1, delayed2)
1411
+ if delayed1 && delayed2
1412
+ delayed1.push delayed2
1413
+ delayed1
1414
+ else
1415
+ delayed1 || delayed2
1416
+ end
1417
+ end
1418
+
1419
+ def initialize(delayed, blockers_count, future)
1420
+ super(future)
1421
+ @Delayed = delayed
1422
+ @Countdown = AtomicFixnum.new blockers_count
1423
+ end
1424
+
1425
+ def on_blocker_resolution(future, index)
1426
+ countdown = process_on_blocker_resolution(future, index)
1427
+ resolvable = resolvable?(countdown, future, index)
1428
+
1429
+ on_resolvable(future, index) if resolvable
1430
+ end
1431
+
1432
+ def delayed_because
1433
+ @Delayed
1434
+ end
1435
+
1436
+ def touch
1437
+ clear_and_propagate_touch
1438
+ end
1439
+
1440
+ # for inspection only
1441
+ def blocked_by
1442
+ blocked_by = []
1443
+ ObjectSpace.each_object(AbstractEventFuture) { |o| blocked_by.push o if o.blocks.include? self }
1444
+ blocked_by
1445
+ end
1446
+
1447
+ private
1448
+
1449
+ def clear_and_propagate_touch(stack_or_element = @Delayed)
1450
+ return if stack_or_element.nil?
1451
+
1452
+ if stack_or_element.is_a? LockFreeStack
1453
+ stack_or_element.clear_each { |element| clear_and_propagate_touch element }
1454
+ else
1455
+ stack_or_element.touch unless stack_or_element.nil? # if still present
1456
+ end
1457
+ end
1458
+
1459
+ # @return [true,false] if resolvable
1460
+ def resolvable?(countdown, future, index)
1461
+ countdown.zero?
1462
+ end
1463
+
1464
+ def process_on_blocker_resolution(future, index)
1465
+ @Countdown.decrement
1466
+ end
1467
+
1468
+ def on_resolvable(resolved_future, index)
1469
+ raise NotImplementedError
1470
+ end
1471
+ end
1472
+
1473
+ # @abstract
1474
+ class BlockedTaskPromise < BlockedPromise
1475
+ def initialize(delayed, blockers_count, default_executor, executor, args, &task)
1476
+ raise ArgumentError, 'no block given' unless block_given?
1477
+ super delayed, 1, Future.new(self, default_executor)
1478
+ @Executor = executor
1479
+ @Task = task
1480
+ @Args = args
1481
+ end
1482
+
1483
+ def executor
1484
+ @Executor
1485
+ end
1486
+ end
1487
+
1488
+ class ThenPromise < BlockedTaskPromise
1489
+ private
1490
+
1491
+ def initialize(delayed, blockers_count, default_executor, executor, args, &task)
1492
+ super delayed, blockers_count, default_executor, executor, args, &task
1493
+ end
1494
+
1495
+ def on_resolvable(resolved_future, index)
1496
+ if resolved_future.fulfilled?
1497
+ Concurrent.executor(@Executor).post(resolved_future, @Args, @Task) do |future, args, task|
1498
+ evaluate_to lambda { future.apply args, task }
1499
+ end
1500
+ else
1501
+ resolve_with resolved_future.internal_state
1502
+ end
1503
+ end
1504
+ end
1505
+
1506
+ class RescuePromise < BlockedTaskPromise
1507
+ private
1508
+
1509
+ def initialize(delayed, blockers_count, default_executor, executor, args, &task)
1510
+ super delayed, blockers_count, default_executor, executor, args, &task
1511
+ end
1512
+
1513
+ def on_resolvable(resolved_future, index)
1514
+ if resolved_future.rejected?
1515
+ Concurrent.executor(@Executor).post(resolved_future, @Args, @Task) do |future, args, task|
1516
+ evaluate_to lambda { future.apply args, task }
1517
+ end
1518
+ else
1519
+ resolve_with resolved_future.internal_state
1520
+ end
1521
+ end
1522
+ end
1523
+
1524
+ class ChainPromise < BlockedTaskPromise
1525
+ private
1526
+
1527
+ def on_resolvable(resolved_future, index)
1528
+ if Future === resolved_future
1529
+ Concurrent.executor(@Executor).post(resolved_future, @Args, @Task) do |future, args, task|
1530
+ evaluate_to(*future.result, *args, task)
1531
+ end
1532
+ else
1533
+ Concurrent.executor(@Executor).post(@Args, @Task) do |args, task|
1534
+ evaluate_to(*args, task)
1535
+ end
1536
+ end
1537
+ end
1538
+ end
1539
+
1540
+ # will be immediately resolved
1541
+ class ImmediateEventPromise < InnerPromise
1542
+ def initialize(default_executor)
1543
+ super Event.new(self, default_executor).resolve_with(RESOLVED)
1544
+ end
1545
+ end
1546
+
1547
+ class ImmediateFuturePromise < InnerPromise
1548
+ def initialize(default_executor, fulfilled, value, reason)
1549
+ super Future.new(self, default_executor).
1550
+ resolve_with(fulfilled ? Fulfilled.new(value) : Rejected.new(reason))
1551
+ end
1552
+ end
1553
+
1554
+ class AbstractFlatPromise < BlockedPromise
1555
+
1556
+ def initialize(delayed_because, blockers_count, event_or_future)
1557
+ delayed = LockFreeStack.of1(self)
1558
+ super(delayed, blockers_count, event_or_future)
1559
+ # noinspection RubyArgCount
1560
+ @Touched = AtomicBoolean.new false
1561
+ @DelayedBecause = delayed_because || LockFreeStack.new
1562
+
1563
+ event_or_future.add_callback_clear_delayed_node delayed.peek
1564
+ end
1565
+
1566
+ def touch
1567
+ if @Touched.make_true
1568
+ clear_and_propagate_touch @DelayedBecause
1569
+ end
1570
+ end
1571
+
1572
+ private
1573
+
1574
+ def touched?
1575
+ @Touched.value
1576
+ end
1577
+
1578
+ def on_resolvable(resolved_future, index)
1579
+ resolve_with resolved_future.internal_state
1580
+ end
1581
+
1582
+ def resolvable?(countdown, future, index)
1583
+ !@Future.internal_state.resolved? && super(countdown, future, index)
1584
+ end
1585
+
1586
+ def add_delayed_of(future)
1587
+ delayed = future.promise.delayed_because
1588
+ if touched?
1589
+ clear_and_propagate_touch delayed
1590
+ else
1591
+ BlockedPromise.add_delayed @DelayedBecause, delayed
1592
+ clear_and_propagate_touch @DelayedBecause if touched?
1593
+ end
1594
+ end
1595
+
1596
+ end
1597
+
1598
+ class FlatEventPromise < AbstractFlatPromise
1599
+
1600
+ private
1601
+
1602
+ def initialize(delayed, blockers_count, default_executor)
1603
+ super delayed, 2, Event.new(self, default_executor)
1604
+ end
1605
+
1606
+ def process_on_blocker_resolution(future, index)
1607
+ countdown = super(future, index)
1608
+ if countdown.nonzero?
1609
+ internal_state = future.internal_state
1610
+
1611
+ unless internal_state.fulfilled?
1612
+ resolve_with RESOLVED
1613
+ return countdown
1614
+ end
1615
+
1616
+ value = internal_state.value
1617
+ case value
1618
+ when Future, Event
1619
+ add_delayed_of value
1620
+ value.add_callback_notify_blocked self, nil
1621
+ countdown
1622
+ else
1623
+ resolve_with RESOLVED
1624
+ end
1625
+ end
1626
+ countdown
1627
+ end
1628
+
1629
+ end
1630
+
1631
+ class FlatFuturePromise < AbstractFlatPromise
1632
+
1633
+ private
1634
+
1635
+ def initialize(delayed, blockers_count, levels, default_executor)
1636
+ raise ArgumentError, 'levels has to be higher than 0' if levels < 1
1637
+ # flat promise may result to a future having delayed futures, therefore we have to have empty stack
1638
+ # to be able to add new delayed futures
1639
+ super delayed || LockFreeStack.new, 1 + levels, Future.new(self, default_executor)
1640
+ end
1641
+
1642
+ def process_on_blocker_resolution(future, index)
1643
+ countdown = super(future, index)
1644
+ if countdown.nonzero?
1645
+ internal_state = future.internal_state
1646
+
1647
+ unless internal_state.fulfilled?
1648
+ resolve_with internal_state
1649
+ return countdown
1650
+ end
1651
+
1652
+ value = internal_state.value
1653
+ case value
1654
+ when Future
1655
+ add_delayed_of value
1656
+ value.add_callback_notify_blocked self, nil
1657
+ countdown
1658
+ when Event
1659
+ evaluate_to(lambda { raise TypeError, 'cannot flatten to Event' })
1660
+ else
1661
+ evaluate_to(lambda { raise TypeError, "returned value #{value.inspect} is not a Future" })
1662
+ end
1663
+ end
1664
+ countdown
1665
+ end
1666
+
1667
+ end
1668
+
1669
+ class RunFuturePromise < AbstractFlatPromise
1670
+
1671
+ private
1672
+
1673
+ def initialize(delayed, blockers_count, default_executor)
1674
+ super delayed, 1, Future.new(self, default_executor)
1675
+ end
1676
+
1677
+ def process_on_blocker_resolution(future, index)
1678
+ internal_state = future.internal_state
1679
+
1680
+ unless internal_state.fulfilled?
1681
+ resolve_with internal_state
1682
+ return 0
1683
+ end
1684
+
1685
+ value = internal_state.value
1686
+ case value
1687
+ when Future
1688
+ add_delayed_of value
1689
+ value.add_callback_notify_blocked self, nil
1690
+ else
1691
+ resolve_with internal_state
1692
+ end
1693
+
1694
+ 1
1695
+ end
1696
+ end
1697
+
1698
+ class ZipEventEventPromise < BlockedPromise
1699
+ def initialize(delayed, blockers_count, default_executor)
1700
+ super delayed, 2, Event.new(self, default_executor)
1701
+ end
1702
+
1703
+ private
1704
+
1705
+ def on_resolvable(resolved_future, index)
1706
+ resolve_with RESOLVED
1707
+ end
1708
+ end
1709
+
1710
+ class ZipFutureEventPromise < BlockedPromise
1711
+ def initialize(delayed, blockers_count, default_executor)
1712
+ super delayed, 2, Future.new(self, default_executor)
1713
+ @result = nil
1714
+ end
1715
+
1716
+ private
1717
+
1718
+ def process_on_blocker_resolution(future, index)
1719
+ # first blocking is future, take its result
1720
+ @result = future.internal_state if index == 0
1721
+ # super has to be called after above to piggyback on volatile @Countdown
1722
+ super future, index
1723
+ end
1724
+
1725
+ def on_resolvable(resolved_future, index)
1726
+ resolve_with @result
1727
+ end
1728
+ end
1729
+
1730
+ class EventWrapperPromise < BlockedPromise
1731
+ def initialize(delayed, blockers_count, default_executor)
1732
+ super delayed, 1, Event.new(self, default_executor)
1733
+ end
1734
+
1735
+ private
1736
+
1737
+ def on_resolvable(resolved_future, index)
1738
+ resolve_with RESOLVED
1739
+ end
1740
+ end
1741
+
1742
+ class FutureWrapperPromise < BlockedPromise
1743
+ def initialize(delayed, blockers_count, default_executor)
1744
+ super delayed, 1, Future.new(self, default_executor)
1745
+ end
1746
+
1747
+ private
1748
+
1749
+ def on_resolvable(resolved_future, index)
1750
+ resolve_with resolved_future.internal_state
1751
+ end
1752
+ end
1753
+
1754
+ class ZipFuturesPromise < BlockedPromise
1755
+
1756
+ private
1757
+
1758
+ def initialize(delayed, blockers_count, default_executor)
1759
+ super(delayed, blockers_count, Future.new(self, default_executor))
1760
+ @Resolutions = ::Array.new(blockers_count, nil)
1761
+
1762
+ on_resolvable nil, nil if blockers_count == 0
1763
+ end
1764
+
1765
+ def process_on_blocker_resolution(future, index)
1766
+ # TODO (pitr-ch 18-Dec-2016): Can we assume that array will never break under parallel access when never re-sized?
1767
+ @Resolutions[index] = future.internal_state # has to be set before countdown in super
1768
+ super future, index
1769
+ end
1770
+
1771
+ def on_resolvable(resolved_future, index)
1772
+ all_fulfilled = true
1773
+ values = ::Array.new(@Resolutions.size)
1774
+ reasons = ::Array.new(@Resolutions.size)
1775
+
1776
+ @Resolutions.each_with_index do |internal_state, i|
1777
+ fulfilled, values[i], reasons[i] = internal_state.result
1778
+ all_fulfilled &&= fulfilled
1779
+ end
1780
+
1781
+ if all_fulfilled
1782
+ resolve_with FulfilledArray.new(values)
1783
+ else
1784
+ resolve_with PartiallyRejected.new(values, reasons)
1785
+ end
1786
+ end
1787
+ end
1788
+
1789
+ class ZipEventsPromise < BlockedPromise
1790
+
1791
+ private
1792
+
1793
+ def initialize(delayed, blockers_count, default_executor)
1794
+ super delayed, blockers_count, Event.new(self, default_executor)
1795
+
1796
+ on_resolvable nil, nil if blockers_count == 0
1797
+ end
1798
+
1799
+ def on_resolvable(resolved_future, index)
1800
+ resolve_with RESOLVED
1801
+ end
1802
+ end
1803
+
1804
+ # @abstract
1805
+ class AbstractAnyPromise < BlockedPromise
1806
+ end
1807
+
1808
+ class AnyResolvedFuturePromise < AbstractAnyPromise
1809
+
1810
+ private
1811
+
1812
+ def initialize(delayed, blockers_count, default_executor)
1813
+ super delayed, blockers_count, Future.new(self, default_executor)
1814
+ end
1815
+
1816
+ def resolvable?(countdown, future, index)
1817
+ true
1818
+ end
1819
+
1820
+ def on_resolvable(resolved_future, index)
1821
+ resolve_with resolved_future.internal_state, false
1822
+ end
1823
+ end
1824
+
1825
+ class AnyResolvedEventPromise < AbstractAnyPromise
1826
+
1827
+ private
1828
+
1829
+ def initialize(delayed, blockers_count, default_executor)
1830
+ super delayed, blockers_count, Event.new(self, default_executor)
1831
+ end
1832
+
1833
+ def resolvable?(countdown, future, index)
1834
+ true
1835
+ end
1836
+
1837
+ def on_resolvable(resolved_future, index)
1838
+ resolve_with RESOLVED, false
1839
+ end
1840
+ end
1841
+
1842
+ class AnyFulfilledFuturePromise < AnyResolvedFuturePromise
1843
+
1844
+ private
1845
+
1846
+ def resolvable?(countdown, future, index)
1847
+ future.fulfilled? ||
1848
+ # inlined super from BlockedPromise
1849
+ countdown.zero?
1850
+ end
1851
+ end
1852
+
1853
+ class DelayPromise < InnerPromise
1854
+
1855
+ def initialize(default_executor)
1856
+ event = Event.new(self, default_executor)
1857
+ @Delayed = LockFreeStack.of1(self)
1858
+ super event
1859
+ event.add_callback_clear_delayed_node @Delayed.peek
1860
+ end
1861
+
1862
+ def touch
1863
+ @Future.resolve_with RESOLVED
1864
+ end
1865
+
1866
+ def delayed_because
1867
+ @Delayed
1868
+ end
1869
+
1870
+ end
1871
+
1872
+ class ScheduledPromise < InnerPromise
1873
+ def intended_time
1874
+ @IntendedTime
1875
+ end
1876
+
1877
+ def inspect
1878
+ "#{to_s[0..-2]} intended_time: #{@IntendedTime}>"
1879
+ end
1880
+
1881
+ private
1882
+
1883
+ def initialize(default_executor, intended_time)
1884
+ super Event.new(self, default_executor)
1885
+
1886
+ @IntendedTime = intended_time
1887
+
1888
+ in_seconds = begin
1889
+ now = Time.now
1890
+ schedule_time = if @IntendedTime.is_a? Time
1891
+ @IntendedTime
1892
+ else
1893
+ now + @IntendedTime
1894
+ end
1895
+ [0, schedule_time.to_f - now.to_f].max
1896
+ end
1897
+
1898
+ Concurrent.global_timer_set.post(in_seconds) do
1899
+ @Future.resolve_with RESOLVED
1900
+ end
1901
+ end
1902
+ end
1903
+
1904
+ extend FactoryMethods
1905
+
1906
+ private_constant :AbstractPromise,
1907
+ :ResolvableEventPromise,
1908
+ :ResolvableFuturePromise,
1909
+ :InnerPromise,
1910
+ :BlockedPromise,
1911
+ :BlockedTaskPromise,
1912
+ :ThenPromise,
1913
+ :RescuePromise,
1914
+ :ChainPromise,
1915
+ :ImmediateEventPromise,
1916
+ :ImmediateFuturePromise,
1917
+ :AbstractFlatPromise,
1918
+ :FlatFuturePromise,
1919
+ :FlatEventPromise,
1920
+ :RunFuturePromise,
1921
+ :ZipEventEventPromise,
1922
+ :ZipFutureEventPromise,
1923
+ :EventWrapperPromise,
1924
+ :FutureWrapperPromise,
1925
+ :ZipFuturesPromise,
1926
+ :ZipEventsPromise,
1927
+ :AbstractAnyPromise,
1928
+ :AnyResolvedFuturePromise,
1929
+ :AnyFulfilledFuturePromise,
1930
+ :AnyResolvedEventPromise,
1931
+ :DelayPromise,
1932
+ :ScheduledPromise
1933
+
1934
+
1935
+ end
1936
+ end