cloudsmith-api 0.21.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1925) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +69 -0
  4. data/README.md +187 -0
  5. data/Rakefile +8 -0
  6. data/build.json +15 -0
  7. data/cloudsmith-api.gemspec +45 -0
  8. data/docs/Distribution.md +14 -0
  9. data/docs/DistributionVersions.md +9 -0
  10. data/docs/DistrosApi.md +130 -0
  11. data/docs/FilesApi.md +149 -0
  12. data/docs/FilesCreate.md +9 -0
  13. data/docs/FilesValidate.md +9 -0
  14. data/docs/Format.md +16 -0
  15. data/docs/FormatDistributions.md +11 -0
  16. data/docs/FormatsApi.md +130 -0
  17. data/docs/MavenPackageUpload.md +62 -0
  18. data/docs/Namespace.md +11 -0
  19. data/docs/NamespacesApi.md +139 -0
  20. data/docs/Organization.md +14 -0
  21. data/docs/OrgsApi.md +139 -0
  22. data/docs/PackageFileUpload.md +10 -0
  23. data/docs/PackageStatus.md +21 -0
  24. data/docs/PackagesApi.md +1277 -0
  25. data/docs/PackagesUploadDeb.md +9 -0
  26. data/docs/PackagesUploadMaven.md +15 -0
  27. data/docs/PackagesUploadPython.md +8 -0
  28. data/docs/PackagesUploadRaw.md +9 -0
  29. data/docs/PackagesUploadRpm.md +9 -0
  30. data/docs/PackagesUploadRuby.md +8 -0
  31. data/docs/PackagesUploadVagrant.md +10 -0
  32. data/docs/PackagesValidateuploadDeb.md +9 -0
  33. data/docs/PackagesValidateuploadMaven.md +15 -0
  34. data/docs/PackagesValidateuploadPython.md +8 -0
  35. data/docs/PackagesValidateuploadRaw.md +9 -0
  36. data/docs/PackagesValidateuploadRpm.md +9 -0
  37. data/docs/PackagesValidateuploadRuby.md +8 -0
  38. data/docs/PackagesValidateuploadVagrant.md +10 -0
  39. data/docs/ReposApi.md +145 -0
  40. data/docs/Repository.md +27 -0
  41. data/docs/RpmPackageUpload.md +59 -0
  42. data/docs/RpmPackageUploadArchitectures.md +9 -0
  43. data/docs/RpmPackageUploadFiles.md +20 -0
  44. data/docs/Status.md +8 -0
  45. data/docs/StatusApi.md +50 -0
  46. data/docs/StatusBasic.md +9 -0
  47. data/docs/UserApi.md +131 -0
  48. data/docs/UserAuthToken.md +8 -0
  49. data/docs/UserBrief.md +14 -0
  50. data/docs/UserProfile.md +17 -0
  51. data/docs/UserTokenCreate.md +9 -0
  52. data/docs/UsersApi.md +72 -0
  53. data/docs/VagrantPackageUpload.md +60 -0
  54. data/git_push.sh +55 -0
  55. data/lib/cloudsmith-api.rb +85 -0
  56. data/lib/cloudsmith-api/api/distros_api.rb +119 -0
  57. data/lib/cloudsmith-api/api/files_api.rb +144 -0
  58. data/lib/cloudsmith-api/api/formats_api.rb +119 -0
  59. data/lib/cloudsmith-api/api/namespaces_api.rb +125 -0
  60. data/lib/cloudsmith-api/api/orgs_api.rb +125 -0
  61. data/lib/cloudsmith-api/api/packages_api.rb +1121 -0
  62. data/lib/cloudsmith-api/api/repos_api.rb +137 -0
  63. data/lib/cloudsmith-api/api/status_api.rb +68 -0
  64. data/lib/cloudsmith-api/api/user_api.rb +117 -0
  65. data/lib/cloudsmith-api/api/users_api.rb +74 -0
  66. data/lib/cloudsmith-api/api_client.rb +389 -0
  67. data/lib/cloudsmith-api/api_error.rb +38 -0
  68. data/lib/cloudsmith-api/configuration.rb +223 -0
  69. data/lib/cloudsmith-api/models/distribution.rb +256 -0
  70. data/lib/cloudsmith-api/models/distribution_versions.rb +199 -0
  71. data/lib/cloudsmith-api/models/files_create.rb +209 -0
  72. data/lib/cloudsmith-api/models/files_validate.rb +209 -0
  73. data/lib/cloudsmith-api/models/format.rb +303 -0
  74. data/lib/cloudsmith-api/models/format_distributions.rb +219 -0
  75. data/lib/cloudsmith-api/models/maven_package_upload.rb +733 -0
  76. data/lib/cloudsmith-api/models/namespace.rb +219 -0
  77. data/lib/cloudsmith-api/models/organization.rb +249 -0
  78. data/lib/cloudsmith-api/models/package_file_upload.rb +209 -0
  79. data/lib/cloudsmith-api/models/package_status.rb +319 -0
  80. data/lib/cloudsmith-api/models/packages_upload_deb.rb +209 -0
  81. data/lib/cloudsmith-api/models/packages_upload_maven.rb +264 -0
  82. data/lib/cloudsmith-api/models/packages_upload_python.rb +194 -0
  83. data/lib/cloudsmith-api/models/packages_upload_raw.rb +204 -0
  84. data/lib/cloudsmith-api/models/packages_upload_rpm.rb +209 -0
  85. data/lib/cloudsmith-api/models/packages_upload_ruby.rb +194 -0
  86. data/lib/cloudsmith-api/models/packages_upload_vagrant.rb +224 -0
  87. data/lib/cloudsmith-api/models/packages_validateupload_deb.rb +209 -0
  88. data/lib/cloudsmith-api/models/packages_validateupload_maven.rb +264 -0
  89. data/lib/cloudsmith-api/models/packages_validateupload_python.rb +194 -0
  90. data/lib/cloudsmith-api/models/packages_validateupload_raw.rb +204 -0
  91. data/lib/cloudsmith-api/models/packages_validateupload_rpm.rb +209 -0
  92. data/lib/cloudsmith-api/models/packages_validateupload_ruby.rb +194 -0
  93. data/lib/cloudsmith-api/models/packages_validateupload_vagrant.rb +224 -0
  94. data/lib/cloudsmith-api/models/repository.rb +404 -0
  95. data/lib/cloudsmith-api/models/rpm_package_upload.rb +703 -0
  96. data/lib/cloudsmith-api/models/rpm_package_upload_architectures.rb +199 -0
  97. data/lib/cloudsmith-api/models/rpm_package_upload_files.rb +309 -0
  98. data/lib/cloudsmith-api/models/status.rb +189 -0
  99. data/lib/cloudsmith-api/models/status_basic.rb +199 -0
  100. data/lib/cloudsmith-api/models/user_auth_token.rb +189 -0
  101. data/lib/cloudsmith-api/models/user_brief.rb +249 -0
  102. data/lib/cloudsmith-api/models/user_profile.rb +289 -0
  103. data/lib/cloudsmith-api/models/user_token_create.rb +199 -0
  104. data/lib/cloudsmith-api/models/vagrant_package_upload.rb +723 -0
  105. data/lib/cloudsmith-api/version.rb +15 -0
  106. data/spec/api/distros_api_spec.rb +58 -0
  107. data/spec/api/files_api_spec.rb +63 -0
  108. data/spec/api/formats_api_spec.rb +58 -0
  109. data/spec/api/namespaces_api_spec.rb +60 -0
  110. data/spec/api/orgs_api_spec.rb +60 -0
  111. data/spec/api/packages_api_spec.rb +288 -0
  112. data/spec/api/repos_api_spec.rb +62 -0
  113. data/spec/api/status_api_spec.rb +46 -0
  114. data/spec/api/user_api_spec.rb +58 -0
  115. data/spec/api/users_api_spec.rb +47 -0
  116. data/spec/api_client_spec.rb +226 -0
  117. data/spec/configuration_spec.rb +42 -0
  118. data/spec/models/distribution_spec.rb +78 -0
  119. data/spec/models/distribution_versions_spec.rb +48 -0
  120. data/spec/models/files_create_spec.rb +48 -0
  121. data/spec/models/files_validate_spec.rb +48 -0
  122. data/spec/models/format_distributions_spec.rb +60 -0
  123. data/spec/models/format_spec.rb +90 -0
  124. data/spec/models/maven_package_upload_spec.rb +366 -0
  125. data/spec/models/namespace_spec.rb +60 -0
  126. data/spec/models/organization_spec.rb +78 -0
  127. data/spec/models/package_file_upload_spec.rb +54 -0
  128. data/spec/models/package_status_spec.rb +120 -0
  129. data/spec/models/packages_upload_deb_spec.rb +48 -0
  130. data/spec/models/packages_upload_maven_spec.rb +84 -0
  131. data/spec/models/packages_upload_python_spec.rb +42 -0
  132. data/spec/models/packages_upload_raw_spec.rb +48 -0
  133. data/spec/models/packages_upload_rpm_spec.rb +48 -0
  134. data/spec/models/packages_upload_ruby_spec.rb +42 -0
  135. data/spec/models/packages_upload_vagrant_spec.rb +54 -0
  136. data/spec/models/packages_validateupload_deb_spec.rb +48 -0
  137. data/spec/models/packages_validateupload_maven_spec.rb +84 -0
  138. data/spec/models/packages_validateupload_python_spec.rb +42 -0
  139. data/spec/models/packages_validateupload_raw_spec.rb +48 -0
  140. data/spec/models/packages_validateupload_rpm_spec.rb +48 -0
  141. data/spec/models/packages_validateupload_ruby_spec.rb +42 -0
  142. data/spec/models/packages_validateupload_vagrant_spec.rb +54 -0
  143. data/spec/models/repository_spec.rb +156 -0
  144. data/spec/models/rpm_package_upload_architectures_spec.rb +48 -0
  145. data/spec/models/rpm_package_upload_files_spec.rb +114 -0
  146. data/spec/models/rpm_package_upload_spec.rb +348 -0
  147. data/spec/models/status_basic_spec.rb +48 -0
  148. data/spec/models/status_spec.rb +42 -0
  149. data/spec/models/user_auth_token_spec.rb +42 -0
  150. data/spec/models/user_brief_spec.rb +78 -0
  151. data/spec/models/user_profile_spec.rb +96 -0
  152. data/spec/models/user_token_create_spec.rb +48 -0
  153. data/spec/models/vagrant_package_upload_spec.rb +354 -0
  154. data/spec/spec_helper.rb +111 -0
  155. data/vendor/bundle/ruby/2.3.0/bin/autotest +22 -0
  156. data/vendor/bundle/ruby/2.3.0/bin/htmldiff +24 -0
  157. data/vendor/bundle/ruby/2.3.0/bin/ldiff +24 -0
  158. data/vendor/bundle/ruby/2.3.0/bin/multigem +24 -0
  159. data/vendor/bundle/ruby/2.3.0/bin/multiruby +24 -0
  160. data/vendor/bundle/ruby/2.3.0/bin/multiruby_setup +24 -0
  161. data/vendor/bundle/ruby/2.3.0/bin/rake +22 -0
  162. data/vendor/bundle/ruby/2.3.0/bin/rspec +22 -0
  163. data/vendor/bundle/ruby/2.3.0/bin/safe_yaml +22 -0
  164. data/vendor/bundle/ruby/2.3.0/bin/unit_diff +24 -0
  165. data/vendor/bundle/ruby/2.3.0/bin/zentest +24 -0
  166. data/vendor/bundle/ruby/2.3.0/cache/ZenTest-4.11.1.gem +0 -0
  167. data/vendor/bundle/ruby/2.3.0/cache/addressable-2.5.2.gem +0 -0
  168. data/vendor/bundle/ruby/2.3.0/cache/autotest-4.4.6.gem +0 -0
  169. data/vendor/bundle/ruby/2.3.0/cache/autotest-fsevent-0.2.13.gem +0 -0
  170. data/vendor/bundle/ruby/2.3.0/cache/autotest-growl-0.2.16.gem +0 -0
  171. data/vendor/bundle/ruby/2.3.0/cache/autotest-rails-pure-4.1.2.gem +0 -0
  172. data/vendor/bundle/ruby/2.3.0/cache/crack-0.4.3.gem +0 -0
  173. data/vendor/bundle/ruby/2.3.0/cache/diff-lcs-1.3.gem +0 -0
  174. data/vendor/bundle/ruby/2.3.0/cache/ethon-0.11.0.gem +0 -0
  175. data/vendor/bundle/ruby/2.3.0/cache/ffi-1.9.18.gem +0 -0
  176. data/vendor/bundle/ruby/2.3.0/cache/hashdiff-0.3.7.gem +0 -0
  177. data/vendor/bundle/ruby/2.3.0/cache/json-2.1.0.gem +0 -0
  178. data/vendor/bundle/ruby/2.3.0/cache/public_suffix-3.0.1.gem +0 -0
  179. data/vendor/bundle/ruby/2.3.0/cache/rake-12.0.0.gem +0 -0
  180. data/vendor/bundle/ruby/2.3.0/cache/rspec-3.7.0.gem +0 -0
  181. data/vendor/bundle/ruby/2.3.0/cache/rspec-core-3.7.0.gem +0 -0
  182. data/vendor/bundle/ruby/2.3.0/cache/rspec-expectations-3.7.0.gem +0 -0
  183. data/vendor/bundle/ruby/2.3.0/cache/rspec-mocks-3.7.0.gem +0 -0
  184. data/vendor/bundle/ruby/2.3.0/cache/rspec-support-3.7.0.gem +0 -0
  185. data/vendor/bundle/ruby/2.3.0/cache/safe_yaml-1.0.4.gem +0 -0
  186. data/vendor/bundle/ruby/2.3.0/cache/sys-uname-1.0.3.gem +0 -0
  187. data/vendor/bundle/ruby/2.3.0/cache/typhoeus-1.3.0.gem +0 -0
  188. data/vendor/bundle/ruby/2.3.0/cache/vcr-3.0.3.gem +0 -0
  189. data/vendor/bundle/ruby/2.3.0/cache/webmock-1.24.6.gem +0 -0
  190. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/autotest-fsevent-0.2.13/gem.build_complete +0 -0
  191. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/autotest-fsevent-0.2.13/gem_make.out +14 -0
  192. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/ffi-1.9.18/ffi_c.so +0 -0
  193. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/ffi-1.9.18/gem.build_complete +0 -0
  194. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/ffi-1.9.18/gem_make.out +63 -0
  195. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/ffi-1.9.18/mkmf.log +413 -0
  196. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/gem.build_complete +0 -0
  197. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/gem_make.out +13 -0
  198. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/json/ext/generator.so +0 -0
  199. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/json/ext/parser.so +0 -0
  200. data/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/json-2.1.0/mkmf.log +61 -0
  201. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/.autotest +20 -0
  202. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/History.txt +933 -0
  203. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/Manifest.txt +38 -0
  204. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/README.txt +164 -0
  205. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/Rakefile +54 -0
  206. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/articles/Article.css +721 -0
  207. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/articles/getting_started_with_autotest.html +533 -0
  208. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/articles/how_to_use_zentest.txt +393 -0
  209. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/autotest +6 -0
  210. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/multigem +4 -0
  211. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/multiruby +76 -0
  212. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/multiruby_setup +74 -0
  213. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/unit_diff +38 -0
  214. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/zentest +23 -0
  215. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/example.txt +42 -0
  216. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/example1.rb +7 -0
  217. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/example2.rb +15 -0
  218. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/example_dot_autotest.rb +16 -0
  219. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest.rb +901 -0
  220. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/autoupdate.rb +26 -0
  221. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/bundler.rb +10 -0
  222. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/isolate.rb +19 -0
  223. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/once.rb +9 -0
  224. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/preload.rb +56 -0
  225. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/rcov.rb +27 -0
  226. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/restart.rb +16 -0
  227. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/autotest/timestamp.rb +9 -0
  228. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/focus.rb +26 -0
  229. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/functional_test_matrix.rb +92 -0
  230. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/multiruby.rb +413 -0
  231. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/unit_diff.rb +274 -0
  232. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/zentest.rb +601 -0
  233. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/lib/zentest_mapping.rb +117 -0
  234. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/test/test_autotest.rb +560 -0
  235. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/test/test_focus.rb +35 -0
  236. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/test/test_unit_diff.rb +372 -0
  237. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/test/test_zentest.rb +581 -0
  238. data/vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/test/test_zentest_mapping.rb +242 -0
  239. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/CHANGELOG.md +216 -0
  240. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/Gemfile +32 -0
  241. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/LICENSE.txt +202 -0
  242. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/README.md +121 -0
  243. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/Rakefile +32 -0
  244. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/data/unicode.data +0 -0
  245. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable.rb +2 -0
  246. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable/idna.rb +25 -0
  247. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable/idna/native.rb +59 -0
  248. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable/idna/pure.rb +677 -0
  249. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable/template.rb +1065 -0
  250. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable/uri.rb +2492 -0
  251. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/lib/addressable/version.rb +30 -0
  252. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/addressable/idna_spec.rb +298 -0
  253. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/addressable/net_http_compat_spec.rb +28 -0
  254. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/addressable/rack_mount_compat_spec.rb +104 -0
  255. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/addressable/security_spec.rb +57 -0
  256. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/addressable/template_spec.rb +1419 -0
  257. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/addressable/uri_spec.rb +6468 -0
  258. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/spec/spec_helper.rb +21 -0
  259. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/tasks/clobber.rake +2 -0
  260. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/tasks/gem.rake +91 -0
  261. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/tasks/git.rake +45 -0
  262. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/tasks/metrics.rake +22 -0
  263. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/tasks/rspec.rake +21 -0
  264. data/vendor/bundle/ruby/2.3.0/gems/addressable-2.5.2/tasks/yard.rake +27 -0
  265. data/vendor/bundle/ruby/2.3.0/gems/autotest-4.4.6/History.txt +4 -0
  266. data/vendor/bundle/ruby/2.3.0/gems/autotest-4.4.6/Manifest.txt +4 -0
  267. data/vendor/bundle/ruby/2.3.0/gems/autotest-4.4.6/README.txt +43 -0
  268. data/vendor/bundle/ruby/2.3.0/gems/autotest-4.4.6/Rakefile +17 -0
  269. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/.gitignore +5 -0
  270. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/.ruby-version +1 -0
  271. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/CHANGELOG.txt +101 -0
  272. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/Gemfile +4 -0
  273. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/Gemfile.lock +40 -0
  274. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/LICENSE +20 -0
  275. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/PostInstall.txt +14 -0
  276. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/README.rdoc +152 -0
  277. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/Rakefile +7 -0
  278. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/autotest-fsevent.gemspec +28 -0
  279. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/Makefile +4 -0
  280. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/extconf.rb +41 -0
  281. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/fsevent.dll +0 -0
  282. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/fsevent.so +0 -0
  283. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/fsevent_sleep.c +43 -0
  284. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/make +1 -0
  285. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/ext/fsevent/nmake.bat +0 -0
  286. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/lib/autotest-fsevent.rb +4 -0
  287. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/lib/autotest-fsevent/version.rb +5 -0
  288. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/lib/autotest/fsevent.rb +38 -0
  289. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/prebuilt/10.7/fsevent_sleep +0 -0
  290. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/spec/autotest-fsevent_spec.rb +1 -0
  291. data/vendor/bundle/ruby/2.3.0/gems/autotest-fsevent-0.2.13/spec/spec_helper.rb +8 -0
  292. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/.gitignore +5 -0
  293. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/.rvmrc +1 -0
  294. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/CHANGELOG.txt +140 -0
  295. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/Gemfile +4 -0
  296. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/Gemfile.lock +28 -0
  297. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/LICENSE +20 -0
  298. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/PostInstall.txt +26 -0
  299. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/README.rdoc +268 -0
  300. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/Rakefile +7 -0
  301. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/autotest-growl.gemspec +26 -0
  302. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/growl/growlnotify +19 -0
  303. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/growl/growlnotify-1.1.5 +0 -0
  304. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/growl/growlnotify-1.3 +0 -0
  305. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/growl/growlnotify.com +0 -0
  306. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/error.png +0 -0
  307. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/failed.png +0 -0
  308. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/info.png +0 -0
  309. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/passed.png +0 -0
  310. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ampelmaennchen/pending.png +0 -0
  311. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ruby/error.png +0 -0
  312. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ruby/failed.png +0 -0
  313. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ruby/info.png +0 -0
  314. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ruby/passed.png +0 -0
  315. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/img/ruby/pending.png +0 -0
  316. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/lib/autotest-growl.rb +4 -0
  317. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/lib/autotest-growl/version.rb +5 -0
  318. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/lib/autotest/growl.rb +199 -0
  319. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/lib/autotest/result.rb +64 -0
  320. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/spec/autotest-growl_spec.rb +79 -0
  321. data/vendor/bundle/ruby/2.3.0/gems/autotest-growl-0.2.16/spec/spec_helper.rb +14 -0
  322. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/.autotest +23 -0
  323. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/History.txt +2 -0
  324. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/Rakefile +21 -0
  325. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/Readme.md +48 -0
  326. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/VERSION +1 -0
  327. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/autotest-rails-pure.gemspec +45 -0
  328. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/lib/autotest/discover.rb +5 -0
  329. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/lib/autotest/fixtures.rb +12 -0
  330. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/lib/autotest/migrate.rb +7 -0
  331. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/lib/autotest/rails.rb +100 -0
  332. data/vendor/bundle/ruby/2.3.0/gems/autotest-rails-pure-4.1.2/test/rails_test.rb +30 -0
  333. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/.gitignore +8 -0
  334. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/.travis.yml +14 -0
  335. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/Gemfile +5 -0
  336. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/History +25 -0
  337. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/LICENSE +20 -0
  338. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/README.md +46 -0
  339. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/crack.gemspec +20 -0
  340. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/lib/crack.rb +7 -0
  341. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/lib/crack/json.rb +111 -0
  342. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/lib/crack/util.rb +17 -0
  343. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/lib/crack/version.rb +3 -0
  344. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/lib/crack/xml.rb +238 -0
  345. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/script/bootstrap +21 -0
  346. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/script/release +42 -0
  347. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/script/test +25 -0
  348. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/data/large_dataset.json +139988 -0
  349. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/data/twittersearch-firefox.json +1 -0
  350. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/data/twittersearch-ie.json +1 -0
  351. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/hash_test.rb +26 -0
  352. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/json_test.rb +91 -0
  353. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/parser_test.rb +27 -0
  354. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/string_test.rb +31 -0
  355. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/test_helper.rb +3 -0
  356. data/vendor/bundle/ruby/2.3.0/gems/crack-0.4.3/test/xml_test.rb +514 -0
  357. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/.rspec +1 -0
  358. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  359. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  360. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/History.md +220 -0
  361. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/License.md +39 -0
  362. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  363. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  364. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/Rakefile +57 -0
  365. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  366. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  367. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  368. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  369. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  370. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  371. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  372. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  373. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  374. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  375. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  376. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  377. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  378. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  379. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  380. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  381. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  382. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  383. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  384. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  385. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  386. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  387. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  388. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  389. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  390. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  391. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  392. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  393. data/vendor/bundle/ruby/2.3.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  394. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/.gitignore +7 -0
  395. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/.rspec +3 -0
  396. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/.travis.yml +28 -0
  397. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/CHANGELOG.md +357 -0
  398. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/Gemfile +38 -0
  399. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/Guardfile +9 -0
  400. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/LICENSE +20 -0
  401. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/README.md +95 -0
  402. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/Rakefile +39 -0
  403. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/ethon.gemspec +25 -0
  404. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon.rb +35 -0
  405. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curl.rb +89 -0
  406. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/classes.rb +54 -0
  407. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/codes.rb +122 -0
  408. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/constants.rb +62 -0
  409. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/form_options.rb +36 -0
  410. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/functions.rb +66 -0
  411. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/infos.rb +150 -0
  412. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/messages.rb +18 -0
  413. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/options.rb +465 -0
  414. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/curls/settings.rb +9 -0
  415. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy.rb +315 -0
  416. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/callbacks.rb +147 -0
  417. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/debug_info.rb +46 -0
  418. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/features.rb +30 -0
  419. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/form.rb +106 -0
  420. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/header.rb +60 -0
  421. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http.rb +67 -0
  422. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/actionable.rb +156 -0
  423. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/custom.rb +28 -0
  424. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/delete.rb +24 -0
  425. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/get.rb +23 -0
  426. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/head.rb +23 -0
  427. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/options.rb +23 -0
  428. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/patch.rb +23 -0
  429. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/post.rb +25 -0
  430. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/postable.rb +31 -0
  431. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/put.rb +26 -0
  432. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/http/putable.rb +24 -0
  433. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/informations.rb +94 -0
  434. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/mirror.rb +35 -0
  435. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/operations.rb +63 -0
  436. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/options.rb +49 -0
  437. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/params.rb +28 -0
  438. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/queryable.rb +151 -0
  439. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/response_callbacks.rb +130 -0
  440. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/easy/util.rb +27 -0
  441. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors.rb +16 -0
  442. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/ethon_error.rb +8 -0
  443. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/global_init.rb +12 -0
  444. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/invalid_option.rb +12 -0
  445. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/invalid_value.rb +12 -0
  446. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/multi_add.rb +11 -0
  447. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/multi_fdset.rb +11 -0
  448. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/multi_remove.rb +11 -0
  449. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/multi_timeout.rb +12 -0
  450. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/errors/select.rb +12 -0
  451. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/libc.rb +20 -0
  452. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/loggable.rb +58 -0
  453. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/multi.rb +103 -0
  454. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/multi/operations.rb +190 -0
  455. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/multi/options.rb +116 -0
  456. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/multi/stack.rb +48 -0
  457. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/lib/ethon/version.rb +5 -0
  458. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/profile/benchmarks.rb +103 -0
  459. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/profile/memory_leaks.rb +113 -0
  460. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/profile/perf_spec_helper.rb +36 -0
  461. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/profile/support/memory_test_helpers.rb +75 -0
  462. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/profile/support/os_memory_leak_tracker.rb +47 -0
  463. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/profile/support/ruby_object_leak_tracker.rb +48 -0
  464. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/curl_spec.rb +37 -0
  465. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/callbacks_spec.rb +58 -0
  466. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/debug_info_spec.rb +53 -0
  467. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/features_spec.rb +23 -0
  468. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/form_spec.rb +103 -0
  469. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/header_spec.rb +78 -0
  470. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/custom_spec.rb +176 -0
  471. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/delete_spec.rb +20 -0
  472. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/get_spec.rb +125 -0
  473. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/head_spec.rb +79 -0
  474. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/options_spec.rb +50 -0
  475. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/patch_spec.rb +50 -0
  476. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/post_spec.rb +316 -0
  477. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http/put_spec.rb +167 -0
  478. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/http_spec.rb +63 -0
  479. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/informations_spec.rb +97 -0
  480. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/mirror_spec.rb +45 -0
  481. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/operations_spec.rb +267 -0
  482. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/options_spec.rb +192 -0
  483. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/queryable_spec.rb +226 -0
  484. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/response_callbacks_spec.rb +151 -0
  485. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy/util_spec.rb +27 -0
  486. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/easy_spec.rb +202 -0
  487. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/libc_spec.rb +13 -0
  488. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/loggable_spec.rb +21 -0
  489. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi/operations_spec.rb +297 -0
  490. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi/options_spec.rb +68 -0
  491. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi/stack_spec.rb +79 -0
  492. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi_spec.rb +21 -0
  493. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/spec_helper.rb +27 -0
  494. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/support/localhost_server.rb +94 -0
  495. data/vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/support/server.rb +114 -0
  496. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/COPYING +49 -0
  497. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/LICENSE +24 -0
  498. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/README.md +111 -0
  499. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/Rakefile +232 -0
  500. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/.RUBYARCHDIR.time +0 -0
  501. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/AbstractMemory.c +1104 -0
  502. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/AbstractMemory.h +175 -0
  503. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/AbstractMemory.o +0 -0
  504. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ArrayType.c +162 -0
  505. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ArrayType.h +59 -0
  506. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ArrayType.o +0 -0
  507. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Buffer.c +365 -0
  508. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Buffer.o +0 -0
  509. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Call.c +517 -0
  510. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Call.h +110 -0
  511. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Call.o +0 -0
  512. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ClosurePool.c +283 -0
  513. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ClosurePool.h +57 -0
  514. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ClosurePool.o +0 -0
  515. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/DataConverter.c +91 -0
  516. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/DataConverter.o +0 -0
  517. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/DynamicLibrary.c +339 -0
  518. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/DynamicLibrary.h +98 -0
  519. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/DynamicLibrary.o +0 -0
  520. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Function.c +998 -0
  521. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Function.h +87 -0
  522. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Function.o +0 -0
  523. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/FunctionInfo.c +271 -0
  524. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/FunctionInfo.o +0 -0
  525. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/LastError.c +184 -0
  526. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/LastError.h +47 -0
  527. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/LastError.o +0 -0
  528. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/LongDouble.c +63 -0
  529. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/LongDouble.h +51 -0
  530. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/LongDouble.o +0 -0
  531. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Makefile +260 -0
  532. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MappedType.c +168 -0
  533. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MappedType.h +59 -0
  534. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MappedType.o +0 -0
  535. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MemoryPointer.c +197 -0
  536. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MemoryPointer.h +53 -0
  537. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MemoryPointer.o +0 -0
  538. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MethodHandle.c +358 -0
  539. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MethodHandle.h +55 -0
  540. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/MethodHandle.o +0 -0
  541. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Platform.c +121 -0
  542. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Platform.h +45 -0
  543. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Platform.o +0 -0
  544. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Pointer.c +508 -0
  545. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Pointer.h +63 -0
  546. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Pointer.o +0 -0
  547. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Struct.c +829 -0
  548. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Struct.h +106 -0
  549. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Struct.o +0 -0
  550. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructByReference.c +190 -0
  551. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructByReference.h +50 -0
  552. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructByReference.o +0 -0
  553. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructByValue.c +150 -0
  554. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructByValue.h +55 -0
  555. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructByValue.o +0 -0
  556. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructLayout.c +698 -0
  557. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/StructLayout.o +0 -0
  558. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Thread.c +352 -0
  559. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Thread.h +95 -0
  560. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Thread.o +0 -0
  561. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Type.c +397 -0
  562. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Type.h +62 -0
  563. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Type.o +0 -0
  564. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Types.c +139 -0
  565. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Types.h +89 -0
  566. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Types.o +0 -0
  567. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Variadic.c +304 -0
  568. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/Variadic.o +0 -0
  569. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/compat.h +78 -0
  570. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/extconf.h +11 -0
  571. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/extconf.rb +66 -0
  572. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ffi.c +98 -0
  573. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ffi.o +0 -0
  574. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/ffi_c.so +0 -0
  575. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi.bsd.mk +34 -0
  576. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi.darwin.mk +95 -0
  577. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi.gnu.mk +31 -0
  578. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi.mk +13 -0
  579. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi.vc.mk +26 -0
  580. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi.vc64.mk +26 -0
  581. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/ChangeLog +4600 -0
  582. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/ChangeLog.libffi +584 -0
  583. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  584. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  585. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/LICENSE +21 -0
  586. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/Makefile.am +196 -0
  587. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/Makefile.in +1820 -0
  588. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/Makefile.vc +141 -0
  589. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/Makefile.vc64 +141 -0
  590. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/README +342 -0
  591. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/acinclude.m4 +92 -0
  592. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/aclocal.m4 +1873 -0
  593. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/build-ios.sh +67 -0
  594. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/compile +143 -0
  595. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/config.guess +1501 -0
  596. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/config.sub +1705 -0
  597. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/configure +17191 -0
  598. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/configure.ac +496 -0
  599. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/configure.host +11 -0
  600. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/depcomp +630 -0
  601. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/doc/libffi.info +593 -0
  602. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/doc/libffi.texi +600 -0
  603. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  604. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/doc/version.texi +4 -0
  605. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/fficonfig.h.in +199 -0
  606. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/fficonfig.hw +57 -0
  607. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/include/Makefile.am +9 -0
  608. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/include/Makefile.in +487 -0
  609. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/include/ffi.h.in +427 -0
  610. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/include/ffi.h.vc +427 -0
  611. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/include/ffi.h.vc64 +427 -0
  612. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/include/ffi_common.h +126 -0
  613. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/install-sh +520 -0
  614. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/libffi.pc.in +10 -0
  615. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/libtool-version +29 -0
  616. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/ltmain.sh +9636 -0
  617. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +176 -0
  618. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +195 -0
  619. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_check_compiler_flags.m4 +76 -0
  620. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +63 -0
  621. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_configure_args.m4 +70 -0
  622. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +300 -0
  623. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +215 -0
  624. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +79 -0
  625. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/libtool.m4 +7831 -0
  626. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ltoptions.m4 +369 -0
  627. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ltsugar.m4 +123 -0
  628. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/ltversion.m4 +23 -0
  629. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/m4/lt~obsolete.m4 +98 -0
  630. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/man/Makefile.am +8 -0
  631. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/man/Makefile.in +466 -0
  632. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/man/ffi.3 +31 -0
  633. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  634. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  635. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/mdate-sh +201 -0
  636. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/missing +376 -0
  637. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/msvcc.sh +197 -0
  638. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  639. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  640. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/alpha/osf.S +387 -0
  641. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/arm/ffi.c +728 -0
  642. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/arm/ffitarget.h +65 -0
  643. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/arm/gentramp.sh +118 -0
  644. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/arm/sysv.S +497 -0
  645. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/arm/trampoline.S +4450 -0
  646. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/avr32/ffi.c +423 -0
  647. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/avr32/ffitarget.h +50 -0
  648. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/avr32/sysv.S +208 -0
  649. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/closures.c +615 -0
  650. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  651. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  652. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  653. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/debug.c +59 -0
  654. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/dlmalloc.c +5161 -0
  655. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  656. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  657. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/frv/ffitarget.h +57 -0
  658. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/ia64/ffi.c +582 -0
  659. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  660. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  661. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  662. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/java_raw_api.c +356 -0
  663. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  664. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  665. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  666. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/m68k/ffi.c +288 -0
  667. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  668. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/m68k/sysv.S +270 -0
  669. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/mips/ffi.c +1038 -0
  670. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/mips/ffitarget.h +242 -0
  671. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/mips/n32.S +591 -0
  672. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  673. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/moxie/eabi.S +128 -0
  674. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/moxie/ffi.c +276 -0
  675. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/pa/ffi.c +719 -0
  676. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/pa/ffitarget.h +78 -0
  677. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  678. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  679. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/aix.S +328 -0
  680. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/aix_closure.S +445 -0
  681. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  682. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/darwin.S +383 -0
  683. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +575 -0
  684. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/ffi.c +1448 -0
  685. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +1359 -0
  686. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/ffitarget.h +139 -0
  687. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  688. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  689. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  690. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/powerpc/sysv.S +219 -0
  691. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/prep_cif.c +177 -0
  692. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/raw_api.c +254 -0
  693. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  694. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/s390/ffitarget.h +62 -0
  695. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  696. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  697. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  698. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  699. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sh64/ffi.c +468 -0
  700. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  701. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sh64/sysv.S +539 -0
  702. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sparc/ffi.c +669 -0
  703. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sparc/ffitarget.h +68 -0
  704. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sparc/v8.S +313 -0
  705. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  706. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/types.c +77 -0
  707. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/darwin.S +444 -0
  708. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  709. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/ffi.c +644 -0
  710. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/ffi64.c +635 -0
  711. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/ffitarget.h +121 -0
  712. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  713. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/sysv.S +468 -0
  714. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/unix64.S +426 -0
  715. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/win32.S +1065 -0
  716. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/src/x86/win64.S +468 -0
  717. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/Makefile.am +80 -0
  718. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/Makefile.in +500 -0
  719. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  720. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +300 -0
  721. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/lib/libffi.exp +350 -0
  722. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  723. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  724. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +32 -0
  725. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +89 -0
  726. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +81 -0
  727. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +81 -0
  728. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +82 -0
  729. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +89 -0
  730. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +92 -0
  731. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +90 -0
  732. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +95 -0
  733. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +64 -0
  734. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +94 -0
  735. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +95 -0
  736. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +96 -0
  737. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +102 -0
  738. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +89 -0
  739. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +91 -0
  740. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +93 -0
  741. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +113 -0
  742. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +90 -0
  743. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +95 -0
  744. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +90 -0
  745. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +90 -0
  746. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +98 -0
  747. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +90 -0
  748. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +109 -0
  749. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +98 -0
  750. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +124 -0
  751. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +113 -0
  752. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +99 -0
  753. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +117 -0
  754. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +97 -0
  755. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +88 -0
  756. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +90 -0
  757. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +91 -0
  758. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +93 -0
  759. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +91 -0
  760. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +92 -0
  761. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +134 -0
  762. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +117 -0
  763. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +95 -0
  764. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +91 -0
  765. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +91 -0
  766. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +92 -0
  767. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +91 -0
  768. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +91 -0
  769. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +93 -0
  770. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +66 -0
  771. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +43 -0
  772. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +60 -0
  773. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +42 -0
  774. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +105 -0
  775. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +60 -0
  776. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +74 -0
  777. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +74 -0
  778. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +86 -0
  779. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +91 -0
  780. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +74 -0
  781. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +86 -0
  782. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +74 -0
  783. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +140 -0
  784. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +44 -0
  785. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +42 -0
  786. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +42 -0
  787. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +42 -0
  788. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +43 -0
  789. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +47 -0
  790. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +43 -0
  791. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +36 -0
  792. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +26 -0
  793. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +153 -0
  794. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  795. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  796. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +58 -0
  797. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  798. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  799. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +342 -0
  800. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  801. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  802. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  803. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +152 -0
  804. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +161 -0
  805. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +133 -0
  806. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +110 -0
  807. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +111 -0
  808. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +111 -0
  809. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +112 -0
  810. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +131 -0
  811. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +111 -0
  812. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +131 -0
  813. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +131 -0
  814. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +90 -0
  815. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  816. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  817. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  818. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  819. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  820. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  821. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  822. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  823. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  824. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  825. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  826. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +43 -0
  827. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  828. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  829. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  830. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  831. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +145 -0
  832. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +148 -0
  833. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +124 -0
  834. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +125 -0
  835. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  836. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  837. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  838. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  839. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  840. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  841. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  842. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  843. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  844. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  845. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  846. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +70 -0
  847. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +96 -0
  848. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +35 -0
  849. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +124 -0
  850. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  851. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/libffi/texinfo.tex +7210 -0
  852. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/rbffi.h +57 -0
  853. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/rbffi_endian.h +59 -0
  854. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/win32/stdbool.h +8 -0
  855. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ext/ffi_c/win32/stdint.h +201 -0
  856. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/ffi.gemspec +23 -0
  857. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/gen/Rakefile +30 -0
  858. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi.rb +20 -0
  859. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/autopointer.rb +203 -0
  860. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/buffer.rb +4 -0
  861. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/callback.rb +4 -0
  862. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/enum.rb +172 -0
  863. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/errno.rb +43 -0
  864. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/ffi.rb +44 -0
  865. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/io.rb +62 -0
  866. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/library.rb +538 -0
  867. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/managedstruct.rb +84 -0
  868. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/memorypointer.rb +1 -0
  869. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform.rb +159 -0
  870. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/aarch64-linux/types.conf +104 -0
  871. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/arm-linux/types.conf +104 -0
  872. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  873. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-darwin/types.conf +100 -0
  874. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  875. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-gnu/types.conf +107 -0
  876. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-linux/types.conf +103 -0
  877. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  878. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  879. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-solaris/types.conf +122 -0
  880. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/i386-windows/types.conf +105 -0
  881. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/ia64-linux/types.conf +104 -0
  882. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/mips-linux/types.conf +102 -0
  883. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  884. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  885. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  886. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  887. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/powerpc-linux/types.conf +100 -0
  888. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  889. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/s390-linux/types.conf +102 -0
  890. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/s390x-linux/types.conf +102 -0
  891. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/sparc-linux/types.conf +102 -0
  892. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  893. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  894. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  895. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-darwin/types.conf +126 -0
  896. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  897. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-linux/types.conf +102 -0
  898. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  899. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  900. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  901. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/platform/x86_64-windows/types.conf +27 -0
  902. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/pointer.rb +160 -0
  903. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/struct.rb +373 -0
  904. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/struct_layout_builder.rb +227 -0
  905. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/tools/const_generator.rb +229 -0
  906. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/tools/generator.rb +60 -0
  907. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/tools/generator_task.rb +36 -0
  908. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/tools/struct_generator.rb +194 -0
  909. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/tools/types_generator.rb +134 -0
  910. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/types.rb +194 -0
  911. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/union.rb +43 -0
  912. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/variadic.rb +78 -0
  913. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi/version.rb +4 -0
  914. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/lib/ffi_c.so +0 -0
  915. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/Benchmark.c +52 -0
  916. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/BoolTest.c +34 -0
  917. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/BufferTest.c +31 -0
  918. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/ClosureTest.c +205 -0
  919. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/EnumTest.c +51 -0
  920. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/FunctionTest.c +70 -0
  921. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/GNUmakefile +149 -0
  922. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/GlobalVariable.c +62 -0
  923. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/LastErrorTest.c +21 -0
  924. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/NumberTest.c +132 -0
  925. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/PointerTest.c +63 -0
  926. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/ReferenceTest.c +23 -0
  927. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/StringTest.c +34 -0
  928. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/StructTest.c +243 -0
  929. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/UnionTest.c +43 -0
  930. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/libtest/VariadicTest.c +99 -0
  931. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/LICENSE.SPECS +22 -0
  932. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/async_callback_spec.rb +35 -0
  933. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/bool_spec.rb +32 -0
  934. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/buffer_spec.rb +279 -0
  935. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/callback_spec.rb +773 -0
  936. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/custom_param_type.rb +37 -0
  937. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/custom_type_spec.rb +74 -0
  938. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/dup_spec.rb +52 -0
  939. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/enum_spec.rb +423 -0
  940. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/errno_spec.rb +20 -0
  941. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/ffi_spec.rb +28 -0
  942. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/Benchmark.c +52 -0
  943. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/BoolTest.c +34 -0
  944. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/BufferTest.c +31 -0
  945. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/ClosureTest.c +205 -0
  946. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/EnumTest.c +51 -0
  947. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/FunctionTest.c +142 -0
  948. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/GNUmakefile +149 -0
  949. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/GlobalVariable.c +62 -0
  950. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/LastErrorTest.c +21 -0
  951. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/NumberTest.c +132 -0
  952. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/PipeHelper.h +21 -0
  953. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/PipeHelperPosix.c +41 -0
  954. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/PipeHelperWindows.c +72 -0
  955. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/PointerTest.c +63 -0
  956. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/ReferenceTest.c +23 -0
  957. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/StringTest.c +34 -0
  958. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/StructTest.c +243 -0
  959. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/UnionTest.c +43 -0
  960. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/VariadicTest.c +99 -0
  961. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/fixtures/classes.rb +438 -0
  962. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/function_spec.rb +97 -0
  963. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/io_spec.rb +16 -0
  964. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/library_spec.rb +286 -0
  965. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/long_double.rb +30 -0
  966. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/managed_struct_spec.rb +68 -0
  967. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/memorypointer_spec.rb +78 -0
  968. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/number_spec.rb +247 -0
  969. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/platform_spec.rb +114 -0
  970. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/pointer_spec.rb +285 -0
  971. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/rbx/attach_function_spec.rb +34 -0
  972. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/rbx/memory_pointer_spec.rb +194 -0
  973. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/rbx/spec_helper.rb +6 -0
  974. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/rbx/struct_spec.rb +18 -0
  975. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/spec_helper.rb +93 -0
  976. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/string_spec.rb +118 -0
  977. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/strptr_spec.rb +50 -0
  978. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/struct_by_ref_spec.rb +43 -0
  979. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/struct_callback_spec.rb +69 -0
  980. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/struct_initialize_spec.rb +35 -0
  981. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/struct_packed_spec.rb +50 -0
  982. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/struct_spec.rb +886 -0
  983. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/typedef_spec.rb +91 -0
  984. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/union_spec.rb +67 -0
  985. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/ffi/variadic_spec.rb +132 -0
  986. data/vendor/bundle/ruby/2.3.0/gems/ffi-1.9.18/spec/spec.opts +4 -0
  987. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/.gitignore +15 -0
  988. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/.rspec +1 -0
  989. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/.travis.yml +13 -0
  990. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/.yardopts +1 -0
  991. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/Gemfile +6 -0
  992. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/LICENSE +19 -0
  993. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/README.md +265 -0
  994. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/Rakefile +13 -0
  995. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/changelog.md +72 -0
  996. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/hashdiff.gemspec +25 -0
  997. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff.rb +6 -0
  998. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff/diff.rb +232 -0
  999. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff/lcs.rb +69 -0
  1000. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff/linear_compare_array.rb +155 -0
  1001. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff/patch.rb +88 -0
  1002. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff/util.rb +146 -0
  1003. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/lib/hashdiff/version.rb +3 -0
  1004. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/best_diff_spec.rb +74 -0
  1005. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/diff_array_spec.rb +60 -0
  1006. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/diff_spec.rb +339 -0
  1007. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/lcs_spec.rb +75 -0
  1008. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/linear_compare_array_spec.rb +48 -0
  1009. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/patch_spec.rb +183 -0
  1010. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/hashdiff/util_spec.rb +78 -0
  1011. data/vendor/bundle/ruby/2.3.0/gems/hashdiff-0.3.7/spec/spec_helper.rb +13 -0
  1012. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/.gitignore +17 -0
  1013. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/.travis.yml +19 -0
  1014. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/CHANGES.md +388 -0
  1015. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/Gemfile +16 -0
  1016. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/README-json-jruby.md +33 -0
  1017. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/README.md +392 -0
  1018. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/Rakefile +408 -0
  1019. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/VERSION +1 -0
  1020. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/data/example.json +1 -0
  1021. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/data/index.html +38 -0
  1022. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/data/prototype.js +4184 -0
  1023. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/diagrams/.keep +0 -0
  1024. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/fbuffer/fbuffer.h +187 -0
  1025. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/.RUBYARCHDIR.-.json.-.ext.time +0 -0
  1026. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/depend +1 -0
  1027. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/extconf.rb +4 -0
  1028. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.c +1443 -0
  1029. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.h +171 -0
  1030. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/generator/generator.so +0 -0
  1031. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/.RUBYARCHDIR.-.json.-.ext.time +0 -0
  1032. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/depend +1 -0
  1033. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/extconf.rb +6 -0
  1034. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.c +2109 -0
  1035. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.h +91 -0
  1036. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.rl +869 -0
  1037. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/ext/parser/parser.so +0 -0
  1038. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/ext/json/extconf.rb +2 -0
  1039. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/install.rb +23 -0
  1040. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/ByteListTranscoder.java +166 -0
  1041. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Generator.java +443 -0
  1042. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/GeneratorMethods.java +231 -0
  1043. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/GeneratorService.java +42 -0
  1044. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/GeneratorState.java +490 -0
  1045. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/OptionsReader.java +113 -0
  1046. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Parser.java +2362 -0
  1047. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Parser.rl +893 -0
  1048. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/ParserService.java +34 -0
  1049. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/RuntimeInfo.java +116 -0
  1050. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/StringDecoder.java +166 -0
  1051. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/StringEncoder.java +111 -0
  1052. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/java/src/json/ext/Utils.java +88 -0
  1053. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/json-java.gemspec +38 -0
  1054. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/json.gemspec +0 -0
  1055. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/json_pure.gemspec +38 -0
  1056. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json.rb +63 -0
  1057. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/bigdecimal.rb +29 -0
  1058. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/complex.rb +29 -0
  1059. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/core.rb +12 -0
  1060. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/date.rb +34 -0
  1061. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/date_time.rb +50 -0
  1062. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/exception.rb +31 -0
  1063. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/ostruct.rb +31 -0
  1064. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/range.rb +29 -0
  1065. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/rational.rb +28 -0
  1066. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/regexp.rb +30 -0
  1067. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/struct.rb +30 -0
  1068. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/symbol.rb +25 -0
  1069. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/add/time.rb +38 -0
  1070. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/common.rb +456 -0
  1071. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext.rb +15 -0
  1072. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext/.keep +0 -0
  1073. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext/generator.so +0 -0
  1074. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/ext/parser.so +0 -0
  1075. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/generic_object.rb +71 -0
  1076. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/pure.rb +15 -0
  1077. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/pure/generator.rb +458 -0
  1078. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/pure/parser.rb +311 -0
  1079. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/lib/json/version.rb +9 -0
  1080. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/references/rfc7159.txt +899 -0
  1081. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail10.json +1 -0
  1082. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail11.json +1 -0
  1083. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail12.json +1 -0
  1084. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail13.json +1 -0
  1085. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail14.json +1 -0
  1086. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail18.json +1 -0
  1087. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail19.json +1 -0
  1088. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail2.json +1 -0
  1089. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail20.json +1 -0
  1090. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail21.json +1 -0
  1091. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail22.json +1 -0
  1092. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail23.json +1 -0
  1093. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail24.json +1 -0
  1094. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail25.json +1 -0
  1095. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail27.json +2 -0
  1096. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail28.json +2 -0
  1097. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail3.json +1 -0
  1098. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail4.json +1 -0
  1099. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail5.json +1 -0
  1100. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail6.json +1 -0
  1101. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail7.json +1 -0
  1102. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail8.json +1 -0
  1103. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/fail9.json +1 -0
  1104. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/obsolete_fail1.json +1 -0
  1105. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass1.json +56 -0
  1106. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass15.json +1 -0
  1107. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass16.json +1 -0
  1108. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass17.json +1 -0
  1109. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass2.json +1 -0
  1110. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass26.json +1 -0
  1111. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/fixtures/pass3.json +6 -0
  1112. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_addition_test.rb +193 -0
  1113. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_common_interface_test.rb +126 -0
  1114. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_encoding_test.rb +107 -0
  1115. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_ext_parser_test.rb +15 -0
  1116. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_fixtures_test.rb +32 -0
  1117. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_generator_test.rb +377 -0
  1118. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_generic_object_test.rb +82 -0
  1119. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_parser_test.rb +471 -0
  1120. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/json_string_matching_test.rb +38 -0
  1121. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tests/test_helper.rb +21 -0
  1122. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tools/diff.sh +18 -0
  1123. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tools/fuzz.rb +131 -0
  1124. data/vendor/bundle/ruby/2.3.0/gems/json-2.1.0/tools/server.rb +62 -0
  1125. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/.gitignore +11 -0
  1126. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/.rubocop.yml +32 -0
  1127. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/.rubocop_defaults.yml +177 -0
  1128. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/.ruby-gemset +1 -0
  1129. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/.travis.yml +24 -0
  1130. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/.yardopts +1 -0
  1131. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/2.0-Upgrade.md +52 -0
  1132. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/CHANGELOG.md +330 -0
  1133. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/Gemfile +10 -0
  1134. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/LICENSE.txt +22 -0
  1135. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/README.md +202 -0
  1136. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/Rakefile +49 -0
  1137. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/bin/console +14 -0
  1138. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/data/list.txt +12288 -0
  1139. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/lib/public_suffix.rb +175 -0
  1140. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/lib/public_suffix/domain.rb +235 -0
  1141. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/lib/public_suffix/errors.rb +39 -0
  1142. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/lib/public_suffix/list.rb +243 -0
  1143. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/lib/public_suffix/rule.rb +348 -0
  1144. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/lib/public_suffix/version.rb +10 -0
  1145. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/public_suffix.gemspec +25 -0
  1146. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/.empty +2 -0
  1147. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/acceptance_test.rb +127 -0
  1148. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/benchmarks/bm_find.rb +66 -0
  1149. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/benchmarks/bm_find_all.rb +102 -0
  1150. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/benchmarks/bm_names.rb +91 -0
  1151. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/benchmarks/bm_select.rb +26 -0
  1152. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/benchmarks/bm_select_incremental.rb +25 -0
  1153. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/benchmarks/bm_valid.rb +101 -0
  1154. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/profilers/domain_profiler.rb +12 -0
  1155. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/profilers/find_profiler.rb +12 -0
  1156. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/profilers/find_profiler_jp.rb +12 -0
  1157. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/profilers/initialization_profiler.rb +11 -0
  1158. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/profilers/list_profsize.rb +11 -0
  1159. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/profilers/object_binsize.rb +57 -0
  1160. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/psl_test.rb +49 -0
  1161. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/test_helper.rb +13 -0
  1162. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/tests.txt +98 -0
  1163. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/unit/domain_test.rb +104 -0
  1164. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/unit/errors_test.rb +23 -0
  1165. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/unit/list_test.rb +239 -0
  1166. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/unit/public_suffix_test.rb +186 -0
  1167. data/vendor/bundle/ruby/2.3.0/gems/public_suffix-3.0.1/test/unit/rule_test.rb +220 -0
  1168. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/.gitignore +14 -0
  1169. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/.rubocop.yml +57 -0
  1170. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/.travis.yml +21 -0
  1171. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/CONTRIBUTING.rdoc +36 -0
  1172. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/Gemfile +3 -0
  1173. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/History.rdoc +2247 -0
  1174. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/MIT-LICENSE +21 -0
  1175. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/README.rdoc +156 -0
  1176. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/Rakefile +38 -0
  1177. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/appveyor.yml +21 -0
  1178. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/bin/console +7 -0
  1179. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/bin/setup +6 -0
  1180. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/command_line_usage.rdoc +158 -0
  1181. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/example/Rakefile1 +38 -0
  1182. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/example/Rakefile2 +35 -0
  1183. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/example/a.c +6 -0
  1184. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/example/b.c +6 -0
  1185. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/example/main.c +11 -0
  1186. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/glossary.rdoc +42 -0
  1187. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/jamis.rb +591 -0
  1188. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/proto_rake.rdoc +127 -0
  1189. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/rake.1 +156 -0
  1190. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/rakefile.rdoc +622 -0
  1191. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/doc/rational.rdoc +151 -0
  1192. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/exe/rake +27 -0
  1193. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake.rb +70 -0
  1194. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/application.rb +785 -0
  1195. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/backtrace.rb +23 -0
  1196. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/clean.rb +77 -0
  1197. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/cloneable.rb +16 -0
  1198. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/cpu_counter.rb +106 -0
  1199. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/default_loader.rb +14 -0
  1200. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/dsl_definition.rb +194 -0
  1201. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/early_time.rb +21 -0
  1202. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/ext/core.rb +25 -0
  1203. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/ext/string.rb +175 -0
  1204. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/file_creation_task.rb +24 -0
  1205. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/file_list.rb +434 -0
  1206. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/file_task.rb +46 -0
  1207. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/file_utils.rb +136 -0
  1208. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/file_utils_ext.rb +144 -0
  1209. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/invocation_chain.rb +56 -0
  1210. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/invocation_exception_mixin.rb +16 -0
  1211. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/late_time.rb +17 -0
  1212. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/linked_list.rb +111 -0
  1213. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/loaders/makefile.rb +53 -0
  1214. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/multi_task.rb +49 -0
  1215. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/name_space.rb +37 -0
  1216. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/packagetask.rb +210 -0
  1217. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/phony.rb +15 -0
  1218. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/private_reader.rb +20 -0
  1219. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/promise.rb +99 -0
  1220. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/pseudo_status.rb +29 -0
  1221. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/rake_module.rb +38 -0
  1222. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/rake_test_loader.rb +21 -0
  1223. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/rule_recursion_overflow_error.rb +19 -0
  1224. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/scope.rb +42 -0
  1225. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/task.rb +390 -0
  1226. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/task_argument_error.rb +7 -0
  1227. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/task_arguments.rb +108 -0
  1228. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb +303 -0
  1229. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/tasklib.rb +11 -0
  1230. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/testtask.rb +222 -0
  1231. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/thread_history_display.rb +48 -0
  1232. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/thread_pool.rb +162 -0
  1233. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/trace_output.rb +22 -0
  1234. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/version.rb +9 -0
  1235. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/lib/rake/win32.rb +50 -0
  1236. data/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/rake.gemspec +39 -0
  1237. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.7.0/LICENSE.md +27 -0
  1238. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.7.0/README.md +39 -0
  1239. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.7.0/lib/rspec.rb +3 -0
  1240. data/vendor/bundle/ruby/2.3.0/gems/rspec-3.7.0/lib/rspec/version.rb +5 -0
  1241. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/.document +5 -0
  1242. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/.yardopts +8 -0
  1243. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/Changelog.md +2187 -0
  1244. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/LICENSE.md +26 -0
  1245. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/README.md +384 -0
  1246. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/exe/rspec +4 -0
  1247. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/autorun.rb +3 -0
  1248. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core.rb +185 -0
  1249. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  1250. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/coordinator.rb +66 -0
  1251. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  1252. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/runner.rb +169 -0
  1253. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/bisect/server.rb +70 -0
  1254. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/configuration.rb +2179 -0
  1255. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/configuration_options.rb +196 -0
  1256. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/drb.rb +113 -0
  1257. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/dsl.rb +98 -0
  1258. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/example.rb +653 -0
  1259. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/example_group.rb +884 -0
  1260. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/example_status_persister.rb +235 -0
  1261. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/filter_manager.rb +231 -0
  1262. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/flat_map.rb +20 -0
  1263. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters.rb +265 -0
  1264. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  1265. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  1266. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
  1267. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  1268. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  1269. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/deprecation_formatter.rb +221 -0
  1270. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  1271. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/exception_presenter.rb +496 -0
  1272. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  1273. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/helpers.rb +110 -0
  1274. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  1275. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_printer.rb +416 -0
  1276. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  1277. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  1278. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  1279. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  1280. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/protocol.rb +182 -0
  1281. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  1282. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  1283. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/hooks.rb +626 -0
  1284. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/invocations.rb +85 -0
  1285. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/memoized_helpers.rb +535 -0
  1286. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/metadata.rb +499 -0
  1287. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/metadata_filter.rb +255 -0
  1288. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  1289. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  1290. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  1291. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  1292. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  1293. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  1294. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/notifications.rb +521 -0
  1295. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/option_parser.rb +309 -0
  1296. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/ordering.rb +158 -0
  1297. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/output_wrapper.rb +29 -0
  1298. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/pending.rb +165 -0
  1299. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/profiler.rb +32 -0
  1300. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/project_initializer.rb +48 -0
  1301. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/project_initializer/.rspec +1 -0
  1302. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  1303. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/rake_task.rb +168 -0
  1304. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/reporter.rb +260 -0
  1305. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/ruby_project.rb +53 -0
  1306. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/runner.rb +193 -0
  1307. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/sandbox.rb +37 -0
  1308. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/set.rb +54 -0
  1309. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/shared_context.rb +55 -0
  1310. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/shared_example_group.rb +271 -0
  1311. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/shell_escape.rb +49 -0
  1312. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  1313. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/version.rb +9 -0
  1314. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/warnings.rb +40 -0
  1315. data/vendor/bundle/ruby/2.3.0/gems/rspec-core-3.7.0/lib/rspec/core/world.rb +264 -0
  1316. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/.document +5 -0
  1317. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/.yardopts +6 -0
  1318. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/Changelog.md +1083 -0
  1319. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/LICENSE.md +25 -0
  1320. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/README.md +305 -0
  1321. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations.rb +82 -0
  1322. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  1323. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/configuration.rb +201 -0
  1324. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/expectation_target.rb +127 -0
  1325. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/fail_with.rb +39 -0
  1326. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  1327. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/handler.rb +170 -0
  1328. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  1329. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/syntax.rb +132 -0
  1330. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/expectations/version.rb +8 -0
  1331. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers.rb +1031 -0
  1332. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  1333. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in.rb +52 -0
  1334. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/all.rb +85 -0
  1335. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  1336. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be.rb +288 -0
  1337. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  1338. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  1339. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  1340. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  1341. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/change.rb +387 -0
  1342. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  1343. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/contain_exactly.rb +301 -0
  1344. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  1345. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  1346. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  1347. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  1348. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  1349. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/has.rb +103 -0
  1350. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  1351. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/include.rb +143 -0
  1352. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/match.rb +106 -0
  1353. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  1354. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/output.rb +200 -0
  1355. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  1356. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  1357. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  1358. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  1359. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  1360. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  1361. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/composable.rb +169 -0
  1362. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/dsl.rb +527 -0
  1363. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  1364. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  1365. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  1366. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  1367. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  1368. data/vendor/bundle/ruby/2.3.0/gems/rspec-expectations-3.7.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  1369. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/.document +5 -0
  1370. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/.yardopts +6 -0
  1371. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/Changelog.md +1089 -0
  1372. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/LICENSE.md +25 -0
  1373. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/README.md +460 -0
  1374. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks.rb +130 -0
  1375. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance.rb +11 -0
  1376. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  1377. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  1378. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  1379. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  1380. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  1381. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  1382. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  1383. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  1384. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  1385. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  1386. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  1387. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/configuration.rb +212 -0
  1388. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/error_generator.rb +369 -0
  1389. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/example_methods.rb +434 -0
  1390. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  1391. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  1392. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  1393. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
  1394. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  1395. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  1396. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  1397. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/message_chain.rb +87 -0
  1398. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/message_expectation.rb +740 -0
  1399. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/method_double.rb +287 -0
  1400. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/method_reference.rb +202 -0
  1401. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  1402. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/mutate_const.rb +339 -0
  1403. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/object_reference.rb +149 -0
  1404. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/order_group.rb +81 -0
  1405. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/proxy.rb +484 -0
  1406. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/space.rb +238 -0
  1407. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/standalone.rb +3 -0
  1408. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/syntax.rb +325 -0
  1409. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/targets.rb +124 -0
  1410. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/test_double.rb +171 -0
  1411. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_double.rb +129 -0
  1412. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  1413. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  1414. data/vendor/bundle/ruby/2.3.0/gems/rspec-mocks-3.7.0/lib/rspec/mocks/version.rb +9 -0
  1415. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/Changelog.md +229 -0
  1416. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/LICENSE.md +23 -0
  1417. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/README.md +40 -0
  1418. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support.rb +149 -0
  1419. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/caller_filter.rb +83 -0
  1420. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/comparable_version.rb +46 -0
  1421. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/differ.rb +215 -0
  1422. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/directory_maker.rb +63 -0
  1423. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/encoded_string.rb +165 -0
  1424. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  1425. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/hunk_generator.rb +47 -0
  1426. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/matcher_definition.rb +42 -0
  1427. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/method_signature_verifier.rb +392 -0
  1428. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/mutex.rb +73 -0
  1429. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/object_formatter.rb +267 -0
  1430. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  1431. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  1432. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/ruby_features.rb +162 -0
  1433. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/source.rb +75 -0
  1434. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/source/location.rb +21 -0
  1435. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/source/node.rb +107 -0
  1436. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/source/token.rb +87 -0
  1437. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec.rb +81 -0
  1438. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  1439. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  1440. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  1441. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  1442. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/shell_out.rb +84 -0
  1443. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  1444. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  1445. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  1446. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  1447. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/version.rb +7 -0
  1448. data/vendor/bundle/ruby/2.3.0/gems/rspec-support-3.7.0/lib/rspec/support/warnings.rb +39 -0
  1449. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/.gitignore +1 -0
  1450. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/.travis.yml +48 -0
  1451. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/CHANGES.md +149 -0
  1452. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/Gemfile +11 -0
  1453. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/LICENSE.txt +22 -0
  1454. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/README.md +191 -0
  1455. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/Rakefile +26 -0
  1456. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/bin/safe_yaml +75 -0
  1457. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/bundle_install_all_ruby_versions.sh +11 -0
  1458. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml.rb +94 -0
  1459. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/deep.rb +34 -0
  1460. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/libyaml_checker.rb +36 -0
  1461. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/load.rb +181 -0
  1462. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/date.rb +35 -0
  1463. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/hexadecimal.rb +12 -0
  1464. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/sexagesimal.rb +26 -0
  1465. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/psych_handler.rb +99 -0
  1466. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/psych_resolver.rb +52 -0
  1467. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/resolver.rb +94 -0
  1468. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/safe_to_ruby_visitor.rb +29 -0
  1469. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_hack.rb +36 -0
  1470. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_node_monkeypatch.rb +43 -0
  1471. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/syck_resolver.rb +38 -0
  1472. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform.rb +41 -0
  1473. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_boolean.rb +21 -0
  1474. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_date.rb +13 -0
  1475. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_float.rb +33 -0
  1476. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_integer.rb +26 -0
  1477. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_nil.rb +18 -0
  1478. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/to_symbol.rb +17 -0
  1479. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/transform/transformation_map.rb +47 -0
  1480. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib/safe_yaml/version.rb +3 -0
  1481. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/run_specs_all_ruby_versions.sh +38 -0
  1482. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/safe_yaml.gemspec +19 -0
  1483. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/exploit.1.9.2.yaml +2 -0
  1484. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/exploit.1.9.3.yaml +2 -0
  1485. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/issue48.txt +20 -0
  1486. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/issue49.yml +0 -0
  1487. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/libyaml_checker_spec.rb +69 -0
  1488. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/psych_resolver_spec.rb +10 -0
  1489. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/resolver_specs.rb +278 -0
  1490. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/safe_yaml_spec.rb +731 -0
  1491. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/spec_helper.rb +42 -0
  1492. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/support/exploitable_back_door.rb +29 -0
  1493. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/syck_resolver_spec.rb +10 -0
  1494. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/base64_spec.rb +11 -0
  1495. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_date_spec.rb +60 -0
  1496. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_float_spec.rb +42 -0
  1497. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_integer_spec.rb +64 -0
  1498. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/transform/to_symbol_spec.rb +51 -0
  1499. data/vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/spec/yaml_spec.rb +15 -0
  1500. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/CHANGES +202 -0
  1501. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/MANIFEST +12 -0
  1502. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/README +51 -0
  1503. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/Rakefile +39 -0
  1504. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/certs/djberg96_pub.pem +21 -0
  1505. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/doc/uname.txt +127 -0
  1506. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/examples/uname_test.rb +42 -0
  1507. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/lib/sys-uname.rb +1 -0
  1508. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/lib/sys/platform.rb +54 -0
  1509. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/lib/sys/uname.rb +19 -0
  1510. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/lib/sys/unix/uname.rb +327 -0
  1511. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/lib/sys/windows/uname.rb +507 -0
  1512. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/sys-uname.gemspec +26 -0
  1513. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/test/test_sys_platform.rb +79 -0
  1514. data/vendor/bundle/ruby/2.3.0/gems/sys-uname-1.0.3/test/test_sys_uname.rb +463 -0
  1515. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/.gitignore +8 -0
  1516. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/.rspec +4 -0
  1517. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/.travis.yml +22 -0
  1518. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/CHANGELOG.md +394 -0
  1519. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/CONTRIBUTING.md +16 -0
  1520. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/Gemfile +32 -0
  1521. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/Guardfile +9 -0
  1522. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/LICENSE +22 -0
  1523. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/README.md +533 -0
  1524. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/Rakefile +38 -0
  1525. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/UPGRADE.md +55 -0
  1526. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/rack/typhoeus.rb +1 -0
  1527. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/rack/typhoeus/middleware/params_decoder.rb +57 -0
  1528. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/rack/typhoeus/middleware/params_decoder/helper.rb +76 -0
  1529. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus.rb +142 -0
  1530. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/adapters/faraday.rb +180 -0
  1531. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/cache/dalli.rb +26 -0
  1532. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/cache/rails.rb +26 -0
  1533. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/cache/redis.rb +33 -0
  1534. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/config.rb +69 -0
  1535. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/easy_factory.rb +175 -0
  1536. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/errors.rb +9 -0
  1537. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/errors/no_stub.rb +12 -0
  1538. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/errors/typhoeus_error.rb +8 -0
  1539. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/expectation.rb +217 -0
  1540. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra.rb +95 -0
  1541. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/addable.rb +23 -0
  1542. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/before.rb +31 -0
  1543. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/block_connection.rb +35 -0
  1544. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/cacheable.rb +15 -0
  1545. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/memoizable.rb +56 -0
  1546. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/queueable.rb +83 -0
  1547. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/runnable.rb +19 -0
  1548. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/hydra/stubbable.rb +28 -0
  1549. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/pool.rb +70 -0
  1550. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/railtie.rb +12 -0
  1551. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request.rb +221 -0
  1552. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/actions.rb +125 -0
  1553. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/before.rb +30 -0
  1554. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/block_connection.rb +52 -0
  1555. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/cacheable.rb +27 -0
  1556. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/callbacks.rb +133 -0
  1557. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/marshal.rb +22 -0
  1558. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/memoizable.rb +38 -0
  1559. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/operations.rb +40 -0
  1560. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/responseable.rb +29 -0
  1561. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/streamable.rb +34 -0
  1562. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/request/stubbable.rb +30 -0
  1563. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/response.rb +68 -0
  1564. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/response/cacheable.rb +14 -0
  1565. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/response/header.rb +103 -0
  1566. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/response/informations.rb +248 -0
  1567. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/response/status.rb +107 -0
  1568. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/lib/typhoeus/version.rb +5 -0
  1569. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/perf/profile.rb +14 -0
  1570. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/perf/vs_nethttp.rb +64 -0
  1571. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/rack/typhoeus/middleware/params_decoder/helper_spec.rb +156 -0
  1572. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/rack/typhoeus/middleware/params_decoder_spec.rb +31 -0
  1573. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/spec_helper.rb +29 -0
  1574. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/support/localhost_server.rb +94 -0
  1575. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/support/memory_cache.rb +15 -0
  1576. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/support/server.rb +116 -0
  1577. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/adapters/faraday_spec.rb +339 -0
  1578. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/cache/dalli_spec.rb +41 -0
  1579. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/cache/redis_spec.rb +41 -0
  1580. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/config_spec.rb +15 -0
  1581. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/easy_factory_spec.rb +137 -0
  1582. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/errors/no_stub_spec.rb +13 -0
  1583. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/expectation_spec.rb +280 -0
  1584. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/addable_spec.rb +22 -0
  1585. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/before_spec.rb +98 -0
  1586. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/block_connection_spec.rb +18 -0
  1587. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/cacheable_spec.rb +58 -0
  1588. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/memoizable_spec.rb +53 -0
  1589. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/queueable_spec.rb +98 -0
  1590. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/runnable_spec.rb +137 -0
  1591. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra/stubbable_spec.rb +48 -0
  1592. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/hydra_spec.rb +22 -0
  1593. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/pool_spec.rb +135 -0
  1594. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/actions_spec.rb +19 -0
  1595. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/before_spec.rb +93 -0
  1596. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/block_connection_spec.rb +75 -0
  1597. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/cacheable_spec.rb +70 -0
  1598. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/callbacks_spec.rb +91 -0
  1599. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/marshal_spec.rb +60 -0
  1600. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/memoizable_spec.rb +34 -0
  1601. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/operations_spec.rb +101 -0
  1602. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/responseable_spec.rb +13 -0
  1603. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request/stubbable_spec.rb +45 -0
  1604. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/request_spec.rb +232 -0
  1605. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/response/header_spec.rb +147 -0
  1606. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/response/informations_spec.rb +283 -0
  1607. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/response/status_spec.rb +256 -0
  1608. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus/response_spec.rb +100 -0
  1609. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/spec/typhoeus_spec.rb +105 -0
  1610. data/vendor/bundle/ruby/2.3.0/gems/typhoeus-1.3.0/typhoeus.gemspec +25 -0
  1611. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/CHANGELOG.md +710 -0
  1612. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/CONTRIBUTING.md +26 -0
  1613. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/LICENSE.md +20 -0
  1614. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/README.md +339 -0
  1615. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/Upgrade.md +289 -0
  1616. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/about_these_examples.md +18 -0
  1617. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/allow_unused_http_interactions.feature +100 -0
  1618. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/automatic_re_recording.feature +72 -0
  1619. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/decompress.feature +74 -0
  1620. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/dynamic_erb.feature +100 -0
  1621. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/exclusive.feature +126 -0
  1622. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/format.feature +411 -0
  1623. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/freezing_time.feature +68 -0
  1624. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/naming.feature +28 -0
  1625. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/no_cassette.feature +152 -0
  1626. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/cassettes/update_content_length_header.feature +112 -0
  1627. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/allow_http_connections_when_no_cassette.feature +55 -0
  1628. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/cassette_library_dir.feature +31 -0
  1629. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/debug_logging.feature +58 -0
  1630. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/default_cassette_options.feature +100 -0
  1631. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/filter_sensitive_data.feature +153 -0
  1632. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/hook_into.feature +172 -0
  1633. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/ignore_request.feature +192 -0
  1634. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/preserve_exact_body_bytes.feature +108 -0
  1635. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/query_parser.feature +84 -0
  1636. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/configuration/uri_parser.feature +93 -0
  1637. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/getting_started.md +82 -0
  1638. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/hooks/after_http_request.feature +58 -0
  1639. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/hooks/around_http_request.feature +57 -0
  1640. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/hooks/before_http_request.feature +63 -0
  1641. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/hooks/before_playback.feature +184 -0
  1642. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/hooks/before_record.feature +172 -0
  1643. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/http_libraries/em_http_request.feature +250 -0
  1644. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/http_libraries/net_http.feature +179 -0
  1645. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/middleware/faraday.feature +56 -0
  1646. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/middleware/rack.feature +92 -0
  1647. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/record_modes/all.feature +82 -0
  1648. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/record_modes/new_episodes.feature +79 -0
  1649. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/record_modes/none.feature +72 -0
  1650. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/record_modes/once.feature +95 -0
  1651. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/README.md +30 -0
  1652. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/body.feature +91 -0
  1653. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/body_as_json.feature +90 -0
  1654. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/custom_matcher.feature +135 -0
  1655. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/headers.feature +85 -0
  1656. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/host.feature +95 -0
  1657. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/identical_request_sequence.feature +89 -0
  1658. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/method.feature +96 -0
  1659. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/path.feature +96 -0
  1660. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/playback_repeats.feature +98 -0
  1661. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/query.feature +97 -0
  1662. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/uri.feature +94 -0
  1663. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/request_matching/uri_without_param.feature +101 -0
  1664. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/step_definitions/cli_steps.rb +199 -0
  1665. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/support/env.rb +46 -0
  1666. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/support/http_lib_filters.rb +46 -0
  1667. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/test_frameworks/cucumber.feature +211 -0
  1668. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/test_frameworks/rspec_macro.feature +81 -0
  1669. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/test_frameworks/rspec_metadata.feature +150 -0
  1670. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/features/test_frameworks/test_unit.feature +49 -0
  1671. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr.rb +430 -0
  1672. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette.rb +298 -0
  1673. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/erb_renderer.rb +55 -0
  1674. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/http_interaction_list.rb +108 -0
  1675. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/migrator.rb +118 -0
  1676. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/persisters.rb +42 -0
  1677. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/persisters/file_system.rb +63 -0
  1678. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers.rb +59 -0
  1679. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/compressed.rb +45 -0
  1680. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/json.rb +48 -0
  1681. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/psych.rb +48 -0
  1682. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/syck.rb +61 -0
  1683. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/cassette/serializers/yaml.rb +50 -0
  1684. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/configuration.rb +576 -0
  1685. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/deprecations.rb +109 -0
  1686. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/errors.rb +315 -0
  1687. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/extensions/net_http_response.rb +36 -0
  1688. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks.rb +18 -0
  1689. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks/excon.rb +27 -0
  1690. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks/fakeweb.rb +197 -0
  1691. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks/faraday.rb +51 -0
  1692. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks/typhoeus.rb +120 -0
  1693. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks/typhoeus_0.4.rb +103 -0
  1694. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/library_hooks/webmock.rb +181 -0
  1695. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/linked_cassette.rb +72 -0
  1696. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/middleware/excon.rb +221 -0
  1697. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/middleware/excon/legacy_methods.rb +33 -0
  1698. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/middleware/faraday.rb +118 -0
  1699. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/middleware/rack.rb +79 -0
  1700. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/request_handler.rb +114 -0
  1701. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/request_ignorer.rb +43 -0
  1702. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/request_matcher_registry.rb +149 -0
  1703. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/structs.rb +578 -0
  1704. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/tasks/vcr.rake +9 -0
  1705. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/test_frameworks/cucumber.rb +98 -0
  1706. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/test_frameworks/rspec.rb +52 -0
  1707. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/util/hooks.rb +61 -0
  1708. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/util/internet_connection.rb +43 -0
  1709. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/util/logger.rb +59 -0
  1710. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/util/variable_args_block_caller.rb +13 -0
  1711. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/util/version_checker.rb +48 -0
  1712. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/lib/vcr/version.rb +34 -0
  1713. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/acceptance/concurrency_spec.rb +51 -0
  1714. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/acceptance/threading_spec.rb +34 -0
  1715. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/1_x_cassette.yml +110 -0
  1716. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/empty.yml +0 -0
  1717. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/example.yml +111 -0
  1718. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/fixtures/cassette_spec/with_localhost_requests.yml +111 -0
  1719. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/fixtures/fake_example_responses.yml +110 -0
  1720. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/fixtures/match_requests_on.yml +187 -0
  1721. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/erb_renderer_spec.rb +53 -0
  1722. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/http_interaction_list_spec.rb +295 -0
  1723. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/migrator_spec.rb +196 -0
  1724. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/persisters/file_system_spec.rb +75 -0
  1725. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/persisters_spec.rb +39 -0
  1726. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette/serializers_spec.rb +182 -0
  1727. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/cassette_spec.rb +618 -0
  1728. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/configuration_spec.rb +326 -0
  1729. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/deprecations_spec.rb +85 -0
  1730. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/errors_spec.rb +178 -0
  1731. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/extensions/net_http_response_spec.rb +86 -0
  1732. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/excon_spec.rb +104 -0
  1733. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/fakeweb_spec.rb +169 -0
  1734. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/faraday_spec.rb +68 -0
  1735. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/typhoeus_0.4_spec.rb +36 -0
  1736. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/typhoeus_spec.rb +162 -0
  1737. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks/webmock_spec.rb +117 -0
  1738. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/library_hooks_spec.rb +51 -0
  1739. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/middleware/faraday_spec.rb +181 -0
  1740. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/middleware/rack_spec.rb +115 -0
  1741. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/request_ignorer_spec.rb +70 -0
  1742. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/request_matcher_registry_spec.rb +345 -0
  1743. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/structs_spec.rb +732 -0
  1744. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/test_frameworks/cucumber_spec.rb +107 -0
  1745. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/test_frameworks/rspec_spec.rb +94 -0
  1746. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/util/hooks_spec.rb +158 -0
  1747. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/util/internet_connection_spec.rb +37 -0
  1748. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/util/version_checker_spec.rb +31 -0
  1749. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr/version_spec.rb +27 -0
  1750. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/lib/vcr_spec.rb +354 -0
  1751. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/monkey_patches.rb +186 -0
  1752. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/spec_helper.rb +63 -0
  1753. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/configuration_stubbing.rb +8 -0
  1754. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/cucumber_helpers.rb +39 -0
  1755. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/fixnum_extension.rb +10 -0
  1756. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/http_library_adapters.rb +289 -0
  1757. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/limited_uri.rb +21 -0
  1758. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/ruby_interpreter.rb +7 -0
  1759. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/shared_example_groups/excon.rb +63 -0
  1760. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/shared_example_groups/hook_into_http_library.rb +594 -0
  1761. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/shared_example_groups/request_hooks.rb +59 -0
  1762. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/sinatra_app.rb +86 -0
  1763. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/vcr_localhost_server.rb +76 -0
  1764. data/vendor/bundle/ruby/2.3.0/gems/vcr-3.0.3/spec/support/vcr_stub_helpers.rb +17 -0
  1765. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/.gemtest +0 -0
  1766. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/.gitignore +34 -0
  1767. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/.rspec-tm +2 -0
  1768. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/.travis.yml +32 -0
  1769. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/Appraisals +3 -0
  1770. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/CHANGELOG.md +1349 -0
  1771. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/Gemfile +19 -0
  1772. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/LICENSE +20 -0
  1773. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/README.md +1060 -0
  1774. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/Rakefile +53 -0
  1775. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/gemfiles/ruby_1_8.gemfile +21 -0
  1776. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock.rb +66 -0
  1777. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/api.rb +96 -0
  1778. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/assertion_failure.rb +11 -0
  1779. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/callback_registry.rb +35 -0
  1780. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/config.rb +18 -0
  1781. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/cucumber.rb +8 -0
  1782. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/deprecation.rb +9 -0
  1783. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/errors.rb +17 -0
  1784. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/curb_adapter.rb +272 -0
  1785. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/em_http_request/em_http_request_0_x.rb +147 -0
  1786. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb +228 -0
  1787. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +11 -0
  1788. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/excon_adapter.rb +154 -0
  1789. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_lib_adapter.rb +7 -0
  1790. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +19 -0
  1791. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/client.rb +14 -0
  1792. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/request.rb +10 -0
  1793. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/response.rb +43 -0
  1794. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/streamer.rb +25 -0
  1795. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb/webmock.rb +68 -0
  1796. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/http_rb_adapter.rb +37 -0
  1797. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/httpclient_adapter.rb +277 -0
  1798. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/manticore_adapter.rb +123 -0
  1799. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/net_http.rb +338 -0
  1800. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/net_http_response.rb +34 -0
  1801. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/patron_adapter.rb +126 -0
  1802. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +170 -0
  1803. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/matchers/hash_including_matcher.rb +36 -0
  1804. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/minitest.rb +39 -0
  1805. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/rack_response.rb +69 -0
  1806. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_body_diff.rb +63 -0
  1807. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_execution_verifier.rb +78 -0
  1808. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_pattern.rb +328 -0
  1809. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_registry.rb +35 -0
  1810. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_signature.rb +54 -0
  1811. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_signature_snippet.rb +61 -0
  1812. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/request_stub.rb +100 -0
  1813. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/response.rb +160 -0
  1814. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/responses_sequence.rb +40 -0
  1815. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/rspec.rb +33 -0
  1816. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/rspec/matchers.rb +27 -0
  1817. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/rspec/matchers/request_pattern_matcher.rb +78 -0
  1818. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/rspec/matchers/webmock_matcher.rb +52 -0
  1819. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/stub_registry.rb +67 -0
  1820. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/stub_request_snippet.rb +34 -0
  1821. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/test_unit.rb +20 -0
  1822. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/hash_counter.rb +32 -0
  1823. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/hash_keys_stringifier.rb +25 -0
  1824. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/hash_validator.rb +17 -0
  1825. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/headers.rb +43 -0
  1826. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/json.rb +78 -0
  1827. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/query_mapper.rb +279 -0
  1828. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/uri.rb +111 -0
  1829. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/util/version_checker.rb +107 -0
  1830. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/version.rb +3 -0
  1831. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/lib/webmock/webmock.rb +158 -0
  1832. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/minitest/test_helper.rb +34 -0
  1833. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/minitest/test_webmock.rb +9 -0
  1834. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/minitest/webmock_spec.rb +60 -0
  1835. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/curb/curb_spec.rb +416 -0
  1836. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/curb/curb_spec_helper.rb +144 -0
  1837. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/em_http_request/em_http_request_spec.rb +406 -0
  1838. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +73 -0
  1839. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/excon/excon_spec.rb +75 -0
  1840. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/excon/excon_spec_helper.rb +43 -0
  1841. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/http_rb/http_rb_spec.rb +73 -0
  1842. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/http_rb/http_rb_spec_helper.rb +45 -0
  1843. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/httpclient/httpclient_spec.rb +205 -0
  1844. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/httpclient/httpclient_spec_helper.rb +48 -0
  1845. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/manticore/manticore_spec.rb +56 -0
  1846. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/manticore/manticore_spec_helper.rb +31 -0
  1847. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/net_http/net_http_shared.rb +142 -0
  1848. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/net_http/net_http_spec.rb +316 -0
  1849. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/net_http/net_http_spec_helper.rb +55 -0
  1850. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/net_http/real_net_http_spec.rb +20 -0
  1851. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/patron/patron_spec.rb +134 -0
  1852. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/patron/patron_spec_helper.rb +51 -0
  1853. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +313 -0
  1854. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/callbacks.rb +147 -0
  1855. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/complex_cross_concern_behaviors.rb +36 -0
  1856. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/enabling_and_disabling_webmock.rb +95 -0
  1857. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/precedence_of_stubs.rb +15 -0
  1858. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/request_expectations.rb +859 -0
  1859. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/returning_declared_responses.rb +388 -0
  1860. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/shared/stubbing_requests.rb +528 -0
  1861. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +135 -0
  1862. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +57 -0
  1863. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/acceptance/webmock_shared.rb +41 -0
  1864. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/fixtures/test.txt +1 -0
  1865. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/quality_spec.rb +84 -0
  1866. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/spec_helper.rb +52 -0
  1867. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/support/example_curl_output.txt +22 -0
  1868. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/support/failures.rb +9 -0
  1869. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/support/my_rack_app.rb +53 -0
  1870. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/support/network_connection.rb +19 -0
  1871. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/support/webmock_server.rb +69 -0
  1872. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/api_spec.rb +75 -0
  1873. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/errors_spec.rb +129 -0
  1874. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +17 -0
  1875. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +12 -0
  1876. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/matchers/hash_including_matcher_spec.rb +87 -0
  1877. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/rack_response_spec.rb +102 -0
  1878. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_body_diff_spec.rb +90 -0
  1879. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_execution_verifier_spec.rb +208 -0
  1880. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_pattern_spec.rb +590 -0
  1881. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_registry_spec.rb +76 -0
  1882. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_signature_snippet_spec.rb +89 -0
  1883. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_signature_spec.rb +155 -0
  1884. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/request_stub_spec.rb +199 -0
  1885. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/response_spec.rb +282 -0
  1886. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/stub_registry_spec.rb +103 -0
  1887. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/stub_request_snippet_spec.rb +95 -0
  1888. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/hash_counter_spec.rb +39 -0
  1889. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/hash_keys_stringifier_spec.rb +27 -0
  1890. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/headers_spec.rb +28 -0
  1891. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/json_spec.rb +33 -0
  1892. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/query_mapper_spec.rb +138 -0
  1893. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/uri_spec.rb +299 -0
  1894. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/util/version_checker_spec.rb +65 -0
  1895. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/spec/unit/webmock_spec.rb +11 -0
  1896. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/test/http_request.rb +24 -0
  1897. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/test/shared_test.rb +88 -0
  1898. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/test/test_helper.rb +23 -0
  1899. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/test/test_webmock.rb +6 -0
  1900. data/vendor/bundle/ruby/2.3.0/gems/webmock-1.24.6/webmock.gemspec +44 -0
  1901. data/vendor/bundle/ruby/2.3.0/specifications/ZenTest-4.11.1.gemspec +40 -0
  1902. data/vendor/bundle/ruby/2.3.0/specifications/addressable-2.5.2.gemspec +39 -0
  1903. data/vendor/bundle/ruby/2.3.0/specifications/autotest-4.4.6.gemspec +44 -0
  1904. data/vendor/bundle/ruby/2.3.0/specifications/autotest-fsevent-0.2.13.gemspec +45 -0
  1905. data/vendor/bundle/ruby/2.3.0/specifications/autotest-growl-0.2.16.gemspec +39 -0
  1906. data/vendor/bundle/ruby/2.3.0/specifications/autotest-rails-pure-4.1.2.gemspec +18 -0
  1907. data/vendor/bundle/ruby/2.3.0/specifications/crack-0.4.3.gemspec +32 -0
  1908. data/vendor/bundle/ruby/2.3.0/specifications/diff-lcs-1.3.gemspec +61 -0
  1909. data/vendor/bundle/ruby/2.3.0/specifications/ethon-0.11.0.gemspec +32 -0
  1910. data/vendor/bundle/ruby/2.3.0/specifications/ffi-1.9.18.gemspec +49 -0
  1911. data/vendor/bundle/ruby/2.3.0/specifications/hashdiff-0.3.7.gemspec +39 -0
  1912. data/vendor/bundle/ruby/2.3.0/specifications/json-2.1.0.gemspec +0 -0
  1913. data/vendor/bundle/ruby/2.3.0/specifications/public_suffix-3.0.1.gemspec +41 -0
  1914. data/vendor/bundle/ruby/2.3.0/specifications/rake-12.0.0.gemspec +43 -0
  1915. data/vendor/bundle/ruby/2.3.0/specifications/rspec-3.7.0.gemspec +42 -0
  1916. data/vendor/bundle/ruby/2.3.0/specifications/rspec-core-3.7.0.gemspec +62 -0
  1917. data/vendor/bundle/ruby/2.3.0/specifications/rspec-expectations-3.7.0.gemspec +50 -0
  1918. data/vendor/bundle/ruby/2.3.0/specifications/rspec-mocks-3.7.0.gemspec +50 -0
  1919. data/vendor/bundle/ruby/2.3.0/specifications/rspec-support-3.7.0.gemspec +41 -0
  1920. data/vendor/bundle/ruby/2.3.0/specifications/safe_yaml-1.0.4.gemspec +23 -0
  1921. data/vendor/bundle/ruby/2.3.0/specifications/sys-uname-1.0.3.gemspec +35 -0
  1922. data/vendor/bundle/ruby/2.3.0/specifications/typhoeus-1.3.0.gemspec +32 -0
  1923. data/vendor/bundle/ruby/2.3.0/specifications/vcr-3.0.3.gemspec +96 -0
  1924. data/vendor/bundle/ruby/2.3.0/specifications/webmock-1.24.6.gemspec +75 -0
  1925. metadata +2201 -0
@@ -0,0 +1,2492 @@
1
+ # encoding:utf-8
2
+ #--
3
+ # Copyright (C) Bob Aman
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #++
17
+
18
+
19
+ require "addressable/version"
20
+ require "addressable/idna"
21
+ require "public_suffix"
22
+
23
+ ##
24
+ # Addressable is a library for processing links and URIs.
25
+ module Addressable
26
+ ##
27
+ # This is an implementation of a URI parser based on
28
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
29
+ # <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>.
30
+ class URI
31
+ ##
32
+ # Raised if something other than a uri is supplied.
33
+ class InvalidURIError < StandardError
34
+ end
35
+
36
+ ##
37
+ # Container for the character classes specified in
38
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
39
+ module CharacterClasses
40
+ ALPHA = "a-zA-Z"
41
+ DIGIT = "0-9"
42
+ GEN_DELIMS = "\\:\\/\\?\\#\\[\\]\\@"
43
+ SUB_DELIMS = "\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\="
44
+ RESERVED = GEN_DELIMS + SUB_DELIMS
45
+ UNRESERVED = ALPHA + DIGIT + "\\-\\.\\_\\~"
46
+ PCHAR = UNRESERVED + SUB_DELIMS + "\\:\\@"
47
+ SCHEME = ALPHA + DIGIT + "\\-\\+\\."
48
+ HOST = UNRESERVED + SUB_DELIMS + "\\[\\:\\]"
49
+ AUTHORITY = PCHAR
50
+ PATH = PCHAR + "\\/"
51
+ QUERY = PCHAR + "\\/\\?"
52
+ FRAGMENT = PCHAR + "\\/\\?"
53
+ end
54
+
55
+ SLASH = '/'
56
+ EMPTY_STR = ''
57
+
58
+ URIREGEX = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/
59
+
60
+ PORT_MAPPING = {
61
+ "http" => 80,
62
+ "https" => 443,
63
+ "ftp" => 21,
64
+ "tftp" => 69,
65
+ "sftp" => 22,
66
+ "ssh" => 22,
67
+ "svn+ssh" => 22,
68
+ "telnet" => 23,
69
+ "nntp" => 119,
70
+ "gopher" => 70,
71
+ "wais" => 210,
72
+ "ldap" => 389,
73
+ "prospero" => 1525
74
+ }
75
+
76
+ ##
77
+ # Returns a URI object based on the parsed string.
78
+ #
79
+ # @param [String, Addressable::URI, #to_str] uri
80
+ # The URI string to parse.
81
+ # No parsing is performed if the object is already an
82
+ # <code>Addressable::URI</code>.
83
+ #
84
+ # @return [Addressable::URI] The parsed URI.
85
+ def self.parse(uri)
86
+ # If we were given nil, return nil.
87
+ return nil unless uri
88
+ # If a URI object is passed, just return itself.
89
+ return uri.dup if uri.kind_of?(self)
90
+
91
+ # If a URI object of the Ruby standard library variety is passed,
92
+ # convert it to a string, then parse the string.
93
+ # We do the check this way because we don't want to accidentally
94
+ # cause a missing constant exception to be thrown.
95
+ if uri.class.name =~ /^URI\b/
96
+ uri = uri.to_s
97
+ end
98
+
99
+ # Otherwise, convert to a String
100
+ begin
101
+ uri = uri.to_str
102
+ rescue TypeError, NoMethodError
103
+ raise TypeError, "Can't convert #{uri.class} into String."
104
+ end if not uri.is_a? String
105
+
106
+ # This Regexp supplied as an example in RFC 3986, and it works great.
107
+ scan = uri.scan(URIREGEX)
108
+ fragments = scan[0]
109
+ scheme = fragments[1]
110
+ authority = fragments[3]
111
+ path = fragments[4]
112
+ query = fragments[6]
113
+ fragment = fragments[8]
114
+ user = nil
115
+ password = nil
116
+ host = nil
117
+ port = nil
118
+ if authority != nil
119
+ # The Regexp above doesn't split apart the authority.
120
+ userinfo = authority[/^([^\[\]]*)@/, 1]
121
+ if userinfo != nil
122
+ user = userinfo.strip[/^([^:]*):?/, 1]
123
+ password = userinfo.strip[/:(.*)$/, 1]
124
+ end
125
+ host = authority.gsub(
126
+ /^([^\[\]]*)@/, EMPTY_STR
127
+ ).gsub(
128
+ /:([^:@\[\]]*?)$/, EMPTY_STR
129
+ )
130
+ port = authority[/:([^:@\[\]]*?)$/, 1]
131
+ end
132
+ if port == EMPTY_STR
133
+ port = nil
134
+ end
135
+
136
+ return new(
137
+ :scheme => scheme,
138
+ :user => user,
139
+ :password => password,
140
+ :host => host,
141
+ :port => port,
142
+ :path => path,
143
+ :query => query,
144
+ :fragment => fragment
145
+ )
146
+ end
147
+
148
+ ##
149
+ # Converts an input to a URI. The input does not have to be a valid
150
+ # URI — the method will use heuristics to guess what URI was intended.
151
+ # This is not standards-compliant, merely user-friendly.
152
+ #
153
+ # @param [String, Addressable::URI, #to_str] uri
154
+ # The URI string to parse.
155
+ # No parsing is performed if the object is already an
156
+ # <code>Addressable::URI</code>.
157
+ # @param [Hash] hints
158
+ # A <code>Hash</code> of hints to the heuristic parser.
159
+ # Defaults to <code>{:scheme => "http"}</code>.
160
+ #
161
+ # @return [Addressable::URI] The parsed URI.
162
+ def self.heuristic_parse(uri, hints={})
163
+ # If we were given nil, return nil.
164
+ return nil unless uri
165
+ # If a URI object is passed, just return itself.
166
+ return uri.dup if uri.kind_of?(self)
167
+
168
+ # If a URI object of the Ruby standard library variety is passed,
169
+ # convert it to a string, then parse the string.
170
+ # We do the check this way because we don't want to accidentally
171
+ # cause a missing constant exception to be thrown.
172
+ if uri.class.name =~ /^URI\b/
173
+ uri = uri.to_s
174
+ end
175
+
176
+ if !uri.respond_to?(:to_str)
177
+ raise TypeError, "Can't convert #{uri.class} into String."
178
+ end
179
+ # Otherwise, convert to a String
180
+ uri = uri.to_str.dup.strip
181
+ hints = {
182
+ :scheme => "http"
183
+ }.merge(hints)
184
+ case uri
185
+ when /^http:\/+/
186
+ uri.gsub!(/^http:\/+/, "http://")
187
+ when /^https:\/+/
188
+ uri.gsub!(/^https:\/+/, "https://")
189
+ when /^feed:\/+http:\/+/
190
+ uri.gsub!(/^feed:\/+http:\/+/, "feed:http://")
191
+ when /^feed:\/+/
192
+ uri.gsub!(/^feed:\/+/, "feed://")
193
+ when /^file:\/+/
194
+ uri.gsub!(/^file:\/+/, "file:///")
195
+ when /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
196
+ uri.gsub!(/^/, hints[:scheme] + "://")
197
+ end
198
+ match = uri.match(URIREGEX)
199
+ fragments = match.captures
200
+ authority = fragments[3]
201
+ if authority && authority.length > 0
202
+ new_authority = authority.gsub(/\\/, '/').gsub(/ /, '%20')
203
+ # NOTE: We want offset 4, not 3!
204
+ offset = match.offset(4)
205
+ uri[offset[0]...offset[1]] = new_authority
206
+ end
207
+ parsed = self.parse(uri)
208
+ if parsed.scheme =~ /^[^\/?#\.]+\.[^\/?#]+$/
209
+ parsed = self.parse(hints[:scheme] + "://" + uri)
210
+ end
211
+ if parsed.path.include?(".")
212
+ new_host = parsed.path[/^([^\/]+\.[^\/]*)/, 1]
213
+ if new_host
214
+ parsed.defer_validation do
215
+ new_path = parsed.path.gsub(
216
+ Regexp.new("^" + Regexp.escape(new_host)), EMPTY_STR)
217
+ parsed.host = new_host
218
+ parsed.path = new_path
219
+ parsed.scheme = hints[:scheme] unless parsed.scheme
220
+ end
221
+ end
222
+ end
223
+ return parsed
224
+ end
225
+
226
+ ##
227
+ # Converts a path to a file scheme URI. If the path supplied is
228
+ # relative, it will be returned as a relative URI. If the path supplied
229
+ # is actually a non-file URI, it will parse the URI as if it had been
230
+ # parsed with <code>Addressable::URI.parse</code>. Handles all of the
231
+ # various Microsoft-specific formats for specifying paths.
232
+ #
233
+ # @param [String, Addressable::URI, #to_str] path
234
+ # Typically a <code>String</code> path to a file or directory, but
235
+ # will return a sensible return value if an absolute URI is supplied
236
+ # instead.
237
+ #
238
+ # @return [Addressable::URI]
239
+ # The parsed file scheme URI or the original URI if some other URI
240
+ # scheme was provided.
241
+ #
242
+ # @example
243
+ # base = Addressable::URI.convert_path("/absolute/path/")
244
+ # uri = Addressable::URI.convert_path("relative/path")
245
+ # (base + uri).to_s
246
+ # #=> "file:///absolute/path/relative/path"
247
+ #
248
+ # Addressable::URI.convert_path(
249
+ # "c:\\windows\\My Documents 100%20\\foo.txt"
250
+ # ).to_s
251
+ # #=> "file:///c:/windows/My%20Documents%20100%20/foo.txt"
252
+ #
253
+ # Addressable::URI.convert_path("http://example.com/").to_s
254
+ # #=> "http://example.com/"
255
+ def self.convert_path(path)
256
+ # If we were given nil, return nil.
257
+ return nil unless path
258
+ # If a URI object is passed, just return itself.
259
+ return path if path.kind_of?(self)
260
+ if !path.respond_to?(:to_str)
261
+ raise TypeError, "Can't convert #{path.class} into String."
262
+ end
263
+ # Otherwise, convert to a String
264
+ path = path.to_str.strip
265
+
266
+ path.gsub!(/^file:\/?\/?/, EMPTY_STR) if path =~ /^file:\/?\/?/
267
+ path = SLASH + path if path =~ /^([a-zA-Z])[\|:]/
268
+ uri = self.parse(path)
269
+
270
+ if uri.scheme == nil
271
+ # Adjust windows-style uris
272
+ uri.path.gsub!(/^\/?([a-zA-Z])[\|:][\\\/]/) do
273
+ "/#{$1.downcase}:/"
274
+ end
275
+ uri.path.gsub!(/\\/, SLASH)
276
+ if File.exist?(uri.path) &&
277
+ File.stat(uri.path).directory?
278
+ uri.path.gsub!(/\/$/, EMPTY_STR)
279
+ uri.path = uri.path + '/'
280
+ end
281
+
282
+ # If the path is absolute, set the scheme and host.
283
+ if uri.path =~ /^\//
284
+ uri.scheme = "file"
285
+ uri.host = EMPTY_STR
286
+ end
287
+ uri.normalize!
288
+ end
289
+
290
+ return uri
291
+ end
292
+
293
+ ##
294
+ # Joins several URIs together.
295
+ #
296
+ # @param [String, Addressable::URI, #to_str] *uris
297
+ # The URIs to join.
298
+ #
299
+ # @return [Addressable::URI] The joined URI.
300
+ #
301
+ # @example
302
+ # base = "http://example.com/"
303
+ # uri = Addressable::URI.parse("relative/path")
304
+ # Addressable::URI.join(base, uri)
305
+ # #=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>
306
+ def self.join(*uris)
307
+ uri_objects = uris.collect do |uri|
308
+ if !uri.respond_to?(:to_str)
309
+ raise TypeError, "Can't convert #{uri.class} into String."
310
+ end
311
+ uri.kind_of?(self) ? uri : self.parse(uri.to_str)
312
+ end
313
+ result = uri_objects.shift.dup
314
+ for uri in uri_objects
315
+ result.join!(uri)
316
+ end
317
+ return result
318
+ end
319
+
320
+ ##
321
+ # Percent encodes a URI component.
322
+ #
323
+ # @param [String, #to_str] component The URI component to encode.
324
+ #
325
+ # @param [String, Regexp] character_class
326
+ # The characters which are not percent encoded. If a <code>String</code>
327
+ # is passed, the <code>String</code> must be formatted as a regular
328
+ # expression character class. (Do not include the surrounding square
329
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
330
+ # everything but the letters 'b' through 'z' and the numbers '0' through
331
+ # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
332
+ # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
333
+ # useful <code>String</code> values may be found in the
334
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
335
+ # value is the reserved plus unreserved character classes specified in
336
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
337
+ #
338
+ # @param [Regexp] upcase_encoded
339
+ # A string of characters that may already be percent encoded, and whose
340
+ # encodings should be upcased. This allows normalization of percent
341
+ # encodings for characters not included in the
342
+ # <code>character_class</code>.
343
+ #
344
+ # @return [String] The encoded component.
345
+ #
346
+ # @example
347
+ # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
348
+ # => "simple%2Fex%61mple"
349
+ # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
350
+ # => "simple%2Fex%61mple"
351
+ # Addressable::URI.encode_component(
352
+ # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
353
+ # )
354
+ # => "simple%2Fexample"
355
+ def self.encode_component(component, character_class=
356
+ CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
357
+ upcase_encoded='')
358
+ return nil if component.nil?
359
+
360
+ begin
361
+ if component.kind_of?(Symbol) ||
362
+ component.kind_of?(Numeric) ||
363
+ component.kind_of?(TrueClass) ||
364
+ component.kind_of?(FalseClass)
365
+ component = component.to_s
366
+ else
367
+ component = component.to_str
368
+ end
369
+ rescue TypeError, NoMethodError
370
+ raise TypeError, "Can't convert #{component.class} into String."
371
+ end if !component.is_a? String
372
+
373
+ if ![String, Regexp].include?(character_class.class)
374
+ raise TypeError,
375
+ "Expected String or Regexp, got #{character_class.inspect}"
376
+ end
377
+ if character_class.kind_of?(String)
378
+ character_class = /[^#{character_class}]/
379
+ end
380
+ # We can't perform regexps on invalid UTF sequences, but
381
+ # here we need to, so switch to ASCII.
382
+ component = component.dup
383
+ component.force_encoding(Encoding::ASCII_8BIT)
384
+ # Avoiding gsub! because there are edge cases with frozen strings
385
+ component = component.gsub(character_class) do |sequence|
386
+ (sequence.unpack('C*').map { |c| "%" + ("%02x" % c).upcase }).join
387
+ end
388
+ if upcase_encoded.length > 0
389
+ component = component.gsub(/%(#{upcase_encoded.chars.map do |char|
390
+ char.unpack('C*').map { |c| '%02x' % c }.join
391
+ end.join('|')})/i) { |s| s.upcase }
392
+ end
393
+ return component
394
+ end
395
+
396
+ class << self
397
+ alias_method :encode_component, :encode_component
398
+ end
399
+
400
+ ##
401
+ # Unencodes any percent encoded characters within a URI component.
402
+ # This method may be used for unencoding either components or full URIs,
403
+ # however, it is recommended to use the <code>unencode_component</code>
404
+ # alias when unencoding components.
405
+ #
406
+ # @param [String, Addressable::URI, #to_str] uri
407
+ # The URI or component to unencode.
408
+ #
409
+ # @param [Class] return_type
410
+ # The type of object to return.
411
+ # This value may only be set to <code>String</code> or
412
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
413
+ # to <code>String</code>.
414
+ #
415
+ # @param [String] leave_encoded
416
+ # A string of characters to leave encoded. If a percent encoded character
417
+ # in this list is encountered then it will remain percent encoded.
418
+ #
419
+ # @return [String, Addressable::URI]
420
+ # The unencoded component or URI.
421
+ # The return type is determined by the <code>return_type</code>
422
+ # parameter.
423
+ def self.unencode(uri, return_type=String, leave_encoded='')
424
+ return nil if uri.nil?
425
+
426
+ begin
427
+ uri = uri.to_str
428
+ rescue NoMethodError, TypeError
429
+ raise TypeError, "Can't convert #{uri.class} into String."
430
+ end if !uri.is_a? String
431
+ if ![String, ::Addressable::URI].include?(return_type)
432
+ raise TypeError,
433
+ "Expected Class (String or Addressable::URI), " +
434
+ "got #{return_type.inspect}"
435
+ end
436
+ uri = uri.dup
437
+ # Seriously, only use UTF-8. I'm really not kidding!
438
+ uri.force_encoding("utf-8")
439
+ leave_encoded = leave_encoded.dup.force_encoding("utf-8")
440
+ result = uri.gsub(/%[0-9a-f]{2}/iu) do |sequence|
441
+ c = sequence[1..3].to_i(16).chr
442
+ c.force_encoding("utf-8")
443
+ leave_encoded.include?(c) ? sequence : c
444
+ end
445
+ result.force_encoding("utf-8")
446
+ if return_type == String
447
+ return result
448
+ elsif return_type == ::Addressable::URI
449
+ return ::Addressable::URI.parse(result)
450
+ end
451
+ end
452
+
453
+ class << self
454
+ alias_method :unescape, :unencode
455
+ alias_method :unencode_component, :unencode
456
+ alias_method :unescape_component, :unencode
457
+ end
458
+
459
+
460
+ ##
461
+ # Normalizes the encoding of a URI component.
462
+ #
463
+ # @param [String, #to_str] component The URI component to encode.
464
+ #
465
+ # @param [String, Regexp] character_class
466
+ # The characters which are not percent encoded. If a <code>String</code>
467
+ # is passed, the <code>String</code> must be formatted as a regular
468
+ # expression character class. (Do not include the surrounding square
469
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
470
+ # everything but the letters 'b' through 'z' and the numbers '0'
471
+ # through '9' to be percent encoded. If a <code>Regexp</code> is passed,
472
+ # the value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A
473
+ # set of useful <code>String</code> values may be found in the
474
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
475
+ # value is the reserved plus unreserved character classes specified in
476
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
477
+ #
478
+ # @param [String] leave_encoded
479
+ # When <code>character_class</code> is a <code>String</code> then
480
+ # <code>leave_encoded</code> is a string of characters that should remain
481
+ # percent encoded while normalizing the component; if they appear percent
482
+ # encoded in the original component, then they will be upcased ("%2f"
483
+ # normalized to "%2F") but otherwise left alone.
484
+ #
485
+ # @return [String] The normalized component.
486
+ #
487
+ # @example
488
+ # Addressable::URI.normalize_component("simpl%65/%65xampl%65", "b-zB-Z")
489
+ # => "simple%2Fex%61mple"
490
+ # Addressable::URI.normalize_component(
491
+ # "simpl%65/%65xampl%65", /[^b-zB-Z]/
492
+ # )
493
+ # => "simple%2Fex%61mple"
494
+ # Addressable::URI.normalize_component(
495
+ # "simpl%65/%65xampl%65",
496
+ # Addressable::URI::CharacterClasses::UNRESERVED
497
+ # )
498
+ # => "simple%2Fexample"
499
+ # Addressable::URI.normalize_component(
500
+ # "one%20two%2fthree%26four",
501
+ # "0-9a-zA-Z &/",
502
+ # "/"
503
+ # )
504
+ # => "one two%2Fthree&four"
505
+ def self.normalize_component(component, character_class=
506
+ CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
507
+ leave_encoded='')
508
+ return nil if component.nil?
509
+
510
+ begin
511
+ component = component.to_str
512
+ rescue NoMethodError, TypeError
513
+ raise TypeError, "Can't convert #{component.class} into String."
514
+ end if !component.is_a? String
515
+
516
+ if ![String, Regexp].include?(character_class.class)
517
+ raise TypeError,
518
+ "Expected String or Regexp, got #{character_class.inspect}"
519
+ end
520
+ if character_class.kind_of?(String)
521
+ leave_re = if leave_encoded.length > 0
522
+ character_class = "#{character_class}%" unless character_class.include?('%')
523
+
524
+ "|%(?!#{leave_encoded.chars.map do |char|
525
+ seq = char.unpack('C*').map { |c| '%02x' % c }.join
526
+ [seq.upcase, seq.downcase]
527
+ end.flatten.join('|')})"
528
+ end
529
+
530
+ character_class = /[^#{character_class}]#{leave_re}/
531
+ end
532
+ # We can't perform regexps on invalid UTF sequences, but
533
+ # here we need to, so switch to ASCII.
534
+ component = component.dup
535
+ component.force_encoding(Encoding::ASCII_8BIT)
536
+ unencoded = self.unencode_component(component, String, leave_encoded)
537
+ begin
538
+ encoded = self.encode_component(
539
+ Addressable::IDNA.unicode_normalize_kc(unencoded),
540
+ character_class,
541
+ leave_encoded
542
+ )
543
+ rescue ArgumentError
544
+ encoded = self.encode_component(unencoded)
545
+ end
546
+ encoded.force_encoding(Encoding::UTF_8)
547
+ return encoded
548
+ end
549
+
550
+ ##
551
+ # Percent encodes any special characters in the URI.
552
+ #
553
+ # @param [String, Addressable::URI, #to_str] uri
554
+ # The URI to encode.
555
+ #
556
+ # @param [Class] return_type
557
+ # The type of object to return.
558
+ # This value may only be set to <code>String</code> or
559
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
560
+ # to <code>String</code>.
561
+ #
562
+ # @return [String, Addressable::URI]
563
+ # The encoded URI.
564
+ # The return type is determined by the <code>return_type</code>
565
+ # parameter.
566
+ def self.encode(uri, return_type=String)
567
+ return nil if uri.nil?
568
+
569
+ begin
570
+ uri = uri.to_str
571
+ rescue NoMethodError, TypeError
572
+ raise TypeError, "Can't convert #{uri.class} into String."
573
+ end if !uri.is_a? String
574
+
575
+ if ![String, ::Addressable::URI].include?(return_type)
576
+ raise TypeError,
577
+ "Expected Class (String or Addressable::URI), " +
578
+ "got #{return_type.inspect}"
579
+ end
580
+ uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
581
+ encoded_uri = Addressable::URI.new(
582
+ :scheme => self.encode_component(uri_object.scheme,
583
+ Addressable::URI::CharacterClasses::SCHEME),
584
+ :authority => self.encode_component(uri_object.authority,
585
+ Addressable::URI::CharacterClasses::AUTHORITY),
586
+ :path => self.encode_component(uri_object.path,
587
+ Addressable::URI::CharacterClasses::PATH),
588
+ :query => self.encode_component(uri_object.query,
589
+ Addressable::URI::CharacterClasses::QUERY),
590
+ :fragment => self.encode_component(uri_object.fragment,
591
+ Addressable::URI::CharacterClasses::FRAGMENT)
592
+ )
593
+ if return_type == String
594
+ return encoded_uri.to_s
595
+ elsif return_type == ::Addressable::URI
596
+ return encoded_uri
597
+ end
598
+ end
599
+
600
+ class << self
601
+ alias_method :escape, :encode
602
+ end
603
+
604
+ ##
605
+ # Normalizes the encoding of a URI. Characters within a hostname are
606
+ # not percent encoded to allow for internationalized domain names.
607
+ #
608
+ # @param [String, Addressable::URI, #to_str] uri
609
+ # The URI to encode.
610
+ #
611
+ # @param [Class] return_type
612
+ # The type of object to return.
613
+ # This value may only be set to <code>String</code> or
614
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
615
+ # to <code>String</code>.
616
+ #
617
+ # @return [String, Addressable::URI]
618
+ # The encoded URI.
619
+ # The return type is determined by the <code>return_type</code>
620
+ # parameter.
621
+ def self.normalized_encode(uri, return_type=String)
622
+ begin
623
+ uri = uri.to_str
624
+ rescue NoMethodError, TypeError
625
+ raise TypeError, "Can't convert #{uri.class} into String."
626
+ end if !uri.is_a? String
627
+
628
+ if ![String, ::Addressable::URI].include?(return_type)
629
+ raise TypeError,
630
+ "Expected Class (String or Addressable::URI), " +
631
+ "got #{return_type.inspect}"
632
+ end
633
+ uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
634
+ components = {
635
+ :scheme => self.unencode_component(uri_object.scheme),
636
+ :user => self.unencode_component(uri_object.user),
637
+ :password => self.unencode_component(uri_object.password),
638
+ :host => self.unencode_component(uri_object.host),
639
+ :port => (uri_object.port.nil? ? nil : uri_object.port.to_s),
640
+ :path => self.unencode_component(uri_object.path),
641
+ :query => self.unencode_component(uri_object.query),
642
+ :fragment => self.unencode_component(uri_object.fragment)
643
+ }
644
+ components.each do |key, value|
645
+ if value != nil
646
+ begin
647
+ components[key] =
648
+ Addressable::IDNA.unicode_normalize_kc(value.to_str)
649
+ rescue ArgumentError
650
+ # Likely a malformed UTF-8 character, skip unicode normalization
651
+ components[key] = value.to_str
652
+ end
653
+ end
654
+ end
655
+ encoded_uri = Addressable::URI.new(
656
+ :scheme => self.encode_component(components[:scheme],
657
+ Addressable::URI::CharacterClasses::SCHEME),
658
+ :user => self.encode_component(components[:user],
659
+ Addressable::URI::CharacterClasses::UNRESERVED),
660
+ :password => self.encode_component(components[:password],
661
+ Addressable::URI::CharacterClasses::UNRESERVED),
662
+ :host => components[:host],
663
+ :port => components[:port],
664
+ :path => self.encode_component(components[:path],
665
+ Addressable::URI::CharacterClasses::PATH),
666
+ :query => self.encode_component(components[:query],
667
+ Addressable::URI::CharacterClasses::QUERY),
668
+ :fragment => self.encode_component(components[:fragment],
669
+ Addressable::URI::CharacterClasses::FRAGMENT)
670
+ )
671
+ if return_type == String
672
+ return encoded_uri.to_s
673
+ elsif return_type == ::Addressable::URI
674
+ return encoded_uri
675
+ end
676
+ end
677
+
678
+ ##
679
+ # Encodes a set of key/value pairs according to the rules for the
680
+ # <code>application/x-www-form-urlencoded</code> MIME type.
681
+ #
682
+ # @param [#to_hash, #to_ary] form_values
683
+ # The form values to encode.
684
+ #
685
+ # @param [TrueClass, FalseClass] sort
686
+ # Sort the key/value pairs prior to encoding.
687
+ # Defaults to <code>false</code>.
688
+ #
689
+ # @return [String]
690
+ # The encoded value.
691
+ def self.form_encode(form_values, sort=false)
692
+ if form_values.respond_to?(:to_hash)
693
+ form_values = form_values.to_hash.to_a
694
+ elsif form_values.respond_to?(:to_ary)
695
+ form_values = form_values.to_ary
696
+ else
697
+ raise TypeError, "Can't convert #{form_values.class} into Array."
698
+ end
699
+
700
+ form_values = form_values.inject([]) do |accu, (key, value)|
701
+ if value.kind_of?(Array)
702
+ value.each do |v|
703
+ accu << [key.to_s, v.to_s]
704
+ end
705
+ else
706
+ accu << [key.to_s, value.to_s]
707
+ end
708
+ accu
709
+ end
710
+
711
+ if sort
712
+ # Useful for OAuth and optimizing caching systems
713
+ form_values = form_values.sort
714
+ end
715
+ escaped_form_values = form_values.map do |(key, value)|
716
+ # Line breaks are CRLF pairs
717
+ [
718
+ self.encode_component(
719
+ key.gsub(/(\r\n|\n|\r)/, "\r\n"),
720
+ CharacterClasses::UNRESERVED
721
+ ).gsub("%20", "+"),
722
+ self.encode_component(
723
+ value.gsub(/(\r\n|\n|\r)/, "\r\n"),
724
+ CharacterClasses::UNRESERVED
725
+ ).gsub("%20", "+")
726
+ ]
727
+ end
728
+ return escaped_form_values.map do |(key, value)|
729
+ "#{key}=#{value}"
730
+ end.join("&")
731
+ end
732
+
733
+ ##
734
+ # Decodes a <code>String</code> according to the rules for the
735
+ # <code>application/x-www-form-urlencoded</code> MIME type.
736
+ #
737
+ # @param [String, #to_str] encoded_value
738
+ # The form values to decode.
739
+ #
740
+ # @return [Array]
741
+ # The decoded values.
742
+ # This is not a <code>Hash</code> because of the possibility for
743
+ # duplicate keys.
744
+ def self.form_unencode(encoded_value)
745
+ if !encoded_value.respond_to?(:to_str)
746
+ raise TypeError, "Can't convert #{encoded_value.class} into String."
747
+ end
748
+ encoded_value = encoded_value.to_str
749
+ split_values = encoded_value.split("&").map do |pair|
750
+ pair.split("=", 2)
751
+ end
752
+ return split_values.map do |(key, value)|
753
+ [
754
+ key ? self.unencode_component(
755
+ key.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n") : nil,
756
+ value ? (self.unencode_component(
757
+ value.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n")) : nil
758
+ ]
759
+ end
760
+ end
761
+
762
+ ##
763
+ # Creates a new uri object from component parts.
764
+ #
765
+ # @option [String, #to_str] scheme The scheme component.
766
+ # @option [String, #to_str] user The user component.
767
+ # @option [String, #to_str] password The password component.
768
+ # @option [String, #to_str] userinfo
769
+ # The userinfo component. If this is supplied, the user and password
770
+ # components must be omitted.
771
+ # @option [String, #to_str] host The host component.
772
+ # @option [String, #to_str] port The port component.
773
+ # @option [String, #to_str] authority
774
+ # The authority component. If this is supplied, the user, password,
775
+ # userinfo, host, and port components must be omitted.
776
+ # @option [String, #to_str] path The path component.
777
+ # @option [String, #to_str] query The query component.
778
+ # @option [String, #to_str] fragment The fragment component.
779
+ #
780
+ # @return [Addressable::URI] The constructed URI object.
781
+ def initialize(options={})
782
+ if options.has_key?(:authority)
783
+ if (options.keys & [:userinfo, :user, :password, :host, :port]).any?
784
+ raise ArgumentError,
785
+ "Cannot specify both an authority and any of the components " +
786
+ "within the authority."
787
+ end
788
+ end
789
+ if options.has_key?(:userinfo)
790
+ if (options.keys & [:user, :password]).any?
791
+ raise ArgumentError,
792
+ "Cannot specify both a userinfo and either the user or password."
793
+ end
794
+ end
795
+
796
+ self.defer_validation do
797
+ # Bunch of crazy logic required because of the composite components
798
+ # like userinfo and authority.
799
+ self.scheme = options[:scheme] if options[:scheme]
800
+ self.user = options[:user] if options[:user]
801
+ self.password = options[:password] if options[:password]
802
+ self.userinfo = options[:userinfo] if options[:userinfo]
803
+ self.host = options[:host] if options[:host]
804
+ self.port = options[:port] if options[:port]
805
+ self.authority = options[:authority] if options[:authority]
806
+ self.path = options[:path] if options[:path]
807
+ self.query = options[:query] if options[:query]
808
+ self.query_values = options[:query_values] if options[:query_values]
809
+ self.fragment = options[:fragment] if options[:fragment]
810
+ end
811
+ self.to_s
812
+ end
813
+
814
+ ##
815
+ # Freeze URI, initializing instance variables.
816
+ #
817
+ # @return [Addressable::URI] The frozen URI object.
818
+ def freeze
819
+ self.normalized_scheme
820
+ self.normalized_user
821
+ self.normalized_password
822
+ self.normalized_userinfo
823
+ self.normalized_host
824
+ self.normalized_port
825
+ self.normalized_authority
826
+ self.normalized_site
827
+ self.normalized_path
828
+ self.normalized_query
829
+ self.normalized_fragment
830
+ self.hash
831
+ super
832
+ end
833
+
834
+ ##
835
+ # The scheme component for this URI.
836
+ #
837
+ # @return [String] The scheme component.
838
+ def scheme
839
+ return defined?(@scheme) ? @scheme : nil
840
+ end
841
+
842
+ ##
843
+ # The scheme component for this URI, normalized.
844
+ #
845
+ # @return [String] The scheme component, normalized.
846
+ def normalized_scheme
847
+ return nil unless self.scheme
848
+ @normalized_scheme ||= begin
849
+ if self.scheme =~ /^\s*ssh\+svn\s*$/i
850
+ "svn+ssh".dup
851
+ else
852
+ Addressable::URI.normalize_component(
853
+ self.scheme.strip.downcase,
854
+ Addressable::URI::CharacterClasses::SCHEME
855
+ )
856
+ end
857
+ end
858
+ # All normalized values should be UTF-8
859
+ @normalized_scheme.force_encoding(Encoding::UTF_8) if @normalized_scheme
860
+ @normalized_scheme
861
+ end
862
+
863
+ ##
864
+ # Sets the scheme component for this URI.
865
+ #
866
+ # @param [String, #to_str] new_scheme The new scheme component.
867
+ def scheme=(new_scheme)
868
+ if new_scheme && !new_scheme.respond_to?(:to_str)
869
+ raise TypeError, "Can't convert #{new_scheme.class} into String."
870
+ elsif new_scheme
871
+ new_scheme = new_scheme.to_str
872
+ end
873
+ if new_scheme && new_scheme !~ /\A[a-z][a-z0-9\.\+\-]*\z/i
874
+ raise InvalidURIError, "Invalid scheme format: #{new_scheme}"
875
+ end
876
+ @scheme = new_scheme
877
+ @scheme = nil if @scheme.to_s.strip.empty?
878
+
879
+ # Reset dependent values
880
+ remove_instance_variable(:@normalized_scheme) if defined?(@normalized_scheme)
881
+ remove_composite_values
882
+
883
+ # Ensure we haven't created an invalid URI
884
+ validate()
885
+ end
886
+
887
+ ##
888
+ # The user component for this URI.
889
+ #
890
+ # @return [String] The user component.
891
+ def user
892
+ return defined?(@user) ? @user : nil
893
+ end
894
+
895
+ ##
896
+ # The user component for this URI, normalized.
897
+ #
898
+ # @return [String] The user component, normalized.
899
+ def normalized_user
900
+ return nil unless self.user
901
+ return @normalized_user if defined?(@normalized_user)
902
+ @normalized_user ||= begin
903
+ if normalized_scheme =~ /https?/ && self.user.strip.empty? &&
904
+ (!self.password || self.password.strip.empty?)
905
+ nil
906
+ else
907
+ Addressable::URI.normalize_component(
908
+ self.user.strip,
909
+ Addressable::URI::CharacterClasses::UNRESERVED
910
+ )
911
+ end
912
+ end
913
+ # All normalized values should be UTF-8
914
+ @normalized_user.force_encoding(Encoding::UTF_8) if @normalized_user
915
+ @normalized_user
916
+ end
917
+
918
+ ##
919
+ # Sets the user component for this URI.
920
+ #
921
+ # @param [String, #to_str] new_user The new user component.
922
+ def user=(new_user)
923
+ if new_user && !new_user.respond_to?(:to_str)
924
+ raise TypeError, "Can't convert #{new_user.class} into String."
925
+ end
926
+ @user = new_user ? new_user.to_str : nil
927
+
928
+ # You can't have a nil user with a non-nil password
929
+ if password != nil
930
+ @user = EMPTY_STR if @user.nil?
931
+ end
932
+
933
+ # Reset dependent values
934
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
935
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
936
+ remove_instance_variable(:@authority) if defined?(@authority)
937
+ remove_instance_variable(:@normalized_user) if defined?(@normalized_user)
938
+ remove_composite_values
939
+
940
+ # Ensure we haven't created an invalid URI
941
+ validate()
942
+ end
943
+
944
+ ##
945
+ # The password component for this URI.
946
+ #
947
+ # @return [String] The password component.
948
+ def password
949
+ return defined?(@password) ? @password : nil
950
+ end
951
+
952
+ ##
953
+ # The password component for this URI, normalized.
954
+ #
955
+ # @return [String] The password component, normalized.
956
+ def normalized_password
957
+ return nil unless self.password
958
+ return @normalized_password if defined?(@normalized_password)
959
+ @normalized_password ||= begin
960
+ if self.normalized_scheme =~ /https?/ && self.password.strip.empty? &&
961
+ (!self.user || self.user.strip.empty?)
962
+ nil
963
+ else
964
+ Addressable::URI.normalize_component(
965
+ self.password.strip,
966
+ Addressable::URI::CharacterClasses::UNRESERVED
967
+ )
968
+ end
969
+ end
970
+ # All normalized values should be UTF-8
971
+ if @normalized_password
972
+ @normalized_password.force_encoding(Encoding::UTF_8)
973
+ end
974
+ @normalized_password
975
+ end
976
+
977
+ ##
978
+ # Sets the password component for this URI.
979
+ #
980
+ # @param [String, #to_str] new_password The new password component.
981
+ def password=(new_password)
982
+ if new_password && !new_password.respond_to?(:to_str)
983
+ raise TypeError, "Can't convert #{new_password.class} into String."
984
+ end
985
+ @password = new_password ? new_password.to_str : nil
986
+
987
+ # You can't have a nil user with a non-nil password
988
+ @password ||= nil
989
+ @user ||= nil
990
+ if @password != nil
991
+ @user = EMPTY_STR if @user.nil?
992
+ end
993
+
994
+ # Reset dependent values
995
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
996
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
997
+ remove_instance_variable(:@authority) if defined?(@authority)
998
+ remove_instance_variable(:@normalized_password) if defined?(@normalized_password)
999
+ remove_composite_values
1000
+
1001
+ # Ensure we haven't created an invalid URI
1002
+ validate()
1003
+ end
1004
+
1005
+ ##
1006
+ # The userinfo component for this URI.
1007
+ # Combines the user and password components.
1008
+ #
1009
+ # @return [String] The userinfo component.
1010
+ def userinfo
1011
+ current_user = self.user
1012
+ current_password = self.password
1013
+ (current_user || current_password) && @userinfo ||= begin
1014
+ if current_user && current_password
1015
+ "#{current_user}:#{current_password}"
1016
+ elsif current_user && !current_password
1017
+ "#{current_user}"
1018
+ end
1019
+ end
1020
+ end
1021
+
1022
+ ##
1023
+ # The userinfo component for this URI, normalized.
1024
+ #
1025
+ # @return [String] The userinfo component, normalized.
1026
+ def normalized_userinfo
1027
+ return nil unless self.userinfo
1028
+ return @normalized_userinfo if defined?(@normalized_userinfo)
1029
+ @normalized_userinfo ||= begin
1030
+ current_user = self.normalized_user
1031
+ current_password = self.normalized_password
1032
+ if !current_user && !current_password
1033
+ nil
1034
+ elsif current_user && current_password
1035
+ "#{current_user}:#{current_password}".dup
1036
+ elsif current_user && !current_password
1037
+ "#{current_user}".dup
1038
+ end
1039
+ end
1040
+ # All normalized values should be UTF-8
1041
+ if @normalized_userinfo
1042
+ @normalized_userinfo.force_encoding(Encoding::UTF_8)
1043
+ end
1044
+ @normalized_userinfo
1045
+ end
1046
+
1047
+ ##
1048
+ # Sets the userinfo component for this URI.
1049
+ #
1050
+ # @param [String, #to_str] new_userinfo The new userinfo component.
1051
+ def userinfo=(new_userinfo)
1052
+ if new_userinfo && !new_userinfo.respond_to?(:to_str)
1053
+ raise TypeError, "Can't convert #{new_userinfo.class} into String."
1054
+ end
1055
+ new_user, new_password = if new_userinfo
1056
+ [
1057
+ new_userinfo.to_str.strip[/^(.*):/, 1],
1058
+ new_userinfo.to_str.strip[/:(.*)$/, 1]
1059
+ ]
1060
+ else
1061
+ [nil, nil]
1062
+ end
1063
+
1064
+ # Password assigned first to ensure validity in case of nil
1065
+ self.password = new_password
1066
+ self.user = new_user
1067
+
1068
+ # Reset dependent values
1069
+ remove_instance_variable(:@authority) if defined?(@authority)
1070
+ remove_composite_values
1071
+
1072
+ # Ensure we haven't created an invalid URI
1073
+ validate()
1074
+ end
1075
+
1076
+ ##
1077
+ # The host component for this URI.
1078
+ #
1079
+ # @return [String] The host component.
1080
+ def host
1081
+ return defined?(@host) ? @host : nil
1082
+ end
1083
+
1084
+ ##
1085
+ # The host component for this URI, normalized.
1086
+ #
1087
+ # @return [String] The host component, normalized.
1088
+ def normalized_host
1089
+ return nil unless self.host
1090
+ @normalized_host ||= begin
1091
+ if !self.host.strip.empty?
1092
+ result = ::Addressable::IDNA.to_ascii(
1093
+ URI.unencode_component(self.host.strip.downcase)
1094
+ )
1095
+ if result =~ /[^\.]\.$/
1096
+ # Single trailing dots are unnecessary.
1097
+ result = result[0...-1]
1098
+ end
1099
+ result = Addressable::URI.normalize_component(
1100
+ result,
1101
+ CharacterClasses::HOST)
1102
+ result
1103
+ else
1104
+ EMPTY_STR.dup
1105
+ end
1106
+ end
1107
+ # All normalized values should be UTF-8
1108
+ @normalized_host.force_encoding(Encoding::UTF_8) if @normalized_host
1109
+ @normalized_host
1110
+ end
1111
+
1112
+ ##
1113
+ # Sets the host component for this URI.
1114
+ #
1115
+ # @param [String, #to_str] new_host The new host component.
1116
+ def host=(new_host)
1117
+ if new_host && !new_host.respond_to?(:to_str)
1118
+ raise TypeError, "Can't convert #{new_host.class} into String."
1119
+ end
1120
+ @host = new_host ? new_host.to_str : nil
1121
+
1122
+ # Reset dependent values
1123
+ remove_instance_variable(:@authority) if defined?(@authority)
1124
+ remove_instance_variable(:@normalized_host) if defined?(@normalized_host)
1125
+ remove_composite_values
1126
+
1127
+ # Ensure we haven't created an invalid URI
1128
+ validate()
1129
+ end
1130
+
1131
+ ##
1132
+ # This method is same as URI::Generic#host except
1133
+ # brackets for IPv6 (and 'IPvFuture') addresses are removed.
1134
+ #
1135
+ # @see Addressable::URI#host
1136
+ #
1137
+ # @return [String] The hostname for this URI.
1138
+ def hostname
1139
+ v = self.host
1140
+ /\A\[(.*)\]\z/ =~ v ? $1 : v
1141
+ end
1142
+
1143
+ ##
1144
+ # This method is same as URI::Generic#host= except
1145
+ # the argument can be a bare IPv6 address (or 'IPvFuture').
1146
+ #
1147
+ # @see Addressable::URI#host=
1148
+ #
1149
+ # @param [String, #to_str] new_hostname The new hostname for this URI.
1150
+ def hostname=(new_hostname)
1151
+ if new_hostname &&
1152
+ (new_hostname.respond_to?(:ipv4?) || new_hostname.respond_to?(:ipv6?))
1153
+ new_hostname = new_hostname.to_s
1154
+ elsif new_hostname && !new_hostname.respond_to?(:to_str)
1155
+ raise TypeError, "Can't convert #{new_hostname.class} into String."
1156
+ end
1157
+ v = new_hostname ? new_hostname.to_str : nil
1158
+ v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
1159
+ self.host = v
1160
+ end
1161
+
1162
+ ##
1163
+ # Returns the top-level domain for this host.
1164
+ #
1165
+ # @example
1166
+ # Addressable::URI.parse("www.example.co.uk").tld # => "co.uk"
1167
+ def tld
1168
+ PublicSuffix.parse(self.host, ignore_private: true).tld
1169
+ end
1170
+
1171
+ ##
1172
+ # Returns the public suffix domain for this host.
1173
+ #
1174
+ # @example
1175
+ # Addressable::URI.parse("www.example.co.uk").domain # => "example.co.uk"
1176
+ def domain
1177
+ PublicSuffix.domain(self.host, ignore_private: true)
1178
+ end
1179
+
1180
+ ##
1181
+ # The authority component for this URI.
1182
+ # Combines the user, password, host, and port components.
1183
+ #
1184
+ # @return [String] The authority component.
1185
+ def authority
1186
+ self.host && @authority ||= begin
1187
+ authority = String.new
1188
+ if self.userinfo != nil
1189
+ authority << "#{self.userinfo}@"
1190
+ end
1191
+ authority << self.host
1192
+ if self.port != nil
1193
+ authority << ":#{self.port}"
1194
+ end
1195
+ authority
1196
+ end
1197
+ end
1198
+
1199
+ ##
1200
+ # The authority component for this URI, normalized.
1201
+ #
1202
+ # @return [String] The authority component, normalized.
1203
+ def normalized_authority
1204
+ return nil unless self.authority
1205
+ @normalized_authority ||= begin
1206
+ authority = String.new
1207
+ if self.normalized_userinfo != nil
1208
+ authority << "#{self.normalized_userinfo}@"
1209
+ end
1210
+ authority << self.normalized_host
1211
+ if self.normalized_port != nil
1212
+ authority << ":#{self.normalized_port}"
1213
+ end
1214
+ authority
1215
+ end
1216
+ # All normalized values should be UTF-8
1217
+ if @normalized_authority
1218
+ @normalized_authority.force_encoding(Encoding::UTF_8)
1219
+ end
1220
+ @normalized_authority
1221
+ end
1222
+
1223
+ ##
1224
+ # Sets the authority component for this URI.
1225
+ #
1226
+ # @param [String, #to_str] new_authority The new authority component.
1227
+ def authority=(new_authority)
1228
+ if new_authority
1229
+ if !new_authority.respond_to?(:to_str)
1230
+ raise TypeError, "Can't convert #{new_authority.class} into String."
1231
+ end
1232
+ new_authority = new_authority.to_str
1233
+ new_userinfo = new_authority[/^([^\[\]]*)@/, 1]
1234
+ if new_userinfo
1235
+ new_user = new_userinfo.strip[/^([^:]*):?/, 1]
1236
+ new_password = new_userinfo.strip[/:(.*)$/, 1]
1237
+ end
1238
+ new_host = new_authority.gsub(
1239
+ /^([^\[\]]*)@/, EMPTY_STR
1240
+ ).gsub(
1241
+ /:([^:@\[\]]*?)$/, EMPTY_STR
1242
+ )
1243
+ new_port =
1244
+ new_authority[/:([^:@\[\]]*?)$/, 1]
1245
+ end
1246
+
1247
+ # Password assigned first to ensure validity in case of nil
1248
+ self.password = defined?(new_password) ? new_password : nil
1249
+ self.user = defined?(new_user) ? new_user : nil
1250
+ self.host = defined?(new_host) ? new_host : nil
1251
+ self.port = defined?(new_port) ? new_port : nil
1252
+
1253
+ # Reset dependent values
1254
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1255
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1256
+ remove_composite_values
1257
+
1258
+ # Ensure we haven't created an invalid URI
1259
+ validate()
1260
+ end
1261
+
1262
+ ##
1263
+ # The origin for this URI, serialized to ASCII, as per
1264
+ # RFC 6454, section 6.2.
1265
+ #
1266
+ # @return [String] The serialized origin.
1267
+ def origin
1268
+ if self.scheme && self.authority
1269
+ if self.normalized_port
1270
+ "#{self.normalized_scheme}://#{self.normalized_host}" +
1271
+ ":#{self.normalized_port}"
1272
+ else
1273
+ "#{self.normalized_scheme}://#{self.normalized_host}"
1274
+ end
1275
+ else
1276
+ "null"
1277
+ end
1278
+ end
1279
+
1280
+ ##
1281
+ # Sets the origin for this URI, serialized to ASCII, as per
1282
+ # RFC 6454, section 6.2. This assignment will reset the `userinfo`
1283
+ # component.
1284
+ #
1285
+ # @param [String, #to_str] new_origin The new origin component.
1286
+ def origin=(new_origin)
1287
+ if new_origin
1288
+ if !new_origin.respond_to?(:to_str)
1289
+ raise TypeError, "Can't convert #{new_origin.class} into String."
1290
+ end
1291
+ new_origin = new_origin.to_str
1292
+ new_scheme = new_origin[/^([^:\/?#]+):\/\//, 1]
1293
+ unless new_scheme
1294
+ raise InvalidURIError, 'An origin cannot omit the scheme.'
1295
+ end
1296
+ new_host = new_origin[/:\/\/([^\/?#:]+)/, 1]
1297
+ unless new_host
1298
+ raise InvalidURIError, 'An origin cannot omit the host.'
1299
+ end
1300
+ new_port = new_origin[/:([^:@\[\]\/]*?)$/, 1]
1301
+ end
1302
+
1303
+ self.scheme = defined?(new_scheme) ? new_scheme : nil
1304
+ self.host = defined?(new_host) ? new_host : nil
1305
+ self.port = defined?(new_port) ? new_port : nil
1306
+ self.userinfo = nil
1307
+
1308
+ # Reset dependent values
1309
+ remove_instance_variable(:@userinfo) if defined?(@userinfo)
1310
+ remove_instance_variable(:@normalized_userinfo) if defined?(@normalized_userinfo)
1311
+ remove_instance_variable(:@authority) if defined?(@authority)
1312
+ remove_instance_variable(:@normalized_authority) if defined?(@normalized_authority)
1313
+ remove_composite_values
1314
+
1315
+ # Ensure we haven't created an invalid URI
1316
+ validate()
1317
+ end
1318
+
1319
+ # Returns an array of known ip-based schemes. These schemes typically
1320
+ # use a similar URI form:
1321
+ # <code>//<user>:<password>@<host>:<port>/<url-path></code>
1322
+ def self.ip_based_schemes
1323
+ return self.port_mapping.keys
1324
+ end
1325
+
1326
+ # Returns a hash of common IP-based schemes and their default port
1327
+ # numbers. Adding new schemes to this hash, as necessary, will allow
1328
+ # for better URI normalization.
1329
+ def self.port_mapping
1330
+ PORT_MAPPING
1331
+ end
1332
+
1333
+ ##
1334
+ # The port component for this URI.
1335
+ # This is the port number actually given in the URI. This does not
1336
+ # infer port numbers from default values.
1337
+ #
1338
+ # @return [Integer] The port component.
1339
+ def port
1340
+ return defined?(@port) ? @port : nil
1341
+ end
1342
+
1343
+ ##
1344
+ # The port component for this URI, normalized.
1345
+ #
1346
+ # @return [Integer] The port component, normalized.
1347
+ def normalized_port
1348
+ return nil unless self.port
1349
+ return @normalized_port if defined?(@normalized_port)
1350
+ @normalized_port ||= begin
1351
+ if URI.port_mapping[self.normalized_scheme] == self.port
1352
+ nil
1353
+ else
1354
+ self.port
1355
+ end
1356
+ end
1357
+ end
1358
+
1359
+ ##
1360
+ # Sets the port component for this URI.
1361
+ #
1362
+ # @param [String, Integer, #to_s] new_port The new port component.
1363
+ def port=(new_port)
1364
+ if new_port != nil && new_port.respond_to?(:to_str)
1365
+ new_port = Addressable::URI.unencode_component(new_port.to_str)
1366
+ end
1367
+
1368
+ if new_port.respond_to?(:valid_encoding?) && !new_port.valid_encoding?
1369
+ raise InvalidURIError, "Invalid encoding in port"
1370
+ end
1371
+
1372
+ if new_port != nil && !(new_port.to_s =~ /^\d+$/)
1373
+ raise InvalidURIError,
1374
+ "Invalid port number: #{new_port.inspect}"
1375
+ end
1376
+
1377
+ @port = new_port.to_s.to_i
1378
+ @port = nil if @port == 0
1379
+
1380
+ # Reset dependent values
1381
+ remove_instance_variable(:@authority) if defined?(@authority)
1382
+ remove_instance_variable(:@normalized_port) if defined?(@normalized_port)
1383
+ remove_composite_values
1384
+
1385
+ # Ensure we haven't created an invalid URI
1386
+ validate()
1387
+ end
1388
+
1389
+ ##
1390
+ # The inferred port component for this URI.
1391
+ # This method will normalize to the default port for the URI's scheme if
1392
+ # the port isn't explicitly specified in the URI.
1393
+ #
1394
+ # @return [Integer] The inferred port component.
1395
+ def inferred_port
1396
+ if self.port.to_i == 0
1397
+ self.default_port
1398
+ else
1399
+ self.port.to_i
1400
+ end
1401
+ end
1402
+
1403
+ ##
1404
+ # The default port for this URI's scheme.
1405
+ # This method will always returns the default port for the URI's scheme
1406
+ # regardless of the presence of an explicit port in the URI.
1407
+ #
1408
+ # @return [Integer] The default port.
1409
+ def default_port
1410
+ URI.port_mapping[self.scheme.strip.downcase] if self.scheme
1411
+ end
1412
+
1413
+ ##
1414
+ # The combination of components that represent a site.
1415
+ # Combines the scheme, user, password, host, and port components.
1416
+ # Primarily useful for HTTP and HTTPS.
1417
+ #
1418
+ # For example, <code>"http://example.com/path?query"</code> would have a
1419
+ # <code>site</code> value of <code>"http://example.com"</code>.
1420
+ #
1421
+ # @return [String] The components that identify a site.
1422
+ def site
1423
+ (self.scheme || self.authority) && @site ||= begin
1424
+ site_string = "".dup
1425
+ site_string << "#{self.scheme}:" if self.scheme != nil
1426
+ site_string << "//#{self.authority}" if self.authority != nil
1427
+ site_string
1428
+ end
1429
+ end
1430
+
1431
+ ##
1432
+ # The normalized combination of components that represent a site.
1433
+ # Combines the scheme, user, password, host, and port components.
1434
+ # Primarily useful for HTTP and HTTPS.
1435
+ #
1436
+ # For example, <code>"http://example.com/path?query"</code> would have a
1437
+ # <code>site</code> value of <code>"http://example.com"</code>.
1438
+ #
1439
+ # @return [String] The normalized components that identify a site.
1440
+ def normalized_site
1441
+ return nil unless self.site
1442
+ @normalized_site ||= begin
1443
+ site_string = "".dup
1444
+ if self.normalized_scheme != nil
1445
+ site_string << "#{self.normalized_scheme}:"
1446
+ end
1447
+ if self.normalized_authority != nil
1448
+ site_string << "//#{self.normalized_authority}"
1449
+ end
1450
+ site_string
1451
+ end
1452
+ # All normalized values should be UTF-8
1453
+ @normalized_site.force_encoding(Encoding::UTF_8) if @normalized_site
1454
+ @normalized_site
1455
+ end
1456
+
1457
+ ##
1458
+ # Sets the site value for this URI.
1459
+ #
1460
+ # @param [String, #to_str] new_site The new site value.
1461
+ def site=(new_site)
1462
+ if new_site
1463
+ if !new_site.respond_to?(:to_str)
1464
+ raise TypeError, "Can't convert #{new_site.class} into String."
1465
+ end
1466
+ new_site = new_site.to_str
1467
+ # These two regular expressions derived from the primary parsing
1468
+ # expression
1469
+ self.scheme = new_site[/^(?:([^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?$/, 1]
1470
+ self.authority = new_site[
1471
+ /^(?:(?:[^:\/?#]+):)?(?:\/\/([^\/?#]*))?$/, 1
1472
+ ]
1473
+ else
1474
+ self.scheme = nil
1475
+ self.authority = nil
1476
+ end
1477
+ end
1478
+
1479
+ ##
1480
+ # The path component for this URI.
1481
+ #
1482
+ # @return [String] The path component.
1483
+ def path
1484
+ return defined?(@path) ? @path : EMPTY_STR
1485
+ end
1486
+
1487
+ NORMPATH = /^(?!\/)[^\/:]*:.*$/
1488
+ ##
1489
+ # The path component for this URI, normalized.
1490
+ #
1491
+ # @return [String] The path component, normalized.
1492
+ def normalized_path
1493
+ @normalized_path ||= begin
1494
+ path = self.path.to_s
1495
+ if self.scheme == nil && path =~ NORMPATH
1496
+ # Relative paths with colons in the first segment are ambiguous.
1497
+ path = path.sub(":", "%2F")
1498
+ end
1499
+ # String#split(delimeter, -1) uses the more strict splitting behavior
1500
+ # found by default in Python.
1501
+ result = path.strip.split(SLASH, -1).map do |segment|
1502
+ Addressable::URI.normalize_component(
1503
+ segment,
1504
+ Addressable::URI::CharacterClasses::PCHAR
1505
+ )
1506
+ end.join(SLASH)
1507
+
1508
+ result = URI.normalize_path(result)
1509
+ if result.empty? &&
1510
+ ["http", "https", "ftp", "tftp"].include?(self.normalized_scheme)
1511
+ result = SLASH.dup
1512
+ end
1513
+ result
1514
+ end
1515
+ # All normalized values should be UTF-8
1516
+ @normalized_path.force_encoding(Encoding::UTF_8) if @normalized_path
1517
+ @normalized_path
1518
+ end
1519
+
1520
+ ##
1521
+ # Sets the path component for this URI.
1522
+ #
1523
+ # @param [String, #to_str] new_path The new path component.
1524
+ def path=(new_path)
1525
+ if new_path && !new_path.respond_to?(:to_str)
1526
+ raise TypeError, "Can't convert #{new_path.class} into String."
1527
+ end
1528
+ @path = (new_path || EMPTY_STR).to_str
1529
+ if !@path.empty? && @path[0..0] != SLASH && host != nil
1530
+ @path = "/#{@path}"
1531
+ end
1532
+
1533
+ # Reset dependent values
1534
+ remove_instance_variable(:@normalized_path) if defined?(@normalized_path)
1535
+ remove_composite_values
1536
+
1537
+ # Ensure we haven't created an invalid URI
1538
+ validate()
1539
+ end
1540
+
1541
+ ##
1542
+ # The basename, if any, of the file in the path component.
1543
+ #
1544
+ # @return [String] The path's basename.
1545
+ def basename
1546
+ # Path cannot be nil
1547
+ return File.basename(self.path).gsub(/;[^\/]*$/, EMPTY_STR)
1548
+ end
1549
+
1550
+ ##
1551
+ # The extname, if any, of the file in the path component.
1552
+ # Empty string if there is no extension.
1553
+ #
1554
+ # @return [String] The path's extname.
1555
+ def extname
1556
+ return nil unless self.path
1557
+ return File.extname(self.basename)
1558
+ end
1559
+
1560
+ ##
1561
+ # The query component for this URI.
1562
+ #
1563
+ # @return [String] The query component.
1564
+ def query
1565
+ return defined?(@query) ? @query : nil
1566
+ end
1567
+
1568
+ ##
1569
+ # The query component for this URI, normalized.
1570
+ #
1571
+ # @return [String] The query component, normalized.
1572
+ def normalized_query(*flags)
1573
+ return nil unless self.query
1574
+ return @normalized_query if defined?(@normalized_query)
1575
+ @normalized_query ||= begin
1576
+ modified_query_class = Addressable::URI::CharacterClasses::QUERY.dup
1577
+ # Make sure possible key-value pair delimiters are escaped.
1578
+ modified_query_class.sub!("\\&", "").sub!("\\;", "")
1579
+ pairs = (self.query || "").split("&", -1)
1580
+ pairs.sort! if flags.include?(:sorted)
1581
+ component = pairs.map do |pair|
1582
+ Addressable::URI.normalize_component(pair, modified_query_class, "+")
1583
+ end.join("&")
1584
+ component == "" ? nil : component
1585
+ end
1586
+ # All normalized values should be UTF-8
1587
+ @normalized_query.force_encoding(Encoding::UTF_8) if @normalized_query
1588
+ @normalized_query
1589
+ end
1590
+
1591
+ ##
1592
+ # Sets the query component for this URI.
1593
+ #
1594
+ # @param [String, #to_str] new_query The new query component.
1595
+ def query=(new_query)
1596
+ if new_query && !new_query.respond_to?(:to_str)
1597
+ raise TypeError, "Can't convert #{new_query.class} into String."
1598
+ end
1599
+ @query = new_query ? new_query.to_str : nil
1600
+
1601
+ # Reset dependent values
1602
+ remove_instance_variable(:@normalized_query) if defined?(@normalized_query)
1603
+ remove_composite_values
1604
+ end
1605
+
1606
+ ##
1607
+ # Converts the query component to a Hash value.
1608
+ #
1609
+ # @param [Class] return_type The return type desired. Value must be either
1610
+ # `Hash` or `Array`.
1611
+ #
1612
+ # @return [Hash, Array, nil] The query string parsed as a Hash or Array
1613
+ # or nil if the query string is blank.
1614
+ #
1615
+ # @example
1616
+ # Addressable::URI.parse("?one=1&two=2&three=3").query_values
1617
+ # #=> {"one" => "1", "two" => "2", "three" => "3"}
1618
+ # Addressable::URI.parse("?one=two&one=three").query_values(Array)
1619
+ # #=> [["one", "two"], ["one", "three"]]
1620
+ # Addressable::URI.parse("?one=two&one=three").query_values(Hash)
1621
+ # #=> {"one" => "three"}
1622
+ # Addressable::URI.parse("?").query_values
1623
+ # #=> {}
1624
+ # Addressable::URI.parse("").query_values
1625
+ # #=> nil
1626
+ def query_values(return_type=Hash)
1627
+ empty_accumulator = Array == return_type ? [] : {}
1628
+ if return_type != Hash && return_type != Array
1629
+ raise ArgumentError, "Invalid return type. Must be Hash or Array."
1630
+ end
1631
+ return nil if self.query == nil
1632
+ split_query = self.query.split("&").map do |pair|
1633
+ pair.split("=", 2) if pair && !pair.empty?
1634
+ end.compact
1635
+ return split_query.inject(empty_accumulator.dup) do |accu, pair|
1636
+ # I'd rather use key/value identifiers instead of array lookups,
1637
+ # but in this case I really want to maintain the exact pair structure,
1638
+ # so it's best to make all changes in-place.
1639
+ pair[0] = URI.unencode_component(pair[0])
1640
+ if pair[1].respond_to?(:to_str)
1641
+ # I loathe the fact that I have to do this. Stupid HTML 4.01.
1642
+ # Treating '+' as a space was just an unbelievably bad idea.
1643
+ # There was nothing wrong with '%20'!
1644
+ # If it ain't broke, don't fix it!
1645
+ pair[1] = URI.unencode_component(pair[1].to_str.gsub(/\+/, " "))
1646
+ end
1647
+ if return_type == Hash
1648
+ accu[pair[0]] = pair[1]
1649
+ else
1650
+ accu << pair
1651
+ end
1652
+ accu
1653
+ end
1654
+ end
1655
+
1656
+ ##
1657
+ # Sets the query component for this URI from a Hash object.
1658
+ # An empty Hash or Array will result in an empty query string.
1659
+ #
1660
+ # @param [Hash, #to_hash, Array] new_query_values The new query values.
1661
+ #
1662
+ # @example
1663
+ # uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
1664
+ # uri.query
1665
+ # # => "a=a&b=c&b=d&b=e"
1666
+ # uri.query_values = [['a', 'a'], ['b', 'c'], ['b', 'd'], ['b', 'e']]
1667
+ # uri.query
1668
+ # # => "a=a&b=c&b=d&b=e"
1669
+ # uri.query_values = [['a', 'a'], ['b', ['c', 'd', 'e']]]
1670
+ # uri.query
1671
+ # # => "a=a&b=c&b=d&b=e"
1672
+ # uri.query_values = [['flag'], ['key', 'value']]
1673
+ # uri.query
1674
+ # # => "flag&key=value"
1675
+ def query_values=(new_query_values)
1676
+ if new_query_values == nil
1677
+ self.query = nil
1678
+ return nil
1679
+ end
1680
+
1681
+ if !new_query_values.is_a?(Array)
1682
+ if !new_query_values.respond_to?(:to_hash)
1683
+ raise TypeError,
1684
+ "Can't convert #{new_query_values.class} into Hash."
1685
+ end
1686
+ new_query_values = new_query_values.to_hash
1687
+ new_query_values = new_query_values.map do |key, value|
1688
+ key = key.to_s if key.kind_of?(Symbol)
1689
+ [key, value]
1690
+ end
1691
+ # Useful default for OAuth and caching.
1692
+ # Only to be used for non-Array inputs. Arrays should preserve order.
1693
+ new_query_values.sort!
1694
+ end
1695
+
1696
+ # new_query_values have form [['key1', 'value1'], ['key2', 'value2']]
1697
+ buffer = "".dup
1698
+ new_query_values.each do |key, value|
1699
+ encoded_key = URI.encode_component(
1700
+ key, CharacterClasses::UNRESERVED
1701
+ )
1702
+ if value == nil
1703
+ buffer << "#{encoded_key}&"
1704
+ elsif value.kind_of?(Array)
1705
+ value.each do |sub_value|
1706
+ encoded_value = URI.encode_component(
1707
+ sub_value, CharacterClasses::UNRESERVED
1708
+ )
1709
+ buffer << "#{encoded_key}=#{encoded_value}&"
1710
+ end
1711
+ else
1712
+ encoded_value = URI.encode_component(
1713
+ value, CharacterClasses::UNRESERVED
1714
+ )
1715
+ buffer << "#{encoded_key}=#{encoded_value}&"
1716
+ end
1717
+ end
1718
+ self.query = buffer.chop
1719
+ end
1720
+
1721
+ ##
1722
+ # The HTTP request URI for this URI. This is the path and the
1723
+ # query string.
1724
+ #
1725
+ # @return [String] The request URI required for an HTTP request.
1726
+ def request_uri
1727
+ return nil if self.absolute? && self.scheme !~ /^https?$/i
1728
+ return (
1729
+ (!self.path.empty? ? self.path : SLASH) +
1730
+ (self.query ? "?#{self.query}" : EMPTY_STR)
1731
+ )
1732
+ end
1733
+
1734
+ ##
1735
+ # Sets the HTTP request URI for this URI.
1736
+ #
1737
+ # @param [String, #to_str] new_request_uri The new HTTP request URI.
1738
+ def request_uri=(new_request_uri)
1739
+ if !new_request_uri.respond_to?(:to_str)
1740
+ raise TypeError, "Can't convert #{new_request_uri.class} into String."
1741
+ end
1742
+ if self.absolute? && self.scheme !~ /^https?$/i
1743
+ raise InvalidURIError,
1744
+ "Cannot set an HTTP request URI for a non-HTTP URI."
1745
+ end
1746
+ new_request_uri = new_request_uri.to_str
1747
+ path_component = new_request_uri[/^([^\?]*)\?(?:.*)$/, 1]
1748
+ query_component = new_request_uri[/^(?:[^\?]*)\?(.*)$/, 1]
1749
+ path_component = path_component.to_s
1750
+ path_component = (!path_component.empty? ? path_component : SLASH)
1751
+ self.path = path_component
1752
+ self.query = query_component
1753
+
1754
+ # Reset dependent values
1755
+ remove_composite_values
1756
+ end
1757
+
1758
+ ##
1759
+ # The fragment component for this URI.
1760
+ #
1761
+ # @return [String] The fragment component.
1762
+ def fragment
1763
+ return defined?(@fragment) ? @fragment : nil
1764
+ end
1765
+
1766
+ ##
1767
+ # The fragment component for this URI, normalized.
1768
+ #
1769
+ # @return [String] The fragment component, normalized.
1770
+ def normalized_fragment
1771
+ return nil unless self.fragment
1772
+ return @normalized_fragment if defined?(@normalized_fragment)
1773
+ @normalized_fragment ||= begin
1774
+ component = Addressable::URI.normalize_component(
1775
+ self.fragment,
1776
+ Addressable::URI::CharacterClasses::FRAGMENT
1777
+ )
1778
+ component == "" ? nil : component
1779
+ end
1780
+ # All normalized values should be UTF-8
1781
+ if @normalized_fragment
1782
+ @normalized_fragment.force_encoding(Encoding::UTF_8)
1783
+ end
1784
+ @normalized_fragment
1785
+ end
1786
+
1787
+ ##
1788
+ # Sets the fragment component for this URI.
1789
+ #
1790
+ # @param [String, #to_str] new_fragment The new fragment component.
1791
+ def fragment=(new_fragment)
1792
+ if new_fragment && !new_fragment.respond_to?(:to_str)
1793
+ raise TypeError, "Can't convert #{new_fragment.class} into String."
1794
+ end
1795
+ @fragment = new_fragment ? new_fragment.to_str : nil
1796
+
1797
+ # Reset dependent values
1798
+ remove_instance_variable(:@normalized_fragment) if defined?(@normalized_fragment)
1799
+ remove_composite_values
1800
+
1801
+ # Ensure we haven't created an invalid URI
1802
+ validate()
1803
+ end
1804
+
1805
+ ##
1806
+ # Determines if the scheme indicates an IP-based protocol.
1807
+ #
1808
+ # @return [TrueClass, FalseClass]
1809
+ # <code>true</code> if the scheme indicates an IP-based protocol.
1810
+ # <code>false</code> otherwise.
1811
+ def ip_based?
1812
+ if self.scheme
1813
+ return URI.ip_based_schemes.include?(
1814
+ self.scheme.strip.downcase)
1815
+ end
1816
+ return false
1817
+ end
1818
+
1819
+ ##
1820
+ # Determines if the URI is relative.
1821
+ #
1822
+ # @return [TrueClass, FalseClass]
1823
+ # <code>true</code> if the URI is relative. <code>false</code>
1824
+ # otherwise.
1825
+ def relative?
1826
+ return self.scheme.nil?
1827
+ end
1828
+
1829
+ ##
1830
+ # Determines if the URI is absolute.
1831
+ #
1832
+ # @return [TrueClass, FalseClass]
1833
+ # <code>true</code> if the URI is absolute. <code>false</code>
1834
+ # otherwise.
1835
+ def absolute?
1836
+ return !relative?
1837
+ end
1838
+
1839
+ ##
1840
+ # Joins two URIs together.
1841
+ #
1842
+ # @param [String, Addressable::URI, #to_str] The URI to join with.
1843
+ #
1844
+ # @return [Addressable::URI] The joined URI.
1845
+ def join(uri)
1846
+ if !uri.respond_to?(:to_str)
1847
+ raise TypeError, "Can't convert #{uri.class} into String."
1848
+ end
1849
+ if !uri.kind_of?(URI)
1850
+ # Otherwise, convert to a String, then parse.
1851
+ uri = URI.parse(uri.to_str)
1852
+ end
1853
+ if uri.to_s.empty?
1854
+ return self.dup
1855
+ end
1856
+
1857
+ joined_scheme = nil
1858
+ joined_user = nil
1859
+ joined_password = nil
1860
+ joined_host = nil
1861
+ joined_port = nil
1862
+ joined_path = nil
1863
+ joined_query = nil
1864
+ joined_fragment = nil
1865
+
1866
+ # Section 5.2.2 of RFC 3986
1867
+ if uri.scheme != nil
1868
+ joined_scheme = uri.scheme
1869
+ joined_user = uri.user
1870
+ joined_password = uri.password
1871
+ joined_host = uri.host
1872
+ joined_port = uri.port
1873
+ joined_path = URI.normalize_path(uri.path)
1874
+ joined_query = uri.query
1875
+ else
1876
+ if uri.authority != nil
1877
+ joined_user = uri.user
1878
+ joined_password = uri.password
1879
+ joined_host = uri.host
1880
+ joined_port = uri.port
1881
+ joined_path = URI.normalize_path(uri.path)
1882
+ joined_query = uri.query
1883
+ else
1884
+ if uri.path == nil || uri.path.empty?
1885
+ joined_path = self.path
1886
+ if uri.query != nil
1887
+ joined_query = uri.query
1888
+ else
1889
+ joined_query = self.query
1890
+ end
1891
+ else
1892
+ if uri.path[0..0] == SLASH
1893
+ joined_path = URI.normalize_path(uri.path)
1894
+ else
1895
+ base_path = self.path.dup
1896
+ base_path = EMPTY_STR if base_path == nil
1897
+ base_path = URI.normalize_path(base_path)
1898
+
1899
+ # Section 5.2.3 of RFC 3986
1900
+ #
1901
+ # Removes the right-most path segment from the base path.
1902
+ if base_path =~ /\//
1903
+ base_path.gsub!(/\/[^\/]+$/, SLASH)
1904
+ else
1905
+ base_path = EMPTY_STR
1906
+ end
1907
+
1908
+ # If the base path is empty and an authority segment has been
1909
+ # defined, use a base path of SLASH
1910
+ if base_path.empty? && self.authority != nil
1911
+ base_path = SLASH
1912
+ end
1913
+
1914
+ joined_path = URI.normalize_path(base_path + uri.path)
1915
+ end
1916
+ joined_query = uri.query
1917
+ end
1918
+ joined_user = self.user
1919
+ joined_password = self.password
1920
+ joined_host = self.host
1921
+ joined_port = self.port
1922
+ end
1923
+ joined_scheme = self.scheme
1924
+ end
1925
+ joined_fragment = uri.fragment
1926
+
1927
+ return self.class.new(
1928
+ :scheme => joined_scheme,
1929
+ :user => joined_user,
1930
+ :password => joined_password,
1931
+ :host => joined_host,
1932
+ :port => joined_port,
1933
+ :path => joined_path,
1934
+ :query => joined_query,
1935
+ :fragment => joined_fragment
1936
+ )
1937
+ end
1938
+ alias_method :+, :join
1939
+
1940
+ ##
1941
+ # Destructive form of <code>join</code>.
1942
+ #
1943
+ # @param [String, Addressable::URI, #to_str] The URI to join with.
1944
+ #
1945
+ # @return [Addressable::URI] The joined URI.
1946
+ #
1947
+ # @see Addressable::URI#join
1948
+ def join!(uri)
1949
+ replace_self(self.join(uri))
1950
+ end
1951
+
1952
+ ##
1953
+ # Merges a URI with a <code>Hash</code> of components.
1954
+ # This method has different behavior from <code>join</code>. Any
1955
+ # components present in the <code>hash</code> parameter will override the
1956
+ # original components. The path component is not treated specially.
1957
+ #
1958
+ # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
1959
+ #
1960
+ # @return [Addressable::URI] The merged URI.
1961
+ #
1962
+ # @see Hash#merge
1963
+ def merge(hash)
1964
+ if !hash.respond_to?(:to_hash)
1965
+ raise TypeError, "Can't convert #{hash.class} into Hash."
1966
+ end
1967
+ hash = hash.to_hash
1968
+
1969
+ if hash.has_key?(:authority)
1970
+ if (hash.keys & [:userinfo, :user, :password, :host, :port]).any?
1971
+ raise ArgumentError,
1972
+ "Cannot specify both an authority and any of the components " +
1973
+ "within the authority."
1974
+ end
1975
+ end
1976
+ if hash.has_key?(:userinfo)
1977
+ if (hash.keys & [:user, :password]).any?
1978
+ raise ArgumentError,
1979
+ "Cannot specify both a userinfo and either the user or password."
1980
+ end
1981
+ end
1982
+
1983
+ uri = self.class.new
1984
+ uri.defer_validation do
1985
+ # Bunch of crazy logic required because of the composite components
1986
+ # like userinfo and authority.
1987
+ uri.scheme =
1988
+ hash.has_key?(:scheme) ? hash[:scheme] : self.scheme
1989
+ if hash.has_key?(:authority)
1990
+ uri.authority =
1991
+ hash.has_key?(:authority) ? hash[:authority] : self.authority
1992
+ end
1993
+ if hash.has_key?(:userinfo)
1994
+ uri.userinfo =
1995
+ hash.has_key?(:userinfo) ? hash[:userinfo] : self.userinfo
1996
+ end
1997
+ if !hash.has_key?(:userinfo) && !hash.has_key?(:authority)
1998
+ uri.user =
1999
+ hash.has_key?(:user) ? hash[:user] : self.user
2000
+ uri.password =
2001
+ hash.has_key?(:password) ? hash[:password] : self.password
2002
+ end
2003
+ if !hash.has_key?(:authority)
2004
+ uri.host =
2005
+ hash.has_key?(:host) ? hash[:host] : self.host
2006
+ uri.port =
2007
+ hash.has_key?(:port) ? hash[:port] : self.port
2008
+ end
2009
+ uri.path =
2010
+ hash.has_key?(:path) ? hash[:path] : self.path
2011
+ uri.query =
2012
+ hash.has_key?(:query) ? hash[:query] : self.query
2013
+ uri.fragment =
2014
+ hash.has_key?(:fragment) ? hash[:fragment] : self.fragment
2015
+ end
2016
+
2017
+ return uri
2018
+ end
2019
+
2020
+ ##
2021
+ # Destructive form of <code>merge</code>.
2022
+ #
2023
+ # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2024
+ #
2025
+ # @return [Addressable::URI] The merged URI.
2026
+ #
2027
+ # @see Addressable::URI#merge
2028
+ def merge!(uri)
2029
+ replace_self(self.merge(uri))
2030
+ end
2031
+
2032
+ ##
2033
+ # Returns the shortest normalized relative form of this URI that uses the
2034
+ # supplied URI as a base for resolution. Returns an absolute URI if
2035
+ # necessary. This is effectively the opposite of <code>route_to</code>.
2036
+ #
2037
+ # @param [String, Addressable::URI, #to_str] uri The URI to route from.
2038
+ #
2039
+ # @return [Addressable::URI]
2040
+ # The normalized relative URI that is equivalent to the original URI.
2041
+ def route_from(uri)
2042
+ uri = URI.parse(uri).normalize
2043
+ normalized_self = self.normalize
2044
+ if normalized_self.relative?
2045
+ raise ArgumentError, "Expected absolute URI, got: #{self.to_s}"
2046
+ end
2047
+ if uri.relative?
2048
+ raise ArgumentError, "Expected absolute URI, got: #{uri.to_s}"
2049
+ end
2050
+ if normalized_self == uri
2051
+ return Addressable::URI.parse("##{normalized_self.fragment}")
2052
+ end
2053
+ components = normalized_self.to_hash
2054
+ if normalized_self.scheme == uri.scheme
2055
+ components[:scheme] = nil
2056
+ if normalized_self.authority == uri.authority
2057
+ components[:user] = nil
2058
+ components[:password] = nil
2059
+ components[:host] = nil
2060
+ components[:port] = nil
2061
+ if normalized_self.path == uri.path
2062
+ components[:path] = nil
2063
+ if normalized_self.query == uri.query
2064
+ components[:query] = nil
2065
+ end
2066
+ else
2067
+ if uri.path != SLASH and components[:path]
2068
+ self_splitted_path = split_path(components[:path])
2069
+ uri_splitted_path = split_path(uri.path)
2070
+ self_dir = self_splitted_path.shift
2071
+ uri_dir = uri_splitted_path.shift
2072
+ while !self_splitted_path.empty? && !uri_splitted_path.empty? and self_dir == uri_dir
2073
+ self_dir = self_splitted_path.shift
2074
+ uri_dir = uri_splitted_path.shift
2075
+ end
2076
+ components[:path] = (uri_splitted_path.fill('..') + [self_dir] + self_splitted_path).join(SLASH)
2077
+ end
2078
+ end
2079
+ end
2080
+ end
2081
+ # Avoid network-path references.
2082
+ if components[:host] != nil
2083
+ components[:scheme] = normalized_self.scheme
2084
+ end
2085
+ return Addressable::URI.new(
2086
+ :scheme => components[:scheme],
2087
+ :user => components[:user],
2088
+ :password => components[:password],
2089
+ :host => components[:host],
2090
+ :port => components[:port],
2091
+ :path => components[:path],
2092
+ :query => components[:query],
2093
+ :fragment => components[:fragment]
2094
+ )
2095
+ end
2096
+
2097
+ ##
2098
+ # Returns the shortest normalized relative form of the supplied URI that
2099
+ # uses this URI as a base for resolution. Returns an absolute URI if
2100
+ # necessary. This is effectively the opposite of <code>route_from</code>.
2101
+ #
2102
+ # @param [String, Addressable::URI, #to_str] uri The URI to route to.
2103
+ #
2104
+ # @return [Addressable::URI]
2105
+ # The normalized relative URI that is equivalent to the supplied URI.
2106
+ def route_to(uri)
2107
+ return URI.parse(uri).route_from(self)
2108
+ end
2109
+
2110
+ ##
2111
+ # Returns a normalized URI object.
2112
+ #
2113
+ # NOTE: This method does not attempt to fully conform to specifications.
2114
+ # It exists largely to correct other people's failures to read the
2115
+ # specifications, and also to deal with caching issues since several
2116
+ # different URIs may represent the same resource and should not be
2117
+ # cached multiple times.
2118
+ #
2119
+ # @return [Addressable::URI] The normalized URI.
2120
+ def normalize
2121
+ # This is a special exception for the frequently misused feed
2122
+ # URI scheme.
2123
+ if normalized_scheme == "feed"
2124
+ if self.to_s =~ /^feed:\/*http:\/*/
2125
+ return URI.parse(
2126
+ self.to_s[/^feed:\/*(http:\/*.*)/, 1]
2127
+ ).normalize
2128
+ end
2129
+ end
2130
+
2131
+ return self.class.new(
2132
+ :scheme => normalized_scheme,
2133
+ :authority => normalized_authority,
2134
+ :path => normalized_path,
2135
+ :query => normalized_query,
2136
+ :fragment => normalized_fragment
2137
+ )
2138
+ end
2139
+
2140
+ ##
2141
+ # Destructively normalizes this URI object.
2142
+ #
2143
+ # @return [Addressable::URI] The normalized URI.
2144
+ #
2145
+ # @see Addressable::URI#normalize
2146
+ def normalize!
2147
+ replace_self(self.normalize)
2148
+ end
2149
+
2150
+ ##
2151
+ # Creates a URI suitable for display to users. If semantic attacks are
2152
+ # likely, the application should try to detect these and warn the user.
2153
+ # See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
2154
+ # section 7.6 for more information.
2155
+ #
2156
+ # @return [Addressable::URI] A URI suitable for display purposes.
2157
+ def display_uri
2158
+ display_uri = self.normalize
2159
+ display_uri.host = ::Addressable::IDNA.to_unicode(display_uri.host)
2160
+ return display_uri
2161
+ end
2162
+
2163
+ ##
2164
+ # Returns <code>true</code> if the URI objects are equal. This method
2165
+ # normalizes both URIs before doing the comparison, and allows comparison
2166
+ # against <code>Strings</code>.
2167
+ #
2168
+ # @param [Object] uri The URI to compare.
2169
+ #
2170
+ # @return [TrueClass, FalseClass]
2171
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2172
+ # otherwise.
2173
+ def ===(uri)
2174
+ if uri.respond_to?(:normalize)
2175
+ uri_string = uri.normalize.to_s
2176
+ else
2177
+ begin
2178
+ uri_string = ::Addressable::URI.parse(uri).normalize.to_s
2179
+ rescue InvalidURIError, TypeError
2180
+ return false
2181
+ end
2182
+ end
2183
+ return self.normalize.to_s == uri_string
2184
+ end
2185
+
2186
+ ##
2187
+ # Returns <code>true</code> if the URI objects are equal. This method
2188
+ # normalizes both URIs before doing the comparison.
2189
+ #
2190
+ # @param [Object] uri The URI to compare.
2191
+ #
2192
+ # @return [TrueClass, FalseClass]
2193
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2194
+ # otherwise.
2195
+ def ==(uri)
2196
+ return false unless uri.kind_of?(URI)
2197
+ return self.normalize.to_s == uri.normalize.to_s
2198
+ end
2199
+
2200
+ ##
2201
+ # Returns <code>true</code> if the URI objects are equal. This method
2202
+ # does NOT normalize either URI before doing the comparison.
2203
+ #
2204
+ # @param [Object] uri The URI to compare.
2205
+ #
2206
+ # @return [TrueClass, FalseClass]
2207
+ # <code>true</code> if the URIs are equivalent, <code>false</code>
2208
+ # otherwise.
2209
+ def eql?(uri)
2210
+ return false unless uri.kind_of?(URI)
2211
+ return self.to_s == uri.to_s
2212
+ end
2213
+
2214
+ ##
2215
+ # A hash value that will make a URI equivalent to its normalized
2216
+ # form.
2217
+ #
2218
+ # @return [Integer] A hash of the URI.
2219
+ def hash
2220
+ @hash ||= self.to_s.hash * -1
2221
+ end
2222
+
2223
+ ##
2224
+ # Clones the URI object.
2225
+ #
2226
+ # @return [Addressable::URI] The cloned URI.
2227
+ def dup
2228
+ duplicated_uri = self.class.new(
2229
+ :scheme => self.scheme ? self.scheme.dup : nil,
2230
+ :user => self.user ? self.user.dup : nil,
2231
+ :password => self.password ? self.password.dup : nil,
2232
+ :host => self.host ? self.host.dup : nil,
2233
+ :port => self.port,
2234
+ :path => self.path ? self.path.dup : nil,
2235
+ :query => self.query ? self.query.dup : nil,
2236
+ :fragment => self.fragment ? self.fragment.dup : nil
2237
+ )
2238
+ return duplicated_uri
2239
+ end
2240
+
2241
+ ##
2242
+ # Omits components from a URI.
2243
+ #
2244
+ # @param [Symbol] *components The components to be omitted.
2245
+ #
2246
+ # @return [Addressable::URI] The URI with components omitted.
2247
+ #
2248
+ # @example
2249
+ # uri = Addressable::URI.parse("http://example.com/path?query")
2250
+ # #=> #<Addressable::URI:0xcc5e7a URI:http://example.com/path?query>
2251
+ # uri.omit(:scheme, :authority)
2252
+ # #=> #<Addressable::URI:0xcc4d86 URI:/path?query>
2253
+ def omit(*components)
2254
+ invalid_components = components - [
2255
+ :scheme, :user, :password, :userinfo, :host, :port, :authority,
2256
+ :path, :query, :fragment
2257
+ ]
2258
+ unless invalid_components.empty?
2259
+ raise ArgumentError,
2260
+ "Invalid component names: #{invalid_components.inspect}."
2261
+ end
2262
+ duplicated_uri = self.dup
2263
+ duplicated_uri.defer_validation do
2264
+ components.each do |component|
2265
+ duplicated_uri.send((component.to_s + "=").to_sym, nil)
2266
+ end
2267
+ duplicated_uri.user = duplicated_uri.normalized_user
2268
+ end
2269
+ duplicated_uri
2270
+ end
2271
+
2272
+ ##
2273
+ # Destructive form of omit.
2274
+ #
2275
+ # @param [Symbol] *components The components to be omitted.
2276
+ #
2277
+ # @return [Addressable::URI] The URI with components omitted.
2278
+ #
2279
+ # @see Addressable::URI#omit
2280
+ def omit!(*components)
2281
+ replace_self(self.omit(*components))
2282
+ end
2283
+
2284
+ ##
2285
+ # Determines if the URI is an empty string.
2286
+ #
2287
+ # @return [TrueClass, FalseClass]
2288
+ # Returns <code>true</code> if empty, <code>false</code> otherwise.
2289
+ def empty?
2290
+ return self.to_s.empty?
2291
+ end
2292
+
2293
+ ##
2294
+ # Converts the URI to a <code>String</code>.
2295
+ #
2296
+ # @return [String] The URI's <code>String</code> representation.
2297
+ def to_s
2298
+ if self.scheme == nil && self.path != nil && !self.path.empty? &&
2299
+ self.path =~ NORMPATH
2300
+ raise InvalidURIError,
2301
+ "Cannot assemble URI string with ambiguous path: '#{self.path}'"
2302
+ end
2303
+ @uri_string ||= begin
2304
+ uri_string = String.new
2305
+ uri_string << "#{self.scheme}:" if self.scheme != nil
2306
+ uri_string << "//#{self.authority}" if self.authority != nil
2307
+ uri_string << self.path.to_s
2308
+ uri_string << "?#{self.query}" if self.query != nil
2309
+ uri_string << "##{self.fragment}" if self.fragment != nil
2310
+ uri_string.force_encoding(Encoding::UTF_8)
2311
+ uri_string
2312
+ end
2313
+ end
2314
+
2315
+ ##
2316
+ # URI's are glorified <code>Strings</code>. Allow implicit conversion.
2317
+ alias_method :to_str, :to_s
2318
+
2319
+ ##
2320
+ # Returns a Hash of the URI components.
2321
+ #
2322
+ # @return [Hash] The URI as a <code>Hash</code> of components.
2323
+ def to_hash
2324
+ return {
2325
+ :scheme => self.scheme,
2326
+ :user => self.user,
2327
+ :password => self.password,
2328
+ :host => self.host,
2329
+ :port => self.port,
2330
+ :path => self.path,
2331
+ :query => self.query,
2332
+ :fragment => self.fragment
2333
+ }
2334
+ end
2335
+
2336
+ ##
2337
+ # Returns a <code>String</code> representation of the URI object's state.
2338
+ #
2339
+ # @return [String] The URI object's state, as a <code>String</code>.
2340
+ def inspect
2341
+ sprintf("#<%s:%#0x URI:%s>", URI.to_s, self.object_id, self.to_s)
2342
+ end
2343
+
2344
+ ##
2345
+ # This method allows you to make several changes to a URI simultaneously,
2346
+ # which separately would cause validation errors, but in conjunction,
2347
+ # are valid. The URI will be revalidated as soon as the entire block has
2348
+ # been executed.
2349
+ #
2350
+ # @param [Proc] block
2351
+ # A set of operations to perform on a given URI.
2352
+ def defer_validation(&block)
2353
+ raise LocalJumpError, "No block given." unless block
2354
+ @validation_deferred = true
2355
+ block.call()
2356
+ @validation_deferred = false
2357
+ validate
2358
+ return nil
2359
+ end
2360
+
2361
+ protected
2362
+ SELF_REF = '.'
2363
+ PARENT = '..'
2364
+
2365
+ RULE_2A = /\/\.\/|\/\.$/
2366
+ RULE_2B_2C = /\/([^\/]*)\/\.\.\/|\/([^\/]*)\/\.\.$/
2367
+ RULE_2D = /^\.\.?\/?/
2368
+ RULE_PREFIXED_PARENT = /^\/\.\.?\/|^(\/\.\.?)+\/?$/
2369
+
2370
+ ##
2371
+ # Resolves paths to their simplest form.
2372
+ #
2373
+ # @param [String] path The path to normalize.
2374
+ #
2375
+ # @return [String] The normalized path.
2376
+ def self.normalize_path(path)
2377
+ # Section 5.2.4 of RFC 3986
2378
+
2379
+ return nil if path.nil?
2380
+ normalized_path = path.dup
2381
+ begin
2382
+ mod = nil
2383
+ mod ||= normalized_path.gsub!(RULE_2A, SLASH)
2384
+
2385
+ pair = normalized_path.match(RULE_2B_2C)
2386
+ parent, current = pair[1], pair[2] if pair
2387
+ if pair && ((parent != SELF_REF && parent != PARENT) ||
2388
+ (current != SELF_REF && current != PARENT))
2389
+ mod ||= normalized_path.gsub!(
2390
+ Regexp.new(
2391
+ "/#{Regexp.escape(parent.to_s)}/\\.\\./|" +
2392
+ "(/#{Regexp.escape(current.to_s)}/\\.\\.$)"
2393
+ ), SLASH
2394
+ )
2395
+ end
2396
+
2397
+ mod ||= normalized_path.gsub!(RULE_2D, EMPTY_STR)
2398
+ # Non-standard, removes prefixed dotted segments from path.
2399
+ mod ||= normalized_path.gsub!(RULE_PREFIXED_PARENT, SLASH)
2400
+ end until mod.nil?
2401
+
2402
+ return normalized_path
2403
+ end
2404
+
2405
+ ##
2406
+ # Ensures that the URI is valid.
2407
+ def validate
2408
+ return if !!@validation_deferred
2409
+ if self.scheme != nil && self.ip_based? &&
2410
+ (self.host == nil || self.host.empty?) &&
2411
+ (self.path == nil || self.path.empty?)
2412
+ raise InvalidURIError,
2413
+ "Absolute URI missing hierarchical segment: '#{self.to_s}'"
2414
+ end
2415
+ if self.host == nil
2416
+ if self.port != nil ||
2417
+ self.user != nil ||
2418
+ self.password != nil
2419
+ raise InvalidURIError, "Hostname not supplied: '#{self.to_s}'"
2420
+ end
2421
+ end
2422
+ if self.path != nil && !self.path.empty? && self.path[0..0] != SLASH &&
2423
+ self.authority != nil
2424
+ raise InvalidURIError,
2425
+ "Cannot have a relative path with an authority set: '#{self.to_s}'"
2426
+ end
2427
+ if self.path != nil && !self.path.empty? &&
2428
+ self.path[0..1] == SLASH + SLASH && self.authority == nil
2429
+ raise InvalidURIError,
2430
+ "Cannot have a path with two leading slashes " +
2431
+ "without an authority set: '#{self.to_s}'"
2432
+ end
2433
+ unreserved = CharacterClasses::UNRESERVED
2434
+ sub_delims = CharacterClasses::SUB_DELIMS
2435
+ if !self.host.nil? && (self.host =~ /[<>{}\/\\\?\#\@"[[:space:]]]/ ||
2436
+ (self.host[/^\[(.*)\]$/, 1] != nil && self.host[/^\[(.*)\]$/, 1] !~
2437
+ Regexp.new("^[#{unreserved}#{sub_delims}:]*$")))
2438
+ raise InvalidURIError, "Invalid character in host: '#{self.host.to_s}'"
2439
+ end
2440
+ return nil
2441
+ end
2442
+
2443
+ ##
2444
+ # Replaces the internal state of self with the specified URI's state.
2445
+ # Used in destructive operations to avoid massive code repetition.
2446
+ #
2447
+ # @param [Addressable::URI] uri The URI to replace <code>self</code> with.
2448
+ #
2449
+ # @return [Addressable::URI] <code>self</code>.
2450
+ def replace_self(uri)
2451
+ # Reset dependent values
2452
+ instance_variables.each do |var|
2453
+ if instance_variable_defined?(var) && var != :@validation_deferred
2454
+ remove_instance_variable(var)
2455
+ end
2456
+ end
2457
+
2458
+ @scheme = uri.scheme
2459
+ @user = uri.user
2460
+ @password = uri.password
2461
+ @host = uri.host
2462
+ @port = uri.port
2463
+ @path = uri.path
2464
+ @query = uri.query
2465
+ @fragment = uri.fragment
2466
+ return self
2467
+ end
2468
+
2469
+ ##
2470
+ # Splits path string with "/" (slash).
2471
+ # It is considered that there is empty string after last slash when
2472
+ # path ends with slash.
2473
+ #
2474
+ # @param [String] path The path to split.
2475
+ #
2476
+ # @return [Array<String>] An array of parts of path.
2477
+ def split_path(path)
2478
+ splitted = path.split(SLASH)
2479
+ splitted << EMPTY_STR if path.end_with? SLASH
2480
+ splitted
2481
+ end
2482
+
2483
+ ##
2484
+ # Resets composite values for the entire URI
2485
+ #
2486
+ # @api private
2487
+ def remove_composite_values
2488
+ remove_instance_variable(:@uri_string) if defined?(@uri_string)
2489
+ remove_instance_variable(:@hash) if defined?(@hash)
2490
+ end
2491
+ end
2492
+ end