tdiary 5.0.13 → 5.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4151) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +7 -0
  3. data/Gemfile.lock +18 -22
  4. data/doc/INSTALL-paas.md +1 -85
  5. data/lib/tdiary/plugin.rb +30 -30
  6. data/lib/tdiary/plugin/00default.rb +1 -1
  7. data/lib/tdiary/version.rb +1 -1
  8. data/misc/paas/heroku/Gemfile.local +1 -1
  9. data/misc/paas/heroku/Gemfile.lock +45 -49
  10. data/misc/plugin/amazon.rb +1 -1
  11. data/misc/plugin/amp.rb +4 -4
  12. data/public/index.rdf +3 -15
  13. metadata +2 -4140
  14. data/tdiary.conf +0 -243
  15. data/vendor/bundle/bin/coveralls +0 -27
  16. data/vendor/bundle/bin/emot +0 -27
  17. data/vendor/bundle/bin/hikidoc +0 -27
  18. data/vendor/bundle/bin/htmldiff +0 -29
  19. data/vendor/bundle/bin/jasmine +0 -27
  20. data/vendor/bundle/bin/launchy +0 -27
  21. data/vendor/bundle/bin/ldiff +0 -29
  22. data/vendor/bundle/bin/nokogiri +0 -27
  23. data/vendor/bundle/bin/pit +0 -27
  24. data/vendor/bundle/bin/racksh +0 -27
  25. data/vendor/bundle/bin/rackup +0 -27
  26. data/vendor/bundle/bin/rake +0 -27
  27. data/vendor/bundle/bin/redcarpet +0 -27
  28. data/vendor/bundle/bin/rspec +0 -27
  29. data/vendor/bundle/bin/sequel +0 -27
  30. data/vendor/bundle/bin/term_cdiff +0 -27
  31. data/vendor/bundle/bin/term_colortab +0 -27
  32. data/vendor/bundle/bin/term_decolor +0 -27
  33. data/vendor/bundle/bin/term_display +0 -27
  34. data/vendor/bundle/bin/term_mandel +0 -27
  35. data/vendor/bundle/bin/term_snow +0 -27
  36. data/vendor/bundle/bin/thor +0 -27
  37. data/vendor/bundle/cache/addressable-2.5.2.gem +0 -0
  38. data/vendor/bundle/cache/capybara-3.15.0.gem +0 -0
  39. data/vendor/bundle/cache/childprocess-0.9.0.gem +0 -0
  40. data/vendor/bundle/cache/coveralls-0.8.22.gem +0 -0
  41. data/vendor/bundle/cache/diff-lcs-1.3.gem +0 -0
  42. data/vendor/bundle/cache/docile-1.3.1.gem +0 -0
  43. data/vendor/bundle/cache/emot-0.0.4.gem +0 -0
  44. data/vendor/bundle/cache/faraday-0.15.4.gem +0 -0
  45. data/vendor/bundle/cache/fastimage-2.1.5.gem +0 -0
  46. data/vendor/bundle/cache/ffi-1.10.0.gem +0 -0
  47. data/vendor/bundle/cache/hikidoc-0.1.0.gem +0 -0
  48. data/vendor/bundle/cache/jasmine-2.99.0.gem +0 -0
  49. data/vendor/bundle/cache/jasmine-core-2.99.2.gem +0 -0
  50. data/vendor/bundle/cache/json-2.2.0.gem +0 -0
  51. data/vendor/bundle/cache/launchy-2.4.3.gem +0 -0
  52. data/vendor/bundle/cache/mail-2.7.1.gem +0 -0
  53. data/vendor/bundle/cache/mime-types-3.2.2.gem +0 -0
  54. data/vendor/bundle/cache/mime-types-data-3.2018.0812.gem +0 -0
  55. data/vendor/bundle/cache/mini_mime-1.0.1.gem +0 -0
  56. data/vendor/bundle/cache/mini_portile2-2.4.0.gem +0 -0
  57. data/vendor/bundle/cache/multipart-post-2.0.0.gem +0 -0
  58. data/vendor/bundle/cache/nokogiri-1.10.2.gem +0 -0
  59. data/vendor/bundle/cache/octokit-4.13.0.gem +0 -0
  60. data/vendor/bundle/cache/phantomjs-2.1.1.0.gem +0 -0
  61. data/vendor/bundle/cache/pit-0.0.7.gem +0 -0
  62. data/vendor/bundle/cache/power_assert-1.1.4.gem +0 -0
  63. data/vendor/bundle/cache/public_suffix-3.0.3.gem +0 -0
  64. data/vendor/bundle/cache/rack-2.0.6.gem +0 -0
  65. data/vendor/bundle/cache/rack-test-1.1.0.gem +0 -0
  66. data/vendor/bundle/cache/racksh-1.0.0.gem +0 -0
  67. data/vendor/bundle/cache/rake-12.3.2.gem +0 -0
  68. data/vendor/bundle/cache/redcarpet-3.4.0.gem +0 -0
  69. data/vendor/bundle/cache/regexp_parser-1.3.0.gem +0 -0
  70. data/vendor/bundle/cache/rspec-3.8.0.gem +0 -0
  71. data/vendor/bundle/cache/rspec-core-3.8.0.gem +0 -0
  72. data/vendor/bundle/cache/rspec-expectations-3.8.2.gem +0 -0
  73. data/vendor/bundle/cache/rspec-mocks-3.8.0.gem +0 -0
  74. data/vendor/bundle/cache/rspec-support-3.8.0.gem +0 -0
  75. data/vendor/bundle/cache/rubyzip-1.2.2.gem +0 -0
  76. data/vendor/bundle/cache/sawyer-0.8.1.gem +0 -0
  77. data/vendor/bundle/cache/selenium-webdriver-3.141.0.gem +0 -0
  78. data/vendor/bundle/cache/sequel-5.18.0.gem +0 -0
  79. data/vendor/bundle/cache/simplecov-0.16.1.gem +0 -0
  80. data/vendor/bundle/cache/simplecov-html-0.10.2.gem +0 -0
  81. data/vendor/bundle/cache/sqlite3-1.4.0.gem +0 -0
  82. data/vendor/bundle/cache/term-ansicolor-1.7.1.gem +0 -0
  83. data/vendor/bundle/cache/test-unit-3.3.1.gem +0 -0
  84. data/vendor/bundle/cache/thor-0.19.4.gem +0 -0
  85. data/vendor/bundle/cache/tins-1.20.2.gem +0 -0
  86. data/vendor/bundle/cache/xpath-3.2.0.gem +0 -0
  87. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/ffi-1.10.0/ffi_c.so +0 -0
  88. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/ffi-1.10.0/gem.build_complete +0 -0
  89. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/ffi-1.10.0/gem_make.out +0 -50
  90. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/ffi-1.10.0/mkmf.log +0 -479
  91. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/json-2.2.0/gem.build_complete +0 -0
  92. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/json-2.2.0/gem_make.out +0 -13
  93. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/json-2.2.0/json/ext/generator.so +0 -0
  94. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/json-2.2.0/json/ext/parser.so +0 -0
  95. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/json-2.2.0/mkmf.log +0 -68
  96. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/nokogiri-1.10.2/gem.build_complete +0 -0
  97. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/nokogiri-1.10.2/gem_make.out +0 -449
  98. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/nokogiri-1.10.2/mkmf.log +0 -568
  99. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/nokogiri-1.10.2/nokogiri/nokogiri.so +0 -0
  100. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/redcarpet-3.4.0/gem.build_complete +0 -0
  101. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/redcarpet-3.4.0/gem_make.out +0 -111
  102. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/redcarpet-3.4.0/redcarpet.so +0 -0
  103. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.0/gem.build_complete +0 -0
  104. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.0/gem_make.out +0 -80
  105. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.0/mkmf.log +0 -786
  106. data/vendor/bundle/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.0/sqlite3/sqlite3_native.so +0 -0
  107. data/vendor/bundle/gems/addressable-2.5.2/CHANGELOG.md +0 -216
  108. data/vendor/bundle/gems/addressable-2.5.2/Gemfile +0 -32
  109. data/vendor/bundle/gems/addressable-2.5.2/LICENSE.txt +0 -202
  110. data/vendor/bundle/gems/addressable-2.5.2/README.md +0 -121
  111. data/vendor/bundle/gems/addressable-2.5.2/Rakefile +0 -32
  112. data/vendor/bundle/gems/addressable-2.5.2/data/unicode.data +0 -0
  113. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable.rb +0 -2
  114. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable/idna.rb +0 -25
  115. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable/idna/native.rb +0 -59
  116. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable/idna/pure.rb +0 -677
  117. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable/template.rb +0 -1065
  118. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable/uri.rb +0 -2492
  119. data/vendor/bundle/gems/addressable-2.5.2/lib/addressable/version.rb +0 -30
  120. data/vendor/bundle/gems/addressable-2.5.2/spec/addressable/idna_spec.rb +0 -298
  121. data/vendor/bundle/gems/addressable-2.5.2/spec/addressable/net_http_compat_spec.rb +0 -28
  122. data/vendor/bundle/gems/addressable-2.5.2/spec/addressable/rack_mount_compat_spec.rb +0 -104
  123. data/vendor/bundle/gems/addressable-2.5.2/spec/addressable/security_spec.rb +0 -57
  124. data/vendor/bundle/gems/addressable-2.5.2/spec/addressable/template_spec.rb +0 -1419
  125. data/vendor/bundle/gems/addressable-2.5.2/spec/addressable/uri_spec.rb +0 -6468
  126. data/vendor/bundle/gems/addressable-2.5.2/spec/spec_helper.rb +0 -21
  127. data/vendor/bundle/gems/addressable-2.5.2/tasks/clobber.rake +0 -2
  128. data/vendor/bundle/gems/addressable-2.5.2/tasks/gem.rake +0 -91
  129. data/vendor/bundle/gems/addressable-2.5.2/tasks/git.rake +0 -45
  130. data/vendor/bundle/gems/addressable-2.5.2/tasks/metrics.rake +0 -22
  131. data/vendor/bundle/gems/addressable-2.5.2/tasks/rspec.rake +0 -21
  132. data/vendor/bundle/gems/addressable-2.5.2/tasks/yard.rake +0 -27
  133. data/vendor/bundle/gems/capybara-3.15.0/History.md +0 -1500
  134. data/vendor/bundle/gems/capybara-3.15.0/License.txt +0 -22
  135. data/vendor/bundle/gems/capybara-3.15.0/README.md +0 -1115
  136. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara.rb +0 -563
  137. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/config.rb +0 -91
  138. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/cucumber.rb +0 -27
  139. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/driver/base.rb +0 -170
  140. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/driver/node.rb +0 -127
  141. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/dsl.rb +0 -57
  142. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/helpers.rb +0 -106
  143. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/minitest.rb +0 -284
  144. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/minitest/spec.rb +0 -195
  145. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/actions.rb +0 -405
  146. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/base.rb +0 -143
  147. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/document.rb +0 -48
  148. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/document_matchers.rb +0 -67
  149. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/element.rb +0 -507
  150. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/finders.rb +0 -325
  151. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/matchers.rb +0 -779
  152. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/node/simple.rb +0 -203
  153. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/ancestor_query.rb +0 -29
  154. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/base_query.rb +0 -105
  155. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/current_path_query.rb +0 -51
  156. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/match_query.rb +0 -26
  157. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/selector_query.rb +0 -451
  158. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/sibling_query.rb +0 -25
  159. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/style_query.rb +0 -45
  160. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/text_query.rb +0 -104
  161. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/queries/title_query.rb +0 -39
  162. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rack_test/browser.rb +0 -135
  163. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rack_test/css_handlers.rb +0 -13
  164. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rack_test/driver.rb +0 -109
  165. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rack_test/errors.rb +0 -6
  166. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rack_test/form.rb +0 -127
  167. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rack_test/node.rb +0 -289
  168. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rails.rb +0 -16
  169. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/result.rb +0 -162
  170. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec.rb +0 -29
  171. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/features.rb +0 -23
  172. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matcher_proxies.rb +0 -80
  173. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers.rb +0 -164
  174. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/base.rb +0 -98
  175. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/become_closed.rb +0 -33
  176. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/compound.rb +0 -88
  177. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/have_current_path.rb +0 -29
  178. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/have_selector.rb +0 -69
  179. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/have_text.rb +0 -33
  180. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/have_title.rb +0 -29
  181. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/match_selector.rb +0 -27
  182. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/rspec/matchers/match_style.rb +0 -38
  183. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector.rb +0 -619
  184. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/builders/css_builder.rb +0 -80
  185. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/builders/xpath_builder.rb +0 -69
  186. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/css.rb +0 -100
  187. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/filter.rb +0 -5
  188. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/filter_set.rb +0 -120
  189. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/filters/base.rb +0 -68
  190. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/filters/expression_filter.rb +0 -22
  191. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/filters/locator_filter.rb +0 -19
  192. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/filters/node_filter.rb +0 -31
  193. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/regexp_disassembler.rb +0 -207
  194. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/selector.rb +0 -556
  195. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selector/xpath_extensions.rb +0 -9
  196. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/driver.rb +0 -421
  197. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/driver_specializations/chrome_driver.rb +0 -61
  198. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/driver_specializations/firefox_driver.rb +0 -50
  199. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb +0 -13
  200. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/driver_specializations/safari_driver.rb +0 -15
  201. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/extensions/find.rb +0 -88
  202. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/extensions/html5_drag.rb +0 -110
  203. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/extensions/scroll.rb +0 -78
  204. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/node.rb +0 -440
  205. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/nodes/chrome_node.rb +0 -36
  206. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/nodes/firefox_node.rb +0 -153
  207. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/nodes/safari_node.rb +0 -145
  208. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/selenium/patches/pause_duration_fix.rb +0 -9
  209. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/server.rb +0 -110
  210. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/server/animation_disabler.rb +0 -58
  211. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/server/checker.rb +0 -40
  212. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/server/middleware.rb +0 -59
  213. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/session.rb +0 -920
  214. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/session/config.rb +0 -124
  215. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/session/matchers.rb +0 -87
  216. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/fixtures/another_test_file.txt +0 -1
  217. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/fixtures/capybara.jpg +0 -3
  218. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/fixtures/no_extension +0 -1
  219. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/fixtures/test_file.txt +0 -1
  220. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/public/jquery-ui.js +0 -13
  221. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/public/jquery.js +0 -5
  222. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/public/test.js +0 -186
  223. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/accept_alert_spec.rb +0 -81
  224. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/accept_confirm_spec.rb +0 -32
  225. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/accept_prompt_spec.rb +0 -78
  226. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/all_spec.rb +0 -200
  227. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/ancestor_spec.rb +0 -83
  228. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +0 -140
  229. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/assert_current_path_spec.rb +0 -72
  230. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/assert_selector_spec.rb +0 -143
  231. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/assert_style_spec.rb +0 -26
  232. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/assert_text_spec.rb +0 -254
  233. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/assert_title_spec.rb +0 -93
  234. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/attach_file_spec.rb +0 -208
  235. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/body_spec.rb +0 -23
  236. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/check_spec.rb +0 -229
  237. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/choose_spec.rb +0 -115
  238. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/click_button_spec.rb +0 -474
  239. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/click_link_or_button_spec.rb +0 -129
  240. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/click_link_spec.rb +0 -218
  241. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/current_scope_spec.rb +0 -31
  242. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/current_url_spec.rb +0 -115
  243. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/dismiss_confirm_spec.rb +0 -36
  244. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/dismiss_prompt_spec.rb +0 -21
  245. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/element/assert_match_selector_spec.rb +0 -38
  246. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/element/match_css_spec.rb +0 -31
  247. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/element/match_xpath_spec.rb +0 -25
  248. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/element/matches_selector_spec.rb +0 -120
  249. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/evaluate_async_script_spec.rb +0 -23
  250. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/evaluate_script_spec.rb +0 -37
  251. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/execute_script_spec.rb +0 -28
  252. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/fill_in_spec.rb +0 -251
  253. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/find_button_spec.rb +0 -74
  254. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/find_by_id_spec.rb +0 -33
  255. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/find_field_spec.rb +0 -113
  256. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/find_link_spec.rb +0 -70
  257. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/find_spec.rb +0 -477
  258. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/first_spec.rb +0 -156
  259. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/frame/frame_title_spec.rb +0 -23
  260. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/frame/frame_url_spec.rb +0 -23
  261. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +0 -103
  262. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/frame/within_frame_spec.rb +0 -101
  263. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/go_back_spec.rb +0 -12
  264. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/go_forward_spec.rb +0 -14
  265. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_all_selectors_spec.rb +0 -69
  266. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_any_selectors_spec.rb +0 -25
  267. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_button_spec.rb +0 -69
  268. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_css_spec.rb +0 -338
  269. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_current_path_spec.rb +0 -136
  270. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_field_spec.rb +0 -331
  271. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_link_spec.rb +0 -39
  272. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_none_selectors_spec.rb +0 -78
  273. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_select_spec.rb +0 -282
  274. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_selector_spec.rb +0 -202
  275. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_table_spec.rb +0 -152
  276. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_text_spec.rb +0 -347
  277. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_title_spec.rb +0 -71
  278. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/has_xpath_spec.rb +0 -149
  279. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/headers_spec.rb +0 -8
  280. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/html_spec.rb +0 -47
  281. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/matches_style_spec.rb +0 -35
  282. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/node_spec.rb +0 -734
  283. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/node_wrapper_spec.rb +0 -39
  284. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/refresh_spec.rb +0 -33
  285. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/reset_session_spec.rb +0 -148
  286. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/response_code_spec.rb +0 -8
  287. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/save_and_open_page_spec.rb +0 -21
  288. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +0 -43
  289. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/save_page_spec.rb +0 -110
  290. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/save_screenshot_spec.rb +0 -55
  291. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/screenshot_spec.rb +0 -18
  292. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/scroll_spec.rb +0 -117
  293. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/select_spec.rb +0 -234
  294. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/selectors_spec.rb +0 -77
  295. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/sibling_spec.rb +0 -52
  296. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/source_spec.rb +0 -0
  297. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/text_spec.rb +0 -74
  298. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/title_spec.rb +0 -29
  299. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/uncheck_spec.rb +0 -100
  300. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/unselect_spec.rb +0 -116
  301. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/visit_spec.rb +0 -204
  302. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/become_closed_spec.rb +0 -89
  303. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/current_window_spec.rb +0 -28
  304. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/open_new_window_spec.rb +0 -31
  305. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/switch_to_window_spec.rb +0 -132
  306. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/window_opened_by_spec.rb +0 -99
  307. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/window_spec.rb +0 -202
  308. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/windows_spec.rb +0 -34
  309. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/window/within_window_spec.rb +0 -157
  310. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/session/within_spec.rb +0 -199
  311. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/spec_helper.rb +0 -130
  312. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/test_app.rb +0 -217
  313. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/buttons.erb +0 -5
  314. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/fieldsets.erb +0 -30
  315. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/form.erb +0 -665
  316. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/frame_child.erb +0 -17
  317. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/frame_one.erb +0 -9
  318. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/frame_parent.erb +0 -9
  319. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/frame_two.erb +0 -9
  320. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/header_links.erb +0 -8
  321. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/host_links.erb +0 -13
  322. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/initial_alert.erb +0 -10
  323. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/obscured.erb +0 -47
  324. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/path.erb +0 -13
  325. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/popup_one.erb +0 -9
  326. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/popup_two.erb +0 -9
  327. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/postback.erb +0 -14
  328. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/scroll.erb +0 -20
  329. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/tables.erb +0 -130
  330. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_animation.erb +0 -46
  331. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_base_tag.erb +0 -11
  332. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_count.erb +0 -8
  333. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_fixed_header_footer.erb +0 -17
  334. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_hover.erb +0 -24
  335. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_hover1.erb +0 -10
  336. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_html.erb +0 -182
  337. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_html5_svg.erb +0 -20
  338. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_html_entities.erb +0 -2
  339. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_js.erb +0 -160
  340. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_namespace.erb +0 -20
  341. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_scope.erb +0 -42
  342. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_scope_other.erb +0 -6
  343. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_simple_html.erb +0 -2
  344. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_slow_unload.erb +0 -17
  345. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_title.erb +0 -5
  346. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_unload_alert.erb +0 -14
  347. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/with_windows.erb +0 -54
  348. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/spec/views/within_frames.erb +0 -15
  349. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/version.rb +0 -5
  350. data/vendor/bundle/gems/capybara-3.15.0/lib/capybara/window.rb +0 -146
  351. data/vendor/bundle/gems/capybara-3.15.0/spec/basic_node_spec.rb +0 -154
  352. data/vendor/bundle/gems/capybara-3.15.0/spec/capybara_spec.rb +0 -112
  353. data/vendor/bundle/gems/capybara-3.15.0/spec/css_builder_spec.rb +0 -101
  354. data/vendor/bundle/gems/capybara-3.15.0/spec/css_splitter_spec.rb +0 -38
  355. data/vendor/bundle/gems/capybara-3.15.0/spec/dsl_spec.rb +0 -276
  356. data/vendor/bundle/gems/capybara-3.15.0/spec/filter_set_spec.rb +0 -46
  357. data/vendor/bundle/gems/capybara-3.15.0/spec/fixtures/capybara.csv +0 -1
  358. data/vendor/bundle/gems/capybara-3.15.0/spec/fixtures/certificate.pem +0 -25
  359. data/vendor/bundle/gems/capybara-3.15.0/spec/fixtures/key.pem +0 -27
  360. data/vendor/bundle/gems/capybara-3.15.0/spec/fixtures/selenium_driver_rspec_failure.rb +0 -13
  361. data/vendor/bundle/gems/capybara-3.15.0/spec/fixtures/selenium_driver_rspec_success.rb +0 -13
  362. data/vendor/bundle/gems/capybara-3.15.0/spec/minitest_spec.rb +0 -153
  363. data/vendor/bundle/gems/capybara-3.15.0/spec/minitest_spec_spec.rb +0 -151
  364. data/vendor/bundle/gems/capybara-3.15.0/spec/per_session_config_spec.rb +0 -68
  365. data/vendor/bundle/gems/capybara-3.15.0/spec/rack_test_spec.rb +0 -256
  366. data/vendor/bundle/gems/capybara-3.15.0/spec/regexp_dissassembler_spec.rb +0 -236
  367. data/vendor/bundle/gems/capybara-3.15.0/spec/result_spec.rb +0 -200
  368. data/vendor/bundle/gems/capybara-3.15.0/spec/rspec/features_spec.rb +0 -98
  369. data/vendor/bundle/gems/capybara-3.15.0/spec/rspec/scenarios_spec.rb +0 -19
  370. data/vendor/bundle/gems/capybara-3.15.0/spec/rspec/shared_spec_matchers.rb +0 -943
  371. data/vendor/bundle/gems/capybara-3.15.0/spec/rspec/views_spec.rb +0 -14
  372. data/vendor/bundle/gems/capybara-3.15.0/spec/rspec_matchers_spec.rb +0 -62
  373. data/vendor/bundle/gems/capybara-3.15.0/spec/rspec_spec.rb +0 -145
  374. data/vendor/bundle/gems/capybara-3.15.0/spec/selector_spec.rb +0 -503
  375. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_chrome.rb +0 -107
  376. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_chrome_remote.rb +0 -81
  377. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_edge.rb +0 -32
  378. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_firefox.rb +0 -213
  379. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_firefox_remote.rb +0 -89
  380. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_ie.rb +0 -142
  381. data/vendor/bundle/gems/capybara-3.15.0/spec/selenium_spec_safari.rb +0 -148
  382. data/vendor/bundle/gems/capybara-3.15.0/spec/server_spec.rb +0 -239
  383. data/vendor/bundle/gems/capybara-3.15.0/spec/session_spec.rb +0 -84
  384. data/vendor/bundle/gems/capybara-3.15.0/spec/shared_selenium_session.rb +0 -496
  385. data/vendor/bundle/gems/capybara-3.15.0/spec/spec_helper.rb +0 -62
  386. data/vendor/bundle/gems/capybara-3.15.0/spec/xpath_builder_spec.rb +0 -93
  387. data/vendor/bundle/gems/childprocess-0.9.0/CHANGELOG.md +0 -49
  388. data/vendor/bundle/gems/childprocess-0.9.0/Gemfile +0 -15
  389. data/vendor/bundle/gems/childprocess-0.9.0/LICENSE +0 -20
  390. data/vendor/bundle/gems/childprocess-0.9.0/README.md +0 -196
  391. data/vendor/bundle/gems/childprocess-0.9.0/Rakefile +0 -61
  392. data/vendor/bundle/gems/childprocess-0.9.0/appveyor.yml +0 -60
  393. data/vendor/bundle/gems/childprocess-0.9.0/childprocess.gemspec +0 -30
  394. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess.rb +0 -205
  395. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/abstract_io.rb +0 -36
  396. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/abstract_process.rb +0 -192
  397. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/errors.rb +0 -26
  398. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/jruby.rb +0 -56
  399. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/jruby/io.rb +0 -16
  400. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/jruby/process.rb +0 -159
  401. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/jruby/pump.rb +0 -53
  402. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/tools/generator.rb +0 -146
  403. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix.rb +0 -9
  404. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/fork_exec_process.rb +0 -70
  405. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/io.rb +0 -21
  406. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/lib.rb +0 -186
  407. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/platform/i386-linux.rb +0 -12
  408. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/platform/i386-solaris.rb +0 -11
  409. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/platform/x86_64-linux.rb +0 -12
  410. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/platform/x86_64-macosx.rb +0 -11
  411. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/posix_spawn_process.rb +0 -134
  412. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/unix/process.rb +0 -89
  413. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/version.rb +0 -3
  414. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows.rb +0 -33
  415. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows/handle.rb +0 -91
  416. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows/io.rb +0 -25
  417. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows/lib.rb +0 -416
  418. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows/process.rb +0 -130
  419. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows/process_builder.rb +0 -175
  420. data/vendor/bundle/gems/childprocess-0.9.0/lib/childprocess/windows/structs.rb +0 -149
  421. data/vendor/bundle/gems/childprocess-0.9.0/spec/abstract_io_spec.rb +0 -12
  422. data/vendor/bundle/gems/childprocess-0.9.0/spec/childprocess_spec.rb +0 -422
  423. data/vendor/bundle/gems/childprocess-0.9.0/spec/io_spec.rb +0 -228
  424. data/vendor/bundle/gems/childprocess-0.9.0/spec/jruby_spec.rb +0 -24
  425. data/vendor/bundle/gems/childprocess-0.9.0/spec/pid_behavior.rb +0 -12
  426. data/vendor/bundle/gems/childprocess-0.9.0/spec/platform_detection_spec.rb +0 -86
  427. data/vendor/bundle/gems/childprocess-0.9.0/spec/spec_helper.rb +0 -261
  428. data/vendor/bundle/gems/childprocess-0.9.0/spec/unix_spec.rb +0 -57
  429. data/vendor/bundle/gems/childprocess-0.9.0/spec/windows_spec.rb +0 -23
  430. data/vendor/bundle/gems/coveralls-0.8.22/CHANGELOG.md +0 -21
  431. data/vendor/bundle/gems/coveralls-0.8.22/Gemfile +0 -41
  432. data/vendor/bundle/gems/coveralls-0.8.22/LICENSE +0 -22
  433. data/vendor/bundle/gems/coveralls-0.8.22/README.md +0 -3
  434. data/vendor/bundle/gems/coveralls-0.8.22/Rakefile +0 -14
  435. data/vendor/bundle/gems/coveralls-0.8.22/bin/coveralls +0 -9
  436. data/vendor/bundle/gems/coveralls-0.8.22/coveralls-ruby.gemspec +0 -29
  437. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls.rb +0 -101
  438. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/api.rb +0 -128
  439. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/command.rb +0 -69
  440. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/configuration.rb +0 -233
  441. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/output.rb +0 -114
  442. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/rake/task.rb +0 -19
  443. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/simplecov.rb +0 -101
  444. data/vendor/bundle/gems/coveralls-0.8.22/lib/coveralls/version.rb +0 -3
  445. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/configuration_spec.rb +0 -368
  446. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/coveralls_spec.rb +0 -106
  447. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/controllers/sample.rb +0 -12
  448. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/models/airplane.rb +0 -10
  449. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/models/dog.rb +0 -10
  450. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/models/house.rb +0 -10
  451. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/models/robot.rb +0 -10
  452. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/models/user.rb +0 -10
  453. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/app/vendor/vendored_gem.rb +0 -1
  454. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/fixtures/sample.rb +0 -12
  455. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/output_spec.rb +0 -92
  456. data/vendor/bundle/gems/coveralls-0.8.22/spec/coveralls/simplecov_spec.rb +0 -82
  457. data/vendor/bundle/gems/coveralls-0.8.22/spec/spec_helper.rb +0 -82
  458. data/vendor/bundle/gems/diff-lcs-1.3/Code-of-Conduct.md +0 -74
  459. data/vendor/bundle/gems/diff-lcs-1.3/Contributing.md +0 -83
  460. data/vendor/bundle/gems/diff-lcs-1.3/History.md +0 -220
  461. data/vendor/bundle/gems/diff-lcs-1.3/License.md +0 -39
  462. data/vendor/bundle/gems/diff-lcs-1.3/Manifest.txt +0 -37
  463. data/vendor/bundle/gems/diff-lcs-1.3/README.rdoc +0 -84
  464. data/vendor/bundle/gems/diff-lcs-1.3/Rakefile +0 -57
  465. data/vendor/bundle/gems/diff-lcs-1.3/autotest/discover.rb +0 -1
  466. data/vendor/bundle/gems/diff-lcs-1.3/bin/htmldiff +0 -32
  467. data/vendor/bundle/gems/diff-lcs-1.3/bin/ldiff +0 -6
  468. data/vendor/bundle/gems/diff-lcs-1.3/docs/COPYING.txt +0 -339
  469. data/vendor/bundle/gems/diff-lcs-1.3/docs/artistic.txt +0 -127
  470. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff-lcs.rb +0 -3
  471. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs.rb +0 -725
  472. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +0 -7
  473. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +0 -37
  474. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +0 -322
  475. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +0 -181
  476. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +0 -149
  477. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +0 -276
  478. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +0 -307
  479. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +0 -167
  480. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +0 -5
  481. data/vendor/bundle/gems/diff-lcs-1.3/spec/change_spec.rb +0 -65
  482. data/vendor/bundle/gems/diff-lcs-1.3/spec/diff_spec.rb +0 -47
  483. data/vendor/bundle/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +0 -50
  484. data/vendor/bundle/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +0 -51
  485. data/vendor/bundle/gems/diff-lcs-1.3/spec/hunk_spec.rb +0 -72
  486. data/vendor/bundle/gems/diff-lcs-1.3/spec/issues_spec.rb +0 -49
  487. data/vendor/bundle/gems/diff-lcs-1.3/spec/lcs_spec.rb +0 -56
  488. data/vendor/bundle/gems/diff-lcs-1.3/spec/ldiff_spec.rb +0 -47
  489. data/vendor/bundle/gems/diff-lcs-1.3/spec/patch_spec.rb +0 -422
  490. data/vendor/bundle/gems/diff-lcs-1.3/spec/sdiff_spec.rb +0 -214
  491. data/vendor/bundle/gems/diff-lcs-1.3/spec/spec_helper.rb +0 -321
  492. data/vendor/bundle/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +0 -310
  493. data/vendor/bundle/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +0 -139
  494. data/vendor/bundle/gems/docile-1.3.1/Gemfile +0 -12
  495. data/vendor/bundle/gems/docile-1.3.1/HISTORY.md +0 -84
  496. data/vendor/bundle/gems/docile-1.3.1/LICENSE +0 -21
  497. data/vendor/bundle/gems/docile-1.3.1/README.md +0 -381
  498. data/vendor/bundle/gems/docile-1.3.1/Rakefile +0 -28
  499. data/vendor/bundle/gems/docile-1.3.1/docile.gemspec +0 -54
  500. data/vendor/bundle/gems/docile-1.3.1/lib/docile.rb +0 -123
  501. data/vendor/bundle/gems/docile-1.3.1/lib/docile/chaining_fallback_context_proxy.rb +0 -20
  502. data/vendor/bundle/gems/docile-1.3.1/lib/docile/execution.rb +0 -41
  503. data/vendor/bundle/gems/docile-1.3.1/lib/docile/fallback_context_proxy.rb +0 -88
  504. data/vendor/bundle/gems/docile-1.3.1/lib/docile/version.rb +0 -4
  505. data/vendor/bundle/gems/docile-1.3.1/on_what.rb +0 -26
  506. data/vendor/bundle/gems/emot-0.0.4/Gemfile +0 -4
  507. data/vendor/bundle/gems/emot-0.0.4/LICENSE.txt +0 -22
  508. data/vendor/bundle/gems/emot-0.0.4/README.md +0 -87
  509. data/vendor/bundle/gems/emot-0.0.4/Rakefile +0 -7
  510. data/vendor/bundle/gems/emot-0.0.4/bin/emot +0 -5
  511. data/vendor/bundle/gems/emot-0.0.4/emot.gemspec +0 -26
  512. data/vendor/bundle/gems/emot-0.0.4/lib/emot.rb +0 -34
  513. data/vendor/bundle/gems/emot-0.0.4/lib/emot/cli.rb +0 -62
  514. data/vendor/bundle/gems/emot-0.0.4/lib/emot/map.rb +0 -894
  515. data/vendor/bundle/gems/emot-0.0.4/lib/emot/symbol_ext.rb +0 -11
  516. data/vendor/bundle/gems/emot-0.0.4/lib/emot/version.rb +0 -3
  517. data/vendor/bundle/gems/emot-0.0.4/spec/cli_spec.rb +0 -56
  518. data/vendor/bundle/gems/emot-0.0.4/spec/emot_spec.rb +0 -50
  519. data/vendor/bundle/gems/emot-0.0.4/spec/spec_helper.rb +0 -2
  520. data/vendor/bundle/gems/faraday-0.15.4/LICENSE.md +0 -20
  521. data/vendor/bundle/gems/faraday-0.15.4/README.md +0 -381
  522. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday.rb +0 -248
  523. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter.rb +0 -55
  524. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/em_http.rb +0 -243
  525. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/em_http_ssl_patch.rb +0 -56
  526. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/em_synchrony.rb +0 -106
  527. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/em_synchrony/parallel_manager.rb +0 -66
  528. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/excon.rb +0 -82
  529. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/httpclient.rb +0 -128
  530. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/net_http.rb +0 -152
  531. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/net_http_persistent.rb +0 -68
  532. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/patron.rb +0 -95
  533. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/rack.rb +0 -58
  534. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/test.rb +0 -213
  535. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/adapter/typhoeus.rb +0 -12
  536. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/autoload.rb +0 -84
  537. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/connection.rb +0 -484
  538. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/error.rb +0 -66
  539. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/middleware.rb +0 -37
  540. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/options.rb +0 -373
  541. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/parameters.rb +0 -198
  542. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/rack_builder.rb +0 -237
  543. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request.rb +0 -114
  544. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/authorization.rb +0 -41
  545. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/basic_authentication.rb +0 -13
  546. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/instrumentation.rb +0 -36
  547. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/multipart.rb +0 -68
  548. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/retry.rb +0 -210
  549. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/token_authentication.rb +0 -15
  550. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/request/url_encoded.rb +0 -36
  551. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/response.rb +0 -97
  552. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/response/logger.rb +0 -80
  553. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/response/raise_error.rb +0 -21
  554. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/upload_io.rb +0 -67
  555. data/vendor/bundle/gems/faraday-0.15.4/lib/faraday/utils.rb +0 -326
  556. data/vendor/bundle/gems/fastimage-2.1.5/MIT-LICENSE +0 -20
  557. data/vendor/bundle/gems/fastimage-2.1.5/README.textile +0 -162
  558. data/vendor/bundle/gems/fastimage-2.1.5/lib/fastimage.rb +0 -787
  559. data/vendor/bundle/gems/ffi-1.10.0/CHANGELOG.md +0 -98
  560. data/vendor/bundle/gems/ffi-1.10.0/COPYING +0 -49
  561. data/vendor/bundle/gems/ffi-1.10.0/Gemfile +0 -15
  562. data/vendor/bundle/gems/ffi-1.10.0/LICENSE +0 -24
  563. data/vendor/bundle/gems/ffi-1.10.0/LICENSE.SPECS +0 -22
  564. data/vendor/bundle/gems/ffi-1.10.0/README.md +0 -112
  565. data/vendor/bundle/gems/ffi-1.10.0/Rakefile +0 -268
  566. data/vendor/bundle/gems/ffi-1.10.0/appveyor.yml +0 -22
  567. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/AbstractMemory.c +0 -1109
  568. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/AbstractMemory.h +0 -175
  569. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/AbstractMemory.o +0 -0
  570. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ArrayType.c +0 -162
  571. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ArrayType.h +0 -59
  572. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ArrayType.o +0 -0
  573. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Buffer.c +0 -365
  574. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Buffer.o +0 -0
  575. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Call.c +0 -520
  576. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Call.h +0 -110
  577. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Call.o +0 -0
  578. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ClosurePool.c +0 -283
  579. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ClosurePool.h +0 -57
  580. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ClosurePool.o +0 -0
  581. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/DataConverter.c +0 -91
  582. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/DataConverter.o +0 -0
  583. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/DynamicLibrary.c +0 -339
  584. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/DynamicLibrary.h +0 -98
  585. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/DynamicLibrary.o +0 -0
  586. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Function.c +0 -1001
  587. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Function.h +0 -87
  588. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Function.o +0 -0
  589. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/FunctionInfo.c +0 -271
  590. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/FunctionInfo.o +0 -0
  591. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/LastError.c +0 -229
  592. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/LastError.h +0 -47
  593. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/LastError.o +0 -0
  594. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/LongDouble.c +0 -63
  595. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/LongDouble.h +0 -51
  596. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/LongDouble.o +0 -0
  597. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Makefile +0 -265
  598. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MappedType.c +0 -168
  599. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MappedType.h +0 -59
  600. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MappedType.o +0 -0
  601. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MemoryPointer.c +0 -197
  602. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MemoryPointer.h +0 -53
  603. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MemoryPointer.o +0 -0
  604. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MethodHandle.c +0 -358
  605. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MethodHandle.h +0 -55
  606. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/MethodHandle.o +0 -0
  607. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Platform.c +0 -129
  608. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Platform.h +0 -45
  609. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Platform.o +0 -0
  610. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Pointer.c +0 -508
  611. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Pointer.h +0 -63
  612. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Pointer.o +0 -0
  613. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Struct.c +0 -829
  614. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Struct.h +0 -106
  615. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Struct.o +0 -0
  616. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructByReference.c +0 -190
  617. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructByReference.h +0 -50
  618. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructByReference.o +0 -0
  619. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructByValue.c +0 -150
  620. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructByValue.h +0 -55
  621. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructByValue.o +0 -0
  622. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructLayout.c +0 -698
  623. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/StructLayout.o +0 -0
  624. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Thread.c +0 -353
  625. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Thread.h +0 -95
  626. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Thread.o +0 -0
  627. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Type.c +0 -397
  628. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Type.h +0 -62
  629. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Type.o +0 -0
  630. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Types.c +0 -139
  631. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Types.h +0 -89
  632. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Types.o +0 -0
  633. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Variadic.c +0 -304
  634. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/Variadic.o +0 -0
  635. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/compat.h +0 -78
  636. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/extconf.h +0 -12
  637. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/extconf.rb +0 -72
  638. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ffi.c +0 -98
  639. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ffi.o +0 -0
  640. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/ffi_c.so +0 -0
  641. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi.bsd.mk +0 -40
  642. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi.darwin.mk +0 -105
  643. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi.gnu.mk +0 -32
  644. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi.mk +0 -18
  645. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi.vc.mk +0 -26
  646. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi.vc64.mk +0 -26
  647. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.libffi +0 -584
  648. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.libffi-3.1 +0 -6000
  649. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.libgcj +0 -40
  650. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/ChangeLog.v1 +0 -764
  651. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/LICENSE +0 -21
  652. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +0 -352
  653. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/Makefile.am +0 -166
  654. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/Makefile.in +0 -1809
  655. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/README.md +0 -461
  656. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/acinclude.m4 +0 -479
  657. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/autogen.sh +0 -2
  658. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/config.guess +0 -1466
  659. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/config.sub +0 -1836
  660. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/configure +0 -21978
  661. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/configure.ac +0 -390
  662. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/configure.host +0 -289
  663. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/Makefile.am +0 -3
  664. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/Makefile.in +0 -811
  665. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/libffi.texi +0 -985
  666. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/doc/version.texi +0 -4
  667. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/fficonfig.h.in +0 -210
  668. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +0 -203
  669. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/include/Makefile.am +0 -9
  670. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/include/Makefile.in +0 -604
  671. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/include/ffi.h.in +0 -511
  672. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/include/ffi_cfi.h +0 -55
  673. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/include/ffi_common.h +0 -149
  674. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/install-sh +0 -508
  675. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/libffi.map.in +0 -80
  676. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/libffi.pc.in +0 -11
  677. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +0 -1043
  678. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/libtool-ldflags +0 -106
  679. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/libtool-version +0 -29
  680. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/ltmain.sh +0 -11156
  681. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/asmcfi.m4 +0 -13
  682. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_append_flag.m4 +0 -71
  683. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +0 -194
  684. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +0 -122
  685. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +0 -74
  686. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +0 -87
  687. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_configure_args.m4 +0 -70
  688. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +0 -302
  689. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +0 -263
  690. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +0 -89
  691. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/m4/ax_require_defined.m4 +0 -37
  692. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/man/Makefile.am +0 -8
  693. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/man/Makefile.in +0 -558
  694. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi.3 +0 -41
  695. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi_call.3 +0 -103
  696. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi_prep_cif.3 +0 -68
  697. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +0 -73
  698. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/missing +0 -215
  699. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/msvcc.sh +0 -328
  700. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/ffi.c +0 -941
  701. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/ffitarget.h +0 -81
  702. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/internal.h +0 -67
  703. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/aarch64/sysv.S +0 -438
  704. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/ffi.c +0 -521
  705. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/ffitarget.h +0 -57
  706. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/internal.h +0 -23
  707. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/alpha/osf.S +0 -282
  708. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arc/arcompact.S +0 -135
  709. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arc/ffi.c +0 -266
  710. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arc/ffitarget.h +0 -53
  711. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/ffi.c +0 -819
  712. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/ffitarget.h +0 -82
  713. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/internal.h +0 -7
  714. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/arm/sysv.S +0 -383
  715. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/avr32/ffi.c +0 -423
  716. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/avr32/ffitarget.h +0 -55
  717. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/avr32/sysv.S +0 -208
  718. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/bfin/ffi.c +0 -196
  719. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/bfin/ffitarget.h +0 -43
  720. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/bfin/sysv.S +0 -179
  721. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/closures.c +0 -966
  722. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/cris/ffi.c +0 -386
  723. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/cris/ffitarget.h +0 -56
  724. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/cris/sysv.S +0 -215
  725. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/debug.c +0 -64
  726. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/dlmalloc.c +0 -5166
  727. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/frv/eabi.S +0 -128
  728. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/frv/ffi.c +0 -292
  729. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/frv/ffitarget.h +0 -62
  730. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/ffi.c +0 -604
  731. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/ffitarget.h +0 -56
  732. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/ia64_flags.h +0 -40
  733. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/ia64/unix.S +0 -567
  734. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/java_raw_api.c +0 -374
  735. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m32r/ffi.c +0 -232
  736. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m32r/ffitarget.h +0 -53
  737. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m32r/sysv.S +0 -121
  738. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m68k/ffi.c +0 -362
  739. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m68k/ffitarget.h +0 -54
  740. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m68k/sysv.S +0 -357
  741. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m88k/ffi.c +0 -400
  742. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m88k/ffitarget.h +0 -49
  743. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/m88k/obsd.S +0 -209
  744. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/metag/ffi.c +0 -330
  745. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/metag/ffitarget.h +0 -53
  746. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/metag/sysv.S +0 -311
  747. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/microblaze/ffi.c +0 -321
  748. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/microblaze/ffitarget.h +0 -53
  749. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/microblaze/sysv.S +0 -302
  750. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/ffi.c +0 -1130
  751. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/ffitarget.h +0 -244
  752. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/n32.S +0 -663
  753. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/mips/o32.S +0 -502
  754. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/moxie/eabi.S +0 -101
  755. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/moxie/ffi.c +0 -285
  756. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/moxie/ffitarget.h +0 -52
  757. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
  758. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
  759. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
  760. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/or1k/ffi.c +0 -328
  761. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/or1k/ffitarget.h +0 -58
  762. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/or1k/sysv.S +0 -107
  763. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/ffi.c +0 -719
  764. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/ffitarget.h +0 -85
  765. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/hpux32.S +0 -368
  766. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/pa/linux.S +0 -357
  767. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/aix.S +0 -566
  768. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/aix_closure.S +0 -694
  769. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/asm.h +0 -125
  770. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/darwin.S +0 -378
  771. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +0 -571
  772. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi.c +0 -173
  773. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +0 -1440
  774. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +0 -974
  775. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +0 -94
  776. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +0 -923
  777. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ffitarget.h +0 -198
  778. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/linux64.S +0 -228
  779. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +0 -488
  780. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +0 -397
  781. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/powerpc/sysv.S +0 -175
  782. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/prep_cif.c +0 -261
  783. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/raw_api.c +0 -267
  784. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/riscv/ffi.c +0 -445
  785. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/riscv/ffitarget.h +0 -68
  786. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/riscv/sysv.S +0 -214
  787. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/ffi.c +0 -756
  788. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/ffitarget.h +0 -70
  789. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/internal.h +0 -11
  790. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/s390/sysv.S +0 -325
  791. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh/ffi.c +0 -717
  792. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh/ffitarget.h +0 -54
  793. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh/sysv.S +0 -850
  794. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh64/ffi.c +0 -469
  795. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh64/ffitarget.h +0 -58
  796. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sh64/sysv.S +0 -539
  797. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/ffi.c +0 -468
  798. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/ffi64.c +0 -608
  799. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/ffitarget.h +0 -81
  800. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/internal.h +0 -26
  801. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/v8.S +0 -443
  802. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/sparc/v9.S +0 -440
  803. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/tile/ffi.c +0 -355
  804. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/tile/ffitarget.h +0 -65
  805. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/tile/tile.S +0 -360
  806. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/types.c +0 -108
  807. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/vax/elfbsd.S +0 -195
  808. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/vax/ffi.c +0 -276
  809. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/vax/ffitarget.h +0 -49
  810. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/asmnames.h +0 -30
  811. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffi.c +0 -753
  812. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffi64.c +0 -884
  813. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -147
  814. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/ffiw64.c +0 -308
  815. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/internal.h +0 -29
  816. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/internal64.h +0 -22
  817. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/sysv.S +0 -1043
  818. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/unix64.S +0 -525
  819. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/win64.S +0 -232
  820. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/x86/win64_intel.S +0 -237
  821. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/xtensa/ffi.c +0 -298
  822. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/xtensa/ffitarget.h +0 -53
  823. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/src/xtensa/sysv.S +0 -258
  824. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/stamp-h.in +0 -1
  825. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/Makefile.am +0 -117
  826. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/Makefile.in +0 -608
  827. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
  828. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -636
  829. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
  830. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
  831. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
  832. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
  833. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
  834. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -58
  835. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1745
  836. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  837. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -743
  838. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
  839. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
  840. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -43
  841. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +0 -89
  842. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +0 -81
  843. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +0 -81
  844. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +0 -82
  845. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +0 -89
  846. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +0 -92
  847. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +0 -90
  848. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +0 -95
  849. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/closure_simple.c +0 -55
  850. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +0 -94
  851. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +0 -95
  852. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +0 -96
  853. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +0 -102
  854. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +0 -89
  855. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +0 -91
  856. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +0 -93
  857. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +0 -113
  858. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +0 -90
  859. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +0 -95
  860. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +0 -90
  861. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +0 -90
  862. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_3float.c +0 -95
  863. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +0 -98
  864. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +0 -90
  865. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +0 -109
  866. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +0 -98
  867. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +0 -124
  868. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +0 -113
  869. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +0 -99
  870. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +0 -117
  871. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +0 -97
  872. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +0 -88
  873. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +0 -90
  874. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +0 -91
  875. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +0 -93
  876. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +0 -91
  877. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +0 -92
  878. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +0 -132
  879. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +0 -115
  880. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +0 -95
  881. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +0 -91
  882. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +0 -91
  883. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +0 -92
  884. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +0 -91
  885. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +0 -91
  886. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +0 -93
  887. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +0 -66
  888. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +0 -43
  889. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +0 -61
  890. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +0 -42
  891. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +0 -105
  892. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +0 -61
  893. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +0 -70
  894. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +0 -55
  895. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +0 -74
  896. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +0 -74
  897. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +0 -86
  898. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +0 -91
  899. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +0 -74
  900. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +0 -86
  901. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +0 -74
  902. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +0 -142
  903. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +0 -44
  904. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +0 -42
  905. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +0 -42
  906. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +0 -114
  907. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +0 -42
  908. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +0 -44
  909. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +0 -43
  910. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +0 -45
  911. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +0 -45
  912. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +0 -47
  913. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +0 -43
  914. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +0 -44
  915. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +0 -36
  916. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
  917. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -138
  918. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
  919. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
  920. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -60
  921. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
  922. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
  923. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -107
  924. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +0 -341
  925. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
  926. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
  927. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
  928. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
  929. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
  930. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +0 -152
  931. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +0 -161
  932. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +0 -134
  933. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +0 -121
  934. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +0 -110
  935. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +0 -111
  936. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +0 -111
  937. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +0 -112
  938. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +0 -131
  939. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +0 -111
  940. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +0 -131
  941. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +0 -131
  942. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
  943. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
  944. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +0 -90
  945. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
  946. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +0 -114
  947. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
  948. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
  949. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
  950. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
  951. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
  952. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
  953. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
  954. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
  955. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
  956. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -43
  957. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
  958. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -38
  959. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
  960. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -38
  961. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +0 -145
  962. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +0 -148
  963. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +0 -124
  964. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +0 -125
  965. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -44
  966. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
  967. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
  968. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
  969. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
  970. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
  971. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
  972. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
  973. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
  974. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
  975. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
  976. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
  977. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
  978. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
  979. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +0 -70
  980. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
  981. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc +0 -117
  982. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc +0 -54
  983. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -196
  984. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -121
  985. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -123
  986. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -125
  987. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
  988. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
  989. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
  990. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
  991. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
  992. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
  993. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
  994. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
  995. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
  996. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
  997. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
  998. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
  999. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
  1000. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
  1001. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
  1002. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
  1003. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
  1004. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
  1005. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
  1006. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
  1007. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
  1008. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
  1009. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
  1010. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
  1011. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
  1012. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
  1013. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
  1014. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
  1015. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
  1016. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
  1017. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
  1018. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
  1019. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
  1020. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
  1021. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
  1022. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
  1023. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
  1024. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
  1025. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
  1026. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
  1027. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
  1028. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
  1029. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
  1030. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
  1031. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
  1032. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
  1033. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
  1034. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/rbffi.h +0 -57
  1035. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/rbffi_endian.h +0 -59
  1036. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/win32/stdbool.h +0 -8
  1037. data/vendor/bundle/gems/ffi-1.10.0/ext/ffi_c/win32/stdint.h +0 -201
  1038. data/vendor/bundle/gems/ffi-1.10.0/ffi.gemspec +0 -36
  1039. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi.rb +0 -20
  1040. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/autopointer.rb +0 -203
  1041. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/buffer.rb +0 -4
  1042. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/callback.rb +0 -4
  1043. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/enum.rb +0 -296
  1044. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/errno.rb +0 -43
  1045. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/ffi.rb +0 -44
  1046. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/io.rb +0 -62
  1047. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/library.rb +0 -588
  1048. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/managedstruct.rb +0 -84
  1049. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/memorypointer.rb +0 -1
  1050. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform.rb +0 -170
  1051. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/aarch64-freebsd/types.conf +0 -128
  1052. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/aarch64-freebsd12/types.conf +0 -128
  1053. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/aarch64-linux/types.conf +0 -104
  1054. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/arm-freebsd/types.conf +0 -152
  1055. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/arm-freebsd12/types.conf +0 -152
  1056. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/arm-linux/types.conf +0 -104
  1057. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-cygwin/types.conf +0 -3
  1058. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-darwin/types.conf +0 -100
  1059. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-freebsd/types.conf +0 -152
  1060. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-freebsd12/types.conf +0 -152
  1061. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-gnu/types.conf +0 -107
  1062. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-linux/types.conf +0 -103
  1063. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-netbsd/types.conf +0 -126
  1064. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-openbsd/types.conf +0 -128
  1065. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-solaris/types.conf +0 -122
  1066. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/i386-windows/types.conf +0 -105
  1067. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/ia64-linux/types.conf +0 -104
  1068. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mips-linux/types.conf +0 -102
  1069. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mips64-linux/types.conf +0 -104
  1070. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mips64el-linux/types.conf +0 -104
  1071. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mipsel-linux/types.conf +0 -102
  1072. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mipsisa32r6-linux/types.conf +0 -102
  1073. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mipsisa32r6el-linux/types.conf +0 -102
  1074. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mipsisa64r6-linux/types.conf +0 -104
  1075. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/mipsisa64r6el-linux/types.conf +0 -104
  1076. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/powerpc-aix/types.conf +0 -180
  1077. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/powerpc-darwin/types.conf +0 -100
  1078. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/powerpc-linux/types.conf +0 -100
  1079. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/powerpc64-linux/types.conf +0 -104
  1080. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/s390-linux/types.conf +0 -102
  1081. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/s390x-linux/types.conf +0 -102
  1082. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/sparc-linux/types.conf +0 -102
  1083. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/sparc-solaris/types.conf +0 -128
  1084. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/sparc64-linux/types.conf +0 -102
  1085. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/sparcv9-solaris/types.conf +0 -128
  1086. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-cygwin/types.conf +0 -3
  1087. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-darwin/types.conf +0 -126
  1088. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-freebsd/types.conf +0 -128
  1089. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-freebsd12/types.conf +0 -128
  1090. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-linux/types.conf +0 -102
  1091. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-netbsd/types.conf +0 -128
  1092. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-openbsd/types.conf +0 -134
  1093. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-solaris/types.conf +0 -122
  1094. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/platform/x86_64-windows/types.conf +0 -120
  1095. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/pointer.rb +0 -160
  1096. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/struct.rb +0 -371
  1097. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/struct_layout_builder.rb +0 -227
  1098. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/tools/const_generator.rb +0 -229
  1099. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/tools/generator.rb +0 -60
  1100. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/tools/generator_task.rb +0 -36
  1101. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/tools/struct_generator.rb +0 -194
  1102. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/tools/types_generator.rb +0 -134
  1103. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/types.rb +0 -194
  1104. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/union.rb +0 -43
  1105. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/variadic.rb +0 -78
  1106. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi/version.rb +0 -3
  1107. data/vendor/bundle/gems/ffi-1.10.0/lib/ffi_c.so +0 -0
  1108. data/vendor/bundle/gems/ffi-1.10.0/samples/getlogin.rb +0 -8
  1109. data/vendor/bundle/gems/ffi-1.10.0/samples/getpid.rb +0 -8
  1110. data/vendor/bundle/gems/ffi-1.10.0/samples/gettimeofday.rb +0 -18
  1111. data/vendor/bundle/gems/ffi-1.10.0/samples/hello.rb +0 -7
  1112. data/vendor/bundle/gems/ffi-1.10.0/samples/inotify.rb +0 -60
  1113. data/vendor/bundle/gems/ffi-1.10.0/samples/pty.rb +0 -76
  1114. data/vendor/bundle/gems/ffi-1.10.0/samples/qsort.rb +0 -21
  1115. data/vendor/bundle/gems/ffi-1.10.0/samples/sample_helper.rb +0 -6
  1116. data/vendor/bundle/gems/hikidoc-0.1.0/COPYING +0 -28
  1117. data/vendor/bundle/gems/hikidoc-0.1.0/Gemfile +0 -4
  1118. data/vendor/bundle/gems/hikidoc-0.1.0/NEWS +0 -30
  1119. data/vendor/bundle/gems/hikidoc-0.1.0/NEWS.ja +0 -30
  1120. data/vendor/bundle/gems/hikidoc-0.1.0/README +0 -87
  1121. data/vendor/bundle/gems/hikidoc-0.1.0/README.ja +0 -84
  1122. data/vendor/bundle/gems/hikidoc-0.1.0/Rakefile +0 -8
  1123. data/vendor/bundle/gems/hikidoc-0.1.0/TextFormattingRules +0 -320
  1124. data/vendor/bundle/gems/hikidoc-0.1.0/TextFormattingRules.ja +0 -318
  1125. data/vendor/bundle/gems/hikidoc-0.1.0/bin/hikidoc +0 -66
  1126. data/vendor/bundle/gems/hikidoc-0.1.0/hikidoc.gemspec +0 -23
  1127. data/vendor/bundle/gems/hikidoc-0.1.0/lib/hikidoc.rb +0 -912
  1128. data/vendor/bundle/gems/hikidoc-0.1.0/test/hikidoc_test.rb +0 -506
  1129. data/vendor/bundle/gems/jasmine-2.99.0/Gemfile +0 -30
  1130. data/vendor/bundle/gems/jasmine-2.99.0/HOW_TO_TEST.markdown +0 -10
  1131. data/vendor/bundle/gems/jasmine-2.99.0/MIT.LICENSE +0 -20
  1132. data/vendor/bundle/gems/jasmine-2.99.0/README.markdown +0 -96
  1133. data/vendor/bundle/gems/jasmine-2.99.0/RELEASE.markdown +0 -15
  1134. data/vendor/bundle/gems/jasmine-2.99.0/Rakefile +0 -49
  1135. data/vendor/bundle/gems/jasmine-2.99.0/bin/jasmine +0 -6
  1136. data/vendor/bundle/gems/jasmine-2.99.0/jasmine.gemspec +0 -48
  1137. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/examples/USAGE +0 -11
  1138. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/examples/examples_generator.rb +0 -19
  1139. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/examples/templates/app/assets/javascripts/jasmine_examples/Player.js +0 -22
  1140. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/examples/templates/app/assets/javascripts/jasmine_examples/Song.js +0 -7
  1141. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/examples/templates/spec/javascripts/helpers/jasmine_examples/SpecHelper.js +0 -15
  1142. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/examples/templates/spec/javascripts/jasmine_examples/PlayerSpec.js +0 -58
  1143. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/install/USAGE +0 -9
  1144. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/install/install_generator.rb +0 -18
  1145. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/install/templates/spec/javascripts/support/jasmine.yml +0 -145
  1146. data/vendor/bundle/gems/jasmine-2.99.0/lib/generators/jasmine/install/templates/spec/javascripts/support/jasmine_helper.rb +0 -16
  1147. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine.rb +0 -32
  1148. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/application.rb +0 -21
  1149. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/asset_expander.rb +0 -66
  1150. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/asset_pipeline_mapper.rb +0 -17
  1151. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/base.rb +0 -54
  1152. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/ci_runner.rb +0 -50
  1153. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/command_line_install.txt +0 -13
  1154. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/command_line_tool.rb +0 -125
  1155. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/config.rb +0 -135
  1156. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/configuration.rb +0 -114
  1157. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/core_configuration.rb +0 -31
  1158. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/dependencies.rb +0 -28
  1159. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/formatters/console.rb +0 -118
  1160. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/formatters/exit_code.rb +0 -23
  1161. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/formatters/multi.rb +0 -17
  1162. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/page.rb +0 -11
  1163. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/path_expander.rb +0 -22
  1164. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/path_mapper.rb +0 -38
  1165. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/railtie.rb +0 -22
  1166. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/result.rb +0 -58
  1167. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/ruby_versions.rb +0 -11
  1168. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/run.html.erb +0 -20
  1169. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/runners/phantom_boot.js +0 -15
  1170. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/runners/phantom_jasmine_run.js +0 -50
  1171. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/runners/phantom_js.rb +0 -74
  1172. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/server.rb +0 -17
  1173. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/tasks/jasmine.rake +0 -71
  1174. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/tasks/jasmine_rails.rake +0 -1
  1175. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/version.rb +0 -3
  1176. data/vendor/bundle/gems/jasmine-2.99.0/lib/jasmine/yaml_config_parser.rb +0 -95
  1177. data/vendor/bundle/gems/jasmine-2.99.0/lib/rack/jasmine/cache_control.rb +0 -20
  1178. data/vendor/bundle/gems/jasmine-2.99.0/lib/rack/jasmine/focused_suite.rb +0 -17
  1179. data/vendor/bundle/gems/jasmine-2.99.0/lib/rack/jasmine/runner.rb +0 -27
  1180. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v1.2.1.md +0 -6
  1181. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v1.3.2.md +0 -32
  1182. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.0.0.md +0 -78
  1183. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.0.1.md +0 -31
  1184. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.0.2.md +0 -17
  1185. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.0.3.md +0 -31
  1186. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.1.0.md +0 -11
  1187. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.2.0.md +0 -31
  1188. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.3.0.md +0 -27
  1189. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.3.1.md +0 -14
  1190. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.4.0.md +0 -20
  1191. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.5.0.md +0 -35
  1192. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.5.1.md +0 -12
  1193. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.5.2.md +0 -22
  1194. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.6.0.md +0 -17
  1195. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.6.1.md +0 -11
  1196. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.7.0.md +0 -28
  1197. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.8.0.md +0 -21
  1198. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.9.0.md +0 -22
  1199. data/vendor/bundle/gems/jasmine-2.99.0/release_notes/v2.99.md +0 -13
  1200. data/vendor/bundle/gems/jasmine-2.99.0/spec/application_integration_spec.rb +0 -15
  1201. data/vendor/bundle/gems/jasmine-2.99.0/spec/application_spec.rb +0 -55
  1202. data/vendor/bundle/gems/jasmine-2.99.0/spec/base_spec.rb +0 -35
  1203. data/vendor/bundle/gems/jasmine-2.99.0/spec/ci_runner_spec.rb +0 -137
  1204. data/vendor/bundle/gems/jasmine-2.99.0/spec/configuration_spec.rb +0 -219
  1205. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/Rakefile +0 -4
  1206. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/afterall_spec.js +0 -8
  1207. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/coffee_spec.coffee +0 -3
  1208. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/console_log_spec.js +0 -5
  1209. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/exception_test.js +0 -1
  1210. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/failing_runner.rb +0 -9
  1211. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/failing_test.js +0 -5
  1212. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/large_test_suite_spec.js +0 -20
  1213. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/non_asset_pipeline.js +0 -1
  1214. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/non_asset_pipeline_test.js +0 -5
  1215. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/phantomConfig.js +0 -6
  1216. data/vendor/bundle/gems/jasmine-2.99.0/spec/fixture/viewport_spec.js +0 -6
  1217. data/vendor/bundle/gems/jasmine-2.99.0/spec/jasmine_command_line_tool_spec.rb +0 -142
  1218. data/vendor/bundle/gems/jasmine-2.99.0/spec/jasmine_pojs_spec.rb +0 -124
  1219. data/vendor/bundle/gems/jasmine-2.99.0/spec/jasmine_rails_spec.rb +0 -217
  1220. data/vendor/bundle/gems/jasmine-2.99.0/spec/lib/jasmine/formatters/console_spec.rb +0 -205
  1221. data/vendor/bundle/gems/jasmine-2.99.0/spec/lib/jasmine/formatters/exit_code_spec.rb +0 -34
  1222. data/vendor/bundle/gems/jasmine-2.99.0/spec/lib/jasmine/formatters/multi_spec.rb +0 -27
  1223. data/vendor/bundle/gems/jasmine-2.99.0/spec/page_spec.rb +0 -23
  1224. data/vendor/bundle/gems/jasmine-2.99.0/spec/path_expander_spec.rb +0 -138
  1225. data/vendor/bundle/gems/jasmine-2.99.0/spec/path_mapper_spec.rb +0 -38
  1226. data/vendor/bundle/gems/jasmine-2.99.0/spec/performance/phantom_js_runner_performance_spec.rb +0 -23
  1227. data/vendor/bundle/gems/jasmine-2.99.0/spec/phantom_js_spec.rb +0 -14
  1228. data/vendor/bundle/gems/jasmine-2.99.0/spec/rack/jasmine/runner_spec.rb +0 -25
  1229. data/vendor/bundle/gems/jasmine-2.99.0/spec/result_spec.rb +0 -44
  1230. data/vendor/bundle/gems/jasmine-2.99.0/spec/server_spec.rb +0 -22
  1231. data/vendor/bundle/gems/jasmine-2.99.0/spec/spec_helper.rb +0 -145
  1232. data/vendor/bundle/gems/jasmine-2.99.0/spec/yaml_config_parser_spec.rb +0 -239
  1233. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/console/console.js +0 -190
  1234. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core.js +0 -37
  1235. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core.rb +0 -53
  1236. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/__init__.py +0 -1
  1237. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/boot.js +0 -155
  1238. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/boot/boot.js +0 -133
  1239. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/boot/node_boot.js +0 -19
  1240. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/core.py +0 -60
  1241. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/node_example/lib/jasmine_examples/Player.js +0 -24
  1242. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/node_example/lib/jasmine_examples/Song.js +0 -9
  1243. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/node_example/spec/helpers/jasmine_examples/SpecHelper.js +0 -15
  1244. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/node_example/spec/jasmine_examples/PlayerSpec.js +0 -60
  1245. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/spec/PlayerSpec.js +0 -58
  1246. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/spec/SpecHelper.js +0 -15
  1247. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/src/Player.js +0 -22
  1248. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/example/src/Song.js +0 -7
  1249. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/jasmine-html.js +0 -545
  1250. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/jasmine.css +0 -59
  1251. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/jasmine.js +0 -5586
  1252. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/json2.js +0 -489
  1253. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/node_boot.js +0 -41
  1254. data/vendor/bundle/gems/jasmine-core-2.99.2/lib/jasmine-core/version.rb +0 -9
  1255. data/vendor/bundle/gems/json-2.2.0/CHANGES.md +0 -391
  1256. data/vendor/bundle/gems/json-2.2.0/Gemfile +0 -14
  1257. data/vendor/bundle/gems/json-2.2.0/README-json-jruby.md +0 -33
  1258. data/vendor/bundle/gems/json-2.2.0/README.md +0 -409
  1259. data/vendor/bundle/gems/json-2.2.0/Rakefile +0 -408
  1260. data/vendor/bundle/gems/json-2.2.0/VERSION +0 -1
  1261. data/vendor/bundle/gems/json-2.2.0/ext/json/Makefile +0 -201
  1262. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/fbuffer/fbuffer.h +0 -187
  1263. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/Makefile +0 -266
  1264. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/depend +0 -1
  1265. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/extconf.rb +0 -4
  1266. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/generator.c +0 -1444
  1267. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/generator.h +0 -171
  1268. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/generator.o +0 -0
  1269. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/generator/generator.so +0 -0
  1270. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/Makefile +0 -266
  1271. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/depend +0 -1
  1272. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/extconf.rb +0 -6
  1273. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.c +0 -2131
  1274. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.h +0 -91
  1275. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.o +0 -0
  1276. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.rl +0 -891
  1277. data/vendor/bundle/gems/json-2.2.0/ext/json/ext/parser/parser.so +0 -0
  1278. data/vendor/bundle/gems/json-2.2.0/ext/json/extconf.rb +0 -2
  1279. data/vendor/bundle/gems/json-2.2.0/install.rb +0 -23
  1280. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/ByteListTranscoder.java +0 -166
  1281. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Generator.java +0 -443
  1282. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/GeneratorMethods.java +0 -231
  1283. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/GeneratorService.java +0 -42
  1284. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/GeneratorState.java +0 -490
  1285. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/OptionsReader.java +0 -113
  1286. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Parser.java +0 -2362
  1287. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Parser.rl +0 -893
  1288. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/ParserService.java +0 -34
  1289. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/RuntimeInfo.java +0 -116
  1290. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/StringDecoder.java +0 -166
  1291. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/StringEncoder.java +0 -111
  1292. data/vendor/bundle/gems/json-2.2.0/java/src/json/ext/Utils.java +0 -88
  1293. data/vendor/bundle/gems/json-2.2.0/json-java.gemspec +0 -38
  1294. data/vendor/bundle/gems/json-2.2.0/json.gemspec +0 -0
  1295. data/vendor/bundle/gems/json-2.2.0/json_pure.gemspec +0 -38
  1296. data/vendor/bundle/gems/json-2.2.0/lib/json.rb +0 -63
  1297. data/vendor/bundle/gems/json-2.2.0/lib/json/add/bigdecimal.rb +0 -29
  1298. data/vendor/bundle/gems/json-2.2.0/lib/json/add/complex.rb +0 -29
  1299. data/vendor/bundle/gems/json-2.2.0/lib/json/add/core.rb +0 -12
  1300. data/vendor/bundle/gems/json-2.2.0/lib/json/add/date.rb +0 -34
  1301. data/vendor/bundle/gems/json-2.2.0/lib/json/add/date_time.rb +0 -50
  1302. data/vendor/bundle/gems/json-2.2.0/lib/json/add/exception.rb +0 -31
  1303. data/vendor/bundle/gems/json-2.2.0/lib/json/add/ostruct.rb +0 -31
  1304. data/vendor/bundle/gems/json-2.2.0/lib/json/add/range.rb +0 -29
  1305. data/vendor/bundle/gems/json-2.2.0/lib/json/add/rational.rb +0 -28
  1306. data/vendor/bundle/gems/json-2.2.0/lib/json/add/regexp.rb +0 -30
  1307. data/vendor/bundle/gems/json-2.2.0/lib/json/add/set.rb +0 -29
  1308. data/vendor/bundle/gems/json-2.2.0/lib/json/add/struct.rb +0 -30
  1309. data/vendor/bundle/gems/json-2.2.0/lib/json/add/symbol.rb +0 -25
  1310. data/vendor/bundle/gems/json-2.2.0/lib/json/add/time.rb +0 -38
  1311. data/vendor/bundle/gems/json-2.2.0/lib/json/common.rb +0 -456
  1312. data/vendor/bundle/gems/json-2.2.0/lib/json/ext.rb +0 -15
  1313. data/vendor/bundle/gems/json-2.2.0/lib/json/ext/generator.so +0 -0
  1314. data/vendor/bundle/gems/json-2.2.0/lib/json/ext/parser.so +0 -0
  1315. data/vendor/bundle/gems/json-2.2.0/lib/json/generic_object.rb +0 -71
  1316. data/vendor/bundle/gems/json-2.2.0/lib/json/pure.rb +0 -15
  1317. data/vendor/bundle/gems/json-2.2.0/lib/json/pure/generator.rb +0 -458
  1318. data/vendor/bundle/gems/json-2.2.0/lib/json/pure/parser.rb +0 -311
  1319. data/vendor/bundle/gems/json-2.2.0/lib/json/version.rb +0 -9
  1320. data/vendor/bundle/gems/json-2.2.0/references/rfc7159.txt +0 -899
  1321. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail10.json +0 -1
  1322. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail11.json +0 -1
  1323. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail12.json +0 -1
  1324. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail13.json +0 -1
  1325. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail14.json +0 -1
  1326. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail18.json +0 -1
  1327. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail19.json +0 -1
  1328. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail2.json +0 -1
  1329. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail20.json +0 -1
  1330. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail21.json +0 -1
  1331. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail22.json +0 -1
  1332. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail23.json +0 -1
  1333. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail24.json +0 -1
  1334. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail25.json +0 -1
  1335. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail27.json +0 -2
  1336. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail28.json +0 -2
  1337. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail3.json +0 -1
  1338. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail4.json +0 -1
  1339. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail5.json +0 -1
  1340. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail6.json +0 -1
  1341. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail7.json +0 -1
  1342. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail8.json +0 -1
  1343. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/fail9.json +0 -1
  1344. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/obsolete_fail1.json +0 -1
  1345. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass1.json +0 -56
  1346. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass15.json +0 -1
  1347. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass16.json +0 -1
  1348. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass17.json +0 -1
  1349. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass2.json +0 -1
  1350. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass26.json +0 -1
  1351. data/vendor/bundle/gems/json-2.2.0/tests/fixtures/pass3.json +0 -6
  1352. data/vendor/bundle/gems/json-2.2.0/tests/json_addition_test.rb +0 -203
  1353. data/vendor/bundle/gems/json-2.2.0/tests/json_common_interface_test.rb +0 -126
  1354. data/vendor/bundle/gems/json-2.2.0/tests/json_encoding_test.rb +0 -107
  1355. data/vendor/bundle/gems/json-2.2.0/tests/json_ext_parser_test.rb +0 -15
  1356. data/vendor/bundle/gems/json-2.2.0/tests/json_fixtures_test.rb +0 -32
  1357. data/vendor/bundle/gems/json-2.2.0/tests/json_generator_test.rb +0 -377
  1358. data/vendor/bundle/gems/json-2.2.0/tests/json_generic_object_test.rb +0 -82
  1359. data/vendor/bundle/gems/json-2.2.0/tests/json_parser_test.rb +0 -472
  1360. data/vendor/bundle/gems/json-2.2.0/tests/json_string_matching_test.rb +0 -38
  1361. data/vendor/bundle/gems/json-2.2.0/tests/test_helper.rb +0 -17
  1362. data/vendor/bundle/gems/json-2.2.0/tools/diff.sh +0 -18
  1363. data/vendor/bundle/gems/json-2.2.0/tools/fuzz.rb +0 -131
  1364. data/vendor/bundle/gems/json-2.2.0/tools/server.rb +0 -62
  1365. data/vendor/bundle/gems/launchy-2.4.3/CONTRIBUTING.md +0 -59
  1366. data/vendor/bundle/gems/launchy-2.4.3/HISTORY.md +0 -160
  1367. data/vendor/bundle/gems/launchy-2.4.3/LICENSE +0 -16
  1368. data/vendor/bundle/gems/launchy-2.4.3/Manifest.txt +0 -38
  1369. data/vendor/bundle/gems/launchy-2.4.3/README.md +0 -136
  1370. data/vendor/bundle/gems/launchy-2.4.3/Rakefile +0 -25
  1371. data/vendor/bundle/gems/launchy-2.4.3/bin/launchy +0 -4
  1372. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy.rb +0 -152
  1373. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/application.rb +0 -62
  1374. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/applications/browser.rb +0 -82
  1375. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/argv.rb +0 -36
  1376. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/cli.rb +0 -89
  1377. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/deprecated.rb +0 -52
  1378. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/descendant_tracker.rb +0 -49
  1379. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect.rb +0 -10
  1380. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/host_os.rb +0 -32
  1381. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/host_os_family.rb +0 -71
  1382. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/nix_desktop_environment.rb +0 -92
  1383. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/ruby_engine.rb +0 -78
  1384. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/detect/runner.rb +0 -152
  1385. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/error.rb +0 -6
  1386. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/os_family.rb +0 -8
  1387. data/vendor/bundle/gems/launchy-2.4.3/lib/launchy/version.rb +0 -18
  1388. data/vendor/bundle/gems/launchy-2.4.3/spec/application_spec.rb +0 -43
  1389. data/vendor/bundle/gems/launchy-2.4.3/spec/applications/browser_spec.rb +0 -68
  1390. data/vendor/bundle/gems/launchy-2.4.3/spec/cli_spec.rb +0 -75
  1391. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/host_os_family_spec.rb +0 -40
  1392. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/host_os_spec.rb +0 -19
  1393. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/nix_desktop_environment_spec.rb +0 -36
  1394. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/ruby_engine_spec.rb +0 -37
  1395. data/vendor/bundle/gems/launchy-2.4.3/spec/detect/runner_spec.rb +0 -103
  1396. data/vendor/bundle/gems/launchy-2.4.3/spec/launchy_spec.rb +0 -110
  1397. data/vendor/bundle/gems/launchy-2.4.3/spec/mock_application.rb +0 -9
  1398. data/vendor/bundle/gems/launchy-2.4.3/spec/spec_helper.rb +0 -11
  1399. data/vendor/bundle/gems/launchy-2.4.3/spec/tattle-host-os.yaml +0 -427
  1400. data/vendor/bundle/gems/launchy-2.4.3/spec/version_spec.rb +0 -11
  1401. data/vendor/bundle/gems/launchy-2.4.3/tasks/default.rake +0 -272
  1402. data/vendor/bundle/gems/launchy-2.4.3/tasks/this.rb +0 -209
  1403. data/vendor/bundle/gems/mail-2.7.1/MIT-LICENSE +0 -20
  1404. data/vendor/bundle/gems/mail-2.7.1/README.md +0 -695
  1405. data/vendor/bundle/gems/mail-2.7.1/lib/mail.rb +0 -85
  1406. data/vendor/bundle/gems/mail-2.7.1/lib/mail/attachments_list.rb +0 -110
  1407. data/vendor/bundle/gems/mail-2.7.1/lib/mail/body.rb +0 -328
  1408. data/vendor/bundle/gems/mail-2.7.1/lib/mail/check_delivery_params.rb +0 -60
  1409. data/vendor/bundle/gems/mail-2.7.1/lib/mail/configuration.rb +0 -78
  1410. data/vendor/bundle/gems/mail-2.7.1/lib/mail/constants.rb +0 -57
  1411. data/vendor/bundle/gems/mail-2.7.1/lib/mail/core_extensions/smtp.rb +0 -28
  1412. data/vendor/bundle/gems/mail-2.7.1/lib/mail/core_extensions/string.rb +0 -17
  1413. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements.rb +0 -15
  1414. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/address.rb +0 -258
  1415. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/address_list.rb +0 -34
  1416. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/content_disposition_element.rb +0 -20
  1417. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/content_location_element.rb +0 -17
  1418. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/content_transfer_encoding_element.rb +0 -13
  1419. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/content_type_element.rb +0 -21
  1420. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/date_time_element.rb +0 -15
  1421. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/envelope_from_element.rb +0 -33
  1422. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/message_ids_element.rb +0 -22
  1423. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/mime_version_element.rb +0 -15
  1424. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/phrase_list.rb +0 -14
  1425. data/vendor/bundle/gems/mail-2.7.1/lib/mail/elements/received_element.rb +0 -21
  1426. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings.rb +0 -343
  1427. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/7bit.rb +0 -22
  1428. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/8bit.rb +0 -18
  1429. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/base64.rb +0 -38
  1430. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/binary.rb +0 -13
  1431. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/identity.rb +0 -24
  1432. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/quoted_printable.rb +0 -45
  1433. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/transfer_encoding.rb +0 -77
  1434. data/vendor/bundle/gems/mail-2.7.1/lib/mail/encodings/unix_to_unix.rb +0 -20
  1435. data/vendor/bundle/gems/mail-2.7.1/lib/mail/envelope.rb +0 -31
  1436. data/vendor/bundle/gems/mail-2.7.1/lib/mail/field.rb +0 -299
  1437. data/vendor/bundle/gems/mail-2.7.1/lib/mail/field_list.rb +0 -34
  1438. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields.rb +0 -36
  1439. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/bcc_field.rb +0 -68
  1440. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/cc_field.rb +0 -55
  1441. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/comments_field.rb +0 -42
  1442. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/common/address_container.rb +0 -17
  1443. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/common/common_address.rb +0 -161
  1444. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/common/common_date.rb +0 -36
  1445. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/common/common_field.rb +0 -52
  1446. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/common/common_message_id.rb +0 -49
  1447. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/common/parameter_hash.rb +0 -59
  1448. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/content_description_field.rb +0 -20
  1449. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/content_disposition_field.rb +0 -71
  1450. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/content_id_field.rb +0 -63
  1451. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/content_location_field.rb +0 -43
  1452. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/content_transfer_encoding_field.rb +0 -45
  1453. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/content_type_field.rb +0 -197
  1454. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/date_field.rb +0 -57
  1455. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/from_field.rb +0 -55
  1456. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/in_reply_to_field.rb +0 -57
  1457. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/keywords_field.rb +0 -44
  1458. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/message_id_field.rb +0 -83
  1459. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/mime_version_field.rb +0 -54
  1460. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/optional_field.rb +0 -17
  1461. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/received_field.rb +0 -76
  1462. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/references_field.rb +0 -57
  1463. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/reply_to_field.rb +0 -55
  1464. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_bcc_field.rb +0 -55
  1465. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_cc_field.rb +0 -55
  1466. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_date_field.rb +0 -35
  1467. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_from_field.rb +0 -55
  1468. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_message_id_field.rb +0 -35
  1469. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_sender_field.rb +0 -62
  1470. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/resent_to_field.rb +0 -55
  1471. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/return_path_field.rb +0 -65
  1472. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/sender_field.rb +0 -67
  1473. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/structured_field.rb +0 -52
  1474. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/subject_field.rb +0 -17
  1475. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/to_field.rb +0 -55
  1476. data/vendor/bundle/gems/mail-2.7.1/lib/mail/fields/unstructured_field.rb +0 -222
  1477. data/vendor/bundle/gems/mail-2.7.1/lib/mail/header.rb +0 -278
  1478. data/vendor/bundle/gems/mail-2.7.1/lib/mail/indifferent_hash.rb +0 -147
  1479. data/vendor/bundle/gems/mail-2.7.1/lib/mail/mail.rb +0 -262
  1480. data/vendor/bundle/gems/mail-2.7.1/lib/mail/matchers/attachment_matchers.rb +0 -29
  1481. data/vendor/bundle/gems/mail-2.7.1/lib/mail/matchers/has_sent_mail.rb +0 -201
  1482. data/vendor/bundle/gems/mail-2.7.1/lib/mail/message.rb +0 -2170
  1483. data/vendor/bundle/gems/mail-2.7.1/lib/mail/multibyte.rb +0 -92
  1484. data/vendor/bundle/gems/mail-2.7.1/lib/mail/multibyte/chars.rb +0 -476
  1485. data/vendor/bundle/gems/mail-2.7.1/lib/mail/multibyte/unicode.rb +0 -405
  1486. data/vendor/bundle/gems/mail-2.7.1/lib/mail/multibyte/utils.rb +0 -61
  1487. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network.rb +0 -16
  1488. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/exim.rb +0 -49
  1489. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/file_delivery.rb +0 -42
  1490. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/logger_delivery.rb +0 -37
  1491. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/sendmail.rb +0 -95
  1492. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb +0 -149
  1493. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp_connection.rb +0 -66
  1494. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/delivery_methods/test_mailer.rb +0 -42
  1495. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/retriever_methods/base.rb +0 -64
  1496. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/retriever_methods/imap.rb +0 -187
  1497. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/retriever_methods/pop3.rb +0 -143
  1498. data/vendor/bundle/gems/mail-2.7.1/lib/mail/network/retriever_methods/test_retriever.rb +0 -44
  1499. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parser_tools.rb +0 -15
  1500. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers.rb +0 -19
  1501. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb +0 -33236
  1502. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rl +0 -172
  1503. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_disposition_parser.rb +0 -895
  1504. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_disposition_parser.rl +0 -82
  1505. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_location_parser.rb +0 -816
  1506. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_location_parser.rl +0 -71
  1507. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_transfer_encoding_parser.rb +0 -516
  1508. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_transfer_encoding_parser.rl +0 -64
  1509. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_type_parser.rb +0 -1042
  1510. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/content_type_parser.rl +0 -83
  1511. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/date_time_parser.rb +0 -885
  1512. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/date_time_parser.rl +0 -62
  1513. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/envelope_from_parser.rb +0 -3581
  1514. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/envelope_from_parser.rl +0 -82
  1515. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/message_ids_parser.rb +0 -2854
  1516. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/message_ids_parser.rl +0 -82
  1517. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/mime_version_parser.rb +0 -507
  1518. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/mime_version_parser.rl +0 -61
  1519. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/phrase_lists_parser.rb +0 -878
  1520. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/phrase_lists_parser.rl +0 -83
  1521. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/received_parser.rb +0 -8776
  1522. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/received_parser.rl +0 -84
  1523. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +0 -13
  1524. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc2045_content_type.rl +0 -25
  1525. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc2045_mime.rl +0 -16
  1526. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc2183_content_disposition.rl +0 -15
  1527. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc3629_utf8.rl +0 -19
  1528. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc5234_abnf_core_rules.rl +0 -22
  1529. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc5322.rl +0 -59
  1530. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc5322_address.rl +0 -72
  1531. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc5322_date_time.rl +0 -37
  1532. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parsers/rfc5322_lexical_tokens.rl +0 -60
  1533. data/vendor/bundle/gems/mail-2.7.1/lib/mail/part.rb +0 -123
  1534. data/vendor/bundle/gems/mail-2.7.1/lib/mail/parts_list.rb +0 -74
  1535. data/vendor/bundle/gems/mail-2.7.1/lib/mail/utilities.rb +0 -324
  1536. data/vendor/bundle/gems/mail-2.7.1/lib/mail/values/unicode_tables.dat +0 -0
  1537. data/vendor/bundle/gems/mail-2.7.1/lib/mail/version.rb +0 -17
  1538. data/vendor/bundle/gems/mail-2.7.1/lib/mail/version_specific/ruby_1_8.rb +0 -163
  1539. data/vendor/bundle/gems/mail-2.7.1/lib/mail/version_specific/ruby_1_9.rb +0 -278
  1540. data/vendor/bundle/gems/mime-types-3.2.2/Code-of-Conduct.md +0 -73
  1541. data/vendor/bundle/gems/mime-types-3.2.2/Contributing.md +0 -139
  1542. data/vendor/bundle/gems/mime-types-3.2.2/History.md +0 -208
  1543. data/vendor/bundle/gems/mime-types-3.2.2/Licence.md +0 -25
  1544. data/vendor/bundle/gems/mime-types-3.2.2/Manifest.txt +0 -31
  1545. data/vendor/bundle/gems/mime-types-3.2.2/README.rdoc +0 -200
  1546. data/vendor/bundle/gems/mime-types-3.2.2/Rakefile +0 -256
  1547. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime-types.rb +0 -3
  1548. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/type.rb +0 -573
  1549. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/type/columnar.rb +0 -57
  1550. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types.rb +0 -230
  1551. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/_columnar.rb +0 -137
  1552. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/cache.rb +0 -58
  1553. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/columnar.rb +0 -3
  1554. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/container.rb +0 -94
  1555. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/deprecations.rb +0 -34
  1556. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/full.rb +0 -19
  1557. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/loader.rb +0 -146
  1558. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/logger.rb +0 -39
  1559. data/vendor/bundle/gems/mime-types-3.2.2/lib/mime/types/registry.rb +0 -90
  1560. data/vendor/bundle/gems/mime-types-3.2.2/test/bad-fixtures/malformed +0 -9
  1561. data/vendor/bundle/gems/mime-types-3.2.2/test/fixture/json.json +0 -1
  1562. data/vendor/bundle/gems/mime-types-3.2.2/test/fixture/old-data +0 -9
  1563. data/vendor/bundle/gems/mime-types-3.2.2/test/fixture/yaml.yaml +0 -55
  1564. data/vendor/bundle/gems/mime-types-3.2.2/test/minitest_helper.rb +0 -15
  1565. data/vendor/bundle/gems/mime-types-3.2.2/test/test_mime_type.rb +0 -614
  1566. data/vendor/bundle/gems/mime-types-3.2.2/test/test_mime_types.rb +0 -171
  1567. data/vendor/bundle/gems/mime-types-3.2.2/test/test_mime_types_cache.rb +0 -120
  1568. data/vendor/bundle/gems/mime-types-3.2.2/test/test_mime_types_class.rb +0 -161
  1569. data/vendor/bundle/gems/mime-types-3.2.2/test/test_mime_types_lazy.rb +0 -51
  1570. data/vendor/bundle/gems/mime-types-3.2.2/test/test_mime_types_loader.rb +0 -34
  1571. data/vendor/bundle/gems/mime-types-data-3.2018.0812/Code-of-Conduct.md +0 -75
  1572. data/vendor/bundle/gems/mime-types-data-3.2018.0812/Contributing.md +0 -160
  1573. data/vendor/bundle/gems/mime-types-data-3.2018.0812/History.md +0 -379
  1574. data/vendor/bundle/gems/mime-types-data-3.2018.0812/Licence.md +0 -25
  1575. data/vendor/bundle/gems/mime-types-data-3.2018.0812/Manifest.txt +0 -31
  1576. data/vendor/bundle/gems/mime-types-data-3.2018.0812/README.md +0 -63
  1577. data/vendor/bundle/gems/mime-types-data-3.2018.0812/Rakefile +0 -80
  1578. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime-types.json +0 -1
  1579. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.content_type.column +0 -2137
  1580. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.docs.column +0 -2137
  1581. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.encoding.column +0 -2137
  1582. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.flags.column +0 -2137
  1583. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.friendly.column +0 -2137
  1584. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.pext.column +0 -2137
  1585. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.use_instead.column +0 -2137
  1586. data/vendor/bundle/gems/mime-types-data-3.2018.0812/data/mime.xrefs.column +0 -2137
  1587. data/vendor/bundle/gems/mime-types-data-3.2018.0812/lib/mime-types-data.rb +0 -3
  1588. data/vendor/bundle/gems/mime-types-data-3.2018.0812/lib/mime/types/data.rb +0 -21
  1589. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/application.yaml +0 -15827
  1590. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/audio.yaml +0 -1616
  1591. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/chemical.yaml +0 -71
  1592. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/conference.yaml +0 -9
  1593. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/drawing.yaml +0 -15
  1594. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/font.yaml +0 -65
  1595. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/image.yaml +0 -963
  1596. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/message.yaml +0 -200
  1597. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/model.yaml +0 -302
  1598. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/multipart.yaml +0 -179
  1599. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/text.yaml +0 -1019
  1600. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/video.yaml +0 -1043
  1601. data/vendor/bundle/gems/mime-types-data-3.2018.0812/types/world.yaml +0 -8
  1602. data/vendor/bundle/gems/mini_mime-1.0.1/CHANGELOG +0 -33
  1603. data/vendor/bundle/gems/mini_mime-1.0.1/CODE_OF_CONDUCT.md +0 -74
  1604. data/vendor/bundle/gems/mini_mime-1.0.1/Gemfile +0 -6
  1605. data/vendor/bundle/gems/mini_mime-1.0.1/LICENSE.txt +0 -21
  1606. data/vendor/bundle/gems/mini_mime-1.0.1/README.md +0 -95
  1607. data/vendor/bundle/gems/mini_mime-1.0.1/Rakefile +0 -96
  1608. data/vendor/bundle/gems/mini_mime-1.0.1/bench/bench.rb +0 -52
  1609. data/vendor/bundle/gems/mini_mime-1.0.1/bin/console +0 -14
  1610. data/vendor/bundle/gems/mini_mime-1.0.1/bin/setup +0 -8
  1611. data/vendor/bundle/gems/mini_mime-1.0.1/lib/db/content_type_mime.db +0 -852
  1612. data/vendor/bundle/gems/mini_mime-1.0.1/lib/db/ext_mime.db +0 -1170
  1613. data/vendor/bundle/gems/mini_mime-1.0.1/lib/mini_mime.rb +0 -156
  1614. data/vendor/bundle/gems/mini_mime-1.0.1/lib/mini_mime/version.rb +0 -3
  1615. data/vendor/bundle/gems/mini_mime-1.0.1/mini_mime.gemspec +0 -28
  1616. data/vendor/bundle/gems/mini_portile2-2.4.0/CHANGELOG.md +0 -209
  1617. data/vendor/bundle/gems/mini_portile2-2.4.0/Gemfile +0 -4
  1618. data/vendor/bundle/gems/mini_portile2-2.4.0/LICENSE.txt +0 -20
  1619. data/vendor/bundle/gems/mini_portile2-2.4.0/README.md +0 -245
  1620. data/vendor/bundle/gems/mini_portile2-2.4.0/Rakefile +0 -29
  1621. data/vendor/bundle/gems/mini_portile2-2.4.0/appveyor.yml +0 -25
  1622. data/vendor/bundle/gems/mini_portile2-2.4.0/concourse/mini_portile.yml +0 -141
  1623. data/vendor/bundle/gems/mini_portile2-2.4.0/concourse/tasks/rake-test/task.ps1 +0 -11
  1624. data/vendor/bundle/gems/mini_portile2-2.4.0/concourse/tasks/rake-test/task.sh +0 -13
  1625. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2.rb +0 -3
  1626. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2/mini_portile.rb +0 -556
  1627. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2/mini_portile_cmake.rb +0 -40
  1628. data/vendor/bundle/gems/mini_portile2-2.4.0/lib/mini_portile2/version.rb +0 -3
  1629. data/vendor/bundle/gems/mini_portile2-2.4.0/mini_portile2.gemspec +0 -42
  1630. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/git/config +0 -4
  1631. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/gpg-fixtures/data +0 -1
  1632. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/gpg-fixtures/data.asc +0 -9
  1633. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/gpg-fixtures/data.invalid.asc +0 -9
  1634. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/patch 1.diff +0 -7
  1635. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test mini portile-1.0.0/configure +0 -11
  1636. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test-cmake-1.0/CMakeLists.txt +0 -7
  1637. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test-cmake-1.0/hello.c +0 -4
  1638. data/vendor/bundle/gems/mini_portile2-2.4.0/test/assets/test-download-archive.tar.gz +0 -1
  1639. data/vendor/bundle/gems/mini_portile2-2.4.0/test/helper.rb +0 -60
  1640. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_cmake.rb +0 -64
  1641. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_cook.rb +0 -115
  1642. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_digest.rb +0 -215
  1643. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_download.rb +0 -71
  1644. data/vendor/bundle/gems/mini_portile2-2.4.0/test/test_proxy.rb +0 -121
  1645. data/vendor/bundle/gems/multipart-post-2.0.0/Gemfile +0 -14
  1646. data/vendor/bundle/gems/multipart-post-2.0.0/History.txt +0 -60
  1647. data/vendor/bundle/gems/multipart-post-2.0.0/Manifest.txt +0 -9
  1648. data/vendor/bundle/gems/multipart-post-2.0.0/README.md +0 -77
  1649. data/vendor/bundle/gems/multipart-post-2.0.0/Rakefile +0 -9
  1650. data/vendor/bundle/gems/multipart-post-2.0.0/lib/composite_io.rb +0 -108
  1651. data/vendor/bundle/gems/multipart-post-2.0.0/lib/multipart_post.rb +0 -9
  1652. data/vendor/bundle/gems/multipart-post-2.0.0/lib/multipartable.rb +0 -29
  1653. data/vendor/bundle/gems/multipart-post-2.0.0/lib/net/http/post/multipart.rb +0 -27
  1654. data/vendor/bundle/gems/multipart-post-2.0.0/lib/parts.rb +0 -96
  1655. data/vendor/bundle/gems/multipart-post-2.0.0/multipart-post.gemspec +0 -22
  1656. data/vendor/bundle/gems/multipart-post-2.0.0/test/multibyte.txt +0 -1
  1657. data/vendor/bundle/gems/multipart-post-2.0.0/test/net/http/post/test_multipart.rb +0 -110
  1658. data/vendor/bundle/gems/multipart-post-2.0.0/test/test_composite_io.rb +0 -115
  1659. data/vendor/bundle/gems/multipart-post-2.0.0/test/test_parts.rb +0 -86
  1660. data/vendor/bundle/gems/nokogiri-1.10.2/LICENSE-DEPENDENCIES.md +0 -1614
  1661. data/vendor/bundle/gems/nokogiri-1.10.2/LICENSE.md +0 -9
  1662. data/vendor/bundle/gems/nokogiri-1.10.2/README.md +0 -198
  1663. data/vendor/bundle/gems/nokogiri-1.10.2/bin/nokogiri +0 -118
  1664. data/vendor/bundle/gems/nokogiri-1.10.2/dependencies.yml +0 -72
  1665. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/Makefile +0 -627
  1666. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/depend +0 -358
  1667. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/extconf.rb +0 -686
  1668. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_document.c +0 -170
  1669. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_document.h +0 -10
  1670. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_document.o +0 -0
  1671. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_element_description.c +0 -279
  1672. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_element_description.h +0 -10
  1673. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_element_description.o +0 -0
  1674. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_entity_lookup.c +0 -32
  1675. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_entity_lookup.h +0 -8
  1676. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_entity_lookup.o +0 -0
  1677. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_sax_parser_context.c +0 -116
  1678. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_sax_parser_context.h +0 -11
  1679. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_sax_parser_context.o +0 -0
  1680. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_sax_push_parser.c +0 -87
  1681. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_sax_push_parser.h +0 -9
  1682. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/html_sax_push_parser.o +0 -0
  1683. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/nokogiri.c +0 -141
  1684. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/nokogiri.h +0 -121
  1685. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/nokogiri.o +0 -0
  1686. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/nokogiri.so +0 -0
  1687. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_attr.c +0 -103
  1688. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_attr.h +0 -9
  1689. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_attr.o +0 -0
  1690. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_attribute_decl.c +0 -70
  1691. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_attribute_decl.h +0 -9
  1692. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_attribute_decl.o +0 -0
  1693. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_cdata.c +0 -62
  1694. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_cdata.h +0 -9
  1695. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_cdata.o +0 -0
  1696. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_comment.c +0 -69
  1697. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_comment.h +0 -9
  1698. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_comment.o +0 -0
  1699. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_document.c +0 -608
  1700. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_document.h +0 -23
  1701. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_document.o +0 -0
  1702. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_document_fragment.c +0 -48
  1703. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_document_fragment.h +0 -10
  1704. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_document_fragment.o +0 -0
  1705. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_dtd.c +0 -202
  1706. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_dtd.h +0 -10
  1707. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_dtd.o +0 -0
  1708. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_element_content.c +0 -123
  1709. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_element_content.h +0 -10
  1710. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_element_content.o +0 -0
  1711. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_element_decl.c +0 -69
  1712. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_element_decl.h +0 -9
  1713. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_element_decl.o +0 -0
  1714. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_encoding_handler.c +0 -79
  1715. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_encoding_handler.h +0 -8
  1716. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_encoding_handler.o +0 -0
  1717. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_entity_decl.c +0 -110
  1718. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_entity_decl.h +0 -10
  1719. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_entity_decl.o +0 -0
  1720. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_entity_reference.c +0 -52
  1721. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_entity_reference.h +0 -9
  1722. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_entity_reference.o +0 -0
  1723. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_io.c +0 -61
  1724. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_io.h +0 -11
  1725. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_io.o +0 -0
  1726. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  1727. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  1728. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_libxml2_hacks.o +0 -0
  1729. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_namespace.c +0 -111
  1730. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_namespace.h +0 -14
  1731. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_namespace.o +0 -0
  1732. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_node.c +0 -1753
  1733. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_node.h +0 -13
  1734. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_node.o +0 -0
  1735. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_node_set.c +0 -486
  1736. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_node_set.h +0 -12
  1737. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_node_set.o +0 -0
  1738. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_processing_instruction.c +0 -56
  1739. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_processing_instruction.h +0 -9
  1740. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_processing_instruction.o +0 -0
  1741. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_reader.c +0 -668
  1742. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_reader.h +0 -10
  1743. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_reader.o +0 -0
  1744. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_relax_ng.c +0 -161
  1745. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_relax_ng.h +0 -9
  1746. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_relax_ng.o +0 -0
  1747. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_parser.c +0 -310
  1748. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_parser.h +0 -39
  1749. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_parser.o +0 -0
  1750. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_parser_context.c +0 -262
  1751. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_parser_context.h +0 -10
  1752. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_parser_context.o +0 -0
  1753. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_push_parser.c +0 -159
  1754. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_push_parser.h +0 -9
  1755. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_sax_push_parser.o +0 -0
  1756. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_schema.c +0 -205
  1757. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_schema.h +0 -9
  1758. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_schema.o +0 -0
  1759. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_syntax_error.c +0 -64
  1760. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_syntax_error.h +0 -13
  1761. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_syntax_error.o +0 -0
  1762. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_text.c +0 -52
  1763. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_text.h +0 -9
  1764. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_text.o +0 -0
  1765. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_xpath_context.c +0 -298
  1766. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_xpath_context.h +0 -10
  1767. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xml_xpath_context.o +0 -0
  1768. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xslt_stylesheet.c +0 -270
  1769. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xslt_stylesheet.h +0 -14
  1770. data/vendor/bundle/gems/nokogiri-1.10.2/ext/nokogiri/xslt_stylesheet.o +0 -0
  1771. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri.rb +0 -144
  1772. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css.rb +0 -27
  1773. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/node.rb +0 -52
  1774. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/parser.rb +0 -750
  1775. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/parser.y +0 -272
  1776. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/parser_extras.rb +0 -91
  1777. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/syntax_error.rb +0 -7
  1778. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/tokenizer.rb +0 -152
  1779. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/tokenizer.rex +0 -55
  1780. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/css/xpath_visitor.rb +0 -230
  1781. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/decorators/slop.rb +0 -42
  1782. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html.rb +0 -37
  1783. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/builder.rb +0 -35
  1784. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/document.rb +0 -335
  1785. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/document_fragment.rb +0 -49
  1786. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/element_description.rb +0 -23
  1787. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/element_description_defaults.rb +0 -671
  1788. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/entity_lookup.rb +0 -13
  1789. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/sax/parser.rb +0 -62
  1790. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/sax/parser_context.rb +0 -16
  1791. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/html/sax/push_parser.rb +0 -36
  1792. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/nokogiri.so +0 -0
  1793. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/syntax_error.rb +0 -4
  1794. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/version.rb +0 -109
  1795. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml.rb +0 -75
  1796. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/attr.rb +0 -14
  1797. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/attribute_decl.rb +0 -18
  1798. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/builder.rb +0 -443
  1799. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/cdata.rb +0 -11
  1800. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/character_data.rb +0 -7
  1801. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/document.rb +0 -285
  1802. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/document_fragment.rb +0 -160
  1803. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/dtd.rb +0 -32
  1804. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/element_content.rb +0 -36
  1805. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/element_decl.rb +0 -13
  1806. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/entity_decl.rb +0 -19
  1807. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/entity_reference.rb +0 -18
  1808. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/namespace.rb +0 -13
  1809. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/node.rb +0 -902
  1810. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/node/save_options.rb +0 -61
  1811. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/node_set.rb +0 -371
  1812. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/notation.rb +0 -6
  1813. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/parse_options.rb +0 -120
  1814. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/pp.rb +0 -2
  1815. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/pp/character_data.rb +0 -18
  1816. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/pp/node.rb +0 -56
  1817. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/processing_instruction.rb +0 -8
  1818. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/reader.rb +0 -112
  1819. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/relax_ng.rb +0 -32
  1820. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/sax.rb +0 -4
  1821. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/sax/document.rb +0 -171
  1822. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/sax/parser.rb +0 -122
  1823. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/sax/parser_context.rb +0 -16
  1824. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/sax/push_parser.rb +0 -60
  1825. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/schema.rb +0 -63
  1826. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/searchable.rb +0 -230
  1827. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/syntax_error.rb +0 -70
  1828. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/text.rb +0 -9
  1829. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/xpath.rb +0 -10
  1830. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/xpath/syntax_error.rb +0 -11
  1831. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xml/xpath_context.rb +0 -16
  1832. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xslt.rb +0 -56
  1833. data/vendor/bundle/gems/nokogiri-1.10.2/lib/nokogiri/xslt/stylesheet.rb +0 -25
  1834. data/vendor/bundle/gems/nokogiri-1.10.2/lib/xsd/xmlparser/nokogiri.rb +0 -102
  1835. data/vendor/bundle/gems/nokogiri-1.10.2/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
  1836. data/vendor/bundle/gems/nokogiri-1.10.2/patches/libxml2/0002-Remove-script-macro-support.patch +0 -40
  1837. data/vendor/bundle/gems/nokogiri-1.10.2/patches/libxml2/0003-Update-entities-to-remove-handling-of-ssi.patch +0 -44
  1838. data/vendor/bundle/gems/octokit-4.13.0/CONTRIBUTING.md +0 -22
  1839. data/vendor/bundle/gems/octokit-4.13.0/LICENSE.md +0 -20
  1840. data/vendor/bundle/gems/octokit-4.13.0/README.md +0 -767
  1841. data/vendor/bundle/gems/octokit-4.13.0/Rakefile +0 -22
  1842. data/vendor/bundle/gems/octokit-4.13.0/lib/ext/sawyer/relation.rb +0 -10
  1843. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit.rb +0 -59
  1844. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/arguments.rb +0 -14
  1845. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/authentication.rb +0 -82
  1846. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client.rb +0 -243
  1847. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/apps.rb +0 -209
  1848. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/authorizations.rb +0 -250
  1849. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/commit_comments.rb +0 -95
  1850. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/commits.rb +0 -239
  1851. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/community_profile.rb +0 -22
  1852. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/contents.rb +0 -164
  1853. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/deployments.rb +0 -72
  1854. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/downloads.rb +0 -50
  1855. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/emojis.rb +0 -18
  1856. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/events.rb +0 -151
  1857. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/feeds.rb +0 -33
  1858. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/gists.rb +0 -234
  1859. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/gitignore.rb +0 -43
  1860. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/hooks.rb +0 -297
  1861. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/issues.rb +0 -363
  1862. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/labels.rb +0 -156
  1863. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/legacy_search.rb +0 -42
  1864. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/licenses.rb +0 -45
  1865. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/markdown.rb +0 -27
  1866. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/marketplace.rb +0 -56
  1867. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/meta.rb +0 -21
  1868. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/milestones.rb +0 -87
  1869. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/notifications.rb +0 -167
  1870. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/objects.rb +0 -141
  1871. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/organizations.rb +0 -792
  1872. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/pages.rb +0 -63
  1873. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/projects.rb +0 -314
  1874. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/pub_sub_hubbub.rb +0 -111
  1875. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/pull_requests.rb +0 -303
  1876. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/rate_limit.rb +0 -54
  1877. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/reactions.rb +0 -158
  1878. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/refs.rb +0 -118
  1879. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/releases.rb +0 -164
  1880. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/repositories.rb +0 -701
  1881. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/repository_invitations.rb +0 -96
  1882. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/reviews.rb +0 -209
  1883. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/say.rb +0 -19
  1884. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/search.rb +0 -91
  1885. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/service_status.rb +0 -38
  1886. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/source_import.rb +0 -161
  1887. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/stats.rb +0 -107
  1888. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/statuses.rb +0 -47
  1889. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/traffic.rb +0 -69
  1890. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/client/users.rb +0 -355
  1891. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/configurable.rb +0 -151
  1892. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/connection.rb +0 -200
  1893. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/default.rb +0 -176
  1894. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_admin_client.rb +0 -40
  1895. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_admin_client/admin_stats.rb +0 -120
  1896. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_admin_client/license.rb +0 -18
  1897. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_admin_client/orgs.rb +0 -27
  1898. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_admin_client/search_indexing.rb +0 -83
  1899. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_admin_client/users.rb +0 -128
  1900. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_management_console_client.rb +0 -50
  1901. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/enterprise_management_console_client/management_console.rb +0 -176
  1902. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/error.rb +0 -300
  1903. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/gist.rb +0 -36
  1904. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/middleware/follow_redirects.rb +0 -131
  1905. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/organization.rb +0 -17
  1906. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/preview.rb +0 -41
  1907. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/rate_limit.rb +0 -33
  1908. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/repo_arguments.rb +0 -19
  1909. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/repository.rb +0 -95
  1910. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/response/feed_parser.rb +0 -21
  1911. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/response/raise_error.rb +0 -21
  1912. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/user.rb +0 -19
  1913. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/version.rb +0 -17
  1914. data/vendor/bundle/gems/octokit-4.13.0/lib/octokit/warnable.rb +0 -17
  1915. data/vendor/bundle/gems/octokit-4.13.0/octokit.gemspec +0 -22
  1916. data/vendor/bundle/gems/phantomjs-2.1.1.0/Gemfile +0 -4
  1917. data/vendor/bundle/gems/phantomjs-2.1.1.0/LICENSE +0 -27
  1918. data/vendor/bundle/gems/phantomjs-2.1.1.0/README.md +0 -78
  1919. data/vendor/bundle/gems/phantomjs-2.1.1.0/Rakefile +0 -2
  1920. data/vendor/bundle/gems/phantomjs-2.1.1.0/lib/phantomjs.rb +0 -61
  1921. data/vendor/bundle/gems/phantomjs-2.1.1.0/lib/phantomjs/platform.rb +0 -162
  1922. data/vendor/bundle/gems/phantomjs-2.1.1.0/lib/phantomjs/poltergeist.rb +0 -13
  1923. data/vendor/bundle/gems/phantomjs-2.1.1.0/lib/phantomjs/version.rb +0 -3
  1924. data/vendor/bundle/gems/phantomjs-2.1.1.0/phantomjs.gemspec +0 -27
  1925. data/vendor/bundle/gems/phantomjs-2.1.1.0/spec/phantomjs_spec.rb +0 -50
  1926. data/vendor/bundle/gems/phantomjs-2.1.1.0/spec/platform_spec.rb +0 -203
  1927. data/vendor/bundle/gems/phantomjs-2.1.1.0/spec/runner.js +0 -5
  1928. data/vendor/bundle/gems/phantomjs-2.1.1.0/spec/spec_helper.rb +0 -11
  1929. data/vendor/bundle/gems/pit-0.0.7/ChangeLog +0 -87
  1930. data/vendor/bundle/gems/pit-0.0.7/Gemfile +0 -6
  1931. data/vendor/bundle/gems/pit-0.0.7/README +0 -59
  1932. data/vendor/bundle/gems/pit-0.0.7/Rakefile +0 -9
  1933. data/vendor/bundle/gems/pit-0.0.7/bin/pit +0 -137
  1934. data/vendor/bundle/gems/pit-0.0.7/lib/pit.rb +0 -97
  1935. data/vendor/bundle/gems/pit-0.0.7/lib/pit/version.rb +0 -4
  1936. data/vendor/bundle/gems/pit-0.0.7/pit.gemspec +0 -19
  1937. data/vendor/bundle/gems/pit-0.0.7/test/pit_test.rb +0 -112
  1938. data/vendor/bundle/gems/pit-0.0.7/test/test_helper.rb +0 -3
  1939. data/vendor/bundle/gems/power_assert-1.1.4/BSDL +0 -22
  1940. data/vendor/bundle/gems/power_assert-1.1.4/COPYING +0 -57
  1941. data/vendor/bundle/gems/power_assert-1.1.4/Gemfile +0 -9
  1942. data/vendor/bundle/gems/power_assert-1.1.4/LEGAL +0 -4
  1943. data/vendor/bundle/gems/power_assert-1.1.4/README.rdoc +0 -81
  1944. data/vendor/bundle/gems/power_assert-1.1.4/Rakefile +0 -59
  1945. data/vendor/bundle/gems/power_assert-1.1.4/bin/console +0 -12
  1946. data/vendor/bundle/gems/power_assert-1.1.4/bin/setup +0 -6
  1947. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert.rb +0 -98
  1948. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/colorize.rb +0 -9
  1949. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/configuration.rb +0 -46
  1950. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/context.rb +0 -235
  1951. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/enable_tracepoint_events.rb +0 -91
  1952. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/inspector.rb +0 -61
  1953. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/parser.rb +0 -251
  1954. data/vendor/bundle/gems/power_assert-1.1.4/lib/power_assert/version.rb +0 -3
  1955. data/vendor/bundle/gems/power_assert-1.1.4/power_assert.gemspec +0 -31
  1956. data/vendor/bundle/gems/public_suffix-3.0.3/2.0-Upgrade.md +0 -52
  1957. data/vendor/bundle/gems/public_suffix-3.0.3/CHANGELOG.md +0 -340
  1958. data/vendor/bundle/gems/public_suffix-3.0.3/Gemfile +0 -10
  1959. data/vendor/bundle/gems/public_suffix-3.0.3/LICENSE.txt +0 -22
  1960. data/vendor/bundle/gems/public_suffix-3.0.3/README.md +0 -202
  1961. data/vendor/bundle/gems/public_suffix-3.0.3/Rakefile +0 -49
  1962. data/vendor/bundle/gems/public_suffix-3.0.3/bin/console +0 -14
  1963. data/vendor/bundle/gems/public_suffix-3.0.3/data/list.txt +0 -12659
  1964. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix.rb +0 -175
  1965. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/domain.rb +0 -233
  1966. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/errors.rb +0 -39
  1967. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/list.rb +0 -243
  1968. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/rule.rb +0 -348
  1969. data/vendor/bundle/gems/public_suffix-3.0.3/lib/public_suffix/version.rb +0 -10
  1970. data/vendor/bundle/gems/public_suffix-3.0.3/public_suffix.gemspec +0 -25
  1971. data/vendor/bundle/gems/public_suffix-3.0.3/test/acceptance_test.rb +0 -127
  1972. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_find.rb +0 -66
  1973. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_find_all.rb +0 -102
  1974. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_names.rb +0 -91
  1975. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_select.rb +0 -26
  1976. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_select_incremental.rb +0 -25
  1977. data/vendor/bundle/gems/public_suffix-3.0.3/test/benchmarks/bm_valid.rb +0 -101
  1978. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/domain_profiler.rb +0 -12
  1979. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/find_profiler.rb +0 -12
  1980. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/find_profiler_jp.rb +0 -12
  1981. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/initialization_profiler.rb +0 -11
  1982. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/list_profsize.rb +0 -11
  1983. data/vendor/bundle/gems/public_suffix-3.0.3/test/profilers/object_binsize.rb +0 -57
  1984. data/vendor/bundle/gems/public_suffix-3.0.3/test/psl_test.rb +0 -49
  1985. data/vendor/bundle/gems/public_suffix-3.0.3/test/test_helper.rb +0 -13
  1986. data/vendor/bundle/gems/public_suffix-3.0.3/test/tests.txt +0 -98
  1987. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/domain_test.rb +0 -104
  1988. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/errors_test.rb +0 -23
  1989. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/list_test.rb +0 -239
  1990. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/public_suffix_test.rb +0 -186
  1991. data/vendor/bundle/gems/public_suffix-3.0.3/test/unit/rule_test.rb +0 -220
  1992. data/vendor/bundle/gems/rack-2.0.6/COPYING +0 -18
  1993. data/vendor/bundle/gems/rack-2.0.6/HISTORY.md +0 -505
  1994. data/vendor/bundle/gems/rack-2.0.6/README.rdoc +0 -302
  1995. data/vendor/bundle/gems/rack-2.0.6/Rakefile +0 -116
  1996. data/vendor/bundle/gems/rack-2.0.6/SPEC +0 -264
  1997. data/vendor/bundle/gems/rack-2.0.6/bin/rackup +0 -4
  1998. data/vendor/bundle/gems/rack-2.0.6/contrib/rack.png +0 -0
  1999. data/vendor/bundle/gems/rack-2.0.6/contrib/rack.svg +0 -150
  2000. data/vendor/bundle/gems/rack-2.0.6/contrib/rack_logo.svg +0 -164
  2001. data/vendor/bundle/gems/rack-2.0.6/contrib/rdoc.css +0 -412
  2002. data/vendor/bundle/gems/rack-2.0.6/example/lobster.ru +0 -4
  2003. data/vendor/bundle/gems/rack-2.0.6/example/protectedlobster.rb +0 -14
  2004. data/vendor/bundle/gems/rack-2.0.6/example/protectedlobster.ru +0 -8
  2005. data/vendor/bundle/gems/rack-2.0.6/lib/rack.rb +0 -147
  2006. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/abstract/handler.rb +0 -37
  2007. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/abstract/request.rb +0 -47
  2008. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/basic.rb +0 -58
  2009. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/digest/md5.rb +0 -129
  2010. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/digest/nonce.rb +0 -51
  2011. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/digest/params.rb +0 -52
  2012. data/vendor/bundle/gems/rack-2.0.6/lib/rack/auth/digest/request.rb +0 -41
  2013. data/vendor/bundle/gems/rack-2.0.6/lib/rack/body_proxy.rb +0 -44
  2014. data/vendor/bundle/gems/rack-2.0.6/lib/rack/builder.rb +0 -164
  2015. data/vendor/bundle/gems/rack-2.0.6/lib/rack/cascade.rb +0 -52
  2016. data/vendor/bundle/gems/rack-2.0.6/lib/rack/chunked.rb +0 -69
  2017. data/vendor/bundle/gems/rack-2.0.6/lib/rack/common_logger.rb +0 -72
  2018. data/vendor/bundle/gems/rack-2.0.6/lib/rack/conditional_get.rb +0 -79
  2019. data/vendor/bundle/gems/rack-2.0.6/lib/rack/config.rb +0 -20
  2020. data/vendor/bundle/gems/rack-2.0.6/lib/rack/content_length.rb +0 -37
  2021. data/vendor/bundle/gems/rack-2.0.6/lib/rack/content_type.rb +0 -29
  2022. data/vendor/bundle/gems/rack-2.0.6/lib/rack/deflater.rb +0 -119
  2023. data/vendor/bundle/gems/rack-2.0.6/lib/rack/directory.rb +0 -179
  2024. data/vendor/bundle/gems/rack-2.0.6/lib/rack/etag.rb +0 -74
  2025. data/vendor/bundle/gems/rack-2.0.6/lib/rack/events.rb +0 -154
  2026. data/vendor/bundle/gems/rack-2.0.6/lib/rack/file.rb +0 -176
  2027. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler.rb +0 -99
  2028. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler/cgi.rb +0 -60
  2029. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler/fastcgi.rb +0 -100
  2030. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler/lsws.rb +0 -61
  2031. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler/scgi.rb +0 -70
  2032. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler/thin.rb +0 -36
  2033. data/vendor/bundle/gems/rack-2.0.6/lib/rack/handler/webrick.rb +0 -120
  2034. data/vendor/bundle/gems/rack-2.0.6/lib/rack/head.rb +0 -25
  2035. data/vendor/bundle/gems/rack-2.0.6/lib/rack/lint.rb +0 -760
  2036. data/vendor/bundle/gems/rack-2.0.6/lib/rack/lobster.rb +0 -70
  2037. data/vendor/bundle/gems/rack-2.0.6/lib/rack/lock.rb +0 -31
  2038. data/vendor/bundle/gems/rack-2.0.6/lib/rack/logger.rb +0 -18
  2039. data/vendor/bundle/gems/rack-2.0.6/lib/rack/media_type.rb +0 -38
  2040. data/vendor/bundle/gems/rack-2.0.6/lib/rack/method_override.rb +0 -50
  2041. data/vendor/bundle/gems/rack-2.0.6/lib/rack/mime.rb +0 -677
  2042. data/vendor/bundle/gems/rack-2.0.6/lib/rack/mock.rb +0 -196
  2043. data/vendor/bundle/gems/rack-2.0.6/lib/rack/multipart.rb +0 -63
  2044. data/vendor/bundle/gems/rack-2.0.6/lib/rack/multipart/generator.rb +0 -93
  2045. data/vendor/bundle/gems/rack-2.0.6/lib/rack/multipart/parser.rb +0 -369
  2046. data/vendor/bundle/gems/rack-2.0.6/lib/rack/multipart/uploaded_file.rb +0 -33
  2047. data/vendor/bundle/gems/rack-2.0.6/lib/rack/null_logger.rb +0 -37
  2048. data/vendor/bundle/gems/rack-2.0.6/lib/rack/query_parser.rb +0 -192
  2049. data/vendor/bundle/gems/rack-2.0.6/lib/rack/recursive.rb +0 -62
  2050. data/vendor/bundle/gems/rack-2.0.6/lib/rack/reloader.rb +0 -110
  2051. data/vendor/bundle/gems/rack-2.0.6/lib/rack/request.rb +0 -500
  2052. data/vendor/bundle/gems/rack-2.0.6/lib/rack/response.rb +0 -235
  2053. data/vendor/bundle/gems/rack-2.0.6/lib/rack/rewindable_input.rb +0 -93
  2054. data/vendor/bundle/gems/rack-2.0.6/lib/rack/runtime.rb +0 -32
  2055. data/vendor/bundle/gems/rack-2.0.6/lib/rack/sendfile.rb +0 -158
  2056. data/vendor/bundle/gems/rack-2.0.6/lib/rack/server.rb +0 -395
  2057. data/vendor/bundle/gems/rack-2.0.6/lib/rack/session/abstract/id.rb +0 -445
  2058. data/vendor/bundle/gems/rack-2.0.6/lib/rack/session/cookie.rb +0 -195
  2059. data/vendor/bundle/gems/rack-2.0.6/lib/rack/session/memcache.rb +0 -93
  2060. data/vendor/bundle/gems/rack-2.0.6/lib/rack/session/pool.rb +0 -76
  2061. data/vendor/bundle/gems/rack-2.0.6/lib/rack/show_exceptions.rb +0 -386
  2062. data/vendor/bundle/gems/rack-2.0.6/lib/rack/show_status.rb +0 -113
  2063. data/vendor/bundle/gems/rack-2.0.6/lib/rack/static.rb +0 -175
  2064. data/vendor/bundle/gems/rack-2.0.6/lib/rack/tempfile_reaper.rb +0 -22
  2065. data/vendor/bundle/gems/rack-2.0.6/lib/rack/urlmap.rb +0 -91
  2066. data/vendor/bundle/gems/rack-2.0.6/lib/rack/utils.rb +0 -620
  2067. data/vendor/bundle/gems/rack-2.0.6/rack.gemspec +0 -34
  2068. data/vendor/bundle/gems/rack-2.0.6/test/builder/an_underscore_app.rb +0 -5
  2069. data/vendor/bundle/gems/rack-2.0.6/test/builder/anything.rb +0 -5
  2070. data/vendor/bundle/gems/rack-2.0.6/test/builder/comment.ru +0 -4
  2071. data/vendor/bundle/gems/rack-2.0.6/test/builder/end.ru +0 -5
  2072. data/vendor/bundle/gems/rack-2.0.6/test/builder/line.ru +0 -1
  2073. data/vendor/bundle/gems/rack-2.0.6/test/builder/options.ru +0 -2
  2074. data/vendor/bundle/gems/rack-2.0.6/test/cgi/assets/folder/test.js +0 -1
  2075. data/vendor/bundle/gems/rack-2.0.6/test/cgi/assets/fonts/font.eot +0 -1
  2076. data/vendor/bundle/gems/rack-2.0.6/test/cgi/assets/images/image.png +0 -1
  2077. data/vendor/bundle/gems/rack-2.0.6/test/cgi/assets/index.html +0 -1
  2078. data/vendor/bundle/gems/rack-2.0.6/test/cgi/assets/javascripts/app.js +0 -1
  2079. data/vendor/bundle/gems/rack-2.0.6/test/cgi/assets/stylesheets/app.css +0 -1
  2080. data/vendor/bundle/gems/rack-2.0.6/test/cgi/lighttpd.conf +0 -26
  2081. data/vendor/bundle/gems/rack-2.0.6/test/cgi/rackup_stub.rb +0 -6
  2082. data/vendor/bundle/gems/rack-2.0.6/test/cgi/sample_rackup.ru +0 -5
  2083. data/vendor/bundle/gems/rack-2.0.6/test/cgi/test +0 -9
  2084. data/vendor/bundle/gems/rack-2.0.6/test/cgi/test+directory/test+file +0 -1
  2085. data/vendor/bundle/gems/rack-2.0.6/test/cgi/test.fcgi +0 -9
  2086. data/vendor/bundle/gems/rack-2.0.6/test/cgi/test.gz +0 -0
  2087. data/vendor/bundle/gems/rack-2.0.6/test/cgi/test.ru +0 -5
  2088. data/vendor/bundle/gems/rack-2.0.6/test/gemloader.rb +0 -10
  2089. data/vendor/bundle/gems/rack-2.0.6/test/helper.rb +0 -34
  2090. data/vendor/bundle/gems/rack-2.0.6/test/multipart/bad_robots +0 -259
  2091. data/vendor/bundle/gems/rack-2.0.6/test/multipart/binary +0 -0
  2092. data/vendor/bundle/gems/rack-2.0.6/test/multipart/content_type_and_no_filename +0 -6
  2093. data/vendor/bundle/gems/rack-2.0.6/test/multipart/empty +0 -10
  2094. data/vendor/bundle/gems/rack-2.0.6/test/multipart/fail_16384_nofile +0 -814
  2095. data/vendor/bundle/gems/rack-2.0.6/test/multipart/file1.txt +0 -1
  2096. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_and_modification_param +0 -7
  2097. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_and_no_name +0 -6
  2098. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_encoded_words +0 -7
  2099. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_escaped_quotes +0 -6
  2100. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_escaped_quotes_and_modification_param +0 -7
  2101. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_null_byte +0 -7
  2102. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_percent_escaped_quotes +0 -6
  2103. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_single_quote +0 -7
  2104. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_unescaped_percentages +0 -6
  2105. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_unescaped_percentages2 +0 -6
  2106. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_unescaped_percentages3 +0 -6
  2107. data/vendor/bundle/gems/rack-2.0.6/test/multipart/filename_with_unescaped_quotes +0 -6
  2108. data/vendor/bundle/gems/rack-2.0.6/test/multipart/ie +0 -6
  2109. data/vendor/bundle/gems/rack-2.0.6/test/multipart/invalid_character +0 -6
  2110. data/vendor/bundle/gems/rack-2.0.6/test/multipart/mixed_files +0 -21
  2111. data/vendor/bundle/gems/rack-2.0.6/test/multipart/nested +0 -10
  2112. data/vendor/bundle/gems/rack-2.0.6/test/multipart/none +0 -9
  2113. data/vendor/bundle/gems/rack-2.0.6/test/multipart/quoted +0 -15
  2114. data/vendor/bundle/gems/rack-2.0.6/test/multipart/rack-logo.png +0 -0
  2115. data/vendor/bundle/gems/rack-2.0.6/test/multipart/semicolon +0 -6
  2116. data/vendor/bundle/gems/rack-2.0.6/test/multipart/text +0 -15
  2117. data/vendor/bundle/gems/rack-2.0.6/test/multipart/three_files_three_fields +0 -31
  2118. data/vendor/bundle/gems/rack-2.0.6/test/multipart/unity3d_wwwform +0 -11
  2119. data/vendor/bundle/gems/rack-2.0.6/test/multipart/webkit +0 -32
  2120. data/vendor/bundle/gems/rack-2.0.6/test/rackup/config.ru +0 -31
  2121. data/vendor/bundle/gems/rack-2.0.6/test/registering_handler/rack/handler/registering_myself.rb +0 -8
  2122. data/vendor/bundle/gems/rack-2.0.6/test/spec_auth_basic.rb +0 -89
  2123. data/vendor/bundle/gems/rack-2.0.6/test/spec_auth_digest.rb +0 -260
  2124. data/vendor/bundle/gems/rack-2.0.6/test/spec_body_proxy.rb +0 -85
  2125. data/vendor/bundle/gems/rack-2.0.6/test/spec_builder.rb +0 -233
  2126. data/vendor/bundle/gems/rack-2.0.6/test/spec_cascade.rb +0 -63
  2127. data/vendor/bundle/gems/rack-2.0.6/test/spec_cgi.rb +0 -84
  2128. data/vendor/bundle/gems/rack-2.0.6/test/spec_chunked.rb +0 -103
  2129. data/vendor/bundle/gems/rack-2.0.6/test/spec_common_logger.rb +0 -95
  2130. data/vendor/bundle/gems/rack-2.0.6/test/spec_conditional_get.rb +0 -103
  2131. data/vendor/bundle/gems/rack-2.0.6/test/spec_config.rb +0 -23
  2132. data/vendor/bundle/gems/rack-2.0.6/test/spec_content_length.rb +0 -86
  2133. data/vendor/bundle/gems/rack-2.0.6/test/spec_content_type.rb +0 -46
  2134. data/vendor/bundle/gems/rack-2.0.6/test/spec_deflater.rb +0 -375
  2135. data/vendor/bundle/gems/rack-2.0.6/test/spec_directory.rb +0 -148
  2136. data/vendor/bundle/gems/rack-2.0.6/test/spec_etag.rb +0 -108
  2137. data/vendor/bundle/gems/rack-2.0.6/test/spec_events.rb +0 -133
  2138. data/vendor/bundle/gems/rack-2.0.6/test/spec_fastcgi.rb +0 -85
  2139. data/vendor/bundle/gems/rack-2.0.6/test/spec_file.rb +0 -264
  2140. data/vendor/bundle/gems/rack-2.0.6/test/spec_handler.rb +0 -57
  2141. data/vendor/bundle/gems/rack-2.0.6/test/spec_head.rb +0 -46
  2142. data/vendor/bundle/gems/rack-2.0.6/test/spec_lint.rb +0 -515
  2143. data/vendor/bundle/gems/rack-2.0.6/test/spec_lobster.rb +0 -59
  2144. data/vendor/bundle/gems/rack-2.0.6/test/spec_lock.rb +0 -204
  2145. data/vendor/bundle/gems/rack-2.0.6/test/spec_logger.rb +0 -24
  2146. data/vendor/bundle/gems/rack-2.0.6/test/spec_media_type.rb +0 -42
  2147. data/vendor/bundle/gems/rack-2.0.6/test/spec_method_override.rb +0 -110
  2148. data/vendor/bundle/gems/rack-2.0.6/test/spec_mime.rb +0 -51
  2149. data/vendor/bundle/gems/rack-2.0.6/test/spec_mock.rb +0 -359
  2150. data/vendor/bundle/gems/rack-2.0.6/test/spec_multipart.rb +0 -722
  2151. data/vendor/bundle/gems/rack-2.0.6/test/spec_null_logger.rb +0 -21
  2152. data/vendor/bundle/gems/rack-2.0.6/test/spec_recursive.rb +0 -75
  2153. data/vendor/bundle/gems/rack-2.0.6/test/spec_request.rb +0 -1398
  2154. data/vendor/bundle/gems/rack-2.0.6/test/spec_response.rb +0 -510
  2155. data/vendor/bundle/gems/rack-2.0.6/test/spec_rewindable_input.rb +0 -128
  2156. data/vendor/bundle/gems/rack-2.0.6/test/spec_runtime.rb +0 -50
  2157. data/vendor/bundle/gems/rack-2.0.6/test/spec_sendfile.rb +0 -125
  2158. data/vendor/bundle/gems/rack-2.0.6/test/spec_server.rb +0 -193
  2159. data/vendor/bundle/gems/rack-2.0.6/test/spec_session_abstract_id.rb +0 -31
  2160. data/vendor/bundle/gems/rack-2.0.6/test/spec_session_abstract_session_hash.rb +0 -45
  2161. data/vendor/bundle/gems/rack-2.0.6/test/spec_session_cookie.rb +0 -442
  2162. data/vendor/bundle/gems/rack-2.0.6/test/spec_session_memcache.rb +0 -320
  2163. data/vendor/bundle/gems/rack-2.0.6/test/spec_session_pool.rb +0 -210
  2164. data/vendor/bundle/gems/rack-2.0.6/test/spec_show_exceptions.rb +0 -93
  2165. data/vendor/bundle/gems/rack-2.0.6/test/spec_show_status.rb +0 -104
  2166. data/vendor/bundle/gems/rack-2.0.6/test/spec_static.rb +0 -184
  2167. data/vendor/bundle/gems/rack-2.0.6/test/spec_tempfile_reaper.rb +0 -64
  2168. data/vendor/bundle/gems/rack-2.0.6/test/spec_thin.rb +0 -96
  2169. data/vendor/bundle/gems/rack-2.0.6/test/spec_urlmap.rb +0 -237
  2170. data/vendor/bundle/gems/rack-2.0.6/test/spec_utils.rb +0 -742
  2171. data/vendor/bundle/gems/rack-2.0.6/test/spec_version.rb +0 -11
  2172. data/vendor/bundle/gems/rack-2.0.6/test/spec_webrick.rb +0 -206
  2173. data/vendor/bundle/gems/rack-2.0.6/test/static/another/index.html +0 -1
  2174. data/vendor/bundle/gems/rack-2.0.6/test/static/foo.html +0 -1
  2175. data/vendor/bundle/gems/rack-2.0.6/test/static/index.html +0 -1
  2176. data/vendor/bundle/gems/rack-2.0.6/test/testrequest.rb +0 -78
  2177. data/vendor/bundle/gems/rack-2.0.6/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
  2178. data/vendor/bundle/gems/rack-2.0.6/test/unregistered_handler/rack/handler/unregistered_long_one.rb +0 -7
  2179. data/vendor/bundle/gems/rack-test-1.1.0/History.md +0 -256
  2180. data/vendor/bundle/gems/rack-test-1.1.0/MIT-LICENSE.txt +0 -19
  2181. data/vendor/bundle/gems/rack-test-1.1.0/README.md +0 -150
  2182. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/mock_session.rb +0 -63
  2183. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test.rb +0 -334
  2184. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test/cookie_jar.rb +0 -194
  2185. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test/methods.rb +0 -83
  2186. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test/mock_digest_request.rb +0 -25
  2187. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test/uploaded_file.rb +0 -85
  2188. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test/utils.rb +0 -144
  2189. data/vendor/bundle/gems/rack-test-1.1.0/lib/rack/test/version.rb +0 -5
  2190. data/vendor/bundle/gems/racksh-1.0.0/CHANGELOG.txt +0 -34
  2191. data/vendor/bundle/gems/racksh-1.0.0/README.markdown +0 -150
  2192. data/vendor/bundle/gems/racksh-1.0.0/bin/racksh +0 -25
  2193. data/vendor/bundle/gems/racksh-1.0.0/lib/racksh/init.rb +0 -53
  2194. data/vendor/bundle/gems/racksh-1.0.0/lib/racksh/irb.rb +0 -2
  2195. data/vendor/bundle/gems/racksh-1.0.0/lib/racksh/session.rb +0 -18
  2196. data/vendor/bundle/gems/racksh-1.0.0/lib/racksh/version.rb +0 -5
  2197. data/vendor/bundle/gems/rake-12.3.2/CONTRIBUTING.rdoc +0 -43
  2198. data/vendor/bundle/gems/rake-12.3.2/Gemfile +0 -3
  2199. data/vendor/bundle/gems/rake-12.3.2/History.rdoc +0 -2333
  2200. data/vendor/bundle/gems/rake-12.3.2/MIT-LICENSE +0 -21
  2201. data/vendor/bundle/gems/rake-12.3.2/README.rdoc +0 -156
  2202. data/vendor/bundle/gems/rake-12.3.2/Rakefile +0 -41
  2203. data/vendor/bundle/gems/rake-12.3.2/bin/bundle +0 -105
  2204. data/vendor/bundle/gems/rake-12.3.2/bin/console +0 -7
  2205. data/vendor/bundle/gems/rake-12.3.2/bin/rake +0 -29
  2206. data/vendor/bundle/gems/rake-12.3.2/bin/rdoc +0 -29
  2207. data/vendor/bundle/gems/rake-12.3.2/bin/rubocop +0 -29
  2208. data/vendor/bundle/gems/rake-12.3.2/bin/setup +0 -6
  2209. data/vendor/bundle/gems/rake-12.3.2/doc/command_line_usage.rdoc +0 -158
  2210. data/vendor/bundle/gems/rake-12.3.2/doc/example/Rakefile1 +0 -38
  2211. data/vendor/bundle/gems/rake-12.3.2/doc/example/Rakefile2 +0 -35
  2212. data/vendor/bundle/gems/rake-12.3.2/doc/example/a.c +0 -6
  2213. data/vendor/bundle/gems/rake-12.3.2/doc/example/b.c +0 -6
  2214. data/vendor/bundle/gems/rake-12.3.2/doc/example/main.c +0 -11
  2215. data/vendor/bundle/gems/rake-12.3.2/doc/glossary.rdoc +0 -42
  2216. data/vendor/bundle/gems/rake-12.3.2/doc/jamis.rb +0 -592
  2217. data/vendor/bundle/gems/rake-12.3.2/doc/proto_rake.rdoc +0 -127
  2218. data/vendor/bundle/gems/rake-12.3.2/doc/rake.1 +0 -156
  2219. data/vendor/bundle/gems/rake-12.3.2/doc/rakefile.rdoc +0 -622
  2220. data/vendor/bundle/gems/rake-12.3.2/doc/rational.rdoc +0 -151
  2221. data/vendor/bundle/gems/rake-12.3.2/exe/rake +0 -27
  2222. data/vendor/bundle/gems/rake-12.3.2/lib/rake.rb +0 -71
  2223. data/vendor/bundle/gems/rake-12.3.2/lib/rake/application.rb +0 -824
  2224. data/vendor/bundle/gems/rake-12.3.2/lib/rake/backtrace.rb +0 -24
  2225. data/vendor/bundle/gems/rake-12.3.2/lib/rake/clean.rb +0 -78
  2226. data/vendor/bundle/gems/rake-12.3.2/lib/rake/cloneable.rb +0 -17
  2227. data/vendor/bundle/gems/rake-12.3.2/lib/rake/cpu_counter.rb +0 -107
  2228. data/vendor/bundle/gems/rake-12.3.2/lib/rake/default_loader.rb +0 -15
  2229. data/vendor/bundle/gems/rake-12.3.2/lib/rake/dsl_definition.rb +0 -195
  2230. data/vendor/bundle/gems/rake-12.3.2/lib/rake/early_time.rb +0 -22
  2231. data/vendor/bundle/gems/rake-12.3.2/lib/rake/ext/core.rb +0 -26
  2232. data/vendor/bundle/gems/rake-12.3.2/lib/rake/ext/string.rb +0 -176
  2233. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_creation_task.rb +0 -25
  2234. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_list.rb +0 -435
  2235. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_task.rb +0 -54
  2236. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_utils.rb +0 -137
  2237. data/vendor/bundle/gems/rake-12.3.2/lib/rake/file_utils_ext.rb +0 -145
  2238. data/vendor/bundle/gems/rake-12.3.2/lib/rake/invocation_chain.rb +0 -57
  2239. data/vendor/bundle/gems/rake-12.3.2/lib/rake/invocation_exception_mixin.rb +0 -17
  2240. data/vendor/bundle/gems/rake-12.3.2/lib/rake/late_time.rb +0 -18
  2241. data/vendor/bundle/gems/rake-12.3.2/lib/rake/linked_list.rb +0 -112
  2242. data/vendor/bundle/gems/rake-12.3.2/lib/rake/loaders/makefile.rb +0 -54
  2243. data/vendor/bundle/gems/rake-12.3.2/lib/rake/multi_task.rb +0 -14
  2244. data/vendor/bundle/gems/rake-12.3.2/lib/rake/name_space.rb +0 -38
  2245. data/vendor/bundle/gems/rake-12.3.2/lib/rake/packagetask.rb +0 -207
  2246. data/vendor/bundle/gems/rake-12.3.2/lib/rake/phony.rb +0 -16
  2247. data/vendor/bundle/gems/rake-12.3.2/lib/rake/private_reader.rb +0 -21
  2248. data/vendor/bundle/gems/rake-12.3.2/lib/rake/promise.rb +0 -100
  2249. data/vendor/bundle/gems/rake-12.3.2/lib/rake/pseudo_status.rb +0 -30
  2250. data/vendor/bundle/gems/rake-12.3.2/lib/rake/rake_module.rb +0 -67
  2251. data/vendor/bundle/gems/rake-12.3.2/lib/rake/rake_test_loader.rb +0 -27
  2252. data/vendor/bundle/gems/rake-12.3.2/lib/rake/rule_recursion_overflow_error.rb +0 -20
  2253. data/vendor/bundle/gems/rake-12.3.2/lib/rake/scope.rb +0 -43
  2254. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task.rb +0 -413
  2255. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task_argument_error.rb +0 -8
  2256. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task_arguments.rb +0 -109
  2257. data/vendor/bundle/gems/rake-12.3.2/lib/rake/task_manager.rb +0 -323
  2258. data/vendor/bundle/gems/rake-12.3.2/lib/rake/tasklib.rb +0 -12
  2259. data/vendor/bundle/gems/rake-12.3.2/lib/rake/testtask.rb +0 -224
  2260. data/vendor/bundle/gems/rake-12.3.2/lib/rake/thread_history_display.rb +0 -49
  2261. data/vendor/bundle/gems/rake-12.3.2/lib/rake/thread_pool.rb +0 -163
  2262. data/vendor/bundle/gems/rake-12.3.2/lib/rake/trace_output.rb +0 -23
  2263. data/vendor/bundle/gems/rake-12.3.2/lib/rake/version.rb +0 -10
  2264. data/vendor/bundle/gems/rake-12.3.2/lib/rake/win32.rb +0 -51
  2265. data/vendor/bundle/gems/rake-12.3.2/rake.gemspec +0 -42
  2266. data/vendor/bundle/gems/redcarpet-3.4.0/COPYING +0 -20
  2267. data/vendor/bundle/gems/redcarpet-3.4.0/Gemfile +0 -9
  2268. data/vendor/bundle/gems/redcarpet-3.4.0/README.markdown +0 -404
  2269. data/vendor/bundle/gems/redcarpet-3.4.0/Rakefile +0 -60
  2270. data/vendor/bundle/gems/redcarpet-3.4.0/bin/redcarpet +0 -7
  2271. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/Makefile +0 -265
  2272. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/autolink.c +0 -309
  2273. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/autolink.h +0 -55
  2274. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/autolink.o +0 -0
  2275. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/buffer.c +0 -203
  2276. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/buffer.h +0 -89
  2277. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/buffer.o +0 -0
  2278. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/extconf.rb +0 -6
  2279. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini.h +0 -51
  2280. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini_href_e.c +0 -124
  2281. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini_href_e.o +0 -0
  2282. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini_html_e.c +0 -105
  2283. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini_html_e.o +0 -0
  2284. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html.c +0 -842
  2285. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html.h +0 -84
  2286. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html.o +0 -0
  2287. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html_blocks.h +0 -227
  2288. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html_smartypants.c +0 -457
  2289. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html_smartypants.o +0 -0
  2290. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/markdown.c +0 -2915
  2291. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/markdown.h +0 -143
  2292. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/markdown.o +0 -0
  2293. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/rc_markdown.c +0 -174
  2294. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/rc_markdown.o +0 -0
  2295. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/rc_render.c +0 -554
  2296. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/rc_render.o +0 -0
  2297. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/redcarpet.h +0 -52
  2298. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/redcarpet.so +0 -0
  2299. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/stack.c +0 -84
  2300. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/stack.h +0 -48
  2301. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/stack.o +0 -0
  2302. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet.rb +0 -92
  2303. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet.so +0 -0
  2304. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet/cli.rb +0 -86
  2305. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet/compat.rb +0 -73
  2306. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet/render_man.rb +0 -65
  2307. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet/render_strip.rb +0 -60
  2308. data/vendor/bundle/gems/redcarpet-3.4.0/redcarpet.gemspec +0 -71
  2309. data/vendor/bundle/gems/redcarpet-3.4.0/test/benchmark.rb +0 -24
  2310. data/vendor/bundle/gems/redcarpet-3.4.0/test/custom_render_test.rb +0 -57
  2311. data/vendor/bundle/gems/redcarpet-3.4.0/test/fixtures/benchmark.md +0 -232
  2312. data/vendor/bundle/gems/redcarpet-3.4.0/test/html5_test.rb +0 -82
  2313. data/vendor/bundle/gems/redcarpet-3.4.0/test/html_render_test.rb +0 -268
  2314. data/vendor/bundle/gems/redcarpet-3.4.0/test/html_toc_render_test.rb +0 -82
  2315. data/vendor/bundle/gems/redcarpet-3.4.0/test/markdown_test.rb +0 -406
  2316. data/vendor/bundle/gems/redcarpet-3.4.0/test/pathological_inputs_test.rb +0 -34
  2317. data/vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb +0 -80
  2318. data/vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_compat_test.rb +0 -38
  2319. data/vendor/bundle/gems/redcarpet-3.4.0/test/safe_render_test.rb +0 -35
  2320. data/vendor/bundle/gems/redcarpet-3.4.0/test/smarty_html_test.rb +0 -45
  2321. data/vendor/bundle/gems/redcarpet-3.4.0/test/smarty_pants_test.rb +0 -58
  2322. data/vendor/bundle/gems/redcarpet-3.4.0/test/stripdown_render_test.rb +0 -61
  2323. data/vendor/bundle/gems/redcarpet-3.4.0/test/test_helper.rb +0 -47
  2324. data/vendor/bundle/gems/regexp_parser-1.3.0/CHANGELOG.md +0 -285
  2325. data/vendor/bundle/gems/regexp_parser-1.3.0/Gemfile +0 -9
  2326. data/vendor/bundle/gems/regexp_parser-1.3.0/LICENSE +0 -22
  2327. data/vendor/bundle/gems/regexp_parser-1.3.0/README.md +0 -474
  2328. data/vendor/bundle/gems/regexp_parser-1.3.0/Rakefile +0 -88
  2329. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser.rb +0 -8
  2330. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression.rb +0 -188
  2331. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/alternation.rb +0 -10
  2332. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/anchor.rb +0 -26
  2333. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/backref.rb +0 -47
  2334. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/conditional.rb +0 -53
  2335. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/escape.rb +0 -98
  2336. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/free_space.rb +0 -17
  2337. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/group.rb +0 -58
  2338. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/keep.rb +0 -7
  2339. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/literal.rb +0 -7
  2340. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/posix_class.rb +0 -11
  2341. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/property.rb +0 -120
  2342. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/root.rb +0 -24
  2343. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/set.rb +0 -27
  2344. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/set/intersection.rb +0 -9
  2345. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/set/range.rb +0 -23
  2346. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/classes/type.rb +0 -19
  2347. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/methods/strfregexp.rb +0 -115
  2348. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/methods/tests.rb +0 -106
  2349. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/methods/traverse.rb +0 -62
  2350. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/quantifier.rb +0 -44
  2351. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/sequence.rb +0 -70
  2352. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/sequence_operation.rb +0 -29
  2353. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/expression/subexpression.rb +0 -61
  2354. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/lexer.rb +0 -141
  2355. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/parser.rb +0 -630
  2356. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/scanner.rb +0 -2935
  2357. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/scanner/char_type.rl +0 -31
  2358. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/scanner/properties/long.yml +0 -561
  2359. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/scanner/properties/short.yml +0 -225
  2360. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/scanner/property.rl +0 -30
  2361. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/scanner/scanner.rl +0 -1001
  2362. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax.rb +0 -9
  2363. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/any.rb +0 -15
  2364. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/base.rb +0 -95
  2365. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens.rb +0 -53
  2366. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/anchor.rb +0 -15
  2367. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/assertion.rb +0 -13
  2368. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/backref.rb +0 -24
  2369. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/character_set.rb +0 -13
  2370. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/character_type.rb +0 -16
  2371. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/conditional.rb +0 -16
  2372. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/escape.rb +0 -30
  2373. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/group.rb +0 -23
  2374. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/keep.rb +0 -12
  2375. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/meta.rb +0 -13
  2376. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/posix_class.rb +0 -17
  2377. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/quantifier.rb +0 -35
  2378. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/tokens/unicode_property.rb +0 -624
  2379. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/version_lookup.rb +0 -82
  2380. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions.rb +0 -6
  2381. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/1.8.6.rb +0 -21
  2382. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/1.9.1.rb +0 -18
  2383. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/1.9.3.rb +0 -11
  2384. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/2.0.0.rb +0 -17
  2385. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/2.2.0.rb +0 -10
  2386. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/2.3.0.rb +0 -10
  2387. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/2.4.0.rb +0 -10
  2388. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/2.4.1.rb +0 -9
  2389. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/syntax/versions/2.5.0.rb +0 -10
  2390. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/token.rb +0 -35
  2391. data/vendor/bundle/gems/regexp_parser-1.3.0/lib/regexp_parser/version.rb +0 -5
  2392. data/vendor/bundle/gems/regexp_parser-1.3.0/regexp_parser.gemspec +0 -36
  2393. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_all.rb +0 -12
  2394. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_base.rb +0 -90
  2395. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_clone.rb +0 -89
  2396. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_conditionals.rb +0 -113
  2397. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_free_space.rb +0 -35
  2398. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_set.rb +0 -84
  2399. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_strfregexp.rb +0 -230
  2400. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_subexpression.rb +0 -58
  2401. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_tests.rb +0 -99
  2402. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_to_h.rb +0 -59
  2403. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_to_s.rb +0 -104
  2404. data/vendor/bundle/gems/regexp_parser-1.3.0/test/expression/test_traverse.rb +0 -161
  2405. data/vendor/bundle/gems/regexp_parser-1.3.0/test/helpers.rb +0 -10
  2406. data/vendor/bundle/gems/regexp_parser-1.3.0/test/lexer/test_all.rb +0 -41
  2407. data/vendor/bundle/gems/regexp_parser-1.3.0/test/lexer/test_conditionals.rb +0 -127
  2408. data/vendor/bundle/gems/regexp_parser-1.3.0/test/lexer/test_keep.rb +0 -24
  2409. data/vendor/bundle/gems/regexp_parser-1.3.0/test/lexer/test_literals.rb +0 -130
  2410. data/vendor/bundle/gems/regexp_parser-1.3.0/test/lexer/test_nesting.rb +0 -132
  2411. data/vendor/bundle/gems/regexp_parser-1.3.0/test/lexer/test_refcalls.rb +0 -56
  2412. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/set/test_intersections.rb +0 -127
  2413. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/set/test_ranges.rb +0 -111
  2414. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_all.rb +0 -64
  2415. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_alternation.rb +0 -92
  2416. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_anchors.rb +0 -34
  2417. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_conditionals.rb +0 -187
  2418. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_errors.rb +0 -63
  2419. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_escapes.rb +0 -134
  2420. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_free_space.rb +0 -139
  2421. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_groups.rb +0 -289
  2422. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_keep.rb +0 -21
  2423. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_posix_classes.rb +0 -27
  2424. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_properties.rb +0 -133
  2425. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_quantifiers.rb +0 -301
  2426. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_refcalls.rb +0 -186
  2427. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_sets.rb +0 -179
  2428. data/vendor/bundle/gems/regexp_parser-1.3.0/test/parser/test_types.rb +0 -50
  2429. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_all.rb +0 -38
  2430. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_anchors.rb +0 -38
  2431. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_conditionals.rb +0 -184
  2432. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_errors.rb +0 -91
  2433. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_escapes.rb +0 -56
  2434. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_free_space.rb +0 -200
  2435. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_groups.rb +0 -79
  2436. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_keep.rb +0 -35
  2437. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_literals.rb +0 -89
  2438. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_meta.rb +0 -40
  2439. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_properties.rb +0 -312
  2440. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_quantifiers.rb +0 -37
  2441. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_refcalls.rb +0 -52
  2442. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_scripts.rb +0 -53
  2443. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_sets.rb +0 -119
  2444. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_types.rb +0 -35
  2445. data/vendor/bundle/gems/regexp_parser-1.3.0/test/scanner/test_unicode_blocks.rb +0 -30
  2446. data/vendor/bundle/gems/regexp_parser-1.3.0/test/support/disable_autotest.rb +0 -8
  2447. data/vendor/bundle/gems/regexp_parser-1.3.0/test/support/runner.rb +0 -41
  2448. data/vendor/bundle/gems/regexp_parser-1.3.0/test/support/warning_extractor.rb +0 -62
  2449. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/test_all.rb +0 -6
  2450. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/test_syntax.rb +0 -61
  2451. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/test_syntax_token_map.rb +0 -25
  2452. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_1.8.rb +0 -55
  2453. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_1.9.1.rb +0 -36
  2454. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_1.9.3.rb +0 -32
  2455. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_2.0.0.rb +0 -37
  2456. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_2.2.0.rb +0 -32
  2457. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_aliases.rb +0 -129
  2458. data/vendor/bundle/gems/regexp_parser-1.3.0/test/syntax/versions/test_all.rb +0 -5
  2459. data/vendor/bundle/gems/regexp_parser-1.3.0/test/test_all.rb +0 -5
  2460. data/vendor/bundle/gems/regexp_parser-1.3.0/test/token/test_all.rb +0 -2
  2461. data/vendor/bundle/gems/regexp_parser-1.3.0/test/token/test_token.rb +0 -107
  2462. data/vendor/bundle/gems/rspec-3.8.0/LICENSE.md +0 -27
  2463. data/vendor/bundle/gems/rspec-3.8.0/README.md +0 -43
  2464. data/vendor/bundle/gems/rspec-3.8.0/lib/rspec.rb +0 -3
  2465. data/vendor/bundle/gems/rspec-3.8.0/lib/rspec/version.rb +0 -5
  2466. data/vendor/bundle/gems/rspec-core-3.8.0/Changelog.md +0 -2221
  2467. data/vendor/bundle/gems/rspec-core-3.8.0/LICENSE.md +0 -26
  2468. data/vendor/bundle/gems/rspec-core-3.8.0/README.md +0 -384
  2469. data/vendor/bundle/gems/rspec-core-3.8.0/exe/rspec +0 -4
  2470. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/autorun.rb +0 -3
  2471. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core.rb +0 -185
  2472. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/backtrace_formatter.rb +0 -65
  2473. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/coordinator.rb +0 -62
  2474. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/example_minimizer.rb +0 -173
  2475. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/fork_runner.rb +0 -134
  2476. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/server.rb +0 -61
  2477. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/shell_command.rb +0 -126
  2478. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/shell_runner.rb +0 -73
  2479. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/bisect/utilities.rb +0 -58
  2480. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb +0 -2289
  2481. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/configuration_options.rb +0 -233
  2482. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/drb.rb +0 -113
  2483. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/dsl.rb +0 -98
  2484. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/example.rb +0 -653
  2485. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb +0 -885
  2486. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/example_status_persister.rb +0 -235
  2487. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/filter_manager.rb +0 -231
  2488. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/flat_map.rb +0 -20
  2489. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters.rb +0 -269
  2490. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_bisect_formatter.rb +0 -45
  2491. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_formatter.rb +0 -70
  2492. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_text_formatter.rb +0 -75
  2493. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +0 -29
  2494. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -157
  2495. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/console_codes.rb +0 -68
  2496. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/deprecation_formatter.rb +0 -223
  2497. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/documentation_formatter.rb +0 -70
  2498. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/exception_presenter.rb +0 -497
  2499. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -28
  2500. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/helpers.rb +0 -110
  2501. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_formatter.rb +0 -153
  2502. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_printer.rb +0 -414
  2503. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -120
  2504. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/json_formatter.rb +0 -102
  2505. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/profile_formatter.rb +0 -68
  2506. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/progress_formatter.rb +0 -29
  2507. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/protocol.rb +0 -182
  2508. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/snippet_extractor.rb +0 -134
  2509. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/formatters/syntax_highlighter.rb +0 -91
  2510. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb +0 -624
  2511. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/invocations.rb +0 -87
  2512. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/memoized_helpers.rb +0 -535
  2513. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/metadata.rb +0 -499
  2514. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/metadata_filter.rb +0 -255
  2515. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/minitest_assertions_adapter.rb +0 -31
  2516. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/flexmock.rb +0 -31
  2517. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/mocha.rb +0 -57
  2518. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/null.rb +0 -14
  2519. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/rr.rb +0 -31
  2520. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/rspec.rb +0 -32
  2521. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/notifications.rb +0 -521
  2522. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/option_parser.rb +0 -309
  2523. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/ordering.rb +0 -158
  2524. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/output_wrapper.rb +0 -29
  2525. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/pending.rb +0 -165
  2526. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/profiler.rb +0 -34
  2527. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer.rb +0 -48
  2528. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -100
  2529. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/rake_task.rb +0 -168
  2530. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/reporter.rb +0 -257
  2531. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/ruby_project.rb +0 -53
  2532. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb +0 -199
  2533. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/sandbox.rb +0 -37
  2534. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/set.rb +0 -54
  2535. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/shared_context.rb +0 -55
  2536. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/shared_example_group.rb +0 -269
  2537. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/shell_escape.rb +0 -49
  2538. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
  2539. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/version.rb +0 -9
  2540. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/warnings.rb +0 -40
  2541. data/vendor/bundle/gems/rspec-core-3.8.0/lib/rspec/core/world.rb +0 -275
  2542. data/vendor/bundle/gems/rspec-expectations-3.8.2/Changelog.md +0 -1120
  2543. data/vendor/bundle/gems/rspec-expectations-3.8.2/LICENSE.md +0 -25
  2544. data/vendor/bundle/gems/rspec-expectations-3.8.2/README.md +0 -305
  2545. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations.rb +0 -82
  2546. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/block_snippet_extractor.rb +0 -253
  2547. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/configuration.rb +0 -215
  2548. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/expectation_target.rb +0 -127
  2549. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/fail_with.rb +0 -39
  2550. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/failure_aggregator.rb +0 -194
  2551. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/handler.rb +0 -170
  2552. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/minitest_integration.rb +0 -58
  2553. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/syntax.rb +0 -132
  2554. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/expectations/version.rb +0 -8
  2555. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers.rb +0 -1034
  2556. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/aliased_matcher.rb +0 -116
  2557. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in.rb +0 -52
  2558. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/all.rb +0 -85
  2559. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/base_matcher.rb +0 -193
  2560. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be.rb +0 -288
  2561. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_between.rb +0 -77
  2562. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_instance_of.rb +0 -22
  2563. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_kind_of.rb +0 -16
  2564. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_within.rb +0 -72
  2565. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/change.rb +0 -426
  2566. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/compound.rb +0 -271
  2567. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/contain_exactly.rb +0 -302
  2568. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/cover.rb +0 -24
  2569. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/eq.rb +0 -40
  2570. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/eql.rb +0 -34
  2571. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/equal.rb +0 -81
  2572. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/exist.rb +0 -90
  2573. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/has.rb +0 -103
  2574. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/have_attributes.rb +0 -114
  2575. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/include.rb +0 -149
  2576. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/match.rb +0 -106
  2577. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/operators.rb +0 -128
  2578. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/output.rb +0 -200
  2579. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/raise_error.rb +0 -230
  2580. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/respond_to.rb +0 -165
  2581. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/satisfy.rb +0 -60
  2582. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -94
  2583. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/throw_symbol.rb +0 -132
  2584. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/yield.rb +0 -432
  2585. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/composable.rb +0 -171
  2586. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/dsl.rb +0 -527
  2587. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/english_phrasing.rb +0 -58
  2588. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -73
  2589. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/fail_matchers.rb +0 -42
  2590. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/generated_descriptions.rb +0 -41
  2591. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/matcher_delegator.rb +0 -35
  2592. data/vendor/bundle/gems/rspec-expectations-3.8.2/lib/rspec/matchers/matcher_protocol.rb +0 -99
  2593. data/vendor/bundle/gems/rspec-mocks-3.8.0/Changelog.md +0 -1100
  2594. data/vendor/bundle/gems/rspec-mocks-3.8.0/LICENSE.md +0 -25
  2595. data/vendor/bundle/gems/rspec-mocks-3.8.0/README.md +0 -460
  2596. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks.rb +0 -130
  2597. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance.rb +0 -11
  2598. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/chain.rb +0 -110
  2599. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/error_generator.rb +0 -31
  2600. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -31
  2601. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -50
  2602. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/message_chains.rb +0 -83
  2603. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/proxy.rb +0 -116
  2604. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/recorder.rb +0 -289
  2605. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/stub_chain.rb +0 -51
  2606. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -23
  2607. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/argument_list_matcher.rb +0 -100
  2608. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/argument_matchers.rb +0 -320
  2609. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/configuration.rb +0 -212
  2610. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/error_generator.rb +0 -369
  2611. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/example_methods.rb +0 -434
  2612. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/instance_method_stasher.rb +0 -146
  2613. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/marshal_extension.rb +0 -41
  2614. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/expectation_customization.rb +0 -20
  2615. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/have_received.rb +0 -134
  2616. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive.rb +0 -132
  2617. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -82
  2618. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive_messages.rb +0 -77
  2619. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/message_chain.rb +0 -87
  2620. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/message_expectation.rb +0 -741
  2621. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/method_double.rb +0 -287
  2622. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/method_reference.rb +0 -202
  2623. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/minitest_integration.rb +0 -68
  2624. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/mutate_const.rb +0 -339
  2625. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/object_reference.rb +0 -149
  2626. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/order_group.rb +0 -81
  2627. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/proxy.rb +0 -485
  2628. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/space.rb +0 -238
  2629. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/standalone.rb +0 -3
  2630. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/syntax.rb +0 -325
  2631. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/targets.rb +0 -124
  2632. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/test_double.rb +0 -171
  2633. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_double.rb +0 -129
  2634. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_message_expectation.rb +0 -54
  2635. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_proxy.rb +0 -220
  2636. data/vendor/bundle/gems/rspec-mocks-3.8.0/lib/rspec/mocks/version.rb +0 -9
  2637. data/vendor/bundle/gems/rspec-support-3.8.0/Changelog.md +0 -242
  2638. data/vendor/bundle/gems/rspec-support-3.8.0/LICENSE.md +0 -23
  2639. data/vendor/bundle/gems/rspec-support-3.8.0/README.md +0 -40
  2640. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support.rb +0 -149
  2641. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/caller_filter.rb +0 -83
  2642. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/comparable_version.rb +0 -46
  2643. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/differ.rb +0 -215
  2644. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/directory_maker.rb +0 -63
  2645. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/encoded_string.rb +0 -165
  2646. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/fuzzy_matcher.rb +0 -48
  2647. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/hunk_generator.rb +0 -47
  2648. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/matcher_definition.rb +0 -42
  2649. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/method_signature_verifier.rb +0 -426
  2650. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/mutex.rb +0 -73
  2651. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/object_formatter.rb +0 -275
  2652. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/recursive_const_methods.rb +0 -76
  2653. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/reentrant_mutex.rb +0 -53
  2654. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/ruby_features.rb +0 -176
  2655. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/source.rb +0 -75
  2656. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/source/location.rb +0 -21
  2657. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/source/node.rb +0 -110
  2658. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/source/token.rb +0 -87
  2659. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec.rb +0 -81
  2660. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/deprecation_helpers.rb +0 -64
  2661. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/formatting_support.rb +0 -9
  2662. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/in_sub_process.rb +0 -69
  2663. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/library_wide_checks.rb +0 -150
  2664. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/shell_out.rb +0 -84
  2665. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/stderr_splitter.rb +0 -63
  2666. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/string_matcher.rb +0 -46
  2667. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/with_isolated_directory.rb +0 -13
  2668. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/spec/with_isolated_stderr.rb +0 -13
  2669. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/version.rb +0 -7
  2670. data/vendor/bundle/gems/rspec-support-3.8.0/lib/rspec/support/warnings.rb +0 -39
  2671. data/vendor/bundle/gems/rubyzip-1.2.2/README.md +0 -313
  2672. data/vendor/bundle/gems/rubyzip-1.2.2/Rakefile +0 -18
  2673. data/vendor/bundle/gems/rubyzip-1.2.2/TODO +0 -15
  2674. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip.rb +0 -69
  2675. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/central_directory.rb +0 -208
  2676. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/compressor.rb +0 -9
  2677. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/constants.rb +0 -63
  2678. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/crypto/encryption.rb +0 -11
  2679. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/crypto/null_encryption.rb +0 -43
  2680. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/crypto/traditional_encryption.rb +0 -99
  2681. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/decompressor.rb +0 -13
  2682. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/deflater.rb +0 -34
  2683. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/dos_time.rb +0 -48
  2684. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/entry.rb +0 -687
  2685. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/entry_set.rb +0 -86
  2686. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/errors.rb +0 -17
  2687. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field.rb +0 -101
  2688. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/generic.rb +0 -43
  2689. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/ntfs.rb +0 -90
  2690. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/old_unix.rb +0 -44
  2691. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/universal_time.rb +0 -47
  2692. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/unix.rb +0 -37
  2693. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/zip64.rb +0 -68
  2694. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/extra_field/zip64_placeholder.rb +0 -15
  2695. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/file.rb +0 -423
  2696. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/filesystem.rb +0 -627
  2697. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/inflater.rb +0 -66
  2698. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/input_stream.rb +0 -173
  2699. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/ioextras.rb +0 -36
  2700. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/ioextras/abstract_input_stream.rb +0 -111
  2701. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/ioextras/abstract_output_stream.rb +0 -43
  2702. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/null_compressor.rb +0 -15
  2703. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/null_decompressor.rb +0 -27
  2704. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/null_input_stream.rb +0 -10
  2705. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/output_stream.rb +0 -189
  2706. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/pass_thru_compressor.rb +0 -23
  2707. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/pass_thru_decompressor.rb +0 -40
  2708. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/streamable_directory.rb +0 -15
  2709. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/streamable_stream.rb +0 -56
  2710. data/vendor/bundle/gems/rubyzip-1.2.2/lib/zip/version.rb +0 -3
  2711. data/vendor/bundle/gems/rubyzip-1.2.2/samples/example.rb +0 -81
  2712. data/vendor/bundle/gems/rubyzip-1.2.2/samples/example_filesystem.rb +0 -31
  2713. data/vendor/bundle/gems/rubyzip-1.2.2/samples/example_recursive.rb +0 -54
  2714. data/vendor/bundle/gems/rubyzip-1.2.2/samples/gtk_ruby_zip.rb +0 -84
  2715. data/vendor/bundle/gems/rubyzip-1.2.2/samples/qtzip.rb +0 -92
  2716. data/vendor/bundle/gems/rubyzip-1.2.2/samples/write_simple.rb +0 -12
  2717. data/vendor/bundle/gems/rubyzip-1.2.2/samples/zipfind.rb +0 -66
  2718. data/vendor/bundle/gems/rubyzip-1.2.2/test/basic_zip_file_test.rb +0 -60
  2719. data/vendor/bundle/gems/rubyzip-1.2.2/test/case_sensitivity_test.rb +0 -69
  2720. data/vendor/bundle/gems/rubyzip-1.2.2/test/central_directory_entry_test.rb +0 -69
  2721. data/vendor/bundle/gems/rubyzip-1.2.2/test/central_directory_test.rb +0 -100
  2722. data/vendor/bundle/gems/rubyzip-1.2.2/test/crypto/null_encryption_test.rb +0 -57
  2723. data/vendor/bundle/gems/rubyzip-1.2.2/test/crypto/traditional_encryption_test.rb +0 -80
  2724. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/WarnInvalidDate.zip +0 -0
  2725. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/file1.txt +0 -46
  2726. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/file1.txt.deflatedData +0 -0
  2727. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/file2.txt +0 -1504
  2728. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/globTest.zip +0 -0
  2729. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/globTest/foo.txt +0 -0
  2730. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/globTest/foo/bar/baz/foo.txt +0 -0
  2731. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/globTest/food.txt +0 -0
  2732. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/gpbit3stored.zip +0 -0
  2733. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/mimetype +0 -1
  2734. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/notzippedruby.rb +0 -7
  2735. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/ntfs.zip +0 -0
  2736. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/oddExtraField.zip +0 -0
  2737. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/Makefile +0 -10
  2738. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/README.md +0 -5
  2739. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/absolute1.zip +0 -0
  2740. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/absolute2.zip +0 -0
  2741. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/dirsymlink.zip +0 -0
  2742. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/dirsymlink2a.zip +0 -0
  2743. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/dirsymlink2b.zip +0 -0
  2744. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/relative0.zip +0 -0
  2745. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/relative2.zip +0 -0
  2746. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/jwilk/symlink.zip +0 -0
  2747. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/relative1.zip +0 -0
  2748. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/tuzovakaoff/README.md +0 -3
  2749. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/tuzovakaoff/absolutepath.zip +0 -0
  2750. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/path_traversal/tuzovakaoff/symlink.zip +0 -0
  2751. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/rubycode.zip +0 -0
  2752. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/rubycode2.zip +0 -0
  2753. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/test.xls +0 -0
  2754. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/testDirectory.bin +0 -0
  2755. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/zip64-sample.zip +0 -0
  2756. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/zipWithDirs.zip +0 -0
  2757. data/vendor/bundle/gems/rubyzip-1.2.2/test/data/zipWithEncryption.zip +0 -0
  2758. data/vendor/bundle/gems/rubyzip-1.2.2/test/deflater_test.rb +0 -65
  2759. data/vendor/bundle/gems/rubyzip-1.2.2/test/encryption_test.rb +0 -42
  2760. data/vendor/bundle/gems/rubyzip-1.2.2/test/entry_set_test.rb +0 -163
  2761. data/vendor/bundle/gems/rubyzip-1.2.2/test/entry_test.rb +0 -154
  2762. data/vendor/bundle/gems/rubyzip-1.2.2/test/errors_test.rb +0 -35
  2763. data/vendor/bundle/gems/rubyzip-1.2.2/test/extra_field_test.rb +0 -76
  2764. data/vendor/bundle/gems/rubyzip-1.2.2/test/file_extract_directory_test.rb +0 -54
  2765. data/vendor/bundle/gems/rubyzip-1.2.2/test/file_extract_test.rb +0 -83
  2766. data/vendor/bundle/gems/rubyzip-1.2.2/test/file_permissions_test.rb +0 -65
  2767. data/vendor/bundle/gems/rubyzip-1.2.2/test/file_split_test.rb +0 -57
  2768. data/vendor/bundle/gems/rubyzip-1.2.2/test/file_test.rb +0 -601
  2769. data/vendor/bundle/gems/rubyzip-1.2.2/test/filesystem/dir_iterator_test.rb +0 -58
  2770. data/vendor/bundle/gems/rubyzip-1.2.2/test/filesystem/directory_test.rb +0 -139
  2771. data/vendor/bundle/gems/rubyzip-1.2.2/test/filesystem/file_mutating_test.rb +0 -87
  2772. data/vendor/bundle/gems/rubyzip-1.2.2/test/filesystem/file_nonmutating_test.rb +0 -508
  2773. data/vendor/bundle/gems/rubyzip-1.2.2/test/filesystem/file_stat_test.rb +0 -64
  2774. data/vendor/bundle/gems/rubyzip-1.2.2/test/gentestfiles.rb +0 -126
  2775. data/vendor/bundle/gems/rubyzip-1.2.2/test/inflater_test.rb +0 -14
  2776. data/vendor/bundle/gems/rubyzip-1.2.2/test/input_stream_test.rb +0 -182
  2777. data/vendor/bundle/gems/rubyzip-1.2.2/test/ioextras/abstract_input_stream_test.rb +0 -102
  2778. data/vendor/bundle/gems/rubyzip-1.2.2/test/ioextras/abstract_output_stream_test.rb +0 -106
  2779. data/vendor/bundle/gems/rubyzip-1.2.2/test/ioextras/fake_io_test.rb +0 -18
  2780. data/vendor/bundle/gems/rubyzip-1.2.2/test/local_entry_test.rb +0 -154
  2781. data/vendor/bundle/gems/rubyzip-1.2.2/test/output_stream_test.rb +0 -128
  2782. data/vendor/bundle/gems/rubyzip-1.2.2/test/pass_thru_compressor_test.rb +0 -30
  2783. data/vendor/bundle/gems/rubyzip-1.2.2/test/pass_thru_decompressor_test.rb +0 -14
  2784. data/vendor/bundle/gems/rubyzip-1.2.2/test/path_traversal_test.rb +0 -134
  2785. data/vendor/bundle/gems/rubyzip-1.2.2/test/samples/example_recursive_test.rb +0 -37
  2786. data/vendor/bundle/gems/rubyzip-1.2.2/test/settings_test.rb +0 -95
  2787. data/vendor/bundle/gems/rubyzip-1.2.2/test/test_helper.rb +0 -234
  2788. data/vendor/bundle/gems/rubyzip-1.2.2/test/unicode_file_names_and_comments_test.rb +0 -62
  2789. data/vendor/bundle/gems/rubyzip-1.2.2/test/zip64_full_test.rb +0 -51
  2790. data/vendor/bundle/gems/rubyzip-1.2.2/test/zip64_support_test.rb +0 -14
  2791. data/vendor/bundle/gems/sawyer-0.8.1/Gemfile +0 -8
  2792. data/vendor/bundle/gems/sawyer-0.8.1/LICENSE.md +0 -20
  2793. data/vendor/bundle/gems/sawyer-0.8.1/README.md +0 -19
  2794. data/vendor/bundle/gems/sawyer-0.8.1/Rakefile +0 -12
  2795. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer.rb +0 -17
  2796. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/agent.rb +0 -158
  2797. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/link_parsers/hal.rb +0 -15
  2798. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/link_parsers/simple.rb +0 -29
  2799. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/relation.rb +0 -271
  2800. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/resource.rb +0 -155
  2801. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/response.rb +0 -64
  2802. data/vendor/bundle/gems/sawyer-0.8.1/lib/sawyer/serializer.rb +0 -127
  2803. data/vendor/bundle/gems/sawyer-0.8.1/sawyer.gemspec +0 -32
  2804. data/vendor/bundle/gems/sawyer-0.8.1/script/bootstrap +0 -5
  2805. data/vendor/bundle/gems/sawyer-0.8.1/script/console +0 -8
  2806. data/vendor/bundle/gems/sawyer-0.8.1/script/package +0 -8
  2807. data/vendor/bundle/gems/sawyer-0.8.1/script/release +0 -16
  2808. data/vendor/bundle/gems/sawyer-0.8.1/script/test +0 -6
  2809. data/vendor/bundle/gems/sawyer-0.8.1/test/agent_test.rb +0 -195
  2810. data/vendor/bundle/gems/sawyer-0.8.1/test/helper.rb +0 -7
  2811. data/vendor/bundle/gems/sawyer-0.8.1/test/relation_test.rb +0 -174
  2812. data/vendor/bundle/gems/sawyer-0.8.1/test/resource_test.rb +0 -199
  2813. data/vendor/bundle/gems/sawyer-0.8.1/test/response_test.rb +0 -77
  2814. data/vendor/bundle/gems/selenium-webdriver-3.141.0/CHANGES +0 -1497
  2815. data/vendor/bundle/gems/selenium-webdriver-3.141.0/Gemfile +0 -2
  2816. data/vendor/bundle/gems/selenium-webdriver-3.141.0/LICENSE +0 -202
  2817. data/vendor/bundle/gems/selenium-webdriver-3.141.0/README.md +0 -35
  2818. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium-webdriver.rb +0 -18
  2819. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/server.rb +0 -270
  2820. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver.rb +0 -99
  2821. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/atoms.rb +0 -18
  2822. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/atoms/getAttribute.js +0 -8
  2823. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/atoms/isDisplayed.js +0 -101
  2824. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome.rb +0 -48
  2825. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/bridge.rb +0 -48
  2826. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/driver.rb +0 -117
  2827. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/options.rb +0 -186
  2828. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/profile.rb +0 -109
  2829. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/service.rb +0 -59
  2830. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common.rb +0 -74
  2831. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/action_builder.rb +0 -363
  2832. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/alert.rb +0 -45
  2833. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/bridge_helper.rb +0 -79
  2834. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver.rb +0 -293
  2835. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -43
  2836. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -48
  2837. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -40
  2838. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_location.rb +0 -40
  2839. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -49
  2840. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +0 -56
  2841. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -49
  2842. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +0 -28
  2843. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +0 -37
  2844. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +0 -34
  2845. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +0 -36
  2846. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +0 -59
  2847. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -62
  2848. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +0 -60
  2849. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/element.rb +0 -333
  2850. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/error.rb +0 -327
  2851. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/file_reaper.rb +0 -65
  2852. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/html5/local_storage.rb +0 -57
  2853. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/html5/session_storage.rb +0 -59
  2854. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/html5/shared_web_storage.rb +0 -50
  2855. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/input_device.rb +0 -51
  2856. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/interaction.rb +0 -50
  2857. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/interactions.rb +0 -41
  2858. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/key_actions.rb +0 -143
  2859. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/key_input.rb +0 -62
  2860. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/none_input.rb +0 -33
  2861. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/pointer_actions.rb +0 -361
  2862. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/interactions/pointer_input.rb +0 -132
  2863. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/keyboard.rb +0 -67
  2864. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/keys.rb +0 -143
  2865. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/log_entry.rb +0 -46
  2866. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/logger.rb +0 -140
  2867. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/logs.rb +0 -38
  2868. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/mouse.rb +0 -86
  2869. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/navigation.rb +0 -58
  2870. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/options.rb +0 -151
  2871. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/platform.rb +0 -226
  2872. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/port_prober.rb +0 -62
  2873. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/profile_helper.rb +0 -81
  2874. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/proxy.rb +0 -154
  2875. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/search_context.rb +0 -110
  2876. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb +0 -161
  2877. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb +0 -75
  2878. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_poller.rb +0 -118
  2879. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/target_locator.rb +0 -109
  2880. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/timeouts.rb +0 -53
  2881. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/touch_action_builder.rb +0 -79
  2882. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/touch_screen.rb +0 -120
  2883. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -209
  2884. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/w3c_options.rb +0 -43
  2885. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/wait.rb +0 -75
  2886. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/window.rb +0 -161
  2887. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/zipper.rb +0 -97
  2888. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/edge.rb +0 -38
  2889. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/edge/bridge.rb +0 -74
  2890. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/edge/driver.rb +0 -73
  2891. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/edge/options.rb +0 -77
  2892. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/edge/service.rb +0 -56
  2893. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox.rb +0 -60
  2894. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/binary.rb +0 -186
  2895. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/driver.rb +0 -48
  2896. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/extension.rb +0 -95
  2897. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
  2898. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  2899. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/launcher.rb +0 -108
  2900. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -79
  2901. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/marionette/bridge.rb +0 -47
  2902. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -96
  2903. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  2904. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  2905. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/options.rb +0 -149
  2906. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/profile.rb +0 -282
  2907. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/profiles_ini.rb +0 -71
  2908. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/service.rb +0 -63
  2909. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/firefox/util.rb +0 -44
  2910. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/ie.rb +0 -35
  2911. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/ie/driver.rb +0 -91
  2912. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/ie/options.rb +0 -136
  2913. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/ie/service.rb +0 -58
  2914. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote.rb +0 -33
  2915. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/bridge.rb +0 -193
  2916. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/capabilities.rb +0 -272
  2917. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/driver.rb +0 -49
  2918. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb +0 -98
  2919. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/curb.rb +0 -95
  2920. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/default.rb +0 -176
  2921. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/persistent.rb +0 -58
  2922. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/oss/bridge.rb +0 -591
  2923. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/oss/commands.rb +0 -221
  2924. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb +0 -128
  2925. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/server_error.rb +0 -32
  2926. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -590
  2927. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -294
  2928. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/w3c/commands.rb +0 -154
  2929. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/safari.rb +0 -58
  2930. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/safari/bridge.rb +0 -49
  2931. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/safari/driver.rb +0 -70
  2932. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/safari/options.rb +0 -58
  2933. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/safari/service.rb +0 -57
  2934. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support.rb +0 -23
  2935. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support/abstract_event_listener.rb +0 -85
  2936. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support/block_event_listener.rb +0 -32
  2937. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support/color.rb +0 -144
  2938. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support/escaper.rb +0 -41
  2939. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support/event_firing_bridge.rb +0 -127
  2940. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/support/select.rb +0 -269
  2941. data/vendor/bundle/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/version.rb +0 -22
  2942. data/vendor/bundle/gems/selenium-webdriver-3.141.0/selenium-webdriver.gemspec +0 -40
  2943. data/vendor/bundle/gems/sequel-5.18.0/CHANGELOG +0 -2427
  2944. data/vendor/bundle/gems/sequel-5.18.0/MIT-LICENSE +0 -19
  2945. data/vendor/bundle/gems/sequel-5.18.0/README.rdoc +0 -902
  2946. data/vendor/bundle/gems/sequel-5.18.0/Rakefile +0 -151
  2947. data/vendor/bundle/gems/sequel-5.18.0/bin/sequel +0 -267
  2948. data/vendor/bundle/gems/sequel-5.18.0/doc/advanced_associations.rdoc +0 -882
  2949. data/vendor/bundle/gems/sequel-5.18.0/doc/association_basics.rdoc +0 -1759
  2950. data/vendor/bundle/gems/sequel-5.18.0/doc/bin_sequel.rdoc +0 -146
  2951. data/vendor/bundle/gems/sequel-5.18.0/doc/cheat_sheet.rdoc +0 -246
  2952. data/vendor/bundle/gems/sequel-5.18.0/doc/code_order.rdoc +0 -104
  2953. data/vendor/bundle/gems/sequel-5.18.0/doc/core_extensions.rdoc +0 -405
  2954. data/vendor/bundle/gems/sequel-5.18.0/doc/dataset_basics.rdoc +0 -96
  2955. data/vendor/bundle/gems/sequel-5.18.0/doc/dataset_filtering.rdoc +0 -207
  2956. data/vendor/bundle/gems/sequel-5.18.0/doc/extensions.rdoc +0 -77
  2957. data/vendor/bundle/gems/sequel-5.18.0/doc/mass_assignment.rdoc +0 -98
  2958. data/vendor/bundle/gems/sequel-5.18.0/doc/migration.rdoc +0 -639
  2959. data/vendor/bundle/gems/sequel-5.18.0/doc/model_dataset_method_design.rdoc +0 -129
  2960. data/vendor/bundle/gems/sequel-5.18.0/doc/model_hooks.rdoc +0 -254
  2961. data/vendor/bundle/gems/sequel-5.18.0/doc/model_plugins.rdoc +0 -270
  2962. data/vendor/bundle/gems/sequel-5.18.0/doc/mssql_stored_procedures.rdoc +0 -43
  2963. data/vendor/bundle/gems/sequel-5.18.0/doc/object_model.rdoc +0 -563
  2964. data/vendor/bundle/gems/sequel-5.18.0/doc/opening_databases.rdoc +0 -407
  2965. data/vendor/bundle/gems/sequel-5.18.0/doc/postgresql.rdoc +0 -532
  2966. data/vendor/bundle/gems/sequel-5.18.0/doc/prepared_statements.rdoc +0 -144
  2967. data/vendor/bundle/gems/sequel-5.18.0/doc/querying.rdoc +0 -1063
  2968. data/vendor/bundle/gems/sequel-5.18.0/doc/reflection.rdoc +0 -120
  2969. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.0.0.txt +0 -262
  2970. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.1.0.txt +0 -85
  2971. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.10.0.txt +0 -226
  2972. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.11.0.txt +0 -147
  2973. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.12.0.txt +0 -105
  2974. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.13.0.txt +0 -169
  2975. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.14.0.txt +0 -68
  2976. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.15.0.txt +0 -56
  2977. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.16.0.txt +0 -36
  2978. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.17.0.txt +0 -38
  2979. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.18.0.txt +0 -36
  2980. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.19.0.txt +0 -45
  2981. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.2.0.txt +0 -129
  2982. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.20.0.txt +0 -79
  2983. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.21.0.txt +0 -94
  2984. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.22.0.txt +0 -72
  2985. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.23.0.txt +0 -65
  2986. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.24.0.txt +0 -99
  2987. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.25.0.txt +0 -181
  2988. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.26.0.txt +0 -44
  2989. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.27.0.txt +0 -78
  2990. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.28.0.txt +0 -57
  2991. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.29.0.txt +0 -41
  2992. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.3.0.txt +0 -40
  2993. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.30.0.txt +0 -37
  2994. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.31.0.txt +0 -57
  2995. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.32.0.txt +0 -132
  2996. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.33.0.txt +0 -88
  2997. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.34.0.txt +0 -86
  2998. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.35.0.txt +0 -130
  2999. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.36.0.txt +0 -116
  3000. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.37.0.txt +0 -50
  3001. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.38.0.txt +0 -67
  3002. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.39.0.txt +0 -127
  3003. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.4.0.txt +0 -92
  3004. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.40.0.txt +0 -179
  3005. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.41.0.txt +0 -77
  3006. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.42.0.txt +0 -221
  3007. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.43.0.txt +0 -87
  3008. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.44.0.txt +0 -125
  3009. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.45.0.txt +0 -370
  3010. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.46.0.txt +0 -404
  3011. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.47.0.txt +0 -56
  3012. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.48.0.txt +0 -293
  3013. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.49.0.txt +0 -222
  3014. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.5.0.txt +0 -34
  3015. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.6.0.txt +0 -30
  3016. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.7.0.txt +0 -103
  3017. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.8.0.txt +0 -175
  3018. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/4.9.0.txt +0 -190
  3019. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.0.0.txt +0 -159
  3020. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.1.0.txt +0 -31
  3021. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.10.0.txt +0 -84
  3022. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.11.0.txt +0 -83
  3023. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.12.0.txt +0 -141
  3024. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.13.0.txt +0 -27
  3025. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.14.0.txt +0 -63
  3026. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.15.0.txt +0 -39
  3027. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.16.0.txt +0 -110
  3028. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.17.0.txt +0 -31
  3029. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.18.0.txt +0 -69
  3030. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.2.0.txt +0 -33
  3031. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.3.0.txt +0 -121
  3032. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.4.0.txt +0 -80
  3033. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.5.0.txt +0 -61
  3034. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.6.0.txt +0 -31
  3035. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.7.0.txt +0 -108
  3036. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.8.0.txt +0 -170
  3037. data/vendor/bundle/gems/sequel-5.18.0/doc/release_notes/5.9.0.txt +0 -99
  3038. data/vendor/bundle/gems/sequel-5.18.0/doc/schema_modification.rdoc +0 -679
  3039. data/vendor/bundle/gems/sequel-5.18.0/doc/security.rdoc +0 -443
  3040. data/vendor/bundle/gems/sequel-5.18.0/doc/sharding.rdoc +0 -270
  3041. data/vendor/bundle/gems/sequel-5.18.0/doc/sql.rdoc +0 -636
  3042. data/vendor/bundle/gems/sequel-5.18.0/doc/testing.rdoc +0 -171
  3043. data/vendor/bundle/gems/sequel-5.18.0/doc/thread_safety.rdoc +0 -15
  3044. data/vendor/bundle/gems/sequel-5.18.0/doc/transactions.rdoc +0 -220
  3045. data/vendor/bundle/gems/sequel-5.18.0/doc/validations.rdoc +0 -558
  3046. data/vendor/bundle/gems/sequel-5.18.0/doc/virtual_rows.rdoc +0 -265
  3047. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel.rb +0 -3
  3048. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/ado.rb +0 -275
  3049. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/ado/access.rb +0 -335
  3050. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/ado/mssql.rb +0 -62
  3051. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/amalgalite.rb +0 -171
  3052. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/ibmdb.rb +0 -422
  3053. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc.rb +0 -811
  3054. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/db2.rb +0 -83
  3055. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/derby.rb +0 -310
  3056. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/h2.rb +0 -237
  3057. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/hsqldb.rb +0 -220
  3058. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/jtds.rb +0 -39
  3059. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/mssql.rb +0 -30
  3060. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/mysql.rb +0 -89
  3061. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/oracle.rb +0 -146
  3062. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/postgresql.rb +0 -242
  3063. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/sqlanywhere.rb +0 -72
  3064. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/sqlite.rb +0 -104
  3065. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/sqlserver.rb +0 -88
  3066. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/jdbc/transactions.rb +0 -95
  3067. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/mock.rb +0 -381
  3068. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/mysql.rb +0 -355
  3069. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/mysql2.rb +0 -296
  3070. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/odbc.rb +0 -148
  3071. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/odbc/db2.rb +0 -11
  3072. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/odbc/mssql.rb +0 -57
  3073. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/odbc/oracle.rb +0 -11
  3074. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/oracle.rb +0 -409
  3075. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/postgres.rb +0 -814
  3076. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/postgresql.rb +0 -3
  3077. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/access.rb +0 -290
  3078. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/db2.rb +0 -462
  3079. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/mssql.rb +0 -1084
  3080. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/mysql.rb +0 -1061
  3081. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/oracle.rb +0 -646
  3082. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/postgres.rb +0 -1961
  3083. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/sqlanywhere.rb +0 -454
  3084. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/shared/sqlite.rb +0 -885
  3085. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/sqlanywhere.rb +0 -176
  3086. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/sqlite.rb +0 -369
  3087. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/tinytds.rb +0 -246
  3088. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +0 -74
  3089. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +0 -93
  3090. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/mysql_mysql2.rb +0 -84
  3091. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/mysql_prepared_statements.rb +0 -56
  3092. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/replace.rb +0 -35
  3093. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/split_alter_table.rb +0 -46
  3094. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/stored_procedures.rb +0 -61
  3095. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/adapters/utils/unmodified_identifiers.rb +0 -28
  3096. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/ast_transformer.rb +0 -124
  3097. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/connection_pool.rb +0 -148
  3098. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/connection_pool/sharded_single.rb +0 -112
  3099. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/connection_pool/sharded_threaded.rb +0 -371
  3100. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/connection_pool/single.rb +0 -59
  3101. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/connection_pool/threaded.rb +0 -285
  3102. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/core.rb +0 -434
  3103. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database.rb +0 -37
  3104. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/connecting.rb +0 -332
  3105. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/dataset.rb +0 -79
  3106. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/dataset_defaults.rb +0 -93
  3107. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/features.rb +0 -150
  3108. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/logging.rb +0 -85
  3109. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/misc.rb +0 -550
  3110. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/query.rb +0 -363
  3111. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/schema_generator.rb +0 -643
  3112. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/schema_methods.rb +0 -1054
  3113. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/database/transactions.rb +0 -495
  3114. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset.rb +0 -54
  3115. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/actions.rb +0 -1238
  3116. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/dataset_module.rb +0 -46
  3117. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/features.rb +0 -249
  3118. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/graph.rb +0 -296
  3119. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/misc.rb +0 -371
  3120. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/placeholder_literalizer.rb +0 -220
  3121. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/prepared_statements.rb +0 -427
  3122. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/query.rb +0 -1365
  3123. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/dataset/sql.rb +0 -1668
  3124. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/deprecated.rb +0 -68
  3125. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/exceptions.rb +0 -123
  3126. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/_model_constraint_validations.rb +0 -16
  3127. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/_model_pg_row.rb +0 -43
  3128. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/_pretty_table.rb +0 -86
  3129. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/arbitrary_servers.rb +0 -114
  3130. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/auto_literal_strings.rb +0 -74
  3131. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/blank.rb +0 -49
  3132. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/caller_logging.rb +0 -79
  3133. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/columns_introspection.rb +0 -89
  3134. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/connection_expiration.rb +0 -99
  3135. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/connection_validator.rb +0 -123
  3136. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/constant_sql_override.rb +0 -65
  3137. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/constraint_validations.rb +0 -496
  3138. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/core_extensions.rb +0 -222
  3139. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/core_refinements.rb +0 -217
  3140. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/current_datetime_timestamp.rb +0 -59
  3141. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/dataset_source_alias.rb +0 -95
  3142. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/date_arithmetic.rb +0 -214
  3143. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/datetime_parse_to_time.rb +0 -37
  3144. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/duplicate_columns_handler.rb +0 -92
  3145. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/empty_array_consider_nulls.rb +0 -39
  3146. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/error_sql.rb +0 -76
  3147. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/escaped_like.rb +0 -100
  3148. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/eval_inspect.rb +0 -181
  3149. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/freeze_datasets.rb +0 -3
  3150. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/from_block.rb +0 -3
  3151. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/graph_each.rb +0 -88
  3152. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/identifier_mangling.rb +0 -180
  3153. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/implicit_subquery.rb +0 -48
  3154. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/index_caching.rb +0 -107
  3155. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/inflector.rb +0 -250
  3156. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/integer64.rb +0 -30
  3157. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/looser_typecasting.rb +0 -54
  3158. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/migration.rb +0 -786
  3159. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +0 -84
  3160. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/named_timezones.rb +0 -120
  3161. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/no_auto_literal_strings.rb +0 -4
  3162. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/null_dataset.rb +0 -109
  3163. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pagination.rb +0 -140
  3164. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_array.rb +0 -522
  3165. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_array_ops.rb +0 -328
  3166. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_enum.rb +0 -184
  3167. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_extended_date_support.rb +0 -250
  3168. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_hstore.rb +0 -342
  3169. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_hstore_ops.rb +0 -361
  3170. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_inet.rb +0 -127
  3171. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_inet_ops.rb +0 -204
  3172. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_interval.rb +0 -196
  3173. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_json.rb +0 -382
  3174. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_json_ops.rb +0 -513
  3175. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_loose_count.rb +0 -37
  3176. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_range.rb +0 -565
  3177. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_range_ops.rb +0 -165
  3178. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_row.rb +0 -580
  3179. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_row_ops.rb +0 -193
  3180. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_static_cache_updater.rb +0 -144
  3181. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pg_timestamptz.rb +0 -26
  3182. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/pretty_table.rb +0 -40
  3183. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/query.rb +0 -82
  3184. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/round_timestamps.rb +0 -49
  3185. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/s.rb +0 -57
  3186. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/schema_caching.rb +0 -88
  3187. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/schema_dumper.rb +0 -498
  3188. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/select_remove.rb +0 -52
  3189. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/sequel_4_dataset_methods.rb +0 -85
  3190. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/server_block.rb +0 -171
  3191. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/server_logging.rb +0 -61
  3192. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/split_array_nil.rb +0 -70
  3193. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/sql_comments.rb +0 -96
  3194. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/sql_expr.rb +0 -23
  3195. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/string_agg.rb +0 -181
  3196. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/string_date_time.rb +0 -52
  3197. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/symbol_aref.rb +0 -53
  3198. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/symbol_aref_refinement.rb +0 -41
  3199. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/symbol_as.rb +0 -23
  3200. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/symbol_as_refinement.rb +0 -35
  3201. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/synchronize_sql.rb +0 -45
  3202. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/thread_local_timezones.rb +0 -59
  3203. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/to_dot.rb +0 -158
  3204. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/extensions/virtual_row_method_block.rb +0 -44
  3205. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model.rb +0 -83
  3206. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/associations.rb +0 -3735
  3207. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/base.rb +0 -2225
  3208. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/dataset_module.rb +0 -33
  3209. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/default_inflections.rb +0 -47
  3210. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/errors.rb +0 -58
  3211. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/exceptions.rb +0 -55
  3212. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/inflections.rb +0 -151
  3213. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/model/plugins.rb +0 -55
  3214. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/accessed_columns.rb +0 -63
  3215. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/active_model.rb +0 -124
  3216. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/after_initialize.rb +0 -39
  3217. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/association_dependencies.rb +0 -106
  3218. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/association_pks.rb +0 -264
  3219. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/association_proxies.rb +0 -125
  3220. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/auto_validations.rb +0 -230
  3221. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/before_after_save.rb +0 -8
  3222. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/blacklist_security.rb +0 -105
  3223. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/boolean_readers.rb +0 -59
  3224. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/boolean_subsets.rb +0 -61
  3225. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/caching.rb +0 -161
  3226. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/class_table_inheritance.rb +0 -433
  3227. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/column_conflicts.rb +0 -108
  3228. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/column_select.rb +0 -61
  3229. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/columns_updated.rb +0 -42
  3230. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/composition.rb +0 -195
  3231. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/constraint_validations.rb +0 -250
  3232. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/csv_serializer.rb +0 -177
  3233. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/dataset_associations.rb +0 -149
  3234. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/def_dataset_method.rb +0 -90
  3235. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/defaults_setter.rb +0 -130
  3236. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/delay_add_association.rb +0 -53
  3237. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/dirty.rb +0 -238
  3238. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/eager_each.rb +0 -88
  3239. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/eager_graph_eager.rb +0 -139
  3240. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/error_splitter.rb +0 -61
  3241. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/finder.rb +0 -246
  3242. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/force_encoding.rb +0 -78
  3243. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/hook_class_methods.rb +0 -98
  3244. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/input_transformer.rb +0 -89
  3245. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/insert_returning_select.rb +0 -72
  3246. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/instance_filters.rb +0 -135
  3247. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/instance_hooks.rb +0 -115
  3248. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/inverted_subsets.rb +0 -59
  3249. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/json_serializer.rb +0 -429
  3250. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/lazy_attributes.rb +0 -123
  3251. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/list.rb +0 -203
  3252. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/many_through_many.rb +0 -338
  3253. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/modification_detection.rb +0 -102
  3254. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/mssql_optimistic_locking.rb +0 -95
  3255. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/nested_attributes.rb +0 -323
  3256. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/optimistic_locking.rb +0 -85
  3257. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/pg_array_associations.rb +0 -559
  3258. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/pg_auto_constraint_validations.rb +0 -260
  3259. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/pg_row.rb +0 -79
  3260. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/prepared_statements.rb +0 -192
  3261. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/prepared_statements_safe.rb +0 -83
  3262. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/rcte_tree.rb +0 -332
  3263. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/serialization.rb +0 -230
  3264. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/serialization_modification_detection.rb +0 -86
  3265. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/sharding.rb +0 -120
  3266. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/single_table_inheritance.rb +0 -256
  3267. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/singular_table_names.rb +0 -33
  3268. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/skip_create_refresh.rb +0 -37
  3269. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/split_values.rb +0 -71
  3270. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/static_cache.rb +0 -259
  3271. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/string_stripper.rb +0 -59
  3272. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/subclasses.rb +0 -77
  3273. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/subset_conditions.rb +0 -48
  3274. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/table_select.rb +0 -43
  3275. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/tactical_eager_loading.rb +0 -199
  3276. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/throw_failures.rb +0 -110
  3277. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/timestamps.rb +0 -109
  3278. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/touch.rb +0 -153
  3279. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/tree.rb +0 -183
  3280. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/typecast_on_load.rb +0 -89
  3281. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/unlimited_update.rb +0 -27
  3282. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/update_or_create.rb +0 -64
  3283. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/update_primary_key.rb +0 -72
  3284. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/update_refresh.rb +0 -88
  3285. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/uuid.rb +0 -70
  3286. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/validate_associated.rb +0 -75
  3287. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/validation_class_methods.rb +0 -454
  3288. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/validation_contexts.rb +0 -49
  3289. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/validation_helpers.rb +0 -317
  3290. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/whitelist_security.rb +0 -122
  3291. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/plugins/xml_serializer.rb +0 -411
  3292. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/sql.rb +0 -2034
  3293. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/timezones.rb +0 -210
  3294. data/vendor/bundle/gems/sequel-5.18.0/lib/sequel/version.rb +0 -25
  3295. data/vendor/bundle/gems/sequel-5.18.0/spec/adapter_spec.rb +0 -4
  3296. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/db2_spec.rb +0 -170
  3297. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/mssql_spec.rb +0 -804
  3298. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/mysql_spec.rb +0 -1065
  3299. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/oracle_spec.rb +0 -371
  3300. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/postgres_spec.rb +0 -4085
  3301. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/spec_helper.rb +0 -44
  3302. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/sqlanywhere_spec.rb +0 -97
  3303. data/vendor/bundle/gems/sequel-5.18.0/spec/adapters/sqlite_spec.rb +0 -652
  3304. data/vendor/bundle/gems/sequel-5.18.0/spec/bin_spec.rb +0 -278
  3305. data/vendor/bundle/gems/sequel-5.18.0/spec/core/connection_pool_spec.rb +0 -1250
  3306. data/vendor/bundle/gems/sequel-5.18.0/spec/core/database_spec.rb +0 -2794
  3307. data/vendor/bundle/gems/sequel-5.18.0/spec/core/dataset_spec.rb +0 -5515
  3308. data/vendor/bundle/gems/sequel-5.18.0/spec/core/deprecated_spec.rb +0 -70
  3309. data/vendor/bundle/gems/sequel-5.18.0/spec/core/expression_filters_spec.rb +0 -1455
  3310. data/vendor/bundle/gems/sequel-5.18.0/spec/core/mock_adapter_spec.rb +0 -722
  3311. data/vendor/bundle/gems/sequel-5.18.0/spec/core/object_graph_spec.rb +0 -336
  3312. data/vendor/bundle/gems/sequel-5.18.0/spec/core/placeholder_literalizer_spec.rb +0 -166
  3313. data/vendor/bundle/gems/sequel-5.18.0/spec/core/schema_generator_spec.rb +0 -214
  3314. data/vendor/bundle/gems/sequel-5.18.0/spec/core/schema_spec.rb +0 -1820
  3315. data/vendor/bundle/gems/sequel-5.18.0/spec/core/spec_helper.rb +0 -24
  3316. data/vendor/bundle/gems/sequel-5.18.0/spec/core/version_spec.rb +0 -14
  3317. data/vendor/bundle/gems/sequel-5.18.0/spec/core_extensions_spec.rb +0 -763
  3318. data/vendor/bundle/gems/sequel-5.18.0/spec/core_model_spec.rb +0 -2
  3319. data/vendor/bundle/gems/sequel-5.18.0/spec/core_spec.rb +0 -1
  3320. data/vendor/bundle/gems/sequel-5.18.0/spec/deprecation_helper.rb +0 -30
  3321. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/accessed_columns_spec.rb +0 -51
  3322. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/active_model_spec.rb +0 -99
  3323. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/after_initialize_spec.rb +0 -28
  3324. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/arbitrary_servers_spec.rb +0 -109
  3325. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/association_dependencies_spec.rb +0 -125
  3326. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/association_pks_spec.rb +0 -423
  3327. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/association_proxies_spec.rb +0 -100
  3328. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/auto_literal_strings_spec.rb +0 -205
  3329. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/auto_validations_spec.rb +0 -229
  3330. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/blacklist_security_spec.rb +0 -95
  3331. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/blank_spec.rb +0 -69
  3332. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/boolean_readers_spec.rb +0 -93
  3333. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/boolean_subsets_spec.rb +0 -47
  3334. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/caching_spec.rb +0 -273
  3335. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/caller_logging_spec.rb +0 -52
  3336. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/class_table_inheritance_spec.rb +0 -728
  3337. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/column_conflicts_spec.rb +0 -75
  3338. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/column_select_spec.rb +0 -129
  3339. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/columns_introspection_spec.rb +0 -90
  3340. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/columns_updated_spec.rb +0 -35
  3341. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/composition_spec.rb +0 -248
  3342. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/connection_expiration_spec.rb +0 -151
  3343. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/connection_validator_spec.rb +0 -144
  3344. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/constant_sql_override_spec.rb +0 -24
  3345. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/constraint_validations_plugin_spec.rb +0 -300
  3346. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/constraint_validations_spec.rb +0 -421
  3347. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/core_refinements_spec.rb +0 -528
  3348. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/csv_serializer_spec.rb +0 -183
  3349. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
  3350. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/dataset_associations_spec.rb +0 -365
  3351. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/dataset_source_alias_spec.rb +0 -51
  3352. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/date_arithmetic_spec.rb +0 -181
  3353. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/datetime_parse_to_time_spec.rb +0 -169
  3354. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/def_dataset_method_spec.rb +0 -100
  3355. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/defaults_setter_spec.rb +0 -150
  3356. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/delay_add_association_spec.rb +0 -73
  3357. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/dirty_spec.rb +0 -189
  3358. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/duplicate_columns_handler_spec.rb +0 -104
  3359. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/eager_each_spec.rb +0 -62
  3360. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/eager_graph_eager_spec.rb +0 -100
  3361. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
  3362. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/error_splitter_spec.rb +0 -18
  3363. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/error_sql_spec.rb +0 -20
  3364. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/escaped_like_spec.rb +0 -40
  3365. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/eval_inspect_spec.rb +0 -81
  3366. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/finder_spec.rb +0 -260
  3367. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/force_encoding_spec.rb +0 -126
  3368. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/freeze_datasets_spec.rb +0 -31
  3369. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/graph_each_spec.rb +0 -113
  3370. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/hook_class_methods_spec.rb +0 -380
  3371. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/identifier_mangling_spec.rb +0 -201
  3372. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/implicit_subquery_spec.rb +0 -58
  3373. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/index_caching_spec.rb +0 -66
  3374. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/inflector_spec.rb +0 -183
  3375. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/input_transformer_spec.rb +0 -69
  3376. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/insert_returning_select_spec.rb +0 -72
  3377. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/instance_filters_spec.rb +0 -79
  3378. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/instance_hooks_spec.rb +0 -246
  3379. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/integer64_spec.rb +0 -22
  3380. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/inverted_subsets_spec.rb +0 -33
  3381. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/json_serializer_spec.rb +0 -336
  3382. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/lazy_attributes_spec.rb +0 -183
  3383. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/list_spec.rb +0 -291
  3384. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/looser_typecasting_spec.rb +0 -43
  3385. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/many_through_many_spec.rb +0 -2177
  3386. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/migration_spec.rb +0 -851
  3387. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/modification_detection_spec.rb +0 -93
  3388. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/mssql_optimistic_locking_spec.rb +0 -92
  3389. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/named_timezones_spec.rb +0 -111
  3390. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/nested_attributes_spec.rb +0 -767
  3391. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/null_dataset_spec.rb +0 -85
  3392. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/optimistic_locking_spec.rb +0 -127
  3393. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pagination_spec.rb +0 -116
  3394. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_array_associations_spec.rb +0 -802
  3395. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_array_ops_spec.rb +0 -144
  3396. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_array_spec.rb +0 -398
  3397. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_auto_constraint_validations_spec.rb +0 -164
  3398. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_enum_spec.rb +0 -113
  3399. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_extended_date_support_spec.rb +0 -126
  3400. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_hstore_ops_spec.rb +0 -238
  3401. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_hstore_spec.rb +0 -219
  3402. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_inet_ops_spec.rb +0 -102
  3403. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_inet_spec.rb +0 -72
  3404. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_interval_spec.rb +0 -103
  3405. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_json_ops_spec.rb +0 -289
  3406. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_json_spec.rb +0 -262
  3407. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_loose_count_spec.rb +0 -23
  3408. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_range_ops_spec.rb +0 -60
  3409. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_range_spec.rb +0 -519
  3410. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_row_ops_spec.rb +0 -61
  3411. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_row_plugin_spec.rb +0 -60
  3412. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_row_spec.rb +0 -363
  3413. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_static_cache_updater_spec.rb +0 -93
  3414. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pg_timestamptz_spec.rb +0 -17
  3415. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/prepared_statements_safe_spec.rb +0 -66
  3416. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/prepared_statements_spec.rb +0 -177
  3417. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/pretty_table_spec.rb +0 -123
  3418. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/query_spec.rb +0 -94
  3419. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/rcte_tree_spec.rb +0 -381
  3420. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/round_timestamps_spec.rb +0 -39
  3421. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/s_spec.rb +0 -60
  3422. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/schema_caching_spec.rb +0 -64
  3423. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/schema_dumper_spec.rb +0 -868
  3424. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/select_remove_spec.rb +0 -38
  3425. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/sequel_4_dataset_methods_spec.rb +0 -121
  3426. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/serialization_modification_detection_spec.rb +0 -98
  3427. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/serialization_spec.rb +0 -365
  3428. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/server_block_spec.rb +0 -97
  3429. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/server_logging_spec.rb +0 -45
  3430. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/sharding_spec.rb +0 -189
  3431. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/shared_caching_spec.rb +0 -151
  3432. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/single_table_inheritance_spec.rb +0 -347
  3433. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/singular_table_names_spec.rb +0 -22
  3434. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/skip_create_refresh_spec.rb +0 -18
  3435. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/spec_helper.rb +0 -63
  3436. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/split_array_nil_spec.rb +0 -24
  3437. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/split_values_spec.rb +0 -57
  3438. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/sql_comments_spec.rb +0 -33
  3439. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/sql_expr_spec.rb +0 -59
  3440. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/static_cache_spec.rb +0 -471
  3441. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/string_agg_spec.rb +0 -90
  3442. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/string_date_time_spec.rb +0 -95
  3443. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/string_stripper_spec.rb +0 -68
  3444. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/subclasses_spec.rb +0 -79
  3445. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/subset_conditions_spec.rb +0 -38
  3446. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/symbol_aref_refinement_spec.rb +0 -28
  3447. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/symbol_as_refinement_spec.rb +0 -21
  3448. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/synchronize_sql_spec.rb +0 -124
  3449. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/table_select_spec.rb +0 -83
  3450. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/tactical_eager_loading_spec.rb +0 -402
  3451. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/thread_local_timezones_spec.rb +0 -67
  3452. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/throw_failures_spec.rb +0 -74
  3453. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/timestamps_spec.rb +0 -209
  3454. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/to_dot_spec.rb +0 -153
  3455. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/touch_spec.rb +0 -226
  3456. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/tree_spec.rb +0 -334
  3457. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/typecast_on_load_spec.rb +0 -86
  3458. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/unlimited_update_spec.rb +0 -21
  3459. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/update_or_create_spec.rb +0 -83
  3460. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/update_primary_key_spec.rb +0 -105
  3461. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/update_refresh_spec.rb +0 -59
  3462. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/uuid_spec.rb +0 -101
  3463. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/validate_associated_spec.rb +0 -52
  3464. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/validation_class_methods_spec.rb +0 -1040
  3465. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/validation_contexts_spec.rb +0 -31
  3466. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/validation_helpers_spec.rb +0 -525
  3467. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/whitelist_security_spec.rb +0 -157
  3468. data/vendor/bundle/gems/sequel-5.18.0/spec/extensions/xml_serializer_spec.rb +0 -213
  3469. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
  3470. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
  3471. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  3472. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  3473. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
  3474. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
  3475. data/vendor/bundle/gems/sequel-5.18.0/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
  3476. data/vendor/bundle/gems/sequel-5.18.0/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
  3477. data/vendor/bundle/gems/sequel-5.18.0/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
  3478. data/vendor/bundle/gems/sequel-5.18.0/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
  3479. data/vendor/bundle/gems/sequel-5.18.0/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
  3480. data/vendor/bundle/gems/sequel-5.18.0/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
  3481. data/vendor/bundle/gems/sequel-5.18.0/spec/files/double_migration/001_create_sessions.rb +0 -9
  3482. data/vendor/bundle/gems/sequel-5.18.0/spec/files/double_migration/002_create_nodes.rb +0 -19
  3483. data/vendor/bundle/gems/sequel-5.18.0/spec/files/double_migration/003_3_create_users.rb +0 -4
  3484. data/vendor/bundle/gems/sequel-5.18.0/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
  3485. data/vendor/bundle/gems/sequel-5.18.0/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
  3486. data/vendor/bundle/gems/sequel-5.18.0/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  3487. data/vendor/bundle/gems/sequel-5.18.0/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
  3488. data/vendor/bundle/gems/sequel-5.18.0/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
  3489. data/vendor/bundle/gems/sequel-5.18.0/spec/files/empty_migration/001_create_sessions.rb +0 -9
  3490. data/vendor/bundle/gems/sequel-5.18.0/spec/files/empty_migration/002_create_nodes.rb +0 -0
  3491. data/vendor/bundle/gems/sequel-5.18.0/spec/files/empty_migration/003_3_create_users.rb +0 -4
  3492. data/vendor/bundle/gems/sequel-5.18.0/spec/files/integer_migrations/001_create_sessions.rb +0 -9
  3493. data/vendor/bundle/gems/sequel-5.18.0/spec/files/integer_migrations/002_create_nodes.rb +0 -9
  3494. data/vendor/bundle/gems/sequel-5.18.0/spec/files/integer_migrations/003_3_create_users.rb +0 -4
  3495. data/vendor/bundle/gems/sequel-5.18.0/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  3496. data/vendor/bundle/gems/sequel-5.18.0/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
  3497. data/vendor/bundle/gems/sequel-5.18.0/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  3498. data/vendor/bundle/gems/sequel-5.18.0/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
  3499. data/vendor/bundle/gems/sequel-5.18.0/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  3500. data/vendor/bundle/gems/sequel-5.18.0/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
  3501. data/vendor/bundle/gems/sequel-5.18.0/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
  3502. data/vendor/bundle/gems/sequel-5.18.0/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  3503. data/vendor/bundle/gems/sequel-5.18.0/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  3504. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/001_reversible.rb +0 -5
  3505. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/002_reversible.rb +0 -5
  3506. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/003_reversible.rb +0 -5
  3507. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/004_reversible.rb +0 -5
  3508. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/005_reversible.rb +0 -10
  3509. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/006_reversible.rb +0 -10
  3510. data/vendor/bundle/gems/sequel-5.18.0/spec/files/reversible_migrations/007_reversible.rb +0 -10
  3511. data/vendor/bundle/gems/sequel-5.18.0/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
  3512. data/vendor/bundle/gems/sequel-5.18.0/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
  3513. data/vendor/bundle/gems/sequel-5.18.0/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
  3514. data/vendor/bundle/gems/sequel-5.18.0/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
  3515. data/vendor/bundle/gems/sequel-5.18.0/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
  3516. data/vendor/bundle/gems/sequel-5.18.0/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
  3517. data/vendor/bundle/gems/sequel-5.18.0/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
  3518. data/vendor/bundle/gems/sequel-5.18.0/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
  3519. data/vendor/bundle/gems/sequel-5.18.0/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
  3520. data/vendor/bundle/gems/sequel-5.18.0/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
  3521. data/vendor/bundle/gems/sequel-5.18.0/spec/guards_helper.rb +0 -59
  3522. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/associations_test.rb +0 -2597
  3523. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/database_test.rb +0 -113
  3524. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/dataset_test.rb +0 -1981
  3525. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/eager_loader_test.rb +0 -687
  3526. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/migrator_test.rb +0 -262
  3527. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/model_test.rb +0 -203
  3528. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/plugin_test.rb +0 -2381
  3529. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/prepared_statement_test.rb +0 -405
  3530. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/schema_test.rb +0 -889
  3531. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/spec_helper.rb +0 -65
  3532. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/timezone_test.rb +0 -86
  3533. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/transaction_test.rb +0 -553
  3534. data/vendor/bundle/gems/sequel-5.18.0/spec/integration/type_test.rb +0 -127
  3535. data/vendor/bundle/gems/sequel-5.18.0/spec/model/association_reflection_spec.rb +0 -803
  3536. data/vendor/bundle/gems/sequel-5.18.0/spec/model/associations_spec.rb +0 -4658
  3537. data/vendor/bundle/gems/sequel-5.18.0/spec/model/base_spec.rb +0 -875
  3538. data/vendor/bundle/gems/sequel-5.18.0/spec/model/class_dataset_methods_spec.rb +0 -146
  3539. data/vendor/bundle/gems/sequel-5.18.0/spec/model/dataset_methods_spec.rb +0 -198
  3540. data/vendor/bundle/gems/sequel-5.18.0/spec/model/eager_loading_spec.rb +0 -2377
  3541. data/vendor/bundle/gems/sequel-5.18.0/spec/model/hooks_spec.rb +0 -370
  3542. data/vendor/bundle/gems/sequel-5.18.0/spec/model/inflector_spec.rb +0 -26
  3543. data/vendor/bundle/gems/sequel-5.18.0/spec/model/model_spec.rb +0 -956
  3544. data/vendor/bundle/gems/sequel-5.18.0/spec/model/plugins_spec.rb +0 -318
  3545. data/vendor/bundle/gems/sequel-5.18.0/spec/model/record_spec.rb +0 -2118
  3546. data/vendor/bundle/gems/sequel-5.18.0/spec/model/spec_helper.rb +0 -46
  3547. data/vendor/bundle/gems/sequel-5.18.0/spec/model/validations_spec.rb +0 -220
  3548. data/vendor/bundle/gems/sequel-5.18.0/spec/model_no_assoc_spec.rb +0 -1
  3549. data/vendor/bundle/gems/sequel-5.18.0/spec/model_spec.rb +0 -1
  3550. data/vendor/bundle/gems/sequel-5.18.0/spec/plugin_spec.rb +0 -1
  3551. data/vendor/bundle/gems/sequel-5.18.0/spec/sequel_coverage.rb +0 -15
  3552. data/vendor/bundle/gems/sequel-5.18.0/spec/sequel_warning.rb +0 -4
  3553. data/vendor/bundle/gems/sequel-5.18.0/spec/spec_config.rb +0 -12
  3554. data/vendor/bundle/gems/simplecov-0.16.1/CHANGELOG.md +0 -481
  3555. data/vendor/bundle/gems/simplecov-0.16.1/CONTRIBUTING.md +0 -51
  3556. data/vendor/bundle/gems/simplecov-0.16.1/ISSUE_TEMPLATE.md +0 -23
  3557. data/vendor/bundle/gems/simplecov-0.16.1/LICENSE +0 -20
  3558. data/vendor/bundle/gems/simplecov-0.16.1/README.md +0 -710
  3559. data/vendor/bundle/gems/simplecov-0.16.1/doc/alternate-formatters.md +0 -51
  3560. data/vendor/bundle/gems/simplecov-0.16.1/doc/commercial-services.md +0 -20
  3561. data/vendor/bundle/gems/simplecov-0.16.1/doc/editor-integration.md +0 -18
  3562. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov.rb +0 -281
  3563. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/command_guesser.rb +0 -61
  3564. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/configuration.rb +0 -305
  3565. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/defaults.rb +0 -50
  3566. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/exit_codes.rb +0 -10
  3567. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/file_list.rb +0 -61
  3568. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/filter.rb +0 -91
  3569. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/formatter.rb +0 -10
  3570. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/formatter/multi_formatter.rb +0 -34
  3571. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/formatter/simple_formatter.rb +0 -25
  3572. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/jruby_fix.rb +0 -44
  3573. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/last_run.rb +0 -26
  3574. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/lines_classifier.rb +0 -48
  3575. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/load_global_config.rb +0 -8
  3576. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/no_defaults.rb +0 -4
  3577. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/profiles.rb +0 -33
  3578. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/profiles/bundler_filter.rb +0 -5
  3579. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/profiles/rails.rb +0 -18
  3580. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/profiles/root_filter.rb +0 -10
  3581. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/profiles/test_frameworks.rb +0 -8
  3582. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/railtie.rb +0 -9
  3583. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/railties/tasks.rake +0 -13
  3584. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/raw_coverage.rb +0 -41
  3585. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/result.rb +0 -88
  3586. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/result_merger.rb +0 -123
  3587. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/source_file.rb +0 -203
  3588. data/vendor/bundle/gems/simplecov-0.16.1/lib/simplecov/version.rb +0 -5
  3589. data/vendor/bundle/gems/simplecov-html-0.10.2/CHANGELOG.md +0 -13
  3590. data/vendor/bundle/gems/simplecov-html-0.10.2/Gemfile +0 -34
  3591. data/vendor/bundle/gems/simplecov-html-0.10.2/Guardfile +0 -12
  3592. data/vendor/bundle/gems/simplecov-html-0.10.2/LICENSE +0 -20
  3593. data/vendor/bundle/gems/simplecov-html-0.10.2/README.md +0 -30
  3594. data/vendor/bundle/gems/simplecov-html-0.10.2/Rakefile +0 -41
  3595. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/application.js +0 -127
  3596. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/libraries/jquery-1.6.2.min.js +0 -18
  3597. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/plugins/highlight.pack.js +0 -1
  3598. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.colorbox.js +0 -1090
  3599. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.dataTables.min.js +0 -152
  3600. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.timeago.js +0 -141
  3601. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/javascripts/plugins/jquery.url.js +0 -174
  3602. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/stylesheets/application.css +0 -3
  3603. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/highlight.css +0 -129
  3604. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/jquery-ui-1.8.4.custom.css +0 -295
  3605. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/stylesheets/plugins/jquery.colorbox.css +0 -52
  3606. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/stylesheets/reset.css +0 -103
  3607. data/vendor/bundle/gems/simplecov-html-0.10.2/assets/stylesheets/screen.css.sass +0 -220
  3608. data/vendor/bundle/gems/simplecov-html-0.10.2/lib/simplecov-html.rb +0 -110
  3609. data/vendor/bundle/gems/simplecov-html-0.10.2/lib/simplecov-html/version.rb +0 -7
  3610. data/vendor/bundle/gems/simplecov-html-0.10.2/public/application.css +0 -799
  3611. data/vendor/bundle/gems/simplecov-html-0.10.2/public/application.js +0 -1707
  3612. data/vendor/bundle/gems/simplecov-html-0.10.2/public/colorbox/border.png +0 -0
  3613. data/vendor/bundle/gems/simplecov-html-0.10.2/public/colorbox/controls.png +0 -0
  3614. data/vendor/bundle/gems/simplecov-html-0.10.2/public/colorbox/loading.gif +0 -0
  3615. data/vendor/bundle/gems/simplecov-html-0.10.2/public/colorbox/loading_background.png +0 -0
  3616. data/vendor/bundle/gems/simplecov-html-0.10.2/public/favicon_green.png +0 -0
  3617. data/vendor/bundle/gems/simplecov-html-0.10.2/public/favicon_red.png +0 -0
  3618. data/vendor/bundle/gems/simplecov-html-0.10.2/public/favicon_yellow.png +0 -0
  3619. data/vendor/bundle/gems/simplecov-html-0.10.2/public/loading.gif +0 -0
  3620. data/vendor/bundle/gems/simplecov-html-0.10.2/public/magnify.png +0 -0
  3621. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  3622. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  3623. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  3624. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  3625. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  3626. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  3627. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  3628. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  3629. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_222222_256x240.png +0 -0
  3630. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  3631. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_454545_256x240.png +0 -0
  3632. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_888888_256x240.png +0 -0
  3633. data/vendor/bundle/gems/simplecov-html-0.10.2/public/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  3634. data/vendor/bundle/gems/simplecov-html-0.10.2/simplecov-html.gemspec +0 -22
  3635. data/vendor/bundle/gems/simplecov-html-0.10.2/test/helper.rb +0 -4
  3636. data/vendor/bundle/gems/simplecov-html-0.10.2/test/test_simple_cov-html.rb +0 -8
  3637. data/vendor/bundle/gems/simplecov-html-0.10.2/views/file_list.erb +0 -45
  3638. data/vendor/bundle/gems/simplecov-html-0.10.2/views/layout.erb +0 -41
  3639. data/vendor/bundle/gems/simplecov-html-0.10.2/views/source_file.erb +0 -23
  3640. data/vendor/bundle/gems/sqlite3-1.4.0/API_CHANGES.rdoc +0 -50
  3641. data/vendor/bundle/gems/sqlite3-1.4.0/CHANGELOG.rdoc +0 -306
  3642. data/vendor/bundle/gems/sqlite3-1.4.0/ChangeLog.cvs +0 -88
  3643. data/vendor/bundle/gems/sqlite3-1.4.0/Gemfile +0 -17
  3644. data/vendor/bundle/gems/sqlite3-1.4.0/LICENSE +0 -27
  3645. data/vendor/bundle/gems/sqlite3-1.4.0/Manifest.txt +0 -60
  3646. data/vendor/bundle/gems/sqlite3-1.4.0/README.rdoc +0 -118
  3647. data/vendor/bundle/gems/sqlite3-1.4.0/Rakefile +0 -8
  3648. data/vendor/bundle/gems/sqlite3-1.4.0/appveyor.yml +0 -36
  3649. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/Makefile +0 -265
  3650. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/aggregator.c +0 -273
  3651. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/aggregator.h +0 -12
  3652. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/aggregator.o +0 -0
  3653. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/backup.c +0 -168
  3654. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/backup.h +0 -15
  3655. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/backup.o +0 -0
  3656. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/database.c +0 -823
  3657. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/database.h +0 -17
  3658. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/database.o +0 -0
  3659. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/exception.c +0 -98
  3660. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/exception.h +0 -8
  3661. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/exception.o +0 -0
  3662. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/extconf.rb +0 -100
  3663. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/sqlite3.c +0 -161
  3664. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/sqlite3.o +0 -0
  3665. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/sqlite3_native.so +0 -0
  3666. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/sqlite3_ruby.h +0 -45
  3667. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/statement.c +0 -442
  3668. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/statement.h +0 -16
  3669. data/vendor/bundle/gems/sqlite3-1.4.0/ext/sqlite3/statement.o +0 -0
  3670. data/vendor/bundle/gems/sqlite3-1.4.0/faq/faq.rb +0 -145
  3671. data/vendor/bundle/gems/sqlite3-1.4.0/faq/faq.yml +0 -426
  3672. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3.rb +0 -15
  3673. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/constants.rb +0 -50
  3674. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/database.rb +0 -736
  3675. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/errors.rb +0 -35
  3676. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/pragmas.rb +0 -588
  3677. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/resultset.rb +0 -187
  3678. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/sqlite3_native.so +0 -0
  3679. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/statement.rb +0 -144
  3680. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/translator.rb +0 -118
  3681. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/value.rb +0 -57
  3682. data/vendor/bundle/gems/sqlite3-1.4.0/lib/sqlite3/version.rb +0 -25
  3683. data/vendor/bundle/gems/sqlite3-1.4.0/rakelib/faq.rake +0 -9
  3684. data/vendor/bundle/gems/sqlite3-1.4.0/rakelib/gem.rake +0 -40
  3685. data/vendor/bundle/gems/sqlite3-1.4.0/rakelib/native.rake +0 -56
  3686. data/vendor/bundle/gems/sqlite3-1.4.0/rakelib/vendor_sqlite3.rake +0 -97
  3687. data/vendor/bundle/gems/sqlite3-1.4.0/setup.rb +0 -1333
  3688. data/vendor/bundle/gems/sqlite3-1.4.0/test/helper.rb +0 -18
  3689. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_backup.rb +0 -33
  3690. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_collation.rb +0 -82
  3691. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_database.rb +0 -503
  3692. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_database_flags.rb +0 -95
  3693. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_database_readonly.rb +0 -36
  3694. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_database_readwrite.rb +0 -41
  3695. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_deprecated.rb +0 -44
  3696. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_encoding.rb +0 -155
  3697. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_integration.rb +0 -507
  3698. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_integration_aggregate.rb +0 -336
  3699. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_integration_open_close.rb +0 -30
  3700. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_integration_pending.rb +0 -115
  3701. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_integration_resultset.rb +0 -159
  3702. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_integration_statement.rb +0 -194
  3703. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_result_set.rb +0 -37
  3704. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_sqlite3.rb +0 -21
  3705. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_statement.rb +0 -268
  3706. data/vendor/bundle/gems/sqlite3-1.4.0/test/test_statement_execute.rb +0 -35
  3707. data/vendor/bundle/gems/term-ansicolor-1.7.1/CHANGES +0 -69
  3708. data/vendor/bundle/gems/term-ansicolor-1.7.1/COPYING +0 -202
  3709. data/vendor/bundle/gems/term-ansicolor-1.7.1/Gemfile +0 -5
  3710. data/vendor/bundle/gems/term-ansicolor-1.7.1/README.md +0 -42
  3711. data/vendor/bundle/gems/term-ansicolor-1.7.1/Rakefile +0 -28
  3712. data/vendor/bundle/gems/term-ansicolor-1.7.1/VERSION +0 -1
  3713. data/vendor/bundle/gems/term-ansicolor-1.7.1/bin/term_cdiff +0 -19
  3714. data/vendor/bundle/gems/term-ansicolor-1.7.1/bin/term_colortab +0 -49
  3715. data/vendor/bundle/gems/term-ansicolor-1.7.1/bin/term_decolor +0 -12
  3716. data/vendor/bundle/gems/term-ansicolor-1.7.1/bin/term_display +0 -91
  3717. data/vendor/bundle/gems/term-ansicolor-1.7.1/bin/term_mandel +0 -52
  3718. data/vendor/bundle/gems/term-ansicolor-1.7.1/bin/term_snow +0 -72
  3719. data/vendor/bundle/gems/term-ansicolor-1.7.1/examples/example.rb +0 -90
  3720. data/vendor/bundle/gems/term-ansicolor-1.7.1/examples/lambda-red-plain.ppm +0 -135
  3721. data/vendor/bundle/gems/term-ansicolor-1.7.1/examples/lambda-red.png +0 -0
  3722. data/vendor/bundle/gems/term-ansicolor-1.7.1/examples/lambda-red.ppm +0 -4
  3723. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor.rb +0 -127
  3724. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/attribute.rb +0 -142
  3725. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/attribute/color256.rb +0 -69
  3726. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/attribute/color8.rb +0 -25
  3727. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/attribute/intense_color8.rb +0 -43
  3728. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/attribute/text.rb +0 -23
  3729. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/hsl_triple.rb +0 -169
  3730. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/movement.rb +0 -108
  3731. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/ppm_reader.rb +0 -96
  3732. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/rgb_color_metrics.rb +0 -161
  3733. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/rgb_triple.rb +0 -179
  3734. data/vendor/bundle/gems/term-ansicolor-1.7.1/lib/term/ansicolor/version.rb +0 -8
  3735. data/vendor/bundle/gems/term-ansicolor-1.7.1/term-ansicolor.gemspec +0 -45
  3736. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/ansicolor_test.rb +0 -160
  3737. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/attribute_test.rb +0 -73
  3738. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/hsl_triple_test.rb +0 -85
  3739. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/ppm_reader_test.rb +0 -46
  3740. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/rgb_color_metrics_test.rb +0 -100
  3741. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/rgb_triple_test.rb +0 -101
  3742. data/vendor/bundle/gems/term-ansicolor-1.7.1/tests/test_helper.rb +0 -8
  3743. data/vendor/bundle/gems/test-unit-3.3.1/COPYING +0 -67
  3744. data/vendor/bundle/gems/test-unit-3.3.1/GPL +0 -339
  3745. data/vendor/bundle/gems/test-unit-3.3.1/LGPL +0 -502
  3746. data/vendor/bundle/gems/test-unit-3.3.1/PSFL +0 -271
  3747. data/vendor/bundle/gems/test-unit-3.3.1/README.md +0 -101
  3748. data/vendor/bundle/gems/test-unit-3.3.1/Rakefile +0 -80
  3749. data/vendor/bundle/gems/test-unit-3.3.1/doc/text/getting-started.md +0 -246
  3750. data/vendor/bundle/gems/test-unit-3.3.1/doc/text/how-to.md +0 -90
  3751. data/vendor/bundle/gems/test-unit-3.3.1/doc/text/news.md +0 -1417
  3752. data/vendor/bundle/gems/test-unit-3.3.1/lib/test-unit.rb +0 -34
  3753. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit.rb +0 -505
  3754. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/assertion-failed-error.rb +0 -25
  3755. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/assertions.rb +0 -2256
  3756. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/attribute-matcher.rb +0 -26
  3757. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/attribute.rb +0 -227
  3758. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/auto-runner-loader.rb +0 -17
  3759. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/autorunner.rb +0 -537
  3760. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/code-snippet-fetcher.rb +0 -56
  3761. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/collector.rb +0 -73
  3762. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/collector/descendant.rb +0 -19
  3763. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/collector/dir.rb +0 -108
  3764. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/collector/load.rb +0 -199
  3765. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/collector/objectspace.rb +0 -34
  3766. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/collector/xml.rb +0 -249
  3767. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/color-scheme.rb +0 -198
  3768. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/color.rb +0 -134
  3769. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/data-sets.rb +0 -116
  3770. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/data.rb +0 -371
  3771. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/diff.rb +0 -746
  3772. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/error.rb +0 -158
  3773. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/exception-handler.rb +0 -82
  3774. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/failure.rb +0 -169
  3775. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/fault-location-detector.rb +0 -100
  3776. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/fixture.rb +0 -298
  3777. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/notification.rb +0 -136
  3778. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/omission.rb +0 -195
  3779. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/pending.rb +0 -154
  3780. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/priority.rb +0 -192
  3781. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/runner/console.rb +0 -84
  3782. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/runner/emacs.rb +0 -8
  3783. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/runner/xml.rb +0 -15
  3784. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/test-suite-creator.rb +0 -103
  3785. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/testcase.rb +0 -884
  3786. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/testresult.rb +0 -132
  3787. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/testsuite.rb +0 -175
  3788. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/console/outputlevel.rb +0 -15
  3789. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/console/testrunner.rb +0 -750
  3790. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/emacs/testrunner.rb +0 -49
  3791. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/testrunner.rb +0 -53
  3792. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/testrunnermediator.rb +0 -114
  3793. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  3794. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/ui/xml/testrunner.rb +0 -224
  3795. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/util/backtracefilter.rb +0 -59
  3796. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/util/method-owner-finder.rb +0 -28
  3797. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/util/observable.rb +0 -90
  3798. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/util/output.rb +0 -31
  3799. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/util/procwrapper.rb +0 -48
  3800. data/vendor/bundle/gems/test-unit-3.3.1/lib/test/unit/version.rb +0 -5
  3801. data/vendor/bundle/gems/test-unit-3.3.1/sample/adder.rb +0 -13
  3802. data/vendor/bundle/gems/test-unit-3.3.1/sample/subtracter.rb +0 -12
  3803. data/vendor/bundle/gems/test-unit-3.3.1/sample/test_adder.rb +0 -20
  3804. data/vendor/bundle/gems/test-unit-3.3.1/sample/test_subtracter.rb +0 -20
  3805. data/vendor/bundle/gems/test-unit-3.3.1/sample/test_user.rb +0 -23
  3806. data/vendor/bundle/gems/test-unit-3.3.1/test/collector/test-descendant.rb +0 -182
  3807. data/vendor/bundle/gems/test-unit-3.3.1/test/collector/test-load.rb +0 -442
  3808. data/vendor/bundle/gems/test-unit-3.3.1/test/collector/test_dir.rb +0 -407
  3809. data/vendor/bundle/gems/test-unit-3.3.1/test/collector/test_objectspace.rb +0 -102
  3810. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/header-label.csv +0 -3
  3811. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/header-label.tsv +0 -3
  3812. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/header.csv +0 -3
  3813. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/header.tsv +0 -3
  3814. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/no-header.csv +0 -2
  3815. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/no-header.tsv +0 -2
  3816. data/vendor/bundle/gems/test-unit-3.3.1/test/fixtures/plus.csv +0 -3
  3817. data/vendor/bundle/gems/test-unit-3.3.1/test/run-test.rb +0 -22
  3818. data/vendor/bundle/gems/test-unit-3.3.1/test/test-assertions.rb +0 -2182
  3819. data/vendor/bundle/gems/test-unit-3.3.1/test/test-attribute-matcher.rb +0 -38
  3820. data/vendor/bundle/gems/test-unit-3.3.1/test/test-attribute.rb +0 -123
  3821. data/vendor/bundle/gems/test-unit-3.3.1/test/test-code-snippet.rb +0 -79
  3822. data/vendor/bundle/gems/test-unit-3.3.1/test/test-color-scheme.rb +0 -82
  3823. data/vendor/bundle/gems/test-unit-3.3.1/test/test-color.rb +0 -47
  3824. data/vendor/bundle/gems/test-unit-3.3.1/test/test-data.rb +0 -419
  3825. data/vendor/bundle/gems/test-unit-3.3.1/test/test-diff.rb +0 -518
  3826. data/vendor/bundle/gems/test-unit-3.3.1/test/test-emacs-runner.rb +0 -60
  3827. data/vendor/bundle/gems/test-unit-3.3.1/test/test-error.rb +0 -26
  3828. data/vendor/bundle/gems/test-unit-3.3.1/test/test-failure.rb +0 -33
  3829. data/vendor/bundle/gems/test-unit-3.3.1/test/test-fault-location-detector.rb +0 -163
  3830. data/vendor/bundle/gems/test-unit-3.3.1/test/test-fixture.rb +0 -713
  3831. data/vendor/bundle/gems/test-unit-3.3.1/test/test-notification.rb +0 -33
  3832. data/vendor/bundle/gems/test-unit-3.3.1/test/test-omission.rb +0 -81
  3833. data/vendor/bundle/gems/test-unit-3.3.1/test/test-pending.rb +0 -70
  3834. data/vendor/bundle/gems/test-unit-3.3.1/test/test-priority.rb +0 -173
  3835. data/vendor/bundle/gems/test-unit-3.3.1/test/test-test-case.rb +0 -1279
  3836. data/vendor/bundle/gems/test-unit-3.3.1/test/test-test-result.rb +0 -113
  3837. data/vendor/bundle/gems/test-unit-3.3.1/test/test-test-suite-creator.rb +0 -97
  3838. data/vendor/bundle/gems/test-unit-3.3.1/test/test-test-suite.rb +0 -151
  3839. data/vendor/bundle/gems/test-unit-3.3.1/test/testunit-test-util.rb +0 -33
  3840. data/vendor/bundle/gems/test-unit-3.3.1/test/ui/test_testrunmediator.rb +0 -20
  3841. data/vendor/bundle/gems/test-unit-3.3.1/test/util/test-method-owner-finder.rb +0 -38
  3842. data/vendor/bundle/gems/test-unit-3.3.1/test/util/test-output.rb +0 -11
  3843. data/vendor/bundle/gems/test-unit-3.3.1/test/util/test_backtracefilter.rb +0 -52
  3844. data/vendor/bundle/gems/test-unit-3.3.1/test/util/test_observable.rb +0 -102
  3845. data/vendor/bundle/gems/test-unit-3.3.1/test/util/test_procwrapper.rb +0 -36
  3846. data/vendor/bundle/gems/thor-0.19.4/CHANGELOG.md +0 -163
  3847. data/vendor/bundle/gems/thor-0.19.4/CONTRIBUTING.md +0 -15
  3848. data/vendor/bundle/gems/thor-0.19.4/LICENSE.md +0 -20
  3849. data/vendor/bundle/gems/thor-0.19.4/README.md +0 -47
  3850. data/vendor/bundle/gems/thor-0.19.4/bin/thor +0 -6
  3851. data/vendor/bundle/gems/thor-0.19.4/lib/thor.rb +0 -492
  3852. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions.rb +0 -318
  3853. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions/create_file.rb +0 -103
  3854. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions/create_link.rb +0 -59
  3855. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions/directory.rb +0 -118
  3856. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions/empty_directory.rb +0 -135
  3857. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions/file_manipulation.rb +0 -327
  3858. data/vendor/bundle/gems/thor-0.19.4/lib/thor/actions/inject_into_file.rb +0 -103
  3859. data/vendor/bundle/gems/thor-0.19.4/lib/thor/base.rb +0 -656
  3860. data/vendor/bundle/gems/thor-0.19.4/lib/thor/command.rb +0 -133
  3861. data/vendor/bundle/gems/thor-0.19.4/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -85
  3862. data/vendor/bundle/gems/thor-0.19.4/lib/thor/core_ext/io_binary_read.rb +0 -12
  3863. data/vendor/bundle/gems/thor-0.19.4/lib/thor/core_ext/ordered_hash.rb +0 -129
  3864. data/vendor/bundle/gems/thor-0.19.4/lib/thor/error.rb +0 -32
  3865. data/vendor/bundle/gems/thor-0.19.4/lib/thor/group.rb +0 -281
  3866. data/vendor/bundle/gems/thor-0.19.4/lib/thor/invocation.rb +0 -177
  3867. data/vendor/bundle/gems/thor-0.19.4/lib/thor/line_editor.rb +0 -17
  3868. data/vendor/bundle/gems/thor-0.19.4/lib/thor/line_editor/basic.rb +0 -35
  3869. data/vendor/bundle/gems/thor-0.19.4/lib/thor/line_editor/readline.rb +0 -88
  3870. data/vendor/bundle/gems/thor-0.19.4/lib/thor/parser.rb +0 -4
  3871. data/vendor/bundle/gems/thor-0.19.4/lib/thor/parser/argument.rb +0 -70
  3872. data/vendor/bundle/gems/thor-0.19.4/lib/thor/parser/arguments.rb +0 -175
  3873. data/vendor/bundle/gems/thor-0.19.4/lib/thor/parser/option.rb +0 -146
  3874. data/vendor/bundle/gems/thor-0.19.4/lib/thor/parser/options.rb +0 -220
  3875. data/vendor/bundle/gems/thor-0.19.4/lib/thor/rake_compat.rb +0 -71
  3876. data/vendor/bundle/gems/thor-0.19.4/lib/thor/runner.rb +0 -322
  3877. data/vendor/bundle/gems/thor-0.19.4/lib/thor/shell.rb +0 -81
  3878. data/vendor/bundle/gems/thor-0.19.4/lib/thor/shell/basic.rb +0 -436
  3879. data/vendor/bundle/gems/thor-0.19.4/lib/thor/shell/color.rb +0 -149
  3880. data/vendor/bundle/gems/thor-0.19.4/lib/thor/shell/html.rb +0 -126
  3881. data/vendor/bundle/gems/thor-0.19.4/lib/thor/util.rb +0 -268
  3882. data/vendor/bundle/gems/thor-0.19.4/lib/thor/version.rb +0 -3
  3883. data/vendor/bundle/gems/thor-0.19.4/thor.gemspec +0 -21
  3884. data/vendor/bundle/gems/tins-1.20.2/COPYING +0 -18
  3885. data/vendor/bundle/gems/tins-1.20.2/Gemfile +0 -10
  3886. data/vendor/bundle/gems/tins-1.20.2/README.md +0 -107
  3887. data/vendor/bundle/gems/tins-1.20.2/Rakefile +0 -23
  3888. data/vendor/bundle/gems/tins-1.20.2/TODO +0 -3
  3889. data/vendor/bundle/gems/tins-1.20.2/VERSION +0 -1
  3890. data/vendor/bundle/gems/tins-1.20.2/examples/add_one.png +0 -0
  3891. data/vendor/bundle/gems/tins-1.20.2/examples/add_one.stm +0 -13
  3892. data/vendor/bundle/gems/tins-1.20.2/examples/bb3.png +0 -0
  3893. data/vendor/bundle/gems/tins-1.20.2/examples/bb3.stm +0 -26
  3894. data/vendor/bundle/gems/tins-1.20.2/examples/concatenate_compare.mtm +0 -31
  3895. data/vendor/bundle/gems/tins-1.20.2/examples/concatenate_compare.png +0 -0
  3896. data/vendor/bundle/gems/tins-1.20.2/examples/length_difference.mtm +0 -17
  3897. data/vendor/bundle/gems/tins-1.20.2/examples/length_difference.png +0 -0
  3898. data/vendor/bundle/gems/tins-1.20.2/examples/let.rb +0 -62
  3899. data/vendor/bundle/gems/tins-1.20.2/examples/mail.rb +0 -73
  3900. data/vendor/bundle/gems/tins-1.20.2/examples/minsky.rb +0 -145
  3901. data/vendor/bundle/gems/tins-1.20.2/examples/multiply.reg +0 -42
  3902. data/vendor/bundle/gems/tins-1.20.2/examples/null_pattern.rb +0 -52
  3903. data/vendor/bundle/gems/tins-1.20.2/examples/ones_difference-mtm.png +0 -0
  3904. data/vendor/bundle/gems/tins-1.20.2/examples/ones_difference-stm.png +0 -0
  3905. data/vendor/bundle/gems/tins-1.20.2/examples/ones_difference.mtm +0 -12
  3906. data/vendor/bundle/gems/tins-1.20.2/examples/ones_difference.stm +0 -25
  3907. data/vendor/bundle/gems/tins-1.20.2/examples/prefix-equals-suffix-reversed-with-infix.png +0 -0
  3908. data/vendor/bundle/gems/tins-1.20.2/examples/prefix-equals-suffix-reversed-with-infix.stm +0 -38
  3909. data/vendor/bundle/gems/tins-1.20.2/examples/recipe.rb +0 -81
  3910. data/vendor/bundle/gems/tins-1.20.2/examples/recipe2.rb +0 -82
  3911. data/vendor/bundle/gems/tins-1.20.2/examples/recipe_common.rb +0 -65
  3912. data/vendor/bundle/gems/tins-1.20.2/examples/subtract.reg +0 -9
  3913. data/vendor/bundle/gems/tins-1.20.2/examples/turing-graph.rb +0 -17
  3914. data/vendor/bundle/gems/tins-1.20.2/examples/turing.rb +0 -310
  3915. data/vendor/bundle/gems/tins-1.20.2/lib/dslkit.rb +0 -2
  3916. data/vendor/bundle/gems/tins-1.20.2/lib/dslkit/polite.rb +0 -1
  3917. data/vendor/bundle/gems/tins-1.20.2/lib/dslkit/rude.rb +0 -1
  3918. data/vendor/bundle/gems/tins-1.20.2/lib/spruz.rb +0 -2
  3919. data/vendor/bundle/gems/tins-1.20.2/lib/tins.rb +0 -61
  3920. data/vendor/bundle/gems/tins-1.20.2/lib/tins/alias.rb +0 -1
  3921. data/vendor/bundle/gems/tins-1.20.2/lib/tins/annotate.rb +0 -38
  3922. data/vendor/bundle/gems/tins-1.20.2/lib/tins/ask_and_send.rb +0 -31
  3923. data/vendor/bundle/gems/tins-1.20.2/lib/tins/attempt.rb +0 -88
  3924. data/vendor/bundle/gems/tins-1.20.2/lib/tins/bijection.rb +0 -46
  3925. data/vendor/bundle/gems/tins-1.20.2/lib/tins/case_predicate.rb +0 -7
  3926. data/vendor/bundle/gems/tins-1.20.2/lib/tins/complete.rb +0 -18
  3927. data/vendor/bundle/gems/tins-1.20.2/lib/tins/concern.rb +0 -30
  3928. data/vendor/bundle/gems/tins-1.20.2/lib/tins/count_by.rb +0 -8
  3929. data/vendor/bundle/gems/tins-1.20.2/lib/tins/date_dummy.rb +0 -53
  3930. data/vendor/bundle/gems/tins-1.20.2/lib/tins/date_time_dummy.rb +0 -51
  3931. data/vendor/bundle/gems/tins-1.20.2/lib/tins/deep_const_get.rb +0 -42
  3932. data/vendor/bundle/gems/tins-1.20.2/lib/tins/deep_dup.rb +0 -11
  3933. data/vendor/bundle/gems/tins-1.20.2/lib/tins/dslkit.rb +0 -636
  3934. data/vendor/bundle/gems/tins-1.20.2/lib/tins/duration.rb +0 -87
  3935. data/vendor/bundle/gems/tins-1.20.2/lib/tins/expose.rb +0 -27
  3936. data/vendor/bundle/gems/tins-1.20.2/lib/tins/extract_last_argument_options.rb +0 -14
  3937. data/vendor/bundle/gems/tins-1.20.2/lib/tins/file_binary.rb +0 -83
  3938. data/vendor/bundle/gems/tins-1.20.2/lib/tins/find.rb +0 -149
  3939. data/vendor/bundle/gems/tins-1.20.2/lib/tins/generator.rb +0 -68
  3940. data/vendor/bundle/gems/tins-1.20.2/lib/tins/go.rb +0 -96
  3941. data/vendor/bundle/gems/tins-1.20.2/lib/tins/hash_symbolize_keys_recursive.rb +0 -27
  3942. data/vendor/bundle/gems/tins-1.20.2/lib/tins/hash_union.rb +0 -15
  3943. data/vendor/bundle/gems/tins-1.20.2/lib/tins/if_predicate.rb +0 -7
  3944. data/vendor/bundle/gems/tins-1.20.2/lib/tins/implement.rb +0 -40
  3945. data/vendor/bundle/gems/tins-1.20.2/lib/tins/limited.rb +0 -38
  3946. data/vendor/bundle/gems/tins-1.20.2/lib/tins/lines_file.rb +0 -123
  3947. data/vendor/bundle/gems/tins-1.20.2/lib/tins/memoize.rb +0 -91
  3948. data/vendor/bundle/gems/tins-1.20.2/lib/tins/method_description.rb +0 -143
  3949. data/vendor/bundle/gems/tins-1.20.2/lib/tins/minimize.rb +0 -55
  3950. data/vendor/bundle/gems/tins-1.20.2/lib/tins/module_group.rb +0 -13
  3951. data/vendor/bundle/gems/tins-1.20.2/lib/tins/named_set.rb +0 -12
  3952. data/vendor/bundle/gems/tins-1.20.2/lib/tins/null.rb +0 -99
  3953. data/vendor/bundle/gems/tins-1.20.2/lib/tins/once.rb +0 -25
  3954. data/vendor/bundle/gems/tins-1.20.2/lib/tins/p.rb +0 -23
  3955. data/vendor/bundle/gems/tins-1.20.2/lib/tins/partial_application.rb +0 -31
  3956. data/vendor/bundle/gems/tins-1.20.2/lib/tins/proc_compose.rb +0 -15
  3957. data/vendor/bundle/gems/tins-1.20.2/lib/tins/proc_prelude.rb +0 -73
  3958. data/vendor/bundle/gems/tins-1.20.2/lib/tins/range_plus.rb +0 -9
  3959. data/vendor/bundle/gems/tins-1.20.2/lib/tins/require_maybe.rb +0 -9
  3960. data/vendor/bundle/gems/tins-1.20.2/lib/tins/responding.rb +0 -19
  3961. data/vendor/bundle/gems/tins-1.20.2/lib/tins/secure_write.rb +0 -27
  3962. data/vendor/bundle/gems/tins-1.20.2/lib/tins/sexy_singleton.rb +0 -39
  3963. data/vendor/bundle/gems/tins-1.20.2/lib/tins/string_byte_order_mark.rb +0 -20
  3964. data/vendor/bundle/gems/tins-1.20.2/lib/tins/string_camelize.rb +0 -16
  3965. data/vendor/bundle/gems/tins-1.20.2/lib/tins/string_underscore.rb +0 -15
  3966. data/vendor/bundle/gems/tins-1.20.2/lib/tins/string_version.rb +0 -104
  3967. data/vendor/bundle/gems/tins-1.20.2/lib/tins/subhash.rb +0 -42
  3968. data/vendor/bundle/gems/tins-1.20.2/lib/tins/temp_io.rb +0 -26
  3969. data/vendor/bundle/gems/tins-1.20.2/lib/tins/temp_io_enum.rb +0 -26
  3970. data/vendor/bundle/gems/tins-1.20.2/lib/tins/terminal.rb +0 -42
  3971. data/vendor/bundle/gems/tins-1.20.2/lib/tins/thread_local.rb +0 -57
  3972. data/vendor/bundle/gems/tins-1.20.2/lib/tins/time_dummy.rb +0 -57
  3973. data/vendor/bundle/gems/tins-1.20.2/lib/tins/to.rb +0 -8
  3974. data/vendor/bundle/gems/tins-1.20.2/lib/tins/to_proc.rb +0 -12
  3975. data/vendor/bundle/gems/tins-1.20.2/lib/tins/token.rb +0 -36
  3976. data/vendor/bundle/gems/tins-1.20.2/lib/tins/uniq_by.rb +0 -10
  3977. data/vendor/bundle/gems/tins-1.20.2/lib/tins/unit.rb +0 -179
  3978. data/vendor/bundle/gems/tins-1.20.2/lib/tins/version.rb +0 -8
  3979. data/vendor/bundle/gems/tins-1.20.2/lib/tins/write.rb +0 -19
  3980. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt.rb +0 -45
  3981. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/annotate.rb +0 -5
  3982. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/ask_and_send.rb +0 -7
  3983. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/attempt.rb +0 -7
  3984. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/blank.rb +0 -67
  3985. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/case_predicate.rb +0 -8
  3986. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/complete.rb +0 -7
  3987. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/concern.rb +0 -20
  3988. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/count_by.rb +0 -11
  3989. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/date_dummy.rb +0 -7
  3990. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/date_time_dummy.rb +0 -7
  3991. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/deep_const_get.rb +0 -7
  3992. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/deep_dup.rb +0 -7
  3993. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/dslkit.rb +0 -22
  3994. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/expose.rb +0 -5
  3995. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/extract_last_argument_options.rb +0 -7
  3996. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/file_binary.rb +0 -7
  3997. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/full.rb +0 -39
  3998. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/hash_symbolize_keys_recursive.rb +0 -7
  3999. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/hash_union.rb +0 -11
  4000. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/if_predicate.rb +0 -7
  4001. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/implement.rb +0 -5
  4002. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/irb.rb +0 -23
  4003. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/method_description.rb +0 -23
  4004. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/named.rb +0 -23
  4005. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/null.rb +0 -9
  4006. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/p.rb +0 -7
  4007. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/partial_application.rb +0 -11
  4008. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/proc_compose.rb +0 -7
  4009. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/proc_prelude.rb +0 -7
  4010. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/range_plus.rb +0 -12
  4011. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/require_maybe.rb +0 -7
  4012. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/responding.rb +0 -7
  4013. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/secure_write.rb +0 -11
  4014. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/sexy_singleton.rb +0 -3
  4015. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/string.rb +0 -6
  4016. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/string_byte_order_mark.rb +0 -7
  4017. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/string_camelize.rb +0 -6
  4018. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/string_underscore.rb +0 -6
  4019. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/string_version.rb +0 -7
  4020. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/subhash.rb +0 -11
  4021. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/temp_io.rb +0 -5
  4022. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/time_dummy.rb +0 -7
  4023. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/time_freezer.rb +0 -15
  4024. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/to.rb +0 -5
  4025. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/uniq_by.rb +0 -15
  4026. data/vendor/bundle/gems/tins-1.20.2/lib/tins/xt/write.rb +0 -11
  4027. data/vendor/bundle/gems/tins-1.20.2/tests/annotate_test.rb +0 -68
  4028. data/vendor/bundle/gems/tins-1.20.2/tests/ask_and_send_test.rb +0 -46
  4029. data/vendor/bundle/gems/tins-1.20.2/tests/attempt_test.rb +0 -109
  4030. data/vendor/bundle/gems/tins-1.20.2/tests/bijection_test.rb +0 -19
  4031. data/vendor/bundle/gems/tins-1.20.2/tests/blank_full_test.rb +0 -77
  4032. data/vendor/bundle/gems/tins-1.20.2/tests/case_predicate_test.rb +0 -29
  4033. data/vendor/bundle/gems/tins-1.20.2/tests/concern_test.rb +0 -35
  4034. data/vendor/bundle/gems/tins-1.20.2/tests/count_by_test.rb +0 -17
  4035. data/vendor/bundle/gems/tins-1.20.2/tests/date_dummy_test.rb +0 -31
  4036. data/vendor/bundle/gems/tins-1.20.2/tests/date_time_dummy_test.rb +0 -31
  4037. data/vendor/bundle/gems/tins-1.20.2/tests/deep_const_get_test.rb +0 -37
  4038. data/vendor/bundle/gems/tins-1.20.2/tests/deep_dup_test.rb +0 -20
  4039. data/vendor/bundle/gems/tins-1.20.2/tests/delegate_test.rb +0 -49
  4040. data/vendor/bundle/gems/tins-1.20.2/tests/dslkit_test.rb +0 -314
  4041. data/vendor/bundle/gems/tins-1.20.2/tests/duration_test.rb +0 -73
  4042. data/vendor/bundle/gems/tins-1.20.2/tests/dynamic_scope_test.rb +0 -31
  4043. data/vendor/bundle/gems/tins-1.20.2/tests/expose_test.rb +0 -43
  4044. data/vendor/bundle/gems/tins-1.20.2/tests/extract_last_argument_options_test.rb +0 -30
  4045. data/vendor/bundle/gems/tins-1.20.2/tests/file_binary_test.rb +0 -65
  4046. data/vendor/bundle/gems/tins-1.20.2/tests/find_test.rb +0 -135
  4047. data/vendor/bundle/gems/tins-1.20.2/tests/from_module_test.rb +0 -61
  4048. data/vendor/bundle/gems/tins-1.20.2/tests/generator_test.rb +0 -47
  4049. data/vendor/bundle/gems/tins-1.20.2/tests/go_test.rb +0 -80
  4050. data/vendor/bundle/gems/tins-1.20.2/tests/hash_symbolize_keys_recursive_test.rb +0 -24
  4051. data/vendor/bundle/gems/tins-1.20.2/tests/hash_union_test.rb +0 -42
  4052. data/vendor/bundle/gems/tins-1.20.2/tests/if_predicate_test.rb +0 -12
  4053. data/vendor/bundle/gems/tins-1.20.2/tests/implement_test.rb +0 -75
  4054. data/vendor/bundle/gems/tins-1.20.2/tests/limited_test.rb +0 -21
  4055. data/vendor/bundle/gems/tins-1.20.2/tests/lines_file_test.rb +0 -82
  4056. data/vendor/bundle/gems/tins-1.20.2/tests/memoize_test.rb +0 -115
  4057. data/vendor/bundle/gems/tins-1.20.2/tests/method_description_test.rb +0 -104
  4058. data/vendor/bundle/gems/tins-1.20.2/tests/minimize_test.rb +0 -54
  4059. data/vendor/bundle/gems/tins-1.20.2/tests/module_group_test.rb +0 -29
  4060. data/vendor/bundle/gems/tins-1.20.2/tests/named_set_test.rb +0 -18
  4061. data/vendor/bundle/gems/tins-1.20.2/tests/named_test.rb +0 -30
  4062. data/vendor/bundle/gems/tins-1.20.2/tests/null_test.rb +0 -64
  4063. data/vendor/bundle/gems/tins-1.20.2/tests/p_test.rb +0 -14
  4064. data/vendor/bundle/gems/tins-1.20.2/tests/partial_application_test.rb +0 -30
  4065. data/vendor/bundle/gems/tins-1.20.2/tests/proc_compose_test.rb +0 -21
  4066. data/vendor/bundle/gems/tins-1.20.2/tests/proc_prelude_test.rb +0 -81
  4067. data/vendor/bundle/gems/tins-1.20.2/tests/range_plus_test.rb +0 -14
  4068. data/vendor/bundle/gems/tins-1.20.2/tests/require_maybe_test.rb +0 -24
  4069. data/vendor/bundle/gems/tins-1.20.2/tests/responding_test.rb +0 -24
  4070. data/vendor/bundle/gems/tins-1.20.2/tests/rotate_test.rb +0 -65
  4071. data/vendor/bundle/gems/tins-1.20.2/tests/scope_test.rb +0 -31
  4072. data/vendor/bundle/gems/tins-1.20.2/tests/secure_write_test.rb +0 -42
  4073. data/vendor/bundle/gems/tins-1.20.2/tests/sexy_singleton_test.rb +0 -16
  4074. data/vendor/bundle/gems/tins-1.20.2/tests/string_byte_order_mark_test.rb +0 -40
  4075. data/vendor/bundle/gems/tins-1.20.2/tests/string_camelize_test.rb +0 -21
  4076. data/vendor/bundle/gems/tins-1.20.2/tests/string_underscore_test.rb +0 -11
  4077. data/vendor/bundle/gems/tins-1.20.2/tests/string_version_test.rb +0 -60
  4078. data/vendor/bundle/gems/tins-1.20.2/tests/subhash_test.rb +0 -37
  4079. data/vendor/bundle/gems/tins-1.20.2/tests/temp_io_test.rb +0 -51
  4080. data/vendor/bundle/gems/tins-1.20.2/tests/test_helper.rb +0 -11
  4081. data/vendor/bundle/gems/tins-1.20.2/tests/time_dummy_test.rb +0 -31
  4082. data/vendor/bundle/gems/tins-1.20.2/tests/time_freezer_test.rb +0 -45
  4083. data/vendor/bundle/gems/tins-1.20.2/tests/to_test.rb +0 -32
  4084. data/vendor/bundle/gems/tins-1.20.2/tests/token_test.rb +0 -38
  4085. data/vendor/bundle/gems/tins-1.20.2/tests/uniq_by_test.rb +0 -31
  4086. data/vendor/bundle/gems/tins-1.20.2/tests/unit_test.rb +0 -61
  4087. data/vendor/bundle/gems/tins-1.20.2/tins.gemspec +0 -41
  4088. data/vendor/bundle/gems/xpath-3.2.0/README.md +0 -78
  4089. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath.rb +0 -18
  4090. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath/dsl.rb +0 -174
  4091. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath/expression.rb +0 -22
  4092. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath/literal.rb +0 -10
  4093. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath/renderer.rb +0 -126
  4094. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath/union.rb +0 -31
  4095. data/vendor/bundle/gems/xpath-3.2.0/lib/xpath/version.rb +0 -5
  4096. data/vendor/bundle/gems/xpath-3.2.0/spec/fixtures/form.html +0 -201
  4097. data/vendor/bundle/gems/xpath-3.2.0/spec/fixtures/simple.html +0 -53
  4098. data/vendor/bundle/gems/xpath-3.2.0/spec/fixtures/stuff.html +0 -54
  4099. data/vendor/bundle/gems/xpath-3.2.0/spec/spec_helper.rb +0 -8
  4100. data/vendor/bundle/gems/xpath-3.2.0/spec/union_spec.rb +0 -63
  4101. data/vendor/bundle/gems/xpath-3.2.0/spec/xpath_spec.rb +0 -562
  4102. data/vendor/bundle/specifications/addressable-2.5.2.gemspec +0 -39
  4103. data/vendor/bundle/specifications/capybara-3.15.0.gemspec +0 -101
  4104. data/vendor/bundle/specifications/childprocess-0.9.0.gemspec +0 -44
  4105. data/vendor/bundle/specifications/coveralls-0.8.22.gemspec +0 -50
  4106. data/vendor/bundle/specifications/diff-lcs-1.3.gemspec +0 -61
  4107. data/vendor/bundle/specifications/docile-1.3.1.gemspec +0 -45
  4108. data/vendor/bundle/specifications/emot-0.0.4.gemspec +0 -44
  4109. data/vendor/bundle/specifications/faraday-0.15.4.gemspec +0 -32
  4110. data/vendor/bundle/specifications/fastimage-2.1.5.gemspec +0 -45
  4111. data/vendor/bundle/specifications/ffi-1.10.0.gemspec +0 -49
  4112. data/vendor/bundle/specifications/hikidoc-0.1.0.gemspec +0 -37
  4113. data/vendor/bundle/specifications/jasmine-2.99.0.gemspec +0 -59
  4114. data/vendor/bundle/specifications/jasmine-core-2.99.2.gemspec +0 -41
  4115. data/vendor/bundle/specifications/json-2.2.0.gemspec +0 -0
  4116. data/vendor/bundle/specifications/launchy-2.4.3.gemspec +0 -45
  4117. data/vendor/bundle/specifications/mail-2.7.1.gemspec +0 -50
  4118. data/vendor/bundle/specifications/mime-types-3.2.2.gemspec +0 -84
  4119. data/vendor/bundle/specifications/mime-types-data-3.2018.0812.gemspec +0 -60
  4120. data/vendor/bundle/specifications/mini_mime-1.0.1.gemspec +0 -39
  4121. data/vendor/bundle/specifications/mini_portile2-2.4.0.gemspec +0 -48
  4122. data/vendor/bundle/specifications/multipart-post-2.0.0.gemspec +0 -21
  4123. data/vendor/bundle/specifications/nokogiri-1.10.2.gemspec +0 -80
  4124. data/vendor/bundle/specifications/octokit-4.13.0.gemspec +0 -36
  4125. data/vendor/bundle/specifications/phantomjs-2.1.1.0.gemspec +0 -44
  4126. data/vendor/bundle/specifications/pit-0.0.7.gemspec +0 -21
  4127. data/vendor/bundle/specifications/power_assert-1.1.4.gemspec +0 -54
  4128. data/vendor/bundle/specifications/public_suffix-3.0.3.gemspec +0 -41
  4129. data/vendor/bundle/specifications/rack-2.0.6.gemspec +0 -42
  4130. data/vendor/bundle/specifications/rack-test-1.1.0.gemspec +0 -54
  4131. data/vendor/bundle/specifications/racksh-1.0.0.gemspec +0 -35
  4132. data/vendor/bundle/specifications/rake-12.3.2.gemspec +0 -49
  4133. data/vendor/bundle/specifications/redcarpet-3.4.0.gemspec +0 -44
  4134. data/vendor/bundle/specifications/regexp_parser-1.3.0.gemspec +0 -23
  4135. data/vendor/bundle/specifications/rspec-3.8.0.gemspec +0 -42
  4136. data/vendor/bundle/specifications/rspec-core-3.8.0.gemspec +0 -62
  4137. data/vendor/bundle/specifications/rspec-expectations-3.8.2.gemspec +0 -50
  4138. data/vendor/bundle/specifications/rspec-mocks-3.8.0.gemspec +0 -50
  4139. data/vendor/bundle/specifications/rspec-support-3.8.0.gemspec +0 -41
  4140. data/vendor/bundle/specifications/rubyzip-1.2.2.gemspec +0 -44
  4141. data/vendor/bundle/specifications/sawyer-0.8.1.gemspec +0 -34
  4142. data/vendor/bundle/specifications/selenium-webdriver-3.141.0.gemspec +0 -52
  4143. data/vendor/bundle/specifications/sequel-5.18.0.gemspec +0 -53
  4144. data/vendor/bundle/specifications/simplecov-0.16.1.gemspec +0 -42
  4145. data/vendor/bundle/specifications/simplecov-html-0.10.2.gemspec +0 -33
  4146. data/vendor/bundle/specifications/sqlite3-1.4.0.gemspec +0 -60
  4147. data/vendor/bundle/specifications/term-ansicolor-1.7.1.gemspec +0 -46
  4148. data/vendor/bundle/specifications/test-unit-3.3.1.gemspec +0 -48
  4149. data/vendor/bundle/specifications/thor-0.19.4.gemspec +0 -35
  4150. data/vendor/bundle/specifications/tins-1.20.2.gemspec +0 -42
  4151. data/vendor/bundle/specifications/xpath-3.2.0.gemspec +0 -46
@@ -1,4658 +0,0 @@
1
- require_relative "spec_helper"
2
-
3
- describe Sequel::Model, "associate" do
4
- it "should use explicit class if given a class, symbol, or string" do
5
- begin
6
- klass = Class.new(Sequel::Model(:nodes))
7
- class ::ParParent < Sequel::Model; end
8
-
9
- klass.associate :many_to_one, :par_parent0, :class=>ParParent
10
- klass.associate :one_to_many, :par_parent1s, :class=>'ParParent'
11
- klass.associate :many_to_many, :par_parent2s, :class=>:ParParent
12
-
13
- klass.association_reflection(:"par_parent0").associated_class.must_equal ParParent
14
- klass.association_reflection(:"par_parent1s").associated_class.must_equal ParParent
15
- klass.association_reflection(:"par_parent2s").associated_class.must_equal ParParent
16
- ensure
17
- Object.send(:remove_const, :ParParent)
18
- end
19
- end
20
-
21
- it "should default to associating to other models in the same scope" do
22
- begin
23
- class ::AssociationModuleTest
24
- class Album < Sequel::Model
25
- many_to_one :artist
26
- many_to_many :tags
27
- end
28
- class Artist< Sequel::Model
29
- one_to_many :albums
30
- end
31
- class Tag < Sequel::Model
32
- many_to_many :albums
33
- end
34
- end
35
-
36
- ::AssociationModuleTest::Album.association_reflection(:artist).associated_class.must_equal ::AssociationModuleTest::Artist
37
- ::AssociationModuleTest::Album.association_reflection(:tags).associated_class.must_equal ::AssociationModuleTest::Tag
38
- ::AssociationModuleTest::Artist.association_reflection(:albums).associated_class.must_equal ::AssociationModuleTest::Album
39
- ::AssociationModuleTest::Tag.association_reflection(:albums).associated_class.must_equal ::AssociationModuleTest::Album
40
- ensure
41
- Object.send(:remove_const, :AssociationModuleTest)
42
- end
43
- end
44
-
45
- it "should add a model_object and association_reflection accessors to the dataset, and return it with the current model object" do
46
- klass = Class.new(Sequel::Model(:nodes)) do
47
- columns :id, :a_id
48
- end
49
- mod = Module.new do
50
- def blah
51
- filter{|o| o.__send__(association_reflection[:key]) > model_object.id*2}
52
- end
53
- end
54
-
55
- klass.associate :many_to_one, :a, :class=>klass
56
- klass.associate :one_to_many, :bs, :key=>:b_id, :class=>klass, :extend=>mod
57
- klass.associate :many_to_many, :cs, :class=>klass
58
-
59
- node = klass.load(:id=>1)
60
- node.a_dataset.model_object.must_equal node
61
- node.bs_dataset.model_object.must_equal node
62
- node.cs_dataset.model_object.must_equal node
63
-
64
- node.a_dataset.association_reflection.must_equal klass.association_reflection(:a)
65
- node.bs_dataset.association_reflection.must_equal klass.association_reflection(:bs)
66
- node.cs_dataset.association_reflection.must_equal klass.association_reflection(:cs)
67
-
68
- node.bs_dataset.blah.sql.must_equal 'SELECT * FROM nodes WHERE ((nodes.b_id = 1) AND (b_id > 2))'
69
- end
70
-
71
- it "should allow extending the dataset with :extend option" do
72
- klass = Class.new(Sequel::Model(:nodes)) do
73
- columns :id, :a_id
74
- end
75
- mod = Module.new do
76
- def blah
77
- 1
78
- end
79
- end
80
- mod2 = Module.new do
81
- def blar
82
- 2
83
- end
84
- end
85
-
86
- klass.associate :many_to_one, :a, :class=>klass, :extend=>mod
87
- klass.associate :one_to_many, :bs, :class=>klass, :extend=>[mod]
88
- klass.associate :many_to_many, :cs, :class=>klass, :extend=>[mod, mod2]
89
-
90
- node = klass.load(:id=>1)
91
- node.a_dataset.blah.must_equal 1
92
- node.bs_dataset.blah.must_equal 1
93
- node.cs_dataset.blah.must_equal 1
94
- node.cs_dataset.blar.must_equal 2
95
- end
96
-
97
- it "should clone an existing association with the :clone option" do
98
- begin
99
- class ::ParParent < Sequel::Model; end
100
- klass = Class.new(Sequel::Model(:nodes))
101
-
102
- klass.many_to_one(:par_parent, :order=>:a){1}
103
- klass.one_to_many(:par_parent1s, :class=>'ParParent', :limit=>12){4}
104
- klass.many_to_many(:par_parent2s, :class=>:ParParent, :uniq=>true){2}
105
-
106
- klass.many_to_one :par, :clone=>:par_parent, :select=>:b
107
- klass.one_to_many :par1s, :clone=>:par_parent1s, :order=>:b, :limit=>10, :block=>nil
108
- klass.many_to_many(:par2s, :clone=>:par_parent2s, :order=>:c){3}
109
- klass.many_to_one :par3, :clone=>:par
110
-
111
- klass.association_reflection(:par).associated_class.must_equal ParParent
112
- klass.association_reflection(:par1s).associated_class.must_equal ParParent
113
- klass.association_reflection(:par2s).associated_class.must_equal ParParent
114
-
115
- klass.association_reflection(:par)[:order].must_equal :a
116
- klass.association_reflection(:par).select.must_equal :b
117
- klass.association_reflection(:par)[:block].call.must_equal 1
118
- klass.association_reflection(:par)[:eager_block].call.must_equal 1
119
- klass.association_reflection(:par1s)[:limit].must_equal 10
120
- klass.association_reflection(:par1s)[:order].must_equal :b
121
- klass.association_reflection(:par1s)[:block].must_be_nil
122
- klass.association_reflection(:par2s)[:after_load].length.must_equal 1
123
- klass.association_reflection(:par2s)[:order].must_equal :c
124
- klass.association_reflection(:par2s)[:block].call.must_equal 3
125
-
126
- klass.association_reflection(:par3)[:block].call.must_equal 1
127
- klass.association_reflection(:par3)[:eager_block].call.must_equal 1
128
- ensure
129
- Object.send(:remove_const, :ParParent)
130
- end
131
- end
132
-
133
- it "should raise an error if attempting to clone an association of differing type" do
134
- c = Class.new(Sequel::Model(:c))
135
- c.many_to_one :c
136
- proc{c.one_to_many :cs, :clone=>:c}.must_raise(Sequel::Error)
137
- end
138
-
139
- it "should allow overriding the :instance_specific option" do
140
- c = Class.new(Sequel::Model(:c))
141
- c.many_to_one :c, :instance_specific=>true
142
- c.association_reflection(:c)[:instance_specific].must_equal true
143
- c.many_to_one :c, :instance_specific=>false do |ds| ds end
144
- c.association_reflection(:c)[:instance_specific].must_equal false
145
- end
146
-
147
- it "should allow cloning of one_to_many to one_to_one associations and vice-versa" do
148
- c = Class.new(Sequel::Model(:c))
149
- c.one_to_one :c
150
- c.one_to_many :cs, :clone=>:c
151
- c.one_to_one :c2, :clone=>:cs
152
- end
153
-
154
- it "should allow cloning of many_to_many to one_through_one associations and vice-versa" do
155
- c = Class.new(Sequel::Model(:c))
156
- c.many_to_many :c
157
- c.one_through_one :cs, :clone=>:c
158
- c.many_to_many :c2, :clone=>:cs
159
- end
160
-
161
- it "should clear associations cache when refreshing object manually" do
162
- c = Class.new(Sequel::Model(:c))
163
- c.many_to_one :c
164
- o = c.new
165
- o.associations[:c] = 1
166
- o.refresh
167
- o.associations.must_equal({})
168
- end
169
-
170
- it "should not clear associations cache when refreshing object after save" do
171
- c = Class.new(Sequel::Model(:c))
172
- c.many_to_one :c
173
- o = c.new
174
- o.associations[:c] = 1
175
- o.save
176
- o.associations.must_equal(:c=>1)
177
- end
178
-
179
- it "should not clear associations cache when saving with insert_select" do
180
- ds = Sequel::Model.db[:c].with_extend do
181
- def supports_insert_select?; true end
182
- def insert_select(*) {:id=>1} end
183
- end
184
- c = Class.new(Sequel::Model(ds))
185
- c.many_to_one :c
186
- o = c.new
187
- o.associations[:c] = 1
188
- o.save
189
- o.associations.must_equal(:c=>1)
190
- end
191
-
192
- it "should not autoreload associations when the current foreign key value is nil" do
193
- c = Class.new(Sequel::Model(Sequel::Model.db[:c]))
194
- c.many_to_one :c
195
- o = c.new
196
- o.associations[:c] = 1
197
- o[:c_id] = 2
198
- o.associations[:c].must_equal 1
199
-
200
- o = c.load({})
201
- o.associations[:c] = 1
202
- o[:c_id] = 2
203
- o.associations[:c].must_equal 1
204
- end
205
-
206
- it "should autoreload associations when the current foreign key is nil and the current associated value is nil" do
207
- c = Class.new(Sequel::Model(Sequel::Model.db[:c]))
208
- c.many_to_one :c
209
- o = c.new
210
- o.associations[:c] = nil
211
- o[:c_id] = 2
212
- o.associations.must_be_empty
213
-
214
- o = c.load({})
215
- o.associations[:c] = nil
216
- o[:c_id] = 2
217
- o.associations.must_be_empty
218
- end
219
-
220
- it "should handle autoreloading for multiple associations when the current foreign key is nil" do
221
- c = Class.new(Sequel::Model(Sequel::Model.db[:c]))
222
- c.many_to_one :c
223
- c.many_to_one :d, :key=>:c_id
224
- o = c.new
225
- o.associations[:c] = nil
226
- o.associations[:d] = 1
227
- o[:c_id] = nil
228
- o.associations.must_equal(:c=>nil, :d=>1)
229
-
230
- o[:c_id] = 2
231
- o.associations.must_equal(:d=>1)
232
-
233
- o[:c_id] = 2
234
- o.associations.must_equal(:d=>1)
235
-
236
- o[:c_id] = nil
237
- o.associations.must_be_empty
238
-
239
- o = c.load({:c_id=>nil})
240
- o.associations[:c] = nil
241
- o.associations[:d] = 1
242
- o[:c_id] = nil
243
- o.associations.must_equal(:c=>nil, :d=>1)
244
-
245
- o[:c_id] = 2
246
- o.associations.must_equal(:d=>1)
247
-
248
- o[:c_id] = 2
249
- o.associations.must_equal(:d=>1)
250
-
251
- o[:c_id] = nil
252
- o.associations.must_be_empty
253
- end
254
- end
255
-
256
- describe Sequel::Model, "many_to_one" do
257
- before do
258
- @c2 = Class.new(Sequel::Model(:nodes)) do
259
- unrestrict_primary_key
260
- columns :id, :parent_id, :par_parent_id, :blah
261
- end
262
- @dataset = @c2.dataset
263
- DB.reset
264
- end
265
-
266
- it "should raise an error if associated class does not have a primary key, and :primary_key is not specified" do
267
- @c2.no_primary_key
268
- @c2.many_to_one :parent, :class => @c2
269
- d = @c2.new(:id => 1, :parent_id => 234)
270
- proc{d.parent}.must_raise(Sequel::Error)
271
- DB.sqls.must_equal []
272
- end
273
-
274
- it "should raise an error if associated class does not have a primary key, and :primary_key is not specified, with an association block" do
275
- @c2.no_primary_key
276
- @c2.many_to_one :parent, :class => @c2 do |ds| ds end
277
- d = @c2.new(:id => 1, :parent_id => 234)
278
- proc{d.parent}.must_raise(Sequel::Error)
279
- DB.sqls.must_equal []
280
- end
281
-
282
- it "should use implicit key if omitted" do
283
- @c2.many_to_one :parent, :class => @c2
284
-
285
- d = @c2.new(:id => 1, :parent_id => 234)
286
- p = d.parent
287
- p.class.must_equal @c2
288
- p.values.must_equal(:x => 1, :id => 1)
289
-
290
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE id = 234"]
291
- end
292
-
293
- it "should allow association with the same name as the key if :key_column is given" do
294
- @c2.def_column_alias(:parent_id_id, :parent_id)
295
- @c2.many_to_one :parent_id, :key_column=>:parent_id, :class => @c2
296
- d = @c2.load(:id => 1, :parent_id => 234)
297
- d.parent_id_dataset.sql.must_equal "SELECT * FROM nodes WHERE (nodes.id = 234) LIMIT 1"
298
- d.parent_id.must_equal @c2.load(:x => 1, :id => 1)
299
- d.parent_id_id.must_equal 234
300
- d[:parent_id].must_equal 234
301
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE id = 234"]
302
-
303
- d.parent_id_id = 3
304
- d.parent_id_id.must_equal 3
305
- d[:parent_id].must_equal 3
306
- end
307
-
308
- it "should use implicit class if omitted" do
309
- begin
310
- class ::ParParent < Sequel::Model; end
311
- @c2.many_to_one :par_parent
312
- @c2.new(:id => 1, :par_parent_id => 234).par_parent.class.must_equal ParParent
313
- DB.sqls.must_equal ["SELECT * FROM par_parents WHERE id = 234"]
314
- ensure
315
- Object.send(:remove_const, :ParParent)
316
- end
317
- end
318
-
319
- it "should use class inside module if given as a string" do
320
- begin
321
- module ::Par
322
- class Parent < Sequel::Model; end
323
- end
324
- @c2.many_to_one :par_parent, :class=>"Par::Parent"
325
- @c2.new(:id => 1, :par_parent_id => 234).par_parent.class.must_equal Par::Parent
326
- DB.sqls.must_equal ["SELECT * FROM parents WHERE id = 234"]
327
- ensure
328
- Object.send(:remove_const, :Par)
329
- end
330
- end
331
-
332
- it "should use explicit key if given" do
333
- @c2.many_to_one :parent, :class => @c2, :key => :blah
334
-
335
- d = @c2.new(:id => 1, :blah => 567)
336
- p = d.parent
337
- p.class.must_equal @c2
338
- p.values.must_equal(:x => 1, :id => 1)
339
-
340
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE id = 567"]
341
- end
342
-
343
- it "should respect :qualify => false option" do
344
- @c2.many_to_one :parent, :class => @c2, :key => :blah, :qualify=>false
345
- @c2.new(:id => 1, :blah => 567).parent
346
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE id = 567"]
347
- end
348
-
349
- it "should use :primary_key option if given" do
350
- @c2.many_to_one :parent, :class => @c2, :key => :blah, :primary_key => :pk
351
- @c2.new(:id => 1, :blah => 567).parent
352
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.pk = 567) LIMIT 1"]
353
- end
354
-
355
- it "should support composite keys" do
356
- @c2.many_to_one :parent, :class => @c2, :key=>[:id, :parent_id], :primary_key=>[:parent_id, :id]
357
- @c2.new(:id => 1, :parent_id => 234).parent
358
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((nodes.parent_id = 1) AND (nodes.id = 234)) LIMIT 1"]
359
- end
360
-
361
- it "should not issue query if not all keys have values" do
362
- @c2.many_to_one :parent, :class => @c2, :key=>[:id, :parent_id], :primary_key=>[:parent_id, :id]
363
- @c2.new(:id => 1, :parent_id => nil).parent.must_be_nil
364
- DB.sqls.must_equal []
365
- end
366
-
367
- it "should raise an Error unless same number of composite keys used" do
368
- proc{@c2.many_to_one :parent, :class => @c2, :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
369
- proc{@c2.many_to_one :parent, :class => @c2, :key=>[:id, :parent_id], :primary_key=>:id}.must_raise(Sequel::Error)
370
- proc{@c2.many_to_one :parent, :class => @c2, :key=>:id, :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
371
- proc{@c2.many_to_one :parent, :class => @c2, :key=>[:id, :parent_id, :blah], :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
372
- end
373
-
374
- it "should use :select option if given" do
375
- @c2.many_to_one :parent, :class => @c2, :key => :blah, :select=>[:id, :name]
376
- @c2.new(:id => 1, :blah => 567).parent
377
- DB.sqls.must_equal ["SELECT id, name FROM nodes WHERE (nodes.id = 567) LIMIT 1"]
378
- end
379
-
380
- it "should use :conditions option if given" do
381
- @c2.many_to_one :parent, :class => @c2, :key => :blah, :conditions=>{:a=>32}
382
- @c2.new(:id => 1, :blah => 567).parent
383
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((a = 32) AND (nodes.id = 567)) LIMIT 1"]
384
-
385
- @c2.many_to_one :parent, :class => @c2, :key => :blah, :conditions=>:a
386
- @c2.new(:id => 1, :blah => 567).parent
387
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (a AND (nodes.id = 567)) LIMIT 1"]
388
- end
389
-
390
- it "should support :order, :limit (only for offset), and :dataset options, as well as a block" do
391
- @c2.many_to_one :child_20, :class => @c2, :key=>:id, :dataset=>proc{model.filter(:parent_id=>pk)}, :limit=>[10,20], :order=>:name do |ds|
392
- ds.filter{x > 1}
393
- end
394
- @c2.load(:id => 100).child_20
395
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((parent_id = 100) AND (x > 1)) ORDER BY name LIMIT 1 OFFSET 20"]
396
- end
397
-
398
- it "should return nil if key value is nil" do
399
- @c2.many_to_one :parent, :class => @c2
400
- @c2.new(:id => 1).parent.must_be_nil
401
- DB.sqls.must_equal []
402
- end
403
-
404
- it "should cache negative lookup" do
405
- @c2.many_to_one :parent, :class => @c2
406
- @c2.dataset = @c2.dataset.with_fetch([])
407
- d = @c2.new(:id => 1, :parent_id=>555)
408
- DB.sqls.must_equal []
409
- d.parent.must_be_nil
410
- DB.sqls.must_equal ['SELECT * FROM nodes WHERE id = 555']
411
- d.parent.must_be_nil
412
- DB.sqls.must_equal []
413
- end
414
-
415
- it "should define a setter method" do
416
- @c2.many_to_one :parent, :class => @c2
417
-
418
- d = @c2.new(:id => 1)
419
- d.parent = @c2.new(:id => 4321)
420
- d.values.must_equal(:id => 1, :parent_id => 4321)
421
-
422
- d.parent = nil
423
- d.values.must_equal(:id => 1, :parent_id => nil)
424
-
425
- e = @c2.new(:id => 6677)
426
- d.parent = e
427
- d.values.must_equal(:id => 1, :parent_id => 6677)
428
- end
429
-
430
- it "should have the setter method respect the :primary_key option" do
431
- @c2.many_to_one :parent, :class => @c2, :primary_key=>:blah
432
-
433
- d = @c2.new(:id => 1)
434
- d.parent = @c2.new(:id => 4321, :blah=>444)
435
- d.values.must_equal(:id => 1, :parent_id => 444)
436
-
437
- d.parent = nil
438
- d.values.must_equal(:id => 1, :parent_id => nil)
439
-
440
- e = @c2.new(:id => 6677, :blah=>8)
441
- d.parent = e
442
- d.values.must_equal(:id => 1, :parent_id => 8)
443
- end
444
-
445
- it "should have the setter method respect composite keys" do
446
- @c2.many_to_one :parent, :class => @c2, :key=>[:id, :parent_id], :primary_key=>[:parent_id, :id]
447
-
448
- d = @c2.new(:id => 1, :parent_id=> 234)
449
- d.parent = @c2.new(:id => 4, :parent_id=>52)
450
- d.values.must_equal(:id => 52, :parent_id => 4)
451
-
452
- d.parent = nil
453
- d.values.must_equal(:id => nil, :parent_id => nil)
454
-
455
- e = @c2.new(:id => 6677, :parent_id=>8)
456
- d.parent = e
457
- d.values.must_equal(:id => 8, :parent_id => 6677)
458
- end
459
-
460
- it "should not persist changes until saved" do
461
- @c2.many_to_one :parent, :class => @c2
462
-
463
- d = @c2.load(:id => 1)
464
- DB.reset
465
- d.parent = @c2.new(:id => 345)
466
- DB.sqls.must_equal []
467
- d.save_changes
468
- DB.sqls.must_equal ['UPDATE nodes SET parent_id = 345 WHERE (id = 1)']
469
- end
470
-
471
- it "should populate cache when accessed" do
472
- @c2.many_to_one :parent, :class => @c2
473
-
474
- d = @c2.load(:id => 1)
475
- d.parent_id = 234
476
- d.associations[:parent].must_be_nil
477
- @c2.dataset = @c2.dataset.with_fetch(:id=>234)
478
- e = d.parent
479
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE id = 234"]
480
- d.associations[:parent].must_equal e
481
- end
482
-
483
- it "should populate cache when assigned" do
484
- @c2.many_to_one :parent, :class => @c2
485
-
486
- d = @c2.create(:id => 1)
487
- DB.reset
488
- d.associations[:parent].must_be_nil
489
- d.parent = @c2.new(:id => 234)
490
- e = d.parent
491
- d.associations[:parent].must_equal e
492
- DB.sqls.must_equal []
493
- end
494
-
495
- it "should use cache if available" do
496
- @c2.many_to_one :parent, :class => @c2
497
-
498
- d = @c2.create(:id => 1, :parent_id => 234)
499
- DB.reset
500
- d.associations[:parent] = 42
501
- d.parent.must_equal 42
502
- DB.sqls.must_equal []
503
- end
504
-
505
- it "should not use cache if asked to reload" do
506
- @c2.many_to_one :parent, :class => @c2
507
-
508
- d = @c2.create(:id => 1)
509
- DB.reset
510
- d.parent_id = 234
511
- d.associations[:parent] = 42
512
- d.parent(:reload=>true).wont_equal 42
513
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE id = 234"]
514
- end
515
-
516
- it "should use a callback if given one as the argument" do
517
- @c2.many_to_one :parent, :class => @c2
518
-
519
- d = @c2.create(:id => 1)
520
- DB.reset
521
- d.parent_id = 234
522
- d.associations[:parent] = 42
523
- d.parent{|ds| ds.where{name > 'M'}}.wont_equal 42
524
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((nodes.id = 234) AND (name > 'M')) LIMIT 1"]
525
- end
526
-
527
- it "should use a block given to the association method as a callback" do
528
- @c2.many_to_one :parent, :class => @c2
529
-
530
- d = @c2.create(:id => 1)
531
- DB.reset
532
- d.parent_id = 234
533
- d.associations[:parent] = 42
534
- d.parent{|ds| ds.filter{name > 'M'}}.wont_equal 42
535
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((nodes.id = 234) AND (name > 'M')) LIMIT 1"]
536
- end
537
-
538
- it "should have the setter add to the reciprocal one_to_many cached association array if it exists" do
539
- @c2.many_to_one :parent, :class => @c2
540
- @c2.one_to_many :children, :class => @c2, :key=>:parent_id
541
- @c2.dataset = @c2.dataset.with_fetch([])
542
-
543
- d = @c2.new(:id => 1)
544
- e = @c2.new(:id => 2)
545
- DB.sqls.must_equal []
546
- d.parent = e
547
- e.children.wont_include(d)
548
- DB.sqls.must_equal ['SELECT * FROM nodes WHERE (nodes.parent_id = 2)']
549
-
550
- d = @c2.new(:id => 1)
551
- e = @c2.new(:id => 2)
552
- e.children.wont_include(d)
553
- DB.sqls.must_equal ['SELECT * FROM nodes WHERE (nodes.parent_id = 2)']
554
- d.parent = e
555
- e.children.must_include(d)
556
- DB.sqls.must_equal []
557
- end
558
-
559
- it "should have setter deal with a one_to_one reciprocal" do
560
- @c2.many_to_one :parent, :class => @c2, :key=>:parent_id
561
- @c2.one_to_one :child, :class => @c2, :key=>:parent_id
562
-
563
- d = @c2.new(:id => 1)
564
- e = @c2.new(:id => 2)
565
- e.associations[:child] = nil
566
- d.parent = e
567
- e.child.must_equal d
568
- d.parent = nil
569
- e.child.must_be_nil
570
- d.parent = e
571
- e.child.must_equal d
572
-
573
- f = @c2.new(:id => 3)
574
- d.parent = nil
575
- e.child.must_be_nil
576
- e.associations[:child] = f
577
- d.parent = e
578
- e.child.must_equal d
579
- end
580
-
581
- it "should have the setter remove the object from the previous associated object's reciprocal one_to_many cached association array if it exists" do
582
- @c2.many_to_one :parent, :class => @c2
583
- @c2.one_to_many :children, :class => @c2, :key=>:parent_id
584
- @c2.dataset = @c2.dataset.with_fetch([])
585
-
586
- d = @c2.new(:id => 1)
587
- e = @c2.new(:id => 2)
588
- f = @c2.new(:id => 3)
589
- e.children.wont_include(d)
590
- f.children.wont_include(d)
591
- DB.reset
592
- d.parent = e
593
- e.children.must_include(d)
594
- d.parent = f
595
- f.children.must_include(d)
596
- e.children.wont_include(d)
597
- d.parent = nil
598
- f.children.wont_include(d)
599
- DB.sqls.must_equal []
600
- end
601
-
602
- it "should have the setter not modify the reciprocal if set to same value as current" do
603
- @c2.many_to_one :parent, :class => @c2
604
- @c2.one_to_many :children, :class => @c2, :key=>:parent_id
605
-
606
- c1 = @c2.load(:id => 1, :parent_id=>nil)
607
- c2 = @c2.load(:id => 2, :parent_id=>1)
608
- c3 = @c2.load(:id => 3, :parent_id=>1)
609
- c1.associations[:children] = [c2, c3]
610
- c2.associations[:parent] = c1
611
- c2.parent = c1
612
- c1.children.must_equal [c2, c3]
613
- DB.sqls.must_equal []
614
- end
615
-
616
- it "should get all matching records and only return the first if :key option is set to nil" do
617
- @c2.dataset = @c2.dataset.with_fetch([{:id=>1, :parent_id=>0, :par_parent_id=>3, :blah=>4, :children_id=>2, :children_parent_id=>1, :children_par_parent_id=>5, :children_blah=>6}, {}])
618
- @c2.dataset.columns(:id, :parent_id, :par_parent_id, :blah)
619
- @c2.one_to_many :children, :class => @c2, :key=>:parent_id
620
- @c2.many_to_one :first_grand_parent, :class => @c2, :key=>nil, :eager_graph=>:children, :dataset=>proc{model.filter(:children_id=>parent_id)}
621
- p = @c2.new(:parent_id=>2)
622
- fgp = p.first_grand_parent
623
- DB.sqls.must_equal ["SELECT nodes.id, nodes.parent_id, nodes.par_parent_id, nodes.blah, children.id AS children_id, children.parent_id AS children_parent_id, children.par_parent_id AS children_par_parent_id, children.blah AS children_blah FROM nodes LEFT OUTER JOIN nodes AS children ON (children.parent_id = nodes.id) WHERE (children_id = 2)"]
624
- fgp.values.must_equal(:id=>1, :parent_id=>0, :par_parent_id=>3, :blah=>4)
625
- fgp.children.first.values.must_equal(:id=>2, :parent_id=>1, :par_parent_id=>5, :blah=>6)
626
- end
627
-
628
- it "should not create the setter method if :read_only option is used" do
629
- @c2.many_to_one :parent, :class => @c2, :read_only=>true
630
- @c2.instance_methods.must_include(:parent)
631
- @c2.instance_methods.wont_include(:parent=)
632
- end
633
-
634
- it "should not add associations methods directly to class" do
635
- @c2.many_to_one :parent, :class => @c2
636
- @c2.instance_methods.must_include(:parent)
637
- @c2.instance_methods.must_include(:parent=)
638
- @c2.instance_methods(false).wont_include(:parent)
639
- @c2.instance_methods(false).wont_include(:parent=)
640
- end
641
-
642
- it "should add associations methods to the :methods_module option" do
643
- m = Module.new
644
- @c2.many_to_one :parent, :class => @c2, :methods_module=>m
645
- m.instance_methods.must_include(:parent)
646
- m.instance_methods.must_include(:parent=)
647
- @c2.instance_methods.wont_include(:parent)
648
- @c2.instance_methods.wont_include(:parent=)
649
- end
650
-
651
- it "should add associations methods directly to class if :methods_module is the class itself" do
652
- @c2.many_to_one :parent, :class => @c2, :methods_module=>@c2
653
- @c2.instance_methods(false).must_include(:parent)
654
- @c2.instance_methods(false).must_include(:parent=)
655
- end
656
-
657
- it "should raise an error if trying to set a model object that doesn't have a valid primary key" do
658
- @c2.many_to_one :parent, :class => @c2
659
- p = @c2.new
660
- c = @c2.load(:id=>123)
661
- proc{c.parent = p}.must_raise(Sequel::Error)
662
- end
663
-
664
- it "should make the change to the foreign_key value inside a _association= method" do
665
- @c2.many_to_one :parent, :class => @c2
666
- @c2.private_instance_methods.must_include(:_parent=)
667
- p = @c2.new
668
- c = @c2.load(:id=>123)
669
- def p._parent=(x)
670
- @x = x
671
- end
672
- def p.parent_id=; raise; end
673
- p.parent = c
674
- p.instance_variable_get(:@x).must_equal c
675
- end
676
-
677
- it "should have the :setter option define the _association= method" do
678
- @c2.many_to_one :parent, :class => @c2, :setter=>proc{|x| @x = x}
679
- p = @c2.new
680
- c = @c2.load(:id=>123)
681
- def p.parent_id=; raise; end
682
- p.parent = c
683
- p.instance_variable_get(:@x).must_equal c
684
- end
685
-
686
- it "should support (before|after)_set callbacks" do
687
- h = []
688
- @c2.many_to_one :parent, :class => @c2, :before_set=>[proc{|x,y| h << x.pk; h << (y ? -y.pk : :y)}, :blah], :after_set=>proc{h << 3}
689
- @c2.class_eval do
690
- self::Foo = h
691
- def []=(a, v)
692
- a == :parent_id ? (model::Foo << (v ? 4 : 5)) : super
693
- end
694
- def blah(x)
695
- model::Foo << (x ? x.pk : :x)
696
- end
697
- def blahr(x)
698
- model::Foo << 6
699
- end
700
- end
701
- p = @c2.load(:id=>10)
702
- c = @c2.load(:id=>123)
703
- h.must_equal []
704
- p.parent = c
705
- h.must_equal [10, -123, 123, 4, 3]
706
- p.parent = nil
707
- h.must_equal [10, -123, 123, 4, 3, 10, :y, :x, 5, 3]
708
- end
709
-
710
- it "should support after_load association callback" do
711
- h = []
712
- @c2.many_to_one :parent, :class => @c2, :after_load=>[proc{|x,y| h << [x.pk, y.pk]}, :al]
713
- @c2.class_eval do
714
- self::Foo = h
715
- def al(v)
716
- model::Foo << v.pk
717
- end
718
- set_dataset dataset.with_fetch(:id=>20)
719
- end
720
- p = @c2.load(:id=>10, :parent_id=>20)
721
- parent = p.parent
722
- h.must_equal [[10, 20], 20]
723
- parent.pk.must_equal 20
724
- end
725
-
726
- it "should support after_load association callback that changes the cached object" do
727
- @c2.many_to_one :parent, :class => @c2, :after_load=>:al
728
- @c2.class_eval do
729
- def al(v)
730
- associations[:parent] = :foo
731
- end
732
- end
733
- p = @c2.load(:id=>10, :parent_id=>20)
734
- p.parent.must_equal :foo
735
- p.associations[:parent].must_equal :foo
736
- end
737
-
738
- it "should raise error and not call internal add or remove method if before callback calls cancel_action, even if raise_on_save_failure is false" do
739
- p = @c2.new
740
- c = @c2.load(:id=>123)
741
- p.raise_on_save_failure = false
742
- @c2.many_to_one :parent, :class => @c2, :before_set=>:bs
743
- def p.bs(x) cancel_action end
744
- def p._parent=; raise; end
745
- proc{p.parent = c}.must_raise(Sequel::HookFailed)
746
-
747
- p.parent.must_be_nil
748
- p.associations[:parent] = c
749
- p.parent.must_equal c
750
- proc{p.parent = nil}.must_raise(Sequel::HookFailed)
751
- end
752
-
753
- it "should raise an error if a callback is not a proc or symbol" do
754
- @c2.many_to_one :parent, :class => @c2, :before_set=>Object.new
755
- proc{@c2.new.parent = @c2.load(:id=>1)}.must_raise(Sequel::Error)
756
- end
757
-
758
- it "should have association dataset use false condition if any key is nil" do
759
- @c2.many_to_one :parent, :class => @c2
760
- @c2.load({}).parent_dataset.sql.must_equal "SELECT * FROM nodes WHERE 'f' LIMIT 1"
761
- end
762
- end
763
-
764
- describe Sequel::Model, "one_to_one" do
765
- before do
766
- @c1 = Class.new(Sequel::Model(:attributes)) do
767
- unrestrict_primary_key
768
- columns :id, :node_id, :y
769
- end
770
-
771
- @c2 = Class.new(Sequel::Model(:nodes)) do
772
- unrestrict_primary_key
773
- attr_accessor :xxx
774
-
775
- def self.name; 'Node'; end
776
- def self.to_s; 'Node'; end
777
- columns :id, :x, :parent_id, :par_parent_id, :blah, :node_id
778
- end
779
- @dataset = @c2.dataset
780
- @dataset = @dataset.with_fetch({})
781
- @c1.dataset = @c1.dataset.with_fetch({})
782
- DB.reset
783
- end
784
-
785
- it "should have the getter method return a single object" do
786
- @c2.one_to_one :attribute, :class => @c1
787
- att = @c2.new(:id => 1234).attribute
788
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE (attributes.node_id = 1234) LIMIT 1']
789
- att.must_be_kind_of(@c1)
790
- att.values.must_equal({})
791
- end
792
-
793
- it "should not add a setter method if the :read_only option is true" do
794
- @c2.one_to_one :attribute, :class => @c1, :read_only=>true
795
- im = @c2.instance_methods
796
- im.must_include(:attribute)
797
- im.wont_include(:attribute=)
798
- end
799
-
800
- it "should add a setter method" do
801
- @c2.one_to_one :attribute, :class => @c1
802
- attrib = @c1.new(:id=>3)
803
- @c1.dataset = @c1.dataset.with_fetch(:id=>3)
804
- @c2.new(:id => 1234).attribute = attrib
805
- DB.sqls.must_equal ['UPDATE attributes SET node_id = NULL WHERE (node_id = 1234)',
806
- 'INSERT INTO attributes (id, node_id) VALUES (3, 1234)',
807
- "SELECT * FROM attributes WHERE id = 3"]
808
-
809
- @c2.new(:id => 1234).attribute.must_equal attrib
810
- attrib = @c1.load(:id=>3)
811
- @c2.new(:id => 1234).attribute = attrib
812
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE (attributes.node_id = 1234) LIMIT 1",
813
- 'UPDATE attributes SET node_id = NULL WHERE ((node_id = 1234) AND (id != 3))',
814
- "UPDATE attributes SET node_id = 1234 WHERE (id = 3)"]
815
- end
816
-
817
- it "should use a transaction in the setter method" do
818
- @c2.one_to_one :attribute, :class => @c1
819
- @c2.use_transactions = true
820
- attrib = @c1.load(:id=>3)
821
- @c2.new(:id => 1234).attribute = attrib
822
- DB.sqls.must_equal ['BEGIN',
823
- 'UPDATE attributes SET node_id = NULL WHERE ((node_id = 1234) AND (id != 3))',
824
- "UPDATE attributes SET node_id = 1234 WHERE (id = 3)",
825
- 'COMMIT']
826
- end
827
-
828
- it "should have setter method respect association filters" do
829
- @c2.one_to_one :attribute, :class => @c1, :conditions=>{:a=>1} do |ds|
830
- ds.filter(:b=>2)
831
- end
832
- attrib = @c1.load(:id=>3)
833
- @c2.new(:id => 1234).attribute = attrib
834
- DB.sqls.must_equal ['UPDATE attributes SET node_id = NULL WHERE ((a = 1) AND (node_id = 1234) AND (b = 2) AND (id != 3))',
835
- "UPDATE attributes SET node_id = 1234 WHERE (id = 3)"]
836
- end
837
-
838
- it "should have the setter method respect the :primary_key option" do
839
- @c2.one_to_one :attribute, :class => @c1, :primary_key=>:xxx
840
- attrib = @c1.new(:id=>3)
841
- @c1.dataset = @c1.dataset.with_fetch(:id=>3)
842
- @c2.new(:id => 1234, :xxx=>5).attribute = attrib
843
- DB.sqls.must_equal ['UPDATE attributes SET node_id = NULL WHERE (node_id = 5)',
844
- 'INSERT INTO attributes (id, node_id) VALUES (3, 5)',
845
- "SELECT * FROM attributes WHERE id = 3"]
846
-
847
- @c2.new(:id => 321, :xxx=>5).attribute.must_equal attrib
848
- attrib = @c1.load(:id=>3)
849
- @c2.new(:id => 621, :xxx=>5).attribute = attrib
850
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE (attributes.node_id = 5) LIMIT 1",
851
- 'UPDATE attributes SET node_id = NULL WHERE ((node_id = 5) AND (id != 3))',
852
- 'UPDATE attributes SET node_id = 5 WHERE (id = 3)']
853
- end
854
-
855
- it "should have the setter method respect composite keys" do
856
- @c2.one_to_one :attribute, :class => @c1, :key=>[:node_id, :y], :primary_key=>[:id, :x]
857
- attrib = @c1.load(:id=>3, :y=>6)
858
- @c1.dataset = @c1.dataset.with_fetch(:id=>3, :y=>6)
859
- @c2.load(:id => 1234, :x=>5).attribute = attrib
860
- DB.sqls.must_equal ["UPDATE attributes SET node_id = NULL, y = NULL WHERE ((node_id = 1234) AND (y = 5) AND (id != 3))",
861
- "UPDATE attributes SET y = 5, node_id = 1234 WHERE (id = 3)"]
862
- end
863
-
864
- it "should use implicit key if omitted" do
865
- @c2.dataset = @c2.dataset.with_fetch({})
866
- @c2.one_to_one :parent, :class => @c2
867
-
868
- d = @c2.new(:id => 234)
869
- p = d.parent
870
- p.class.must_equal @c2
871
- p.values.must_equal({})
872
-
873
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.node_id = 234) LIMIT 1"]
874
- end
875
-
876
- it "should use implicit class if omitted" do
877
- begin
878
- class ::ParParent < Sequel::Model; end
879
- @c2.one_to_one :par_parent
880
- @c2.new(:id => 234).par_parent.class.must_equal ParParent
881
- DB.sqls.must_equal ["SELECT * FROM par_parents WHERE (par_parents.node_id = 234) LIMIT 1"]
882
- ensure
883
- Object.send(:remove_const, :ParParent)
884
- end
885
- end
886
-
887
- it "should use class inside module if given as a string" do
888
- begin
889
- module ::Par
890
- class Parent < Sequel::Model; end
891
- end
892
- @c2.one_to_one :par_parent, :class=>"Par::Parent"
893
- @c2.new(:id => 234).par_parent.class.must_equal Par::Parent
894
- DB.sqls.must_equal ["SELECT * FROM parents WHERE (parents.node_id = 234) LIMIT 1"]
895
- ensure
896
- Object.send(:remove_const, :Par)
897
- end
898
- end
899
-
900
- it "should use explicit key if given" do
901
- @c2.dataset = @c2.dataset.with_fetch({})
902
- @c2.one_to_one :parent, :class => @c2, :key => :blah
903
-
904
- d = @c2.new(:id => 234)
905
- p = d.parent
906
- p.class.must_equal @c2
907
- p.values.must_equal({})
908
-
909
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.blah = 234) LIMIT 1"]
910
- end
911
-
912
- it "should use :primary_key option if given" do
913
- @c2.one_to_one :parent, :class => @c2, :key => :pk, :primary_key => :blah
914
- @c2.new(:id => 1, :blah => 567).parent
915
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.pk = 567) LIMIT 1"]
916
- end
917
-
918
- it "should support composite keys" do
919
- @c2.one_to_one :parent, :class => @c2, :primary_key=>[:id, :parent_id], :key=>[:parent_id, :id]
920
- @c2.new(:id => 1, :parent_id => 234).parent
921
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((nodes.parent_id = 1) AND (nodes.id = 234)) LIMIT 1"]
922
- end
923
-
924
- it "should not issue query if not all keys have values" do
925
- @c2.one_to_one :parent, :class => @c2, :key=>[:id, :parent_id], :primary_key=>[:parent_id, :id]
926
- @c2.new(:id => 1, :parent_id => nil).parent.must_be_nil
927
- DB.sqls.must_equal []
928
- end
929
-
930
- it "should raise an Error unless same number of composite keys used" do
931
- proc{@c2.one_to_one :parent, :class => @c2, :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
932
- proc{@c2.one_to_one :parent, :class => @c2, :key=>[:id, :parent_id], :primary_key=>:id}.must_raise(Sequel::Error)
933
- proc{@c2.one_to_one :parent, :class => @c2, :key=>:id, :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
934
- proc{@c2.one_to_one :parent, :class => @c2, :key=>[:id, :parent_id, :blah], :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
935
- end
936
-
937
- it "should use :select option if given" do
938
- @c2.one_to_one :parent, :class => @c2, :select=>[:id, :name]
939
- @c2.new(:id => 567).parent
940
- DB.sqls.must_equal ["SELECT id, name FROM nodes WHERE (nodes.node_id = 567) LIMIT 1"]
941
- end
942
-
943
- it "should use :conditions option if given" do
944
- @c2.one_to_one :parent, :class => @c2, :conditions=>{:a=>32}
945
- @c2.new(:id => 567).parent
946
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((a = 32) AND (nodes.node_id = 567)) LIMIT 1"]
947
-
948
- @c2.one_to_one :parent, :class => @c2, :conditions=>:a
949
- @c2.new(:id => 567).parent
950
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (a AND (nodes.node_id = 567)) LIMIT 1"]
951
- end
952
-
953
- it "should support :order, :limit (only for offset), and :dataset options, as well as a block" do
954
- @c2.one_to_one :child_20, :class => @c2, :key=>:id, :dataset=>proc{model.filter(:parent_id=>pk)}, :limit=>[10,20], :order=>:name do |ds|
955
- ds.filter{x > 1}
956
- end
957
- @c2.load(:id => 100).child_20
958
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE ((parent_id = 100) AND (x > 1)) ORDER BY name LIMIT 1 OFFSET 20"]
959
- end
960
-
961
- it "should return nil if primary_key value is nil" do
962
- @c2.one_to_one :parent, :class => @c2, :primary_key=>:node_id
963
-
964
- @c2.new(:id => 1).parent.must_be_nil
965
- DB.sqls.must_equal []
966
- end
967
-
968
- it "should cache negative lookup" do
969
- @c2.one_to_one :parent, :class => @c2
970
- @c2.dataset = @c2.dataset.with_fetch([])
971
- d = @c2.new(:id => 555)
972
- DB.sqls.must_equal []
973
- d.parent.must_be_nil
974
- DB.sqls.must_equal ['SELECT * FROM nodes WHERE (nodes.node_id = 555) LIMIT 1']
975
- d.parent.must_be_nil
976
- DB.sqls.must_equal []
977
- end
978
-
979
- it "should have the setter method respect the :key option" do
980
- @c2.one_to_one :parent, :class => @c2, :key=>:blah
981
- d = @c2.new(:id => 3)
982
- e = @c2.new(:id => 4321, :blah=>444)
983
- @c2.dataset = @c2.dataset.with_fetch(:id => 4321, :blah => 3)
984
- d.parent = e
985
- e.values.must_equal(:id => 4321, :blah => 3)
986
- DB.sqls.must_equal ["UPDATE nodes SET blah = NULL WHERE (blah = 3)",
987
- "INSERT INTO nodes (id, blah) VALUES (4321, 3)",
988
- "SELECT * FROM nodes WHERE id = 4321"]
989
- end
990
-
991
- it "should persist changes to associated object when the setter is called" do
992
- @c2.one_to_one :parent, :class => @c2
993
- d = @c2.load(:id => 1)
994
- d.parent = @c2.load(:id => 3, :node_id=>345)
995
- DB.sqls.must_equal ["UPDATE nodes SET node_id = NULL WHERE ((node_id = 1) AND (id != 3))",
996
- "UPDATE nodes SET node_id = 1 WHERE (id = 3)"]
997
- end
998
-
999
- it "should populate cache when accessed" do
1000
- @c2.one_to_one :parent, :class => @c2
1001
-
1002
- d = @c2.load(:id => 1)
1003
- d.associations[:parent].must_be_nil
1004
- @c2.dataset = @c2.dataset.with_fetch(:id=>234)
1005
- e = d.parent
1006
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.node_id = 1) LIMIT 1"]
1007
- d.parent
1008
- DB.sqls.must_equal []
1009
- d.associations[:parent].must_equal e
1010
- end
1011
-
1012
- it "should populate cache when assigned" do
1013
- @c2.one_to_one :parent, :class => @c2
1014
-
1015
- d = @c2.load(:id => 1)
1016
- d.associations[:parent].must_be_nil
1017
- e = @c2.load(:id => 234)
1018
- d.parent = e
1019
- f = d.parent
1020
- d.associations[:parent].must_equal e
1021
- e.must_equal f
1022
- end
1023
-
1024
- it "should use cache if available" do
1025
- @c2.one_to_one :parent, :class => @c2
1026
- d = @c2.load(:id => 1, :parent_id => 234)
1027
- d.associations[:parent] = 42
1028
- d.parent.must_equal 42
1029
- DB.sqls.must_equal []
1030
- end
1031
-
1032
- it "should not use cache if asked to reload" do
1033
- @c2.one_to_one :parent, :class => @c2
1034
- d = @c2.load(:id => 1)
1035
- d.associations[:parent] = [42]
1036
- d.parent(:reload=>true).wont_equal 42
1037
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.node_id = 1) LIMIT 1"]
1038
- end
1039
-
1040
- it "should have the setter set the reciprocal many_to_one cached association" do
1041
- @c2.one_to_one :parent, :class => @c2, :key=>:parent_id
1042
- @c2.many_to_one :child, :class => @c2, :key=>:parent_id
1043
-
1044
- d = @c2.load(:id => 1)
1045
- e = @c2.load(:id => 2)
1046
- d.parent = e
1047
- e.child.must_equal d
1048
- DB.sqls.must_equal ["UPDATE nodes SET parent_id = NULL WHERE ((parent_id = 1) AND (id != 2))",
1049
- "UPDATE nodes SET parent_id = 1 WHERE (id = 2)"]
1050
- d.parent = nil
1051
- e.child.must_be_nil
1052
- DB.sqls.must_equal ["UPDATE nodes SET parent_id = NULL WHERE (parent_id = 1)"]
1053
- end
1054
-
1055
- it "should have the setter remove the object from the previous associated object's reciprocal many_to_one cached association array if it exists" do
1056
- @c2.one_to_one :parent, :class => @c2, :key=>:parent_id
1057
- @c2.many_to_one :child, :class => @c2, :key=>:parent_id
1058
- @c2.dataset = @c2.dataset.with_fetch([])
1059
-
1060
- d = @c2.load(:id => 1)
1061
- e = @c2.load(:id => 2)
1062
- f = @c2.load(:id => 3)
1063
- e.child.must_be_nil
1064
- f.child.must_be_nil
1065
- d.parent = e
1066
- e.child.must_equal d
1067
- d.parent = f
1068
- f.child.must_equal d
1069
- e.child.must_be_nil
1070
- d.parent = nil
1071
- f.child.must_be_nil
1072
- end
1073
-
1074
- it "should have the setter not modify the reciprocal if set to same value as current" do
1075
- @c2.one_to_one :parent, :class => @c2, :key=>:parent_id
1076
- @c2.many_to_one :child, :class => @c2, :key=>:parent_id
1077
-
1078
- c1 = @c2.load(:id => 1, :parent_id=>nil)
1079
- c2 = @c2.load(:id => 2, :parent_id=>1)
1080
- c1.associations[:child] = c2
1081
- c2.associations[:parent] = c1
1082
- c2.parent = c1
1083
- c1.child.must_equal c2
1084
- DB.sqls.must_equal []
1085
- end
1086
-
1087
- it "should have setter not unset reciprocal during save if reciprocal is the same as current" do
1088
- @c2.many_to_one :parent, :class => @c2, :key=>:parent_id
1089
- @c2.one_to_one :child, :class => @c2, :key=>:parent_id, :reciprocal=>:parent
1090
-
1091
- d = @c2.new(:id => 1)
1092
- e = @c2.new(:id => 2)
1093
- e2 = @c2.new(:id => 3)
1094
- e3 = @c2.new(:id => 4)
1095
- d.associations[:parent] = e
1096
- e.associations[:child] = d
1097
- e2.associations[:child] = d
1098
- e3.associations[:child] = e
1099
- assoc = nil
1100
- d.define_singleton_method(:after_save) do
1101
- super()
1102
- assoc = associations
1103
- end
1104
-
1105
- def e.set_associated_object_if_same?; true; end
1106
- e.child = d
1107
- assoc.must_equal(:parent=>e)
1108
-
1109
- def e2.set_associated_object_if_same?; true; end
1110
- e2.child = e
1111
- assoc.must_equal(:parent=>nil)
1112
-
1113
- d.associations.clear
1114
- e3.child = d
1115
- assoc.must_equal({})
1116
- end
1117
-
1118
- it "should not add associations methods directly to class" do
1119
- @c2.one_to_one :parent, :class => @c2
1120
- @c2.instance_methods.must_include(:parent)
1121
- @c2.instance_methods.must_include(:parent=)
1122
- @c2.instance_methods(false).wont_include(:parent)
1123
- @c2.instance_methods(false).wont_include(:parent=)
1124
- end
1125
-
1126
- it "should raise an error if the current model object that doesn't have a valid primary key" do
1127
- @c2.one_to_one :parent, :class => @c2
1128
- p = @c2.new
1129
- c = @c2.load(:id=>123)
1130
- proc{p.parent = c}.must_raise(Sequel::Error)
1131
- end
1132
-
1133
- it "should make the change to the foreign_key value inside a _association= method" do
1134
- @c2.one_to_one :parent, :class => @c2
1135
- @c2.private_instance_methods.must_include(:_parent=)
1136
- c = @c2.new
1137
- p = @c2.load(:id=>123)
1138
- def p._parent=(x)
1139
- @x = x
1140
- end
1141
- def p.parent_id=; raise; end
1142
- p.parent = c
1143
- p.instance_variable_get(:@x).must_equal c
1144
- end
1145
-
1146
- it "should have a :setter option define the _association= method" do
1147
- @c2.one_to_one :parent, :class => @c2, :setter=>proc{|x| @x = x}
1148
- c = @c2.new
1149
- p = @c2.load(:id=>123)
1150
- def p.parent_id=; raise; end
1151
- p.parent = c
1152
- p.instance_variable_get(:@x).must_equal c
1153
- end
1154
-
1155
- it "should support (before|after)_set callbacks" do
1156
- h = []
1157
- @c2.one_to_one :parent, :class => @c2, :before_set=>[proc{|x,y| h << x.pk; h << (y ? -y.pk : :y)}, :blah], :after_set=>proc{h << 3}
1158
- @c2.class_eval do
1159
- self::Foo = h
1160
- def blah(x)
1161
- model::Foo << (x ? x.pk : :x)
1162
- end
1163
- def blahr(x)
1164
- model::Foo << 6
1165
- end
1166
- end
1167
- p = @c2.load(:id=>10)
1168
- c = @c2.load(:id=>123)
1169
- h.must_equal []
1170
- p.parent = c
1171
- h.must_equal [10, -123, 123, 3]
1172
- p.parent = nil
1173
- h.must_equal [10, -123, 123, 3, 10, :y, :x, 3]
1174
- end
1175
-
1176
- it "should support after_load association callback" do
1177
- h = []
1178
- @c2.one_to_one :parent, :class => @c2, :after_load=>[proc{|x,y| h << [x.pk, y.pk]}, :al]
1179
- @c2.class_eval do
1180
- self::Foo = h
1181
- def al(v)
1182
- model::Foo << v.pk
1183
- end
1184
- @dataset = @dataset.with_fetch(:id=>20)
1185
- end
1186
- p = @c2.load(:id=>10)
1187
- parent = p.parent
1188
- h.must_equal [[10, 20], 20]
1189
- parent.pk.must_equal 20
1190
- end
1191
-
1192
- it "should raise error and not call internal add or remove method if before callback calls cancel_action, even if raise_on_save_failure is false" do
1193
- p = @c2.load(:id=>321)
1194
- c = @c2.load(:id=>123)
1195
- p.raise_on_save_failure = false
1196
- @c2.one_to_one :parent, :class => @c2, :before_set=>:bs
1197
- def p.bs(x) cancel_action end
1198
- def p._parent=; raise; end
1199
- proc{p.parent = c}.must_raise(Sequel::HookFailed)
1200
-
1201
- p.associations[:parent].must_be_nil
1202
- p.associations[:parent] = c
1203
- p.parent.must_equal c
1204
- proc{p.parent = nil}.must_raise(Sequel::HookFailed)
1205
- end
1206
-
1207
- it "should not validate the associated object in setter if the :validate=>false option is used" do
1208
- @c2.one_to_one :parent, :class => @c2, :validate=>false
1209
- n = @c2.new(:id => 1234)
1210
- a = @c2.new(:id => 2345)
1211
- def a.validate() errors.add(:id, 'foo') end
1212
- (n.parent = a).must_equal a
1213
- end
1214
-
1215
- it "should raise an error if a callback is not a proc or symbol" do
1216
- @c2.one_to_one :parent, :class => @c2, :before_set=>Object.new
1217
- proc{@c2.new.parent = @c2.load(:id=>1)}.must_raise(Sequel::Error)
1218
- end
1219
-
1220
- it "should work_correctly when used with associate" do
1221
- @c2.dataset = @c2.dataset.with_fetch({})
1222
- @c2.associate :one_to_one, :parent, :class => @c2
1223
- @c2.load(:id => 567).parent.must_equal @c2.load({})
1224
- DB.sqls.must_equal ["SELECT * FROM nodes WHERE (nodes.node_id = 567) LIMIT 1"]
1225
- end
1226
-
1227
- it "should have association dataset use false condition if any key is nil" do
1228
- @c2.one_to_one :parent, :class => @c2, :primary_key=>:parent_id
1229
- @c2.load(:id=>1).parent_dataset.sql.must_equal "SELECT * FROM nodes WHERE 'f' LIMIT 1"
1230
- end
1231
- end
1232
-
1233
- describe Sequel::Model, "one_to_many" do
1234
- before do
1235
- @c1 = Class.new(Sequel::Model(:attributes)) do
1236
- unrestrict_primary_key
1237
- columns :id, :node_id, :y, :z
1238
- end
1239
-
1240
- @c2 = Class.new(Sequel::Model(:nodes)) do
1241
- def _refresh(ds); end
1242
- unrestrict_primary_key
1243
- attr_accessor :xxx
1244
-
1245
- def self.name; 'Node'; end
1246
- def self.to_s; 'Node'; end
1247
- columns :id, :x
1248
- end
1249
- @dataset = @c2.dataset = @c2.dataset.with_fetch({})
1250
- @c1.dataset = @c1.dataset.with_fetch(proc{|sql| sql =~ /SELECT 1/ ? {:a=>1} : {}})
1251
- DB.reset
1252
- end
1253
-
1254
- it "should raise an error if current class does not have a primary key, and :primary_key is not specified" do
1255
- @c2.no_primary_key
1256
- proc{@c2.one_to_many :attributes, :class => @c1}.must_raise(Sequel::Error)
1257
- DB.sqls.must_equal []
1258
- end
1259
-
1260
- it "should use implicit key if omitted" do
1261
- @c2.one_to_many :attributes, :class => @c1
1262
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE (attributes.node_id = 1234)'
1263
- end
1264
-
1265
- it "should use implicit class if omitted" do
1266
- begin
1267
- class ::HistoricalValue < Sequel::Model; end
1268
- @c2.one_to_many :historical_values
1269
-
1270
- v = @c2.new(:id => 1234).historical_values_dataset
1271
- v.must_be_kind_of(Sequel::Dataset)
1272
- v.sql.must_equal 'SELECT * FROM historical_values WHERE (historical_values.node_id = 1234)'
1273
- v.model.must_equal HistoricalValue
1274
- ensure
1275
- Object.send(:remove_const, :HistoricalValue)
1276
- end
1277
- end
1278
-
1279
- it "should use class inside a module if given as a string" do
1280
- begin
1281
- module ::Historical
1282
- class Value < Sequel::Model; end
1283
- end
1284
- @c2.one_to_many :historical_values, :class=>'Historical::Value'
1285
-
1286
- v = @c2.new(:id => 1234).historical_values_dataset
1287
- v.must_be_kind_of(Sequel::Dataset)
1288
- v.sql.must_equal 'SELECT * FROM values WHERE (values.node_id = 1234)'
1289
- v.model.must_equal Historical::Value
1290
- ensure
1291
- Object.send(:remove_const, :Historical)
1292
- end
1293
- end
1294
-
1295
- it "should use a callback if given one as a block" do
1296
- @c2.one_to_many :attributes, :class => @c1, :key => :nodeid
1297
-
1298
- d = @c2.load(:id => 1234)
1299
- d.associations[:attributes] = []
1300
- d.attributes{|ds| ds.where{name > 'M'}}.wont_equal []
1301
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE ((attributes.nodeid = 1234) AND (name > 'M'))"]
1302
- end
1303
-
1304
- it "should use explicit key if given" do
1305
- @c2.one_to_many :attributes, :class => @c1, :key => :nodeid
1306
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE (attributes.nodeid = 1234)'
1307
- end
1308
-
1309
- it "should support_composite keys" do
1310
- @c2.one_to_many :attributes, :class => @c1, :key =>[:node_id, :id], :primary_key=>[:id, :x]
1311
- @c2.load(:id => 1234, :x=>234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE ((attributes.node_id = 1234) AND (attributes.id = 234))'
1312
- end
1313
-
1314
- it "should not issue query if not all keys have values" do
1315
- @c2.one_to_many :attributes, :class => @c1, :key =>[:node_id, :id], :primary_key=>[:id, :x]
1316
- @c2.load(:id => 1234, :x=>nil).attributes.must_equal []
1317
- DB.sqls.must_equal []
1318
- end
1319
-
1320
- it "should raise an Error unless same number of composite keys used" do
1321
- proc{@c2.one_to_many :attributes, :class => @c1, :key=>[:node_id, :id]}.must_raise(Sequel::Error)
1322
- proc{@c2.one_to_many :attributes, :class => @c1, :primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
1323
- proc{@c2.one_to_many :attributes, :class => @c1, :key=>[:node_id, :id], :primary_key=>:id}.must_raise(Sequel::Error)
1324
- proc{@c2.one_to_many :attributes, :class => @c1, :key=>:id, :primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
1325
- proc{@c2.one_to_many :attributes, :class => @c1, :key=>[:node_id, :id, :x], :primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
1326
- end
1327
-
1328
- it "should define an add_ method that works on existing records" do
1329
- @c2.one_to_many :attributes, :class => @c1
1330
-
1331
- n = @c2.load(:id => 1234)
1332
- a = @c1.load(:id => 2345)
1333
- a.must_equal n.add_attribute(a)
1334
- a.values.must_equal(:node_id => 1234, :id => 2345)
1335
- DB.sqls.must_equal ['UPDATE attributes SET node_id = 1234 WHERE (id = 2345)']
1336
- end
1337
-
1338
- it "should define an add_ method that works on new records" do
1339
- @c2.one_to_many :attributes, :class => @c1
1340
-
1341
- n = @c2.load(:id => 1234)
1342
- a = @c1.new(:id => 234)
1343
- @c1.dataset = @c1.dataset.with_fetch(:id=>234, :node_id=>1234)
1344
- a.must_equal n.add_attribute(a)
1345
- DB.sqls.must_equal ["INSERT INTO attributes (id, node_id) VALUES (234, 1234)",
1346
- "SELECT * FROM attributes WHERE id = 234"]
1347
- a.values.must_equal(:node_id => 1234, :id => 234)
1348
- end
1349
-
1350
- it "should define a remove_ method that works on existing records" do
1351
- @c2.one_to_many :attributes, :class => @c1
1352
-
1353
- n = @c2.load(:id => 1234)
1354
- a = @c1.load(:id => 2345, :node_id => 1234)
1355
- a.must_equal n.remove_attribute(a)
1356
- a.values.must_equal(:node_id => nil, :id => 2345)
1357
- DB.sqls.must_equal ["SELECT 1 AS one FROM attributes WHERE ((attributes.node_id = 1234) AND (id = 2345)) LIMIT 1", 'UPDATE attributes SET node_id = NULL WHERE (id = 2345)']
1358
- end
1359
-
1360
- it "should have the remove_ method raise an error if the passed object is not already associated" do
1361
- @c2.one_to_many :attributes, :class => @c1
1362
-
1363
- n = @c2.new(:id => 1234)
1364
- a = @c1.load(:id => 2345, :node_id => 1234)
1365
- @c1.dataset = @c1.dataset.with_fetch([])
1366
- proc{n.remove_attribute(a)}.must_raise(Sequel::Error)
1367
- DB.sqls.must_equal ["SELECT 1 AS one FROM attributes WHERE ((attributes.node_id = 1234) AND (id = 2345)) LIMIT 1"]
1368
- end
1369
-
1370
- it "should accept a hash for the add_ method and create a new record" do
1371
- @c2.one_to_many :attributes, :class => @c1
1372
- n = @c2.new(:id => 1234)
1373
- DB.reset
1374
- @c1.dataset = @c1.dataset.with_fetch(:node_id => 1234, :id => 234)
1375
- n.add_attribute(:id => 234).must_equal @c1.load(:node_id => 1234, :id => 234)
1376
- DB.sqls.must_equal ["INSERT INTO attributes (id, node_id) VALUES (234, 1234)",
1377
- "SELECT * FROM attributes WHERE id = 234"]
1378
- end
1379
-
1380
- it "should accept a primary key for the add_ method" do
1381
- @c2.one_to_many :attributes, :class => @c1
1382
- n = @c2.new(:id => 1234)
1383
- @c1.dataset = @c1.dataset.with_fetch(:node_id => nil, :id => 234)
1384
- n.add_attribute(234).must_equal @c1.load(:node_id => 1234, :id => 234)
1385
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE id = 234", "UPDATE attributes SET node_id = 1234 WHERE (id = 234)"]
1386
- end
1387
-
1388
- it "should raise an error if the primary key passed to the add_ method does not match an existing record" do
1389
- @c2.one_to_many :attributes, :class => @c1
1390
- n = @c2.new(:id => 1234)
1391
- @c1.dataset = @c1.dataset.with_fetch([])
1392
- proc{n.add_attribute(234)}.must_raise(Sequel::NoMatchingRow)
1393
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE id = 234"]
1394
- end
1395
-
1396
- it "should raise an error in the add_ method if the passed associated object is not of the correct type" do
1397
- @c2.one_to_many :attributes, :class => @c1
1398
- proc{@c2.new(:id => 1234).add_attribute(@c2.new)}.must_raise(Sequel::Error)
1399
- end
1400
-
1401
- it "should accept a primary key for the remove_ method and remove an existing record" do
1402
- @c2.one_to_many :attributes, :class => @c1
1403
- n = @c2.new(:id => 1234)
1404
- @c1.dataset = @c1.dataset.with_fetch(:id=>234, :node_id=>1234)
1405
- n.remove_attribute(234).must_equal @c1.load(:node_id => nil, :id => 234)
1406
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE ((attributes.node_id = 1234) AND (attributes.id = 234)) LIMIT 1',
1407
- 'UPDATE attributes SET node_id = NULL WHERE (id = 234)']
1408
- end
1409
-
1410
- it "should raise an error in the remove_ method if the passed associated object is not of the correct type" do
1411
- @c2.one_to_many :attributes, :class => @c1
1412
- proc{@c2.new(:id => 1234).remove_attribute(@c2.new)}.must_raise(Sequel::Error)
1413
- end
1414
-
1415
- it "should have add_ method respect the :primary_key option" do
1416
- @c2.one_to_many :attributes, :class => @c1, :primary_key=>:xxx
1417
-
1418
- n = @c2.new(:id => 1234, :xxx=>5)
1419
- a = @c1.load(:id => 2345)
1420
- n.add_attribute(a).must_equal a
1421
- DB.sqls.must_equal ['UPDATE attributes SET node_id = 5 WHERE (id = 2345)']
1422
- end
1423
-
1424
- it "should have add_ method not add the same object to the cached association array if the object is already in the array" do
1425
- @c2.one_to_many :attributes, :class => @c1
1426
-
1427
- n = @c2.new(:id => 1234)
1428
- a = @c1.load(:id => 2345)
1429
- n.associations[:attributes] = []
1430
- a.must_equal n.add_attribute(a)
1431
- a.must_equal n.add_attribute(a)
1432
- a.values.must_equal(:node_id => 1234, :id => 2345)
1433
- n.attributes.must_equal [a]
1434
- DB.sqls.must_equal ['UPDATE attributes SET node_id = 1234 WHERE (id = 2345)'] * 2
1435
- end
1436
-
1437
- it "should have add_ method respect composite keys" do
1438
- @c2.one_to_many :attributes, :class => @c1, :key =>[:node_id, :y], :primary_key=>[:id, :x]
1439
-
1440
- n = @c2.load(:id => 1234, :x=>5)
1441
- a = @c1.load(:id => 2345)
1442
- n.add_attribute(a).must_equal a
1443
- DB.sqls.must_equal ["UPDATE attributes SET node_id = 1234, y = 5 WHERE (id = 2345)"]
1444
- end
1445
-
1446
- it "should have add_ method accept a composite key" do
1447
- @c1.dataset = @c1.dataset.with_fetch(:id=>2345, :node_id=>1234, :z=>8, :y=>5)
1448
- @c1.set_primary_key [:id, :z]
1449
- @c2.one_to_many :attributes, :class => @c1, :key =>[:node_id, :y], :primary_key=>[:id, :x]
1450
-
1451
- n = @c2.load(:id => 1234, :x=>5)
1452
- a = @c1.load(:id => 2345, :z => 8, :node_id => 1234, :y=>5)
1453
- n.add_attribute([2345, 8]).must_equal a
1454
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE ((id = 2345) AND (z = 8)) LIMIT 1",
1455
- "UPDATE attributes SET node_id = 1234, y = 5 WHERE ((id = 2345) AND (z = 8))"]
1456
- end
1457
-
1458
- it "should have remove_ method respect composite keys" do
1459
- @c2.one_to_many :attributes, :class => @c1, :key =>[:node_id, :y], :primary_key=>[:id, :x]
1460
-
1461
- n = @c2.load(:id => 1234, :x=>5)
1462
- a = @c1.load(:id => 2345, :node_id=>1234, :y=>5)
1463
- n.remove_attribute(a).must_equal a
1464
- DB.sqls.must_equal ["SELECT 1 AS one FROM attributes WHERE ((attributes.node_id = 1234) AND (attributes.y = 5) AND (id = 2345)) LIMIT 1",
1465
- "UPDATE attributes SET node_id = NULL, y = NULL WHERE (id = 2345)"]
1466
- end
1467
-
1468
- it "should accept a array of composite primary key values for the remove_ method and remove an existing record" do
1469
- @c1.dataset = @c1.dataset.with_fetch(:id=>234, :node_id=>123, :y=>5)
1470
- @c1.set_primary_key [:id, :y]
1471
- @c2.one_to_many :attributes, :class => @c1, :key=>:node_id, :primary_key=>:id
1472
- n = @c2.new(:id => 123)
1473
- n.remove_attribute([234, 5]).must_equal @c1.load(:node_id => nil, :y => 5, :id => 234)
1474
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE ((attributes.node_id = 123) AND (attributes.id = 234) AND (attributes.y = 5)) LIMIT 1",
1475
- "UPDATE attributes SET node_id = NULL WHERE ((id = 234) AND (y = 5))"]
1476
- end
1477
-
1478
- it "should raise an error in add_ and remove_ if the passed object returns false to save (is not valid)" do
1479
- @c2.one_to_many :attributes, :class => @c1
1480
- n = @c2.new(:id => 1234)
1481
- a = @c1.new(:id => 2345)
1482
- def a.validate() errors.add(:id, 'foo') end
1483
- proc{n.add_attribute(a)}.must_raise(Sequel::ValidationFailed)
1484
- proc{n.remove_attribute(a)}.must_raise(Sequel::ValidationFailed)
1485
- end
1486
-
1487
- it "should not validate the associated object in add_ and remove_ if the :validate=>false option is used" do
1488
- @c2.one_to_many :attributes, :class => @c1, :validate=>false
1489
- n = @c2.new(:id => 1234)
1490
- a = @c1.new(:id => 2345)
1491
- def a.validate() errors.add(:id, 'foo') end
1492
- n.add_attribute(a).must_equal a
1493
- n.remove_attribute(a).must_equal a
1494
- end
1495
-
1496
- it "should not raise exception in add_ and remove_ if the :raise_on_save_failure=>false option is used" do
1497
- @c2.one_to_many :attributes, :class => @c1, :raise_on_save_failure=>false
1498
- n = @c2.new(:id => 1234)
1499
- a = @c1.new(:id => 2345)
1500
- def a.validate() errors.add(:id, 'foo') end
1501
- n.associations[:attributes] = []
1502
- n.add_attribute(a).must_be_nil
1503
- n.associations[:attributes].must_equal []
1504
- n.remove_attribute(a).must_be_nil
1505
- n.associations[:attributes].must_equal []
1506
- end
1507
-
1508
- it "should raise an error if the model object doesn't have a valid primary key" do
1509
- @c2.one_to_many :attributes, :class => @c1
1510
- a = @c2.new
1511
- n = @c1.load(:id=>123)
1512
- proc{a.attributes_dataset}.must_raise(Sequel::Error)
1513
- proc{a.add_attribute(n)}.must_raise(Sequel::Error)
1514
- proc{a.remove_attribute(n)}.must_raise(Sequel::Error)
1515
- proc{a.remove_all_attributes}.must_raise(Sequel::Error)
1516
- end
1517
-
1518
- it "should use :primary_key option if given" do
1519
- @c1.one_to_many :nodes, :class => @c2, :primary_key => :node_id, :key=>:id
1520
- @c1.load(:id => 1234, :node_id=>4321).nodes_dataset.sql.must_equal "SELECT * FROM nodes WHERE (nodes.id = 4321)"
1521
- end
1522
-
1523
- it "should support a select option" do
1524
- @c2.one_to_many :attributes, :class => @c1, :select => [:id, :name]
1525
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal "SELECT id, name FROM attributes WHERE (attributes.node_id = 1234)"
1526
- end
1527
-
1528
- it "should support a conditions option" do
1529
- @c2.one_to_many :attributes, :class => @c1, :conditions => {:a=>32}
1530
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal "SELECT * FROM attributes WHERE ((a = 32) AND (attributes.node_id = 1234))"
1531
- @c2.one_to_many :attributes, :class => @c1, :conditions => Sequel.~(:a)
1532
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal "SELECT * FROM attributes WHERE (NOT a AND (attributes.node_id = 1234))"
1533
- end
1534
-
1535
- it "should support an order option" do
1536
- @c2.one_to_many :attributes, :class => @c1, :order => :kind
1537
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal "SELECT * FROM attributes WHERE (attributes.node_id = 1234) ORDER BY kind"
1538
- end
1539
-
1540
- it "should support an array for the order option" do
1541
- @c2.one_to_many :attributes, :class => @c1, :order => [:kind1, :kind2]
1542
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal "SELECT * FROM attributes WHERE (attributes.node_id = 1234) ORDER BY kind1, kind2"
1543
- end
1544
-
1545
- it "should have a dataset method for the associated object dataset" do
1546
- @c2.one_to_many :attributes, :class => @c1
1547
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE (attributes.node_id = 1234)'
1548
- end
1549
-
1550
- it "should accept a block" do
1551
- @c2.one_to_many :attributes, :class => @c1 do |ds|
1552
- ds.filter(:xxx => nil)
1553
- end
1554
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE ((attributes.node_id = 1234) AND (xxx IS NULL))'
1555
- end
1556
-
1557
- it "should support :order option with block" do
1558
- @c2.one_to_many :attributes, :class => @c1, :order => :kind do |ds|
1559
- ds.filter(:xxx => nil)
1560
- end
1561
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE ((attributes.node_id = 1234) AND (xxx IS NULL)) ORDER BY kind'
1562
- end
1563
-
1564
- it "should have the block argument affect the _dataset method" do
1565
- @c2.one_to_many :attributes, :class => @c1 do |ds|
1566
- ds.filter(:xxx => 456)
1567
- end
1568
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE ((attributes.node_id = 1234) AND (xxx = 456))'
1569
- end
1570
-
1571
- it "should support a :dataset option that is used instead of the default" do
1572
- c1 = @c1
1573
- @c1.dataset = @c1.dataset.with_fetch({})
1574
- @c2.one_to_many :all_other_attributes, :class => @c1, :dataset=>proc{c1.exclude(:nodeid=>pk)}, :order=>:a, :limit=>10 do |ds|
1575
- ds.filter(:xxx => 5)
1576
- end
1577
- @c2.new(:id => 1234).all_other_attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE ((nodeid != 1234) AND (xxx = 5)) ORDER BY a LIMIT 10'
1578
- @c2.new(:id => 1234).all_other_attributes.must_equal [@c1.load({})]
1579
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE ((nodeid != 1234) AND (xxx = 5)) ORDER BY a LIMIT 10']
1580
- end
1581
-
1582
- it "should support a :limit option" do
1583
- @c2.one_to_many :attributes, :class => @c1 , :limit=>10
1584
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE (attributes.node_id = 1234) LIMIT 10'
1585
- @c2.one_to_many :attributes, :class => @c1 , :limit=>[10,10]
1586
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT * FROM attributes WHERE (attributes.node_id = 1234) LIMIT 10 OFFSET 10'
1587
- end
1588
-
1589
- it "should have the :eager option affect the _dataset method" do
1590
- @c2.one_to_many :attributes, :class => @c2 , :eager=>:attributes
1591
- @c2.new(:id => 1234).attributes_dataset.opts[:eager].must_equal(:attributes=>nil)
1592
- end
1593
-
1594
- it "should populate cache when accessed" do
1595
- @c2.one_to_many :attributes, :class => @c1
1596
- n = @c2.new(:id => 1234)
1597
- n.associations.include?(:attributes).must_equal false
1598
- atts = n.attributes
1599
- atts.must_equal n.associations[:attributes]
1600
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE (attributes.node_id = 1234)']
1601
- end
1602
-
1603
- it "should use cache if available" do
1604
- @c2.one_to_many :attributes, :class => @c1
1605
- n = @c2.new(:id => 1234)
1606
- n.associations[:attributes] = 42
1607
- n.attributes.must_equal 42
1608
- DB.sqls.must_equal []
1609
- end
1610
-
1611
- it "should not use cache if asked to reload" do
1612
- @c2.one_to_many :attributes, :class => @c1
1613
- n = @c2.new(:id => 1234)
1614
- n.associations[:attributes] = 42
1615
- n.attributes(:reload=>true).wont_equal 42
1616
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE (attributes.node_id = 1234)']
1617
- end
1618
-
1619
- it "should add item to cache if it exists when calling add_" do
1620
- @c2.one_to_many :attributes, :class => @c1
1621
- n = @c2.new(:id => 1234)
1622
- att = @c1.load(:id => 345)
1623
- a = []
1624
- n.associations[:attributes] = a
1625
- n.add_attribute(att)
1626
- a.must_equal [att]
1627
- end
1628
-
1629
- it "should set object to item's reciprocal cache when calling add_" do
1630
- @c2.one_to_many :attributes, :class => @c1
1631
- @c1.many_to_one :node, :class => @c2
1632
-
1633
- n = @c2.new(:id => 1234)
1634
- att = @c1.new(:id => 345)
1635
- n.add_attribute(att)
1636
- att.node.must_equal n
1637
- end
1638
-
1639
- it "should remove item from cache if it exists when calling remove_" do
1640
- @c2.one_to_many :attributes, :class => @c1
1641
-
1642
- n = @c2.load(:id => 1234)
1643
- att = @c1.load(:id => 345)
1644
- a = [att]
1645
- n.associations[:attributes] = a
1646
- n.remove_attribute(att)
1647
- a.must_equal []
1648
- end
1649
-
1650
- it "should remove item's reciprocal cache calling remove_" do
1651
- @c2.one_to_many :attributes, :class => @c1
1652
- @c1.many_to_one :node, :class => @c2
1653
-
1654
- n = @c2.new(:id => 1234)
1655
- att = @c1.new(:id => 345)
1656
- att.associations[:node] = n
1657
- att.node.must_equal n
1658
- n.remove_attribute(att)
1659
- att.node.must_be_nil
1660
- end
1661
-
1662
- it "should not create the add_, remove_, or remove_all_ methods if :read_only option is used" do
1663
- @c2.one_to_many :attributes, :class => @c1, :read_only=>true
1664
- im = @c2.instance_methods
1665
- im.must_include(:attributes)
1666
- im.must_include(:attributes_dataset)
1667
- im.wont_include(:add_attribute)
1668
- im.wont_include(:remove_attribute)
1669
- im.wont_include(:remove_all_attributes)
1670
- end
1671
-
1672
- it "should not add associations methods directly to class" do
1673
- @c2.one_to_many :attributes, :class => @c1
1674
- im = @c2.instance_methods
1675
- im.must_include(:attributes)
1676
- im.must_include(:attributes_dataset)
1677
- im.must_include(:add_attribute)
1678
- im.must_include(:remove_attribute)
1679
- im.must_include(:remove_all_attributes)
1680
- im2 = @c2.instance_methods(false)
1681
- im2.wont_include(:attributes)
1682
- im2.wont_include(:attributes_dataset)
1683
- im2.wont_include(:add_attribute)
1684
- im2.wont_include(:remove_attribute)
1685
- im2.wont_include(:remove_all_attributes)
1686
- end
1687
-
1688
- it "should populate the reciprocal many_to_one cache when loading the one_to_many association" do
1689
- @c2.one_to_many :attributes, :class => @c1, :key => :node_id
1690
- @c1.many_to_one :node, :class => @c2, :key => :node_id
1691
-
1692
- n = @c2.new(:id => 1234)
1693
- atts = n.attributes
1694
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE (attributes.node_id = 1234)']
1695
- atts.must_equal [@c1.load({})]
1696
- atts.map{|a| a.node}.must_equal [n]
1697
- DB.sqls.must_equal []
1698
- end
1699
-
1700
- it "should use an explicit :reciprocal option if given" do
1701
- @c2.one_to_many :attributes, :class => @c1, :key => :node_id, :reciprocal=>:wxyz
1702
-
1703
- n = @c2.new(:id => 1234)
1704
- atts = n.attributes
1705
- DB.sqls.must_equal ['SELECT * FROM attributes WHERE (attributes.node_id = 1234)']
1706
- atts.must_equal [@c1.load({})]
1707
- atts.map{|a| a.associations[:wxyz]}.must_equal [n]
1708
- DB.sqls.must_equal []
1709
- end
1710
-
1711
- it "should have an remove_all_ method that removes all associated objects" do
1712
- @c2.one_to_many :attributes, :class => @c1
1713
- @c2.new(:id => 1234).remove_all_attributes
1714
- DB.sqls.must_equal ['UPDATE attributes SET node_id = NULL WHERE (node_id = 1234)']
1715
- end
1716
-
1717
- it "should have remove_all method respect association filters" do
1718
- @c2.one_to_many :attributes, :class => @c1, :conditions=>{:a=>1} do |ds|
1719
- ds.filter(:b=>2)
1720
- end
1721
- @c2.new(:id => 1234).remove_all_attributes
1722
- DB.sqls.must_equal ['UPDATE attributes SET node_id = NULL WHERE ((a = 1) AND (node_id = 1234) AND (b = 2))']
1723
- end
1724
-
1725
- it "should have the remove_all_ method respect the :primary_key option" do
1726
- @c2.one_to_many :attributes, :class => @c1, :primary_key=>:xxx
1727
- @c2.new(:id => 1234, :xxx=>5).remove_all_attributes
1728
- DB.sqls.must_equal ['UPDATE attributes SET node_id = NULL WHERE (node_id = 5)']
1729
- end
1730
-
1731
- it "should have the remove_all_ method respect composite keys" do
1732
- @c2.one_to_many :attributes, :class => @c1, :key=>[:node_id, :y], :primary_key=>[:id, :x]
1733
- @c2.new(:id => 1234, :x=>5).remove_all_attributes
1734
- DB.sqls.must_equal ["UPDATE attributes SET node_id = NULL, y = NULL WHERE ((node_id = 1234) AND (y = 5))"]
1735
- end
1736
-
1737
- it "remove_all should set the cache to []" do
1738
- @c2.one_to_many :attributes, :class => @c1
1739
- node = @c2.new(:id => 1234)
1740
- node.remove_all_attributes
1741
- node.associations[:attributes].must_equal []
1742
- end
1743
-
1744
- it "remove_all should return the array of previously associated items if the cache is populated" do
1745
- @c2.one_to_many :attributes, :class => @c1
1746
- attrib = @c1.new(:id=>3)
1747
- node = @c2.new(:id => 1234)
1748
- @c1.dataset = @c1.dataset.with_fetch([[], [{:id=>3, :node_id=>1234}]])
1749
- node.attributes.must_equal []
1750
- node.add_attribute(attrib)
1751
- node.associations[:attributes].must_equal [attrib]
1752
- node.remove_all_attributes.must_equal [attrib]
1753
- end
1754
-
1755
- it "remove_all should return nil if the cache is not populated" do
1756
- @c2.one_to_many :attributes, :class => @c1
1757
- @c2.new(:id => 1234).remove_all_attributes.must_be_nil
1758
- end
1759
-
1760
- it "remove_all should remove the current item from all reciprocal association caches if they are populated" do
1761
- @c2.one_to_many :attributes, :class => @c1
1762
- @c1.many_to_one :node, :class => @c2
1763
- @c2.dataset = @c2.dataset.with_fetch([])
1764
- @c1.dataset = @c1.dataset.with_fetch([[], [{:id=>3, :node_id=>1234}]])
1765
- attrib = @c1.new(:id=>3)
1766
- node = @c2.load(:id => 1234)
1767
- node.attributes.must_equal []
1768
- attrib.node.must_be_nil
1769
- node.add_attribute(attrib)
1770
- attrib.associations[:node].must_equal node
1771
- node.remove_all_attributes
1772
- attrib.associations.fetch(:node, 2).must_be_nil
1773
- end
1774
-
1775
- it "should call an _add_ method internally to add attributes" do
1776
- @c2.one_to_many :attributes, :class => @c1
1777
- @c2.private_instance_methods.must_include(:_add_attribute)
1778
- p = @c2.load(:id=>10)
1779
- c = @c1.load(:id=>123)
1780
- def p._add_attribute(x)
1781
- @x = x
1782
- end
1783
- def c._node_id=; raise; end
1784
- p.add_attribute(c)
1785
- p.instance_variable_get(:@x).must_equal c
1786
- end
1787
-
1788
- it "should support an :adder option for defining the _add_ method" do
1789
- @c2.one_to_many :attributes, :class => @c1, :adder=>proc{|x| @x = x}
1790
- p = @c2.load(:id=>10)
1791
- c = @c1.load(:id=>123)
1792
- def c._node_id=; raise; end
1793
- p.add_attribute(c)
1794
- p.instance_variable_get(:@x).must_equal c
1795
- end
1796
-
1797
- it "should allow additional arguments given to the add_ method and pass them onwards to the _add_ method" do
1798
- @c2.one_to_many :attributes, :class => @c1
1799
- p = @c2.load(:id=>10)
1800
- c = @c1.load(:id=>123)
1801
- def p._add_attribute(x,*y)
1802
- @x = x
1803
- @y = y
1804
- end
1805
- def c._node_id=; raise; end
1806
- p.add_attribute(c,:foo,:bar=>:baz)
1807
- p.instance_variable_get(:@x).must_equal c
1808
- p.instance_variable_get(:@y).must_equal [:foo,{:bar=>:baz}]
1809
- end
1810
-
1811
- it "should call a _remove_ method internally to remove attributes" do
1812
- @c2.one_to_many :attributes, :class => @c1
1813
- @c2.private_instance_methods.must_include(:_remove_attribute)
1814
- p = @c2.load(:id=>10)
1815
- c = @c1.load(:id=>123)
1816
- def p._remove_attribute(x)
1817
- @x = x
1818
- end
1819
- def c._node_id=; raise; end
1820
- p.remove_attribute(c)
1821
- p.instance_variable_get(:@x).must_equal c
1822
- end
1823
-
1824
- it "should support a :remover option for defining the _remove_ method" do
1825
- @c2.one_to_many :attributes, :class => @c1, :remover=>proc{|x| @x = x}
1826
- p = @c2.load(:id=>10)
1827
- c = @c1.load(:id=>123)
1828
- def c._node_id=; raise; end
1829
- p.remove_attribute(c)
1830
- p.instance_variable_get(:@x).must_equal c
1831
- end
1832
-
1833
- it "should allow additional arguments given to the remove_ method and pass them onwards to the _remove_ method" do
1834
- @c2.one_to_many :attributes, :class => @c1, :reciprocal=>nil
1835
- p = @c2.load(:id=>10)
1836
- c = @c1.load(:id=>123)
1837
- def p._remove_attribute(x,*y)
1838
- @x = x
1839
- @y = y
1840
- end
1841
- def c._node_id=; raise; end
1842
- p.remove_attribute(c,:foo,:bar=>:baz)
1843
- p.instance_variable_get(:@x).must_equal c
1844
- p.instance_variable_get(:@y).must_equal [:foo,{:bar=>:baz}]
1845
- end
1846
-
1847
- it "should allow additional arguments given to the remove_all_ method and pass them onwards to the _remove_all_ method" do
1848
- @c2.one_to_many :attributes, :class => @c1
1849
- p = @c2.load(:id=>10)
1850
- c = @c1.load(:id=>123)
1851
- def p._remove_all_attributes(*y)
1852
- @y = y
1853
- end
1854
- def c._node_id=; raise; end
1855
- p.remove_all_attributes(:foo,:bar=>:baz)
1856
- p.instance_variable_get(:@y).must_equal [:foo,{:bar=>:baz}]
1857
- end
1858
-
1859
- it "should call a _remove_all_ method internally to remove attributes" do
1860
- @c2.one_to_many :attributes, :class => @c1
1861
- @c2.private_instance_methods.must_include(:_remove_all_attributes)
1862
- p = @c2.load(:id=>10)
1863
- def p._remove_all_attributes
1864
- @x = :foo
1865
- end
1866
- p.remove_all_attributes
1867
- p.instance_variable_get(:@x).must_equal :foo
1868
- end
1869
-
1870
- it "should support a :clearer option for defining the _remove_all_ method" do
1871
- @c2.one_to_many :attributes, :class => @c1, :clearer=>proc{@x = :foo}
1872
- p = @c2.load(:id=>10)
1873
- p.remove_all_attributes
1874
- p.instance_variable_get(:@x).must_equal :foo
1875
- end
1876
-
1877
- it "should support (before|after)_(add|remove) callbacks" do
1878
- h = []
1879
- @c2.one_to_many :attributes, :class => @c1, :before_add=>[proc{|x,y| h << x.pk; h << -y.pk}, :blah], :after_add=>proc{h << 3}, :before_remove=>:blah, :after_remove=>[:blahr]
1880
- @c2.class_eval do
1881
- self::Foo = h
1882
- def _add_attribute(v)
1883
- model::Foo << 4
1884
- end
1885
- def _remove_attribute(v)
1886
- model::Foo << 5
1887
- end
1888
- def blah(x)
1889
- model::Foo << x.pk
1890
- end
1891
- def blahr(x)
1892
- model::Foo << 6
1893
- end
1894
- end
1895
- p = @c2.load(:id=>10)
1896
- c = @c1.load(:id=>123)
1897
- h.must_equal []
1898
- p.add_attribute(c)
1899
- h.must_equal [10, -123, 123, 4, 3]
1900
- p.remove_attribute(c)
1901
- h.must_equal [10, -123, 123, 4, 3, 123, 5, 6]
1902
- end
1903
-
1904
- it "should support after_load association callback" do
1905
- h = []
1906
- @c2.one_to_many :attributes, :class => @c1, :after_load=>[proc{|x,y| h << [x.pk, y.collect{|z|z.pk}]}, :al]
1907
- @c2.class_eval do
1908
- self::Foo = h
1909
- def al(v)
1910
- v.each{|x| model::Foo << x.pk}
1911
- end
1912
- end
1913
- @c1.dataset = @c1.dataset.with_fetch([{:id=>20}, {:id=>30}])
1914
- p = @c2.load(:id=>10, :parent_id=>20)
1915
- attributes = p.attributes
1916
- h.must_equal [[10, [20, 30]], 20, 30]
1917
- attributes.collect{|a| a.pk}.must_equal [20, 30]
1918
- end
1919
-
1920
- it "should raise error and not call internal add or remove method if before callback calls cancel_action if raise_on_save_failure is true" do
1921
- p = @c2.load(:id=>10)
1922
- c = @c1.load(:id=>123)
1923
- @c2.one_to_many :attributes, :class => @c1, :before_add=>:ba, :before_remove=>:br
1924
- def p.ba(o); cancel_action; end
1925
- def p._add_attribute; raise; end
1926
- def p._remove_attribute; raise; end
1927
- p.associations[:attributes] = []
1928
- proc{p.add_attribute(c)}.must_raise(Sequel::HookFailed)
1929
- p.attributes.must_equal []
1930
- p.associations[:attributes] = [c]
1931
- def p.br(o); cancel_action; end
1932
- proc{p.remove_attribute(c)}.must_raise(Sequel::HookFailed)
1933
- p.attributes.must_equal [c]
1934
- end
1935
-
1936
- it "should return nil and not call internal add or remove method if before callback calls cancel_action if raise_on_save_failure is false" do
1937
- p = @c2.load(:id=>10)
1938
- c = @c1.load(:id=>123)
1939
- p.raise_on_save_failure = false
1940
- @c2.one_to_many :attributes, :class => @c1, :before_add=>:ba, :before_remove=>:br
1941
- def p.ba(o); cancel_action; end
1942
- def p._add_attribute; raise; end
1943
- def p._remove_attribute; raise; end
1944
- p.associations[:attributes] = []
1945
- p.add_attribute(c).must_be_nil
1946
- p.attributes.must_equal []
1947
- p.associations[:attributes] = [c]
1948
- def p.br(o); cancel_action; end
1949
- p.remove_attribute(c).must_be_nil
1950
- p.attributes.must_equal [c]
1951
- end
1952
-
1953
- it "should have association dataset use false condition if any key is nil" do
1954
- @c1.one_to_many :children, :class => @c1, :primary_key=>:node_id
1955
- @c1.load(:id=>1).children_dataset.sql.must_equal "SELECT * FROM attributes WHERE 'f'"
1956
- end
1957
- end
1958
-
1959
- describe Sequel::Model, "many_to_many" do
1960
- before do
1961
- @c1 = Class.new(Sequel::Model(:attributes)) do
1962
- unrestrict_primary_key
1963
- attr_accessor :yyy
1964
- def self.name; 'Attribute'; end
1965
- def self.to_s; 'Attribute'; end
1966
- columns :id, :y, :z
1967
- end
1968
-
1969
- @c2 = Class.new(Sequel::Model(:nodes)) do
1970
- unrestrict_primary_key
1971
- attr_accessor :xxx
1972
-
1973
- def self.name; 'Node'; end
1974
- def self.to_s; 'Node'; end
1975
- columns :id, :x
1976
- end
1977
- @dataset = @c2.dataset
1978
- @c1.dataset = @c1.dataset.with_autoid(1)
1979
-
1980
- [@c1, @c2].each{|c| c.dataset = c.dataset.with_fetch({})}
1981
- DB.reset
1982
- end
1983
-
1984
- it "should raise an error if current class does not have a primary key, and :left_primary_key is not specified" do
1985
- @c2.no_primary_key
1986
- proc{@c2.many_to_many :attributes, :class => @c1}.must_raise(Sequel::Error)
1987
- DB.sqls.must_equal []
1988
- end
1989
-
1990
- it "should raise an error if associated class does not have a primary key, and :right_primary_key is not specified" do
1991
- @c1.no_primary_key
1992
- @c2.many_to_many :attributes, :class => @c1
1993
- d = @c2.new(:id => 1234)
1994
- proc{d.attributes}.must_raise(Sequel::Error)
1995
- DB.sqls.must_equal []
1996
- end
1997
-
1998
- it "should use implicit key values and join table if omitted" do
1999
- @c2.many_to_many :attributes, :class => @c1
2000
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2001
- end
2002
-
2003
- it "should use implicit key values and join table if omitted" do
2004
- @c2.one_through_one :attribute, :class => @c1
2005
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1'
2006
- end
2007
-
2008
- it "should use implicit class if omitted" do
2009
- begin
2010
- class ::Tag < Sequel::Model; end
2011
- @c2.many_to_many :tags
2012
- @c2.new(:id => 1234).tags_dataset.sql.must_equal 'SELECT tags.* FROM tags INNER JOIN nodes_tags ON (nodes_tags.tag_id = tags.id) WHERE (nodes_tags.node_id = 1234)'
2013
- ensure
2014
- Object.send(:remove_const, :Tag)
2015
- end
2016
- end
2017
-
2018
- it "should use class inside module if given as a string" do
2019
- begin
2020
- module ::Historical
2021
- class Tag < Sequel::Model; end
2022
- end
2023
- @c2.many_to_many :tags, :class=>'::Historical::Tag'
2024
- @c2.new(:id => 1234).tags_dataset.sql.must_equal 'SELECT tags.* FROM tags INNER JOIN nodes_tags ON (nodes_tags.tag_id = tags.id) WHERE (nodes_tags.node_id = 1234)'
2025
- ensure
2026
- Object.send(:remove_const, :Historical)
2027
- end
2028
- end
2029
-
2030
- it "should not override a selection consisting completely of qualified columns using Sequel::SQL::QualifiedIdentifier" do
2031
- @c1.dataset = @c1.dataset.select(Sequel.qualify(:attributes, :id), Sequel.qualify(:attributes, :b))
2032
- @c2.many_to_many :attributes, :class => @c1
2033
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.id, attributes.b FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2034
- end
2035
-
2036
- with_symbol_splitting "should not override a selection consisting completely of qualified columns using symbols" do
2037
- @c1.dataset = @c1.dataset.select(:attributes__id, :attributes__b)
2038
- @c2.many_to_many :attributes, :class => @c1
2039
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.id, attributes.b FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2040
- end
2041
-
2042
- it "should not override a selection consisting completely of qualified columns using Sequel::SQL::AliasedExpression" do
2043
- @c1.dataset = @c1.dataset.select(Sequel.qualify(:attributes, :id).as(:a), Sequel[:attributes][:b].as(:c))
2044
- @c2.many_to_many :attributes, :class => @c1
2045
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.id AS a, attributes.b AS c FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2046
- end
2047
-
2048
- with_symbol_splitting "should not override a selection consisting completely of qualified columns using Sequel::SQL::AliasedExpression with qualified symbol" do
2049
- @c1.dataset = @c1.dataset.select(Sequel.qualify(:attributes, :id).as(:a), Sequel.as(:attributes__b, :c))
2050
- @c2.many_to_many :attributes, :class => @c1
2051
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.id AS a, attributes.b AS c FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2052
- end
2053
-
2054
- it "should override a selection consisting of non qualified columns" do
2055
- @c1.dataset = @c1.dataset.select{foo(:bar)}
2056
- @c2.many_to_many :attributes, :class => @c1
2057
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2058
- end
2059
-
2060
- it "should respect :predicate_key when lazily loading" do
2061
- @c2.many_to_many :attributes, :class => @c1, :predicate_key=>Sequel.subscript(Sequel[:attributes_nodes][:node_id], 0)
2062
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id[0] = 1234)'
2063
- end
2064
-
2065
- it "should use explicit key values and join table if given" do
2066
- @c2.many_to_many :attributes, :class => @c1, :left_key => :nodeid, :right_key => :attributeid, :join_table => :attribute2node
2067
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attribute2node ON (attribute2node.attributeid = attributes.id) WHERE (attribute2node.nodeid = 1234)'
2068
- end
2069
-
2070
- it "should support a conditions option" do
2071
- @c2.many_to_many :attributes, :class => @c1, :conditions => {:a=>32}
2072
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((a = 32) AND (attributes_nodes.node_id = 1234))'
2073
-
2074
- @c2.many_to_many :attributes, :class => @c1, :conditions => Sequel.lit('a = ?', 32)
2075
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((a = 32) AND (attributes_nodes.node_id = 1234))'
2076
- @c2.new(:id => 1234).attributes.must_equal [@c1.load({})]
2077
- end
2078
-
2079
- it "should support an order option" do
2080
- @c2.many_to_many :attributes, :class => @c1, :order => :blah
2081
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) ORDER BY blah'
2082
- end
2083
-
2084
- it "should support an array for the order option" do
2085
- @c2.many_to_many :attributes, :class => @c1, :order => [:blah1, :blah2]
2086
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) ORDER BY blah1, blah2'
2087
- end
2088
-
2089
- it "should support :left_primary_key and :right_primary_key options" do
2090
- @c2.many_to_many :attributes, :class => @c1, :left_primary_key=>:xxx, :right_primary_key=>:yyy
2091
- @c2.new(:id => 1234, :xxx=>5).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.yyy) WHERE (attributes_nodes.node_id = 5)'
2092
- end
2093
-
2094
- it "should support composite keys" do
2095
- @c2.many_to_many :attributes, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :y]
2096
- @c2.load(:id => 1234, :x=>5).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON ((attributes_nodes.r1 = attributes.id) AND (attributes_nodes.r2 = attributes.y)) WHERE ((attributes_nodes.l1 = 1234) AND (attributes_nodes.l2 = 5))'
2097
- end
2098
-
2099
- it "should not issue query if not all keys have values" do
2100
- @c2.many_to_many :attributes, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :y]
2101
- @c2.load(:id => 1234, :x=>nil).attributes.must_equal []
2102
- DB.sqls.must_equal []
2103
- end
2104
-
2105
- it "should raise an Error unless same number of composite keys used" do
2106
- proc{@c2.many_to_many :attributes, :class => @c1, :left_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2107
- proc{@c2.many_to_many :attributes, :class => @c1, :left_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2108
- proc{@c2.many_to_many :attributes, :class => @c1, :left_key=>[:node_id, :id], :left_primary_key=>:id}.must_raise(Sequel::Error)
2109
- proc{@c2.many_to_many :attributes, :class => @c1, :left_key=>:id, :left_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2110
- proc{@c2.many_to_many :attributes, :class => @c1, :left_key=>[:node_id, :id, :x], :left_primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
2111
-
2112
- proc{@c2.many_to_many :attributes, :class => @c1, :right_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2113
- proc{@c2.many_to_many :attributes, :class => @c1, :right_key=>[:node_id, :id], :right_primary_key=>:id}.must_raise(Sequel::Error)
2114
- proc{@c2.many_to_many :attributes, :class => @c1, :right_key=>:id, :left_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2115
- proc{@c2.many_to_many :attributes, :class => @c1, :right_key=>[:node_id, :id, :x], :right_primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
2116
- end
2117
-
2118
- it "should support a select option" do
2119
- @c2.many_to_many :attributes, :class => @c1, :select => :blah
2120
-
2121
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT blah FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2122
- end
2123
-
2124
- it "should support an array for the select option" do
2125
- @c2.many_to_many :attributes, :class => @c1, :select => [Sequel::SQL::ColumnAll.new(:attributes), Sequel[:attribute_nodes][:blah2]]
2126
-
2127
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.*, attribute_nodes.blah2 FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)'
2128
- end
2129
-
2130
- it "should accept a block" do
2131
- @c2.many_to_many :attributes, :class => @c1 do |ds|
2132
- ds.filter(:xxx => @xxx)
2133
- end
2134
-
2135
- n = @c2.new(:id => 1234)
2136
- n.xxx = 555
2137
- n.attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1234) AND (xxx = 555))'
2138
- end
2139
-
2140
- it "should allow the :order option while accepting a block" do
2141
- @c2.many_to_many :attributes, :class => @c1, :order=>[:blah1, :blah2] do |ds|
2142
- ds.filter(:xxx => @xxx)
2143
- end
2144
-
2145
- n = @c2.new(:id => 1234)
2146
- n.xxx = 555
2147
- n.attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1234) AND (xxx = 555)) ORDER BY blah1, blah2'
2148
- end
2149
-
2150
- it "should support a :dataset option that is used instead of the default" do
2151
- c1 = @c1
2152
- @c2.many_to_many :attributes, :class => @c1, :dataset=>proc{c1.join_table(:natural, :an).filter(Sequel[:an][:nodeid]=>pk)}, :order=> :a, :limit=>10, :select=>nil do |ds|
2153
- ds.filter(:xxx => @xxx)
2154
- end
2155
-
2156
- n = @c2.new(:id => 1234)
2157
- n.xxx = 555
2158
- n.attributes_dataset.sql.must_equal 'SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 10'
2159
- n.attributes.must_equal [@c1.load({})]
2160
- DB.sqls.must_equal ['SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 10']
2161
- end
2162
-
2163
- it "should support a :dataset option that accepts the reflection as an argument" do
2164
- @c2.many_to_many :attributes, :class => @c1, :dataset=>lambda{|opts| opts.associated_class.natural_join(:an).filter(Sequel[:an][:nodeid]=>pk)}, :order=> :a, :limit=>10, :select=>nil do |ds|
2165
- ds.filter(:xxx => @xxx)
2166
- end
2167
-
2168
- n = @c2.new(:id => 1234)
2169
- n.xxx = 555
2170
- n.attributes_dataset.sql.must_equal 'SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 10'
2171
- n.attributes.must_equal [@c1.load({})]
2172
- DB.sqls.must_equal ['SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 10']
2173
- end
2174
-
2175
- it "should support a :limit option" do
2176
- @c2.many_to_many :attributes, :class => @c1 , :limit=>10
2177
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 10'
2178
- @c2.many_to_many :attributes, :class => @c1 , :limit=>[10, 10]
2179
- @c2.new(:id => 1234).attributes_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 10 OFFSET 10'
2180
- end
2181
-
2182
- it "should have the :eager option affect the _dataset method" do
2183
- @c2.many_to_many :attributes, :class => @c2 , :eager=>:attributes
2184
- @c2.new(:id => 1234).attributes_dataset.opts[:eager].must_equal(:attributes=>nil)
2185
- end
2186
-
2187
- it "should handle an aliased join table" do
2188
- @c2.many_to_many :attributes, :class => @c1, :join_table => Sequel[:attribute2node].as(:attributes_nodes)
2189
- n = @c2.load(:id => 1234)
2190
- a = @c1.load(:id => 2345)
2191
- n.attributes_dataset.sql.must_equal "SELECT attributes.* FROM attributes INNER JOIN attribute2node AS attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)"
2192
- a.must_equal n.add_attribute(a)
2193
- a.must_equal n.remove_attribute(a)
2194
- n.remove_all_attributes
2195
- DB.sqls.must_equal ["INSERT INTO attribute2node (node_id, attribute_id) VALUES (1234, 2345)",
2196
- "DELETE FROM attribute2node WHERE ((node_id = 1234) AND (attribute_id = 2345))",
2197
- "DELETE FROM attribute2node WHERE (node_id = 1234)"]
2198
- end
2199
-
2200
- with_symbol_splitting "should handle an aliased symbol join table" do
2201
- @c2.many_to_many :attributes, :class => @c1, :join_table => :attribute2node___attributes_nodes
2202
- n = @c2.load(:id => 1234)
2203
- a = @c1.load(:id => 2345)
2204
- n.attributes_dataset.sql.must_equal "SELECT attributes.* FROM attributes INNER JOIN attribute2node AS attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)"
2205
- a.must_equal n.add_attribute(a)
2206
- a.must_equal n.remove_attribute(a)
2207
- n.remove_all_attributes
2208
- DB.sqls.must_equal ["INSERT INTO attribute2node (node_id, attribute_id) VALUES (1234, 2345)",
2209
- "DELETE FROM attribute2node WHERE ((node_id = 1234) AND (attribute_id = 2345))",
2210
- "DELETE FROM attribute2node WHERE (node_id = 1234)"]
2211
- end
2212
-
2213
- it "should define an add_ method that works on existing records" do
2214
- @c2.many_to_many :attributes, :class => @c1
2215
-
2216
- n = @c2.load(:id => 1234)
2217
- a = @c1.load(:id => 2345)
2218
- n.add_attribute(a).must_equal a
2219
- DB.sqls.must_equal ["INSERT INTO attributes_nodes (node_id, attribute_id) VALUES (1234, 2345)"]
2220
- end
2221
-
2222
- it "should define an add_ method that works with a primary key" do
2223
- @c2.many_to_many :attributes, :class => @c1
2224
-
2225
- n = @c2.load(:id => 1234)
2226
- a = @c1.load(:id => 2345)
2227
- @c1.dataset = @c1.dataset.with_fetch(:id=>2345)
2228
- n.add_attribute(2345).must_equal a
2229
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE id = 2345",
2230
- "INSERT INTO attributes_nodes (node_id, attribute_id) VALUES (1234, 2345)"]
2231
- end
2232
-
2233
- it "should raise an error if the primary key passed to the add_ method does not match an existing record" do
2234
- @c2.many_to_many :attributes, :class => @c1
2235
-
2236
- n = @c2.load(:id => 1234)
2237
- @c1.dataset = @c1.dataset.with_fetch([])
2238
- proc{n.add_attribute(2345)}.must_raise(Sequel::NoMatchingRow)
2239
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE id = 2345"]
2240
- end
2241
-
2242
- it "should allow passing a hash to the add_ method which creates a new record" do
2243
- @c2.many_to_many :attributes, :class => @c1
2244
-
2245
- n = @c2.load(:id => 1234)
2246
- @c1.dataset = @c1.dataset.with_fetch(:id=>1)
2247
- n.add_attribute(:id => 1).must_equal @c1.load(:id => 1)
2248
- DB.sqls.must_equal ['INSERT INTO attributes (id) VALUES (1)',
2249
- "SELECT * FROM attributes WHERE id = 1",
2250
- "INSERT INTO attributes_nodes (node_id, attribute_id) VALUES (1234, 1)"]
2251
- end
2252
-
2253
- it "should define a remove_ method that works on existing records" do
2254
- @c2.many_to_many :attributes, :class => @c1
2255
-
2256
- n = @c2.new(:id => 1234)
2257
- a = @c1.new(:id => 2345)
2258
- n.remove_attribute(a).must_equal a
2259
- DB.sqls.must_equal ['DELETE FROM attributes_nodes WHERE ((node_id = 1234) AND (attribute_id = 2345))']
2260
- end
2261
-
2262
- it "should raise an error in the add_ method if the passed associated object is not of the correct type" do
2263
- @c2.many_to_many :attributes, :class => @c1
2264
- proc{@c2.new(:id => 1234).add_attribute(@c2.new)}.must_raise(Sequel::Error)
2265
- end
2266
-
2267
- it "should accept a primary key for the remove_ method and remove an existing record" do
2268
- @c2.many_to_many :attributes, :class => @c1
2269
- n = @c2.new(:id => 1234)
2270
- @c1.dataset = @c1.dataset.with_fetch(:id=>234)
2271
- n.remove_attribute(234).must_equal @c1.load(:id => 234)
2272
- DB.sqls.must_equal ["SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1234) AND (attributes.id = 234)) LIMIT 1",
2273
- "DELETE FROM attributes_nodes WHERE ((node_id = 1234) AND (attribute_id = 234))"]
2274
- end
2275
-
2276
- it "should raise an error in the remove_ method if the passed associated object is not of the correct type" do
2277
- @c2.many_to_many :attributes, :class => @c1
2278
- proc{@c2.new(:id => 1234).remove_attribute(@c2.new)}.must_raise(Sequel::Error)
2279
- end
2280
-
2281
- it "should have the add_ method respect the :left_primary_key and :right_primary_key options" do
2282
- @c2.many_to_many :attributes, :class => @c1, :left_primary_key=>:xxx, :right_primary_key=>:yyy
2283
-
2284
- n = @c2.load(:id => 1234).set(:xxx=>5)
2285
- a = @c1.load(:id => 2345).set(:yyy=>8)
2286
- n.add_attribute(a).must_equal a
2287
- DB.sqls.must_equal ["INSERT INTO attributes_nodes (node_id, attribute_id) VALUES (5, 8)"]
2288
- end
2289
-
2290
- it "should have add_ method not add the same object to the cached association array if the object is already in the array" do
2291
- @c2.many_to_many :attributes, :class => @c1
2292
-
2293
- n = @c2.load(:id => 1234).set(:xxx=>5)
2294
- a = @c1.load(:id => 2345).set(:yyy=>8)
2295
- n.associations[:attributes] = []
2296
- a.must_equal n.add_attribute(a)
2297
- a.must_equal n.add_attribute(a)
2298
- n.attributes.must_equal [a]
2299
- end
2300
-
2301
- it "should have the add_ method respect composite keys" do
2302
- @c2.many_to_many :attributes, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :z]
2303
- n = @c2.load(:id => 1234, :x=>5)
2304
- a = @c1.load(:id => 2345, :z=>8)
2305
- a.must_equal n.add_attribute(a)
2306
- sqls = DB.sqls
2307
- m = /INSERT INTO attributes_nodes \((\w+), (\w+), (\w+), (\w+)\) VALUES \((\d+), (\d+), (\d+), (\d+)\)/.match(sqls.pop)
2308
- sqls.must_equal []
2309
- m.wont_equal nil
2310
- map = {'l1'=>1234, 'l2'=>5, 'r1'=>2345, 'r2'=>8}
2311
- %w[l1 l2 r1 r2].each do |x|
2312
- v = false
2313
- 4.times do |i| i += 1
2314
- if m[i] == x
2315
- m[i+4].must_equal map[x].to_s
2316
- v = true
2317
- end
2318
- end
2319
- v.must_equal true
2320
- end
2321
- end
2322
-
2323
- it "should have the add_ method respect composite keys" do
2324
- @c2.many_to_many :attributes, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :z]
2325
- @c1.dataset = @c1.dataset.with_fetch(:id=>2345, :z=>8)
2326
- @c1.set_primary_key [:id, :z]
2327
- n = @c2.load(:id => 1234, :x=>5)
2328
- a = @c1.load(:id => 2345, :z=>8)
2329
- n.add_attribute([2345, 8]).must_equal a
2330
- DB.sqls.must_equal ["SELECT * FROM attributes WHERE ((id = 2345) AND (z = 8)) LIMIT 1",
2331
- "INSERT INTO attributes_nodes (l1, l2, r1, r2) VALUES (1234, 5, 2345, 8)"]
2332
- end
2333
-
2334
- it "should have the remove_ method respect the :left_primary_key and :right_primary_key options" do
2335
- @c2.many_to_many :attributes, :class => @c1, :left_primary_key=>:xxx, :right_primary_key=>:yyy
2336
-
2337
- n = @c2.new(:id => 1234, :xxx=>5)
2338
- a = @c1.new(:id => 2345, :yyy=>8)
2339
- n.remove_attribute(a).must_equal a
2340
- DB.sqls.must_equal ['DELETE FROM attributes_nodes WHERE ((node_id = 5) AND (attribute_id = 8))']
2341
- end
2342
-
2343
- it "should have the remove_ method respect composite keys" do
2344
- @c2.many_to_many :attributes, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :z]
2345
- n = @c2.load(:id => 1234, :x=>5)
2346
- a = @c1.load(:id => 2345, :z=>8)
2347
- a.must_equal n.remove_attribute(a)
2348
- DB.sqls.must_equal ["DELETE FROM attributes_nodes WHERE ((l1 = 1234) AND (l2 = 5) AND (r1 = 2345) AND (r2 = 8))"]
2349
- end
2350
-
2351
- it "should accept a array of composite primary key values for the remove_ method and remove an existing record" do
2352
- @c1.dataset = @c1.dataset.with_fetch(:id=>234, :y=>8)
2353
- @c1.set_primary_key [:id, :y]
2354
- @c2.many_to_many :attributes, :class => @c1
2355
- n = @c2.new(:id => 1234)
2356
- @c1.load(:id => 234, :y=>8).must_equal n.remove_attribute([234, 8])
2357
- DB.sqls.must_equal ["SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1234) AND (attributes.id = 234) AND (attributes.y = 8)) LIMIT 1",
2358
- "DELETE FROM attributes_nodes WHERE ((node_id = 1234) AND (attribute_id = 234))"]
2359
- end
2360
-
2361
- it "should raise an error if the model object doesn't have a valid primary key" do
2362
- @c2.many_to_many :attributes, :class => @c1
2363
- a = @c2.new
2364
- n = @c1.load(:id=>123)
2365
- proc{a.attributes_dataset}.must_raise(Sequel::Error)
2366
- proc{a.add_attribute(n)}.must_raise(Sequel::Error)
2367
- proc{a.remove_attribute(n)}.must_raise(Sequel::Error)
2368
- proc{a.remove_all_attributes}.must_raise(Sequel::Error)
2369
- end
2370
-
2371
- it "should save the associated object first in add_ if passed a new model object" do
2372
- @c2.many_to_many :attributes, :class => @c1
2373
- n = @c1.new
2374
- a = @c2.load(:id=>123)
2375
- n.new?.must_equal true
2376
- @c1.dataset = @c1.dataset.with_fetch(:id=>1)
2377
- a.add_attribute(n)
2378
- n.new?.must_equal false
2379
- end
2380
-
2381
- it "should raise a ValidationFailed in add_ if the associated object is new and invalid" do
2382
- @c2.many_to_many :attributes, :class => @c1
2383
- n = @c1.new
2384
- a = @c2.load(:id=>123)
2385
- def n.validate() errors.add(:id, 'foo') end
2386
- proc{a.add_attribute(n)}.must_raise(Sequel::ValidationFailed)
2387
- end
2388
-
2389
- it "should raise an Error in add_ if the associated object is new and invalid and raise_on_save_failure is false" do
2390
- @c2.many_to_many :attributes, :class => @c1
2391
- n = @c1.new
2392
- n.raise_on_save_failure = false
2393
- a = @c2.load(:id=>123)
2394
- def n.validate() errors.add(:id, 'foo') end
2395
- proc{a.add_attribute(n)}.must_raise(Sequel::Error)
2396
- end
2397
-
2398
- it "should not attempt to validate the associated object in add_ if the :validate=>false option is used" do
2399
- @c2.many_to_many :attributes, :class => @c1, :validate=>false
2400
- n = @c1.new
2401
- a = @c2.load(:id=>123)
2402
- def n.validate() errors.add(:id, 'foo') end
2403
- @c1.dataset = @c1.dataset.with_fetch(:id=>1)
2404
- a.add_attribute(n)
2405
- n.new?.must_equal false
2406
- end
2407
-
2408
- it "should raise an error if trying to remove a model object that doesn't have a valid primary key" do
2409
- @c2.many_to_many :attributes, :class => @c1
2410
- n = @c1.new
2411
- a = @c2.load(:id=>123)
2412
- proc{a.remove_attribute(n)}.must_raise(Sequel::Error)
2413
- end
2414
-
2415
- it "should provide an array with all members of the association" do
2416
- @c2.many_to_many :attributes, :class => @c1
2417
-
2418
- @c2.new(:id => 1234).attributes.must_equal [@c1.load({})]
2419
- DB.sqls.must_equal ['SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)']
2420
- end
2421
-
2422
- it "should populate cache when accessed" do
2423
- @c2.many_to_many :attributes, :class => @c1
2424
-
2425
- n = @c2.new(:id => 1234)
2426
- n.associations.include?(:attributes).must_equal false
2427
- atts = n.attributes
2428
- atts.must_equal n.associations[:attributes]
2429
- end
2430
-
2431
- it "should use cache if available" do
2432
- @c2.many_to_many :attributes, :class => @c1
2433
-
2434
- n = @c2.new(:id => 1234)
2435
- n.associations[:attributes] = 42
2436
- n.attributes.must_equal 42
2437
- DB.sqls.must_equal []
2438
- end
2439
-
2440
- it "should not use cache if asked to reload" do
2441
- @c2.many_to_many :attributes, :class => @c1
2442
-
2443
- n = @c2.new(:id => 1234)
2444
- n.associations[:attributes] = 42
2445
- n.attributes(:reload=>true).wont_equal 42
2446
- DB.sqls.must_equal ["SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234)"]
2447
- end
2448
-
2449
- it "should add item to cache if it exists when calling add_" do
2450
- @c2.many_to_many :attributes, :class => @c1
2451
-
2452
- n = @c2.new(:id => 1234)
2453
- att = @c1.load(:id => 345)
2454
- a = []
2455
- n.associations[:attributes] = a
2456
- n.add_attribute(att)
2457
- a.must_equal [att]
2458
- end
2459
-
2460
- it "should add item to reciprocal's cache if it exists when calling add_" do
2461
- @c2.many_to_many :attributes, :class => @c1
2462
- @c1.many_to_many :nodes, :class => @c2
2463
-
2464
- n = @c2.new(:id => 1234)
2465
- att = @c1.load(:id => 345)
2466
- att.associations[:nodes] = []
2467
- n.add_attribute(att)
2468
- att.nodes.must_equal [n]
2469
- end
2470
-
2471
- it "should remove item from cache if it exists when calling remove_" do
2472
- @c2.many_to_many :attributes, :class => @c1
2473
-
2474
- n = @c2.new(:id => 1234)
2475
- att = @c1.load(:id => 345)
2476
- a = [att]
2477
- n.associations[:attributes] = a
2478
- n.remove_attribute(att)
2479
- a.must_equal []
2480
- end
2481
-
2482
- it "should remove item from reciprocal's if it exists when calling remove_" do
2483
- @c2.many_to_many :attributes, :class => @c1
2484
- @c1.many_to_many :nodes, :class => @c2
2485
-
2486
- n = @c2.new(:id => 1234)
2487
- att = @c1.new(:id => 345)
2488
- att.associations[:nodes] = [n]
2489
- n.remove_attribute(att)
2490
- att.nodes.must_equal []
2491
- end
2492
-
2493
- it "should not create the add_, remove_, or remove_all_ methods if :read_only option is used" do
2494
- @c2.many_to_many :attributes, :class => @c1, :read_only=>true
2495
- im = @c2.instance_methods
2496
- im.must_include(:attributes)
2497
- im.must_include(:attributes_dataset)
2498
- im.wont_include(:add_attribute)
2499
- im.wont_include(:remove_attribute)
2500
- im.wont_include(:remove_all_attributes)
2501
- end
2502
-
2503
- it "should not add associations methods directly to class" do
2504
- @c2.many_to_many :attributes, :class => @c1
2505
- im = @c2.instance_methods
2506
- im.must_include(:attributes)
2507
- im.must_include(:attributes_dataset)
2508
- im.must_include(:add_attribute)
2509
- im.must_include(:remove_attribute)
2510
- im.must_include(:remove_all_attributes)
2511
- im2 = @c2.instance_methods(false)
2512
- im2.wont_include(:attributes)
2513
- im2.wont_include(:attributes_dataset)
2514
- im2.wont_include(:add_attribute)
2515
- im2.wont_include(:remove_attribute)
2516
- im2.wont_include(:remove_all_attributes)
2517
- end
2518
-
2519
- it "should have an remove_all_ method that removes all associations" do
2520
- @c2.many_to_many :attributes, :class => @c1
2521
- @c2.new(:id => 1234).remove_all_attributes
2522
- DB.sqls.must_equal ['DELETE FROM attributes_nodes WHERE (node_id = 1234)']
2523
- end
2524
-
2525
- it "should have the remove_all_ method respect the :left_primary_key option" do
2526
- @c2.many_to_many :attributes, :class => @c1, :left_primary_key=>:xxx
2527
- @c2.new(:id => 1234, :xxx=>5).remove_all_attributes
2528
- DB.sqls.must_equal ['DELETE FROM attributes_nodes WHERE (node_id = 5)']
2529
- end
2530
-
2531
- it "should have the remove_all_ method respect composite keys" do
2532
- @c2.many_to_many :attributes, :class => @c1, :left_primary_key=>[:id, :x], :left_key=>[:l1, :l2]
2533
- @c2.load(:id => 1234, :x=>5).remove_all_attributes
2534
- DB.sqls.must_equal ['DELETE FROM attributes_nodes WHERE ((l1 = 1234) AND (l2 = 5))']
2535
- end
2536
-
2537
- it "remove_all should set the cached instance variable to []" do
2538
- @c2.many_to_many :attributes, :class => @c1
2539
- node = @c2.new(:id => 1234)
2540
- node.remove_all_attributes
2541
- node.associations[:attributes].must_equal []
2542
- end
2543
-
2544
- it "remove_all should return the array of previously associated items if the cached instance variable exists" do
2545
- @c2.many_to_many :attributes, :class => @c1
2546
- attrib = @c1.load(:id=>3)
2547
- node = @c2.load(:id => 1234)
2548
- @c1.dataset = @c1.dataset.with_fetch([])
2549
- node.attributes.must_equal []
2550
- node.add_attribute(attrib)
2551
- node.associations[:attributes].must_equal [attrib]
2552
- node.remove_all_attributes.must_equal [attrib]
2553
- end
2554
-
2555
- it "remove_all should return nil if the cached instance variable does not exist" do
2556
- @c2.many_to_many :attributes, :class => @c1
2557
- @c2.new(:id => 1234).remove_all_attributes.must_be_nil
2558
- end
2559
-
2560
- it "remove_all should remove the current item from all reciprocal instance varaibles if it cached instance variable exists" do
2561
- @c2.many_to_many :attributes, :class => @c1
2562
- @c1.many_to_many :nodes, :class => @c2
2563
- @c1.dataset = @c1.dataset.with_fetch([])
2564
- @c2.dataset = @c2.dataset.with_fetch([])
2565
- attrib = @c1.load(:id=>3)
2566
- node = @c2.new(:id => 1234)
2567
- node.attributes.must_equal []
2568
- attrib.nodes.must_equal []
2569
- node.add_attribute(attrib)
2570
- attrib.associations[:nodes].must_equal [node]
2571
- node.remove_all_attributes
2572
- attrib.associations[:nodes].must_equal []
2573
- end
2574
-
2575
- it "add, remove, and remove_all methods should respect :join_table_block option" do
2576
- @c2.many_to_many :attributes, :class => @c1, :join_table_block=>proc{|ds| ds.filter(:x=>123)}
2577
- o = @c2.load(:id => 1234)
2578
- o.add_attribute(@c1.load(:id=>44))
2579
- o.remove_attribute(@c1.load(:id=>45))
2580
- o.remove_all_attributes
2581
- sqls = DB.sqls
2582
- sqls.shift =~ /INSERT INTO attributes_nodes \((node_id|attribute_id), (node_id|attribute_id)\) VALUES \((1234|44), (1234|44)\)/
2583
- sqls.must_equal ["DELETE FROM attributes_nodes WHERE ((x = 123) AND (node_id = 1234) AND (attribute_id = 45))",
2584
- "DELETE FROM attributes_nodes WHERE ((x = 123) AND (node_id = 1234))"]
2585
- end
2586
-
2587
- it "should call an _add_ method internally to add attributes" do
2588
- @c2.many_to_many :attributes, :class => @c1
2589
- @c2.private_instance_methods.must_include(:_add_attribute)
2590
- p = @c2.load(:id=>10)
2591
- c = @c1.load(:id=>123)
2592
- def p._add_attribute(x)
2593
- @x = x
2594
- end
2595
- p.add_attribute(c)
2596
- p.instance_variable_get(:@x).must_equal c
2597
- DB.sqls.must_equal []
2598
- end
2599
-
2600
- it "should support an :adder option for defining the _add_ method" do
2601
- @c2.many_to_many :attributes, :class => @c1, :adder=>proc{|x| @x = x}
2602
- p = @c2.load(:id=>10)
2603
- c = @c1.load(:id=>123)
2604
- p.add_attribute(c)
2605
- p.instance_variable_get(:@x).must_equal c
2606
- DB.sqls.must_equal []
2607
- end
2608
-
2609
- it "should allow additional arguments given to the add_ method and pass them onwards to the _add_ method" do
2610
- @c2.many_to_many :attributes, :class => @c1
2611
- p = @c2.load(:id=>10)
2612
- c = @c1.load(:id=>123)
2613
- def p._add_attribute(x,*y)
2614
- @x = x
2615
- @y = y
2616
- end
2617
- p.add_attribute(c,:foo,:bar=>:baz)
2618
- p.instance_variable_get(:@x).must_equal c
2619
- p.instance_variable_get(:@y).must_equal [:foo,{:bar=>:baz}]
2620
- end
2621
-
2622
- it "should call a _remove_ method internally to remove attributes" do
2623
- @c2.many_to_many :attributes, :class => @c1
2624
- @c2.private_instance_methods.must_include(:_remove_attribute)
2625
- p = @c2.load(:id=>10)
2626
- c = @c1.load(:id=>123)
2627
- def p._remove_attribute(x)
2628
- @x = x
2629
- end
2630
- p.remove_attribute(c)
2631
- p.instance_variable_get(:@x).must_equal c
2632
- DB.sqls.must_equal []
2633
- end
2634
-
2635
- it "should support a :remover option for defining the _remove_ method" do
2636
- @c2.many_to_many :attributes, :class => @c1, :remover=>proc{|x| @x = x}
2637
- p = @c2.load(:id=>10)
2638
- c = @c1.load(:id=>123)
2639
- p.remove_attribute(c)
2640
- p.instance_variable_get(:@x).must_equal c
2641
- DB.sqls.must_equal []
2642
- end
2643
-
2644
- it "should allow additional arguments given to the remove_ method and pass them onwards to the _remove_ method" do
2645
- @c2.many_to_many :attributes, :class => @c1
2646
- p = @c2.load(:id=>10)
2647
- c = @c1.load(:id=>123)
2648
- def p._remove_attribute(x,*y)
2649
- @x = x
2650
- @y = y
2651
- end
2652
- p.remove_attribute(c,:foo,:bar=>:baz)
2653
- p.instance_variable_get(:@x).must_equal c
2654
- p.instance_variable_get(:@y).must_equal [:foo,{:bar=>:baz}]
2655
- end
2656
-
2657
- it "should allow additional arguments given to the remove_all_ method and pass them onwards to the _remove_all_ method" do
2658
- @c2.many_to_many :attributes, :class => @c1
2659
- p = @c2.load(:id=>10)
2660
- def p._remove_all_attributes(*y)
2661
- @y = y
2662
- end
2663
- p.remove_all_attributes(:foo,:bar=>:baz)
2664
- p.instance_variable_get(:@y).must_equal [:foo,{:bar=>:baz}]
2665
- end
2666
-
2667
- it "should call a _remove_all_ method internally to remove attributes" do
2668
- @c2.many_to_many :attributes, :class => @c1
2669
- @c2.private_instance_methods.must_include(:_remove_all_attributes)
2670
- p = @c2.load(:id=>10)
2671
- def p._remove_all_attributes
2672
- @x = :foo
2673
- end
2674
- p.remove_all_attributes
2675
- p.instance_variable_get(:@x).must_equal :foo
2676
- DB.sqls.must_equal []
2677
- end
2678
-
2679
- it "should support a :clearer option for defining the _remove_all_ method" do
2680
- @c2.many_to_many :attributes, :class => @c1, :clearer=>proc{@x = :foo}
2681
- p = @c2.load(:id=>10)
2682
- p.remove_all_attributes
2683
- p.instance_variable_get(:@x).must_equal :foo
2684
- DB.sqls.must_equal []
2685
- end
2686
-
2687
- it "should support (before|after)_(add|remove) callbacks" do
2688
- h = []
2689
- @c2.many_to_many :attributes, :class => @c1, :before_add=>[proc{|x,y| h << x.pk; h << -y.pk}, :blah], :after_add=>proc{h << 3}, :before_remove=>:blah, :after_remove=>[:blahr]
2690
- @c2.class_eval do
2691
- self::Foo = h
2692
- def _add_attribute(v)
2693
- model::Foo << 4
2694
- end
2695
- def _remove_attribute(v)
2696
- model::Foo << 5
2697
- end
2698
- def blah(x)
2699
- model::Foo << x.pk
2700
- end
2701
- def blahr(x)
2702
- model::Foo << 6
2703
- end
2704
- end
2705
- p = @c2.load(:id=>10)
2706
- c = @c1.load(:id=>123)
2707
- h.must_equal []
2708
- p.add_attribute(c)
2709
- h.must_equal [10, -123, 123, 4, 3]
2710
- p.remove_attribute(c)
2711
- h.must_equal [10, -123, 123, 4, 3, 123, 5, 6]
2712
- end
2713
-
2714
- it "should support after_load association callback" do
2715
- h = []
2716
- @c2.many_to_many :attributes, :class => @c1, :after_load=>[proc{|x,y| h << [x.pk, y.collect{|z|z.pk}]}, :al]
2717
- @c2.class_eval do
2718
- self::Foo = h
2719
- def al(v)
2720
- v.each{|x| model::Foo << x.pk}
2721
- end
2722
- end
2723
- @c1.dataset = @c1.dataset.with_fetch([{:id=>20}, {:id=>30}])
2724
- p = @c2.load(:id=>10, :parent_id=>20)
2725
- attributes = p.attributes
2726
- h.must_equal [[10, [20, 30]], 20, 30]
2727
- attributes.collect{|a| a.pk}.must_equal [20, 30]
2728
- end
2729
-
2730
- it "should raise error and not call internal add or remove method if before callback calls cancel_action if raise_on_save_failure is true" do
2731
- p = @c2.load(:id=>10)
2732
- c = @c1.load(:id=>123)
2733
- @c2.many_to_many :attributes, :class => @c1, :before_add=>:ba, :before_remove=>:br
2734
- def p.ba(o) cancel_action end
2735
- def p._add_attribute; raise; end
2736
- def p._remove_attribute; raise; end
2737
- p.associations[:attributes] = []
2738
- p.raise_on_save_failure = true
2739
- proc{p.add_attribute(c)}.must_raise(Sequel::HookFailed)
2740
- p.attributes.must_equal []
2741
- p.associations[:attributes] = [c]
2742
- def p.br(o) cancel_action end
2743
- proc{p.remove_attribute(c)}.must_raise(Sequel::HookFailed)
2744
- p.attributes.must_equal [c]
2745
- end
2746
-
2747
- it "should return nil and not call internal add or remove method if before callback calls cancel_action if raise_on_save_failure is false" do
2748
- p = @c2.load(:id=>10)
2749
- c = @c1.load(:id=>123)
2750
- p.raise_on_save_failure = false
2751
- @c2.many_to_many :attributes, :class => @c1, :before_add=>:ba, :before_remove=>:br
2752
- def p.ba(o) cancel_action end
2753
- def p._add_attribute; raise; end
2754
- def p._remove_attribute; raise; end
2755
- p.associations[:attributes] = []
2756
- p.add_attribute(c).must_be_nil
2757
- p.attributes.must_equal []
2758
- p.associations[:attributes] = [c]
2759
- def p.br(o) cancel_action end
2760
- p.remove_attribute(c).must_be_nil
2761
- p.attributes.must_equal [c]
2762
- end
2763
-
2764
- it "should support a :uniq option that removes duplicates from the association" do
2765
- @c2.many_to_many :attributes, :class => @c1, :uniq=>true
2766
- @c1.dataset = @c1.dataset.with_fetch([{:id=>20}, {:id=>30}, {:id=>20}, {:id=>30}])
2767
- @c2.load(:id=>10, :parent_id=>20).attributes.must_equal [@c1.load(:id=>20), @c1.load(:id=>30)]
2768
- end
2769
-
2770
- it "should support a :distinct option that uses the DISTINCT clause" do
2771
- @c2.many_to_many :attributes, :class => @c1, :distinct=>true
2772
- @c2.load(:id=>10).attributes_dataset.sql.must_equal "SELECT DISTINCT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 10)"
2773
- end
2774
-
2775
- it "should not apply association options when removing all associated records" do
2776
- @c2.many_to_many :attributes, :class => @c1 do |ds|
2777
- ds.filter(:name=>'John')
2778
- end
2779
- @c2.load(:id=>1).remove_all_attributes
2780
- DB.sqls.must_equal ["DELETE FROM attributes_nodes WHERE (node_id = 1)"]
2781
- end
2782
-
2783
- it "should use assocation's dataset when grabbing a record to remove from the assocation by primary key" do
2784
- @c2.many_to_many :attributes, :class => @c1 do |ds|
2785
- ds.filter(:join_table_att=>3)
2786
- end
2787
- @c1.dataset = @c1.dataset.with_fetch(:id=>2)
2788
- @c2.load(:id=>1).remove_attribute(2)
2789
- DB.sqls.must_equal ["SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1) AND (join_table_att = 3) AND (attributes.id = 2)) LIMIT 1",
2790
- "DELETE FROM attributes_nodes WHERE ((node_id = 1) AND (attribute_id = 2))"]
2791
- end
2792
-
2793
- it "should have association dataset use false condition if any key is nil" do
2794
- @c1.many_to_many :attributes, :class => @c1, :left_primary_key=>:y
2795
- @c1.load(:id=>1).attributes_dataset.sql.must_equal "SELECT attributes.* FROM attributes INNER JOIN attributes_attributes ON (attributes_attributes.attribute_id = attributes.id) WHERE 'f'"
2796
- end
2797
- end
2798
-
2799
- describe Sequel::Model, "one_through_one" do
2800
- before do
2801
- @c1 = Class.new(Sequel::Model(:attributes)) do
2802
- unrestrict_primary_key
2803
- attr_accessor :yyy
2804
- def self.name; 'Attribute'; end
2805
- def self.to_s; 'Attribute'; end
2806
- columns :id, :y, :z
2807
- end
2808
-
2809
- @c2 = Class.new(Sequel::Model(:nodes)) do
2810
- unrestrict_primary_key
2811
- attr_accessor :xxx
2812
-
2813
- def self.name; 'Node'; end
2814
- def self.to_s; 'Node'; end
2815
- columns :id, :x
2816
- end
2817
- @dataset = @c2.dataset
2818
- @c1.dataset = @c1.dataset.with_autoid(1)
2819
-
2820
- [@c1, @c2].each{|c| c.dataset = c.dataset.with_fetch({})}
2821
- DB.reset
2822
- end
2823
- after do
2824
- DB.fetch = {:id => 1, :x => 1}
2825
- end
2826
-
2827
- it "should use implicit key values and join table if omitted" do
2828
- @c2.one_through_one :attribute, :class => @c1
2829
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1'
2830
- end
2831
-
2832
- it "should respect :predicate_key when lazily loading" do
2833
- @c2.one_through_one :attribute, :class => @c1, :predicate_key=>Sequel.subscript(Sequel[:attributes_nodes][:node_id], 0)
2834
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id[0] = 1234) LIMIT 1'
2835
- end
2836
-
2837
- it "should use explicit key values and join table if given" do
2838
- @c2.one_through_one :attribute, :class => @c1, :left_key => :nodeid, :right_key => :attributeid, :join_table => :attribute2node
2839
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attribute2node ON (attribute2node.attributeid = attributes.id) WHERE (attribute2node.nodeid = 1234) LIMIT 1'
2840
- end
2841
-
2842
- it "should support a conditions option" do
2843
- @c2.one_through_one :attribute, :class => @c1, :conditions => {:a=>32}
2844
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((a = 32) AND (attributes_nodes.node_id = 1234)) LIMIT 1'
2845
-
2846
- @c2.one_through_one :attribute, :class => @c1, :conditions => Sequel.lit('a = ?', 32)
2847
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((a = 32) AND (attributes_nodes.node_id = 1234)) LIMIT 1'
2848
- @c2.new(:id => 1234).attribute.must_equal @c1.load({})
2849
- end
2850
-
2851
- it "should support an order option" do
2852
- @c2.one_through_one :attribute, :class => @c1, :order => :blah
2853
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) ORDER BY blah LIMIT 1'
2854
- end
2855
-
2856
- it "should support an array for the order option" do
2857
- @c2.one_through_one :attribute, :class => @c1, :order => [:blah1, :blah2]
2858
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) ORDER BY blah1, blah2 LIMIT 1'
2859
- end
2860
-
2861
- it "should support :left_primary_key and :right_primary_key options" do
2862
- @c2.one_through_one :attribute, :class => @c1, :left_primary_key=>:xxx, :right_primary_key=>:yyy
2863
- @c2.new(:id => 1234, :xxx=>5).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.yyy) WHERE (attributes_nodes.node_id = 5) LIMIT 1'
2864
- end
2865
-
2866
- it "should support composite keys" do
2867
- @c2.one_through_one :attribute, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :y]
2868
- @c2.load(:id => 1234, :x=>5).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON ((attributes_nodes.r1 = attributes.id) AND (attributes_nodes.r2 = attributes.y)) WHERE ((attributes_nodes.l1 = 1234) AND (attributes_nodes.l2 = 5)) LIMIT 1'
2869
- end
2870
-
2871
- it "should not issue query if not all keys have values" do
2872
- @c2.one_through_one :attribute, :class => @c1, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :left_primary_key=>[:id, :x], :right_primary_key=>[:id, :y]
2873
- @c2.load(:id => 1234, :x=>nil).attribute.must_be_nil
2874
- DB.sqls.must_equal []
2875
- end
2876
-
2877
- it "should raise an Error unless same number of composite keys used" do
2878
- proc{@c2.one_through_one :attribute, :class => @c1, :left_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2879
- proc{@c2.one_through_one :attribute, :class => @c1, :left_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2880
- proc{@c2.one_through_one :attribute, :class => @c1, :left_key=>[:node_id, :id], :left_primary_key=>:id}.must_raise(Sequel::Error)
2881
- proc{@c2.one_through_one :attribute, :class => @c1, :left_key=>:id, :left_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2882
- proc{@c2.one_through_one :attribute, :class => @c1, :left_key=>[:node_id, :id, :x], :left_primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
2883
-
2884
- proc{@c2.one_through_one :attribute, :class => @c1, :right_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2885
- proc{@c2.one_through_one :attribute, :class => @c1, :right_key=>[:node_id, :id], :right_primary_key=>:id}.must_raise(Sequel::Error)
2886
- proc{@c2.one_through_one :attribute, :class => @c1, :right_key=>:id, :left_primary_key=>[:node_id, :id]}.must_raise(Sequel::Error)
2887
- proc{@c2.one_through_one :attribute, :class => @c1, :right_key=>[:node_id, :id, :x], :right_primary_key=>[:parent_id, :id]}.must_raise(Sequel::Error)
2888
- end
2889
-
2890
- it "should support a select option" do
2891
- @c2.one_through_one :attribute, :class => @c1, :select => :blah
2892
-
2893
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT blah FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1'
2894
- end
2895
-
2896
- it "should support an array for the select option" do
2897
- @c2.one_through_one :attribute, :class => @c1, :select => [Sequel::SQL::ColumnAll.new(:attributes), Sequel[:attribute_nodes][:blah2]]
2898
-
2899
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.*, attribute_nodes.blah2 FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1'
2900
- end
2901
-
2902
- it "should accept a block" do
2903
- @c2.one_through_one :attribute, :class => @c1 do |ds|
2904
- ds.filter(:xxx => @xxx)
2905
- end
2906
-
2907
- n = @c2.new(:id => 1234)
2908
- n.xxx = 555
2909
- n.attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1234) AND (xxx = 555)) LIMIT 1'
2910
- end
2911
-
2912
- it "should allow the :order option while accepting a block" do
2913
- @c2.one_through_one :attribute, :class => @c1, :order=>[:blah1, :blah2] do |ds|
2914
- ds.filter(:xxx => @xxx)
2915
- end
2916
-
2917
- n = @c2.new(:id => 1234)
2918
- n.xxx = 555
2919
- n.attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE ((attributes_nodes.node_id = 1234) AND (xxx = 555)) ORDER BY blah1, blah2 LIMIT 1'
2920
- end
2921
-
2922
- it "should support a :dataset option that is used instead of the default" do
2923
- c1 = @c1
2924
- @c2.one_through_one :attribute, :class => @c1, :dataset=>proc{c1.join_table(:natural, :an).filter(Sequel[:an][:nodeid]=>pk)}, :order=> :a, :select=>nil do |ds|
2925
- ds.filter(:xxx => @xxx)
2926
- end
2927
-
2928
- n = @c2.new(:id => 1234)
2929
- n.xxx = 555
2930
- n.attribute_dataset.sql.must_equal 'SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 1'
2931
- n.attribute.must_equal @c1.load({})
2932
- DB.sqls.must_equal ['SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 1']
2933
- end
2934
-
2935
- it "should support a :dataset option that accepts the reflection as an argument" do
2936
- @c2.one_through_one :attribute, :class => @c1, :dataset=>lambda{|opts| opts.associated_class.natural_join(:an).filter(Sequel[:an][:nodeid]=>pk)}, :order=> :a, :select=>nil do |ds|
2937
- ds.filter(:xxx => @xxx)
2938
- end
2939
-
2940
- n = @c2.new(:id => 1234)
2941
- n.xxx = 555
2942
- n.attribute_dataset.sql.must_equal 'SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 1'
2943
- n.attribute.must_equal @c1.load({})
2944
- DB.sqls.must_equal ['SELECT * FROM attributes NATURAL JOIN an WHERE ((an.nodeid = 1234) AND (xxx = 555)) ORDER BY a LIMIT 1']
2945
- end
2946
-
2947
- it "should support a :limit option to specify an offset" do
2948
- @c2.one_through_one :attribute, :class => @c1 , :limit=>[nil, 10]
2949
- @c2.new(:id => 1234).attribute_dataset.sql.must_equal 'SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1 OFFSET 10'
2950
- end
2951
-
2952
- it "should have the :eager option affect the _dataset method" do
2953
- @c2.one_through_one :attribute, :class => @c2 , :eager=>:attribute
2954
- @c2.new(:id => 1234).attribute_dataset.opts[:eager].must_equal(:attribute=>nil)
2955
- end
2956
-
2957
- it "should handle an aliased join table" do
2958
- @c2.one_through_one :attribute, :class => @c1, :join_table => Sequel[:attribute2node].as(:attributes_nodes)
2959
- n = @c2.load(:id => 1234)
2960
- n.attribute_dataset.sql.must_equal "SELECT attributes.* FROM attributes INNER JOIN attribute2node AS attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1"
2961
- end
2962
-
2963
- with_symbol_splitting "should handle an aliased join table with splittable symbol" do
2964
- @c2.one_through_one :attribute, :class => @c1, :join_table => :attribute2node___attributes_nodes
2965
- n = @c2.load(:id => 1234)
2966
- n.attribute_dataset.sql.must_equal "SELECT attributes.* FROM attributes INNER JOIN attribute2node AS attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1"
2967
- end
2968
-
2969
- it "should raise an error if the model object doesn't have a valid primary key" do
2970
- @c2.one_through_one :attribute, :class => @c1
2971
- a = @c2.new
2972
- proc{a.attribute_dataset}.must_raise(Sequel::Error)
2973
- end
2974
-
2975
- it "should provide an array with all members of the association" do
2976
- @c2.one_through_one :attribute, :class => @c1
2977
-
2978
- @c2.new(:id => 1234).attribute.must_equal @c1.load({})
2979
- DB.sqls.must_equal ['SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1']
2980
- end
2981
-
2982
- it "should populate cache when accessed" do
2983
- @c2.one_through_one :attribute, :class => @c1
2984
-
2985
- n = @c2.new(:id => 1234)
2986
- n.associations.include?(:attribute).must_equal false
2987
- atts = n.attribute
2988
- atts.must_equal n.associations[:attribute]
2989
- end
2990
-
2991
- it "should use cache if available" do
2992
- @c2.one_through_one :attribute, :class => @c1
2993
-
2994
- n = @c2.new(:id => 1234)
2995
- n.associations[:attribute] = 42
2996
- n.attribute.must_equal 42
2997
- DB.sqls.must_equal []
2998
- end
2999
-
3000
- it "should not use cache if asked to reload" do
3001
- @c2.one_through_one :attribute, :class => @c1
3002
-
3003
- n = @c2.new(:id => 1234)
3004
- n.associations[:attribute] = 42
3005
- n.attribute(:reload=>true).wont_equal 42
3006
- DB.sqls.must_equal ["SELECT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 1234) LIMIT 1"]
3007
- end
3008
-
3009
- it "should not add associations methods directly to class" do
3010
- @c2.one_through_one :attribute, :class => @c1
3011
- im = @c2.instance_methods
3012
- im.must_include(:attribute)
3013
- im.must_include(:attribute_dataset)
3014
- im2 = @c2.instance_methods(false)
3015
- im2.wont_include(:attribute)
3016
- im2.wont_include(:attribute_dataset)
3017
- end
3018
-
3019
- it "should support after_load association callback" do
3020
- h = []
3021
- @c2.one_through_one :attribute, :class => @c1, :after_load=>[proc{|x,y| h << [x.pk, y.pk]}, :al]
3022
- @c2.class_eval do
3023
- self::Foo = h
3024
- def al(v)
3025
- model::Foo << v.pk
3026
- end
3027
- end
3028
- @c1.dataset = @c1.dataset.with_fetch([{:id=>20}])
3029
- p = @c2.load(:id=>10, :parent_id=>20)
3030
- attribute = p.attribute
3031
- h.must_equal [[10, 20], 20]
3032
- attribute.pk.must_equal 20
3033
- end
3034
-
3035
- it "should support a :distinct option that uses the DISTINCT clause" do
3036
- @c2.one_through_one :attribute, :class => @c1, :distinct=>true
3037
- @c2.load(:id=>10).attribute_dataset.sql.must_equal "SELECT DISTINCT attributes.* FROM attributes INNER JOIN attributes_nodes ON (attributes_nodes.attribute_id = attributes.id) WHERE (attributes_nodes.node_id = 10) LIMIT 1"
3038
- end
3039
-
3040
- it "should not add a setter method if the :read_only option is true" do
3041
- @c2.one_through_one :attribute, :class => @c1, :read_only=>true
3042
- im = @c2.instance_methods
3043
- im.must_include(:attribute)
3044
- im.wont_include(:attribute=)
3045
- end
3046
-
3047
- it "should add a setter method" do
3048
- @c2.one_through_one :attribute, :class => @c1
3049
- attrib = @c1.new(:id=>3)
3050
- DB.fetch = []
3051
- o = @c2.load(:id => 1234)
3052
- o.attribute = nil
3053
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 1234) LIMIT 1"]
3054
-
3055
- o.attribute = attrib
3056
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 1234) LIMIT 1",
3057
- "INSERT INTO attributes_nodes (attribute_id, node_id) VALUES (3, 1234)"]
3058
-
3059
- DB.fetch = {:node_id=>1234, :attribute_id=>5}
3060
- o.attribute = nil
3061
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 1234) LIMIT 1",
3062
- "DELETE FROM attributes_nodes WHERE ((node_id = 1234) AND (attribute_id = 5))"]
3063
-
3064
- o.attribute = attrib
3065
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 1234) LIMIT 1",
3066
- "UPDATE attributes_nodes SET attribute_id = 3 WHERE ((node_id = 1234) AND (attribute_id = 5))"]
3067
-
3068
- @c2.load(:id => 1234).attribute = @c1.new(:id=>5)
3069
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 1234) LIMIT 1"]
3070
- end
3071
-
3072
- it "should use a transaction in the setter method" do
3073
- @c2.one_through_one :attribute, :class => @c1
3074
- @c2.use_transactions = true
3075
- @c1.load(:id=>3)
3076
- DB.fetch = []
3077
- @c2.new(:id => 1234).attribute = nil
3078
- DB.sqls.must_equal ['BEGIN',
3079
- "SELECT * FROM attributes_nodes WHERE (node_id = 1234) LIMIT 1",
3080
- 'COMMIT']
3081
- end
3082
-
3083
- it "should have setter method respect :join_table_block option" do
3084
- @c2.one_through_one :attribute, :class => @c1, :join_table_block=>proc{|ds| ds.where(:a)}
3085
- attrib = @c1.new(:id=>3)
3086
- DB.fetch = []
3087
- o = @c2.new(:id => 1234)
3088
- o.attribute = nil
3089
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (a AND (node_id = 1234)) LIMIT 1"]
3090
-
3091
- o.attribute = attrib
3092
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (a AND (node_id = 1234)) LIMIT 1",
3093
- "INSERT INTO attributes_nodes (attribute_id, node_id) VALUES (3, 1234)"]
3094
-
3095
- DB.fetch = {:node_id=>1234, :attribute_id=>5}
3096
- o.attribute = nil
3097
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (a AND (node_id = 1234)) LIMIT 1",
3098
- "DELETE FROM attributes_nodes WHERE (a AND (node_id = 1234) AND (attribute_id = 5))"]
3099
-
3100
- o.attribute = attrib
3101
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (a AND (node_id = 1234)) LIMIT 1",
3102
- "UPDATE attributes_nodes SET attribute_id = 3 WHERE (a AND (node_id = 1234) AND (attribute_id = 5))"]
3103
- end
3104
-
3105
- it "should have the setter method respect the :left_primary_key and :right_primary_key option" do
3106
- @c2.one_through_one :attribute, :class => @c1, :left_primary_key=>:xxx, :right_primary_key=>:yyy
3107
- attrib = @c1.new(:id=>3, :yyy=>7)
3108
- DB.fetch = []
3109
- o = @c2.new(:id => 1234, :xxx=>5)
3110
- o.attribute = nil
3111
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 5) LIMIT 1"]
3112
-
3113
- o.attribute = attrib
3114
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 5) LIMIT 1",
3115
- "INSERT INTO attributes_nodes (attribute_id, node_id) VALUES (7, 5)"]
3116
-
3117
- DB.fetch = {:node_id=>1234, :attribute_id=>9}
3118
- o.attribute = nil
3119
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 5) LIMIT 1",
3120
- "DELETE FROM attributes_nodes WHERE ((node_id = 5) AND (attribute_id = 9))"]
3121
-
3122
- o.attribute = attrib
3123
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE (node_id = 5) LIMIT 1",
3124
- "UPDATE attributes_nodes SET attribute_id = 7 WHERE ((node_id = 5) AND (attribute_id = 9))"]
3125
- end
3126
-
3127
- it "should have the setter method respect composite keys" do
3128
- @c2.one_through_one :attribute, :class => @c1, :left_key=>[:node_id, :y], :left_primary_key=>[:id, :x], :right_key=>[:attribute_id, :z], :right_primary_key=>[:id, :w]
3129
- attrib = @c1.load(:id=>3, :w=>7)
3130
- @c1.def_column_alias :w, :w
3131
- DB.fetch = []
3132
- o = @c2.new(:id => 1234, :x=>5)
3133
- o.attribute = nil
3134
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE ((node_id = 1234) AND (y = 5)) LIMIT 1"]
3135
-
3136
- o.attribute = attrib
3137
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE ((node_id = 1234) AND (y = 5)) LIMIT 1",
3138
- "INSERT INTO attributes_nodes (attribute_id, z, node_id, y) VALUES (3, 7, 1234, 5)"]
3139
-
3140
- DB.fetch = {:node_id=>1234, :attribute_id=>10, :y=>6, :z=>8}
3141
- o.attribute = nil
3142
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE ((node_id = 1234) AND (y = 5)) LIMIT 1",
3143
- "DELETE FROM attributes_nodes WHERE ((node_id = 1234) AND (y = 5) AND (attribute_id = 10) AND (z = 8))"]
3144
-
3145
- o.attribute = attrib
3146
- DB.sqls.must_equal ["SELECT * FROM attributes_nodes WHERE ((node_id = 1234) AND (y = 5)) LIMIT 1",
3147
- "UPDATE attributes_nodes SET attribute_id = 3, z = 7 WHERE ((node_id = 1234) AND (y = 5) AND (attribute_id = 10) AND (z = 8))"]
3148
- end
3149
-
3150
- it "should raise an error if the current model object that doesn't have a valid primary key" do
3151
- @c2.one_through_one :attribute, :class => @c1
3152
- p = @c2.new
3153
- c = @c2.load(:id=>123)
3154
- proc{c.attribute = p}.must_raise(Sequel::Error)
3155
- end
3156
-
3157
- it "should raise an error if the associated object that doesn't have a valid primary key" do
3158
- @c2.one_through_one :attribute, :class => @c1
3159
- p = @c2.new
3160
- c = @c2.load(:id=>123)
3161
- proc{p.attribute = c}.must_raise(Sequel::Error)
3162
- end
3163
-
3164
- it "should make the change to the foreign_key value inside a _association= method" do
3165
- @c2.one_through_one :attribute, :class => @c1
3166
- @c2.private_instance_methods.must_include(:_attribute=)
3167
- attrib = @c1.new(:id=>3)
3168
- o = @c2.new(:id => 1234)
3169
- def o._attribute=(x)
3170
- @x = x
3171
- end
3172
- o.attribute = attrib
3173
- o.instance_variable_get(:@x).must_equal attrib
3174
- end
3175
-
3176
- it "should have a :setter option define the _association= method" do
3177
- @c2.one_through_one :attribute, :class => @c1, :setter=>proc{|x| @x = x}
3178
- attrib = @c1.new(:id=>3)
3179
- o = @c2.new(:id => 1234)
3180
- o.attribute = attrib
3181
- o.instance_variable_get(:@x).must_equal attrib
3182
- end
3183
-
3184
- it "should support (before|after)_set callbacks" do
3185
- h = []
3186
- @c2.one_through_one :attribute, :class => @c1, :before_set=>[proc{|x,y| h << x.pk; h << (y ? -y.pk : :y)}, :blah], :after_set=>proc{h << :l}
3187
- @c2.class_eval do
3188
- self::Foo = h
3189
- def blah(x)
3190
- model::Foo << (x ? x.pk : :x)
3191
- end
3192
- end
3193
- attrib = @c1.new(:id=>3)
3194
- o = @c2.new(:id => 1234)
3195
- h.must_equal []
3196
- o.attribute = attrib
3197
- h.must_equal [1234, -3, 3, :l]
3198
- o.attribute = nil
3199
- h.must_equal [1234, -3, 3, :l, 1234, :y, :x, :l]
3200
- end
3201
-
3202
- it "should have association dataset use false condition if any key is nil" do
3203
- @c1.one_through_one :attribute, :class => @c1, :left_primary_key=>:y
3204
- @c1.load(:id=>1).attribute_dataset.sql.must_equal "SELECT attributes.* FROM attributes INNER JOIN attributes_attributes ON (attributes_attributes.attribute_id = attributes.id) WHERE 'f' LIMIT 1"
3205
- end
3206
- end
3207
-
3208
- describe "Filtering by associations" do
3209
- before(:all) do
3210
- db = Sequel.mock
3211
- db.extend_datasets do
3212
- def supports_window_functions?; true; end
3213
- def supports_distinct_on?; true; end
3214
- end
3215
- @Album = Class.new(Sequel::Model(db[:albums]))
3216
- artist = @Artist = Class.new(Sequel::Model(db[:artists]))
3217
- tag = @Tag = Class.new(Sequel::Model(db[:tags]))
3218
- track = @Track = Class.new(Sequel::Model(db[:tracks]))
3219
- album_info = @AlbumInfo = Class.new(Sequel::Model(db[:album_infos]))
3220
- @Artist.columns :id, :id1, :id2
3221
- @Tag.columns :id, :tid1, :tid2
3222
- @Track.columns :id, :album_id, :album_id1, :album_id2
3223
- @AlbumInfo.columns :id, :album_id, :album_id1, :album_id2
3224
- @Album.class_eval do
3225
- columns :id, :id1, :id2, :artist_id, :artist_id1, :artist_id2
3226
- b = lambda{|ds| ds.where(:name=>'B')}
3227
- c = {:name=>'A'}
3228
-
3229
- many_to_one :artist, :class=>artist, :key=>:artist_id
3230
- one_to_many :tracks, :class=>track, :key=>:album_id
3231
- one_to_one :track, :class=>track, :key=>:album_id
3232
- one_to_one :album_info, :class=>album_info, :key=>:album_id
3233
- many_to_many :tags, :class=>tag, :left_key=>:album_id, :join_table=>:albums_tags, :right_key=>:tag_id
3234
-
3235
- many_to_one :a_artist, :clone=>:artist, :conditions=>c
3236
- one_to_many :a_tracks, :clone=>:tracks, :conditions=>c
3237
- one_to_one :a_album_info, :clone=>:album_info, :conditions=>c
3238
- many_to_many :a_tags, :clone=>:tags, :conditions=>c
3239
-
3240
- many_to_one :b_artist, :clone=>:artist, &b
3241
- one_to_many :b_tracks, :clone=>:tracks, &b
3242
- one_to_one :b_album_info, :clone=>:album_info, &b
3243
- many_to_many :b_tags, :clone=>:tags, &b
3244
-
3245
- one_to_many :l_tracks, :clone=>:tracks, :limit=>10
3246
- one_to_one :l_track, :clone=>:tracks, :order=>:name
3247
- many_to_many :l_tags, :clone=>:tags, :limit=>10
3248
- one_through_one :l_tag, :clone=>:tags, :order=>:name
3249
-
3250
- one_to_many :al_tracks, :clone=>:l_tracks, :conditions=>c
3251
- one_to_one :al_track, :clone=>:l_track, :conditions=>c
3252
- many_to_many :al_tags, :clone=>:l_tags, :conditions=>c
3253
- one_through_one :al_tag, :clone=>:l_tag, :conditions=>c
3254
-
3255
- many_to_one :cartist, :class=>artist, :key=>[:artist_id1, :artist_id2], :primary_key=>[:id1, :id2]
3256
- one_to_many :ctracks, :class=>track, :key=>[:album_id1, :album_id2], :primary_key=>[:id1, :id2]
3257
- one_to_one :calbum_info, :class=>album_info, :key=>[:album_id1, :album_id2], :primary_key=>[:id1, :id2]
3258
- many_to_many :ctags, :class=>tag, :left_key=>[:album_id1, :album_id2], :left_primary_key=>[:id1, :id2], :right_key=>[:tag_id1, :tag_id2], :right_primary_key=>[:tid1, :tid2], :join_table=>:albums_tags
3259
-
3260
- many_to_one :a_cartist, :clone=>:cartist, :conditions=>c
3261
- one_to_many :a_ctracks, :clone=>:ctracks, :conditions=>c
3262
- one_to_one :a_calbum_info, :clone=>:calbum_info, :conditions=>c
3263
- many_to_many :a_ctags, :clone=>:ctags, :conditions=>c
3264
-
3265
- many_to_one :b_cartist, :clone=>:cartist, &b
3266
- one_to_many :b_ctracks, :clone=>:ctracks, &b
3267
- one_to_one :b_calbum_info, :clone=>:calbum_info, &b
3268
- many_to_many :b_ctags, :clone=>:ctags, &b
3269
-
3270
- one_to_many :l_ctracks, :clone=>:ctracks, :limit=>10
3271
- one_to_one :l_ctrack, :clone=>:ctracks, :order=>:name
3272
- many_to_many :l_ctags, :clone=>:ctags, :limit=>10
3273
- one_through_one :l_ctag, :clone=>:ctags, :order=>:name
3274
-
3275
- one_to_many :al_ctracks, :clone=>:l_ctracks, :conditions=>c
3276
- one_to_one :al_ctrack, :clone=>:l_ctrack, :conditions=>c
3277
- many_to_many :al_ctags, :clone=>:l_ctags, :conditions=>c
3278
- one_through_one :al_ctag, :clone=>:l_ctag, :conditions=>c
3279
- end
3280
- end
3281
- after do
3282
- @Album.default_eager_limit_strategy = true
3283
- end
3284
-
3285
- it "should be able to filter on many_to_one associations" do
3286
- @Album.filter(:artist=>@Artist.load(:id=>3)).sql.must_equal 'SELECT * FROM albums WHERE (albums.artist_id = 3)'
3287
- end
3288
-
3289
- it "should be able to filter on one_to_many associations" do
3290
- @Album.filter(:tracks=>@Track.load(:album_id=>3)).sql.must_equal 'SELECT * FROM albums WHERE (albums.id = 3)'
3291
- end
3292
-
3293
- it "should be able to filter on one_to_one associations" do
3294
- @Album.filter(:album_info=>@AlbumInfo.load(:album_id=>3)).sql.must_equal 'SELECT * FROM albums WHERE (albums.id = 3)'
3295
- end
3296
-
3297
- it "should be able to filter on many_to_many associations" do
3298
- @Album.filter(:tags=>@Tag.load(:id=>3)).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id = 3) AND (albums_tags.album_id IS NOT NULL))))'
3299
- end
3300
-
3301
- it "should be able to filter on many_to_one associations with :conditions" do
3302
- @Album.filter(:a_artist=>@Artist.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((name = 'A') AND (artists.id IS NOT NULL) AND (artists.id = 3))))"
3303
- end
3304
-
3305
- it "should be able to filter on one_to_many associations with :conditions" do
3306
- @Album.filter(:a_tracks=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id = 5))))"
3307
- end
3308
-
3309
- it "should be able to filter on one_to_one associations with :conditions" do
3310
- @Album.filter(:a_album_info=>@AlbumInfo.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id = 5))))"
3311
- end
3312
-
3313
- it "should be able to filter on many_to_many associations with :conditions" do
3314
- @Album.filter(:a_tags=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND (tags.id = 3))))"
3315
- end
3316
-
3317
- it "should be able to filter on many_to_one associations with block" do
3318
- @Album.filter(:b_artist=>@Artist.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((name = 'B') AND (artists.id IS NOT NULL) AND (artists.id = 3))))"
3319
- end
3320
-
3321
- it "should be able to filter on one_to_many associations with block" do
3322
- @Album.filter(:b_tracks=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'B') AND (tracks.album_id IS NOT NULL) AND (tracks.id = 5))))"
3323
- end
3324
-
3325
- it "should be able to filter on one_to_one associations with block" do
3326
- @Album.filter(:b_album_info=>@AlbumInfo.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id = 5))))"
3327
- end
3328
-
3329
- it "should be able to filter on many_to_many associations with block" do
3330
- @Album.filter(:b_tags=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'B') AND (albums_tags.album_id IS NOT NULL) AND (tags.id = 3))))"
3331
- end
3332
-
3333
- it "should be able to filter on one_to_many associations with :limit" do
3334
- @Album.filter(:l_tracks=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tracks.id = 5))))"
3335
- end
3336
-
3337
- it "should be able to filter on one_to_one associations with :order" do
3338
- @Album.filter(:l_track=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT DISTINCT ON (tracks.album_id) tracks.id FROM tracks ORDER BY tracks.album_id, name)) AND (tracks.id = 5))))"
3339
- end
3340
-
3341
- it "should be able to filter on one_to_one associations with :filter_limit_strategy" do
3342
- @Album.one_to_one :l_track2, :clone=>:track, :filter_limit_strategy=>:window_function
3343
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x = 1))) AND (tracks.id = 5))))"
3344
- end
3345
-
3346
- it "should be able to filter on one_to_one associations with :eager_limit_strategy" do
3347
- @Album.one_to_one :l_track2, :clone=>:track, :eager_limit_strategy=>:window_function
3348
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x = 1))) AND (tracks.id = 5))))"
3349
- end
3350
-
3351
- it "should be able to filter on one_to_one associations with :order and :filter_limit_strategy" do
3352
- @Album.one_to_one :l_track2, :clone=>:l_track, :filter_limit_strategy=>:window_function
3353
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x = 1))) AND (tracks.id = 5))))"
3354
- end
3355
-
3356
- it "should be able to filter on one_to_one associations with :order and :eager_limit_strategy" do
3357
- @Album.one_to_one :l_track2, :clone=>:l_track, :eager_limit_strategy=>:window_function
3358
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x = 1))) AND (tracks.id = 5))))"
3359
- end
3360
-
3361
- it "should be able to filter on one_to_one associations with :order and Model.default_eager_limit_strategy" do
3362
- @Album.default_eager_limit_strategy = :window_function
3363
- @Album.one_to_one :l_track2, :clone=>:l_track
3364
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x = 1))) AND (tracks.id = 5))))"
3365
- end
3366
-
3367
- it "should be able to filter on one_to_one associations with :order and :eager_limit_strategy=>:union" do
3368
- @Album.one_to_one :l_track2, :clone=>:l_track, :eager_limit_strategy=>:union
3369
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT DISTINCT ON (tracks.album_id) tracks.id FROM tracks ORDER BY tracks.album_id, name)) AND (tracks.id = 5))))"
3370
- end
3371
-
3372
- it "should be able to filter on one_to_one associations with :order and :eager_limit_strategy=>:ruby" do
3373
- @Album.one_to_one :l_track2, :clone=>:l_track, :eager_limit_strategy=>:ruby
3374
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT DISTINCT ON (tracks.album_id) tracks.id FROM tracks ORDER BY tracks.album_id, name)) AND (tracks.id = 5))))"
3375
- end
3376
-
3377
- it "should be able to filter on one_to_one associations with :filter_limit_strategy :correlated_subquery" do
3378
- @Album.one_to_one :l_track2, :clone=>:track, :filter_limit_strategy=>:correlated_subquery
3379
- @Album.filter(:l_track2=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT t1.id FROM tracks AS t1 WHERE (t1.album_id = tracks.album_id) LIMIT 1)) AND (tracks.id = 5))))"
3380
- end
3381
-
3382
- it "should be able to filter on many_to_many associations with :limit" do
3383
- @Album.filter(:l_tags=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((albums_tags.album_id IS NOT NULL) AND ((albums_tags.album_id, tags.id) IN (SELECT b, c FROM (SELECT albums_tags.album_id AS b, tags.id AS c, row_number() OVER (PARTITION BY albums_tags.album_id) AS x_sequel_row_number_x FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id)) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tags.id = 3))))"
3384
- end
3385
-
3386
- it "should be able to filter on one_through_one associations with :order" do
3387
- @Album.filter(:l_tag=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((albums_tags.album_id IS NOT NULL) AND ((albums_tags.album_id, tags.id) IN (SELECT DISTINCT ON (albums_tags.album_id) albums_tags.album_id, tags.id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) ORDER BY albums_tags.album_id, name)) AND (tags.id = 3))))"
3388
- end
3389
-
3390
- it "should be able to filter on one_to_many associations with :limit and :conditions" do
3391
- @Album.filter(:al_tracks=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks WHERE (name = 'A')) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tracks.id = 5))))"
3392
- end
3393
-
3394
- it "should be able to filter on one_to_one associations with :order and :conditions" do
3395
- @Album.filter(:al_track=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT DISTINCT ON (tracks.album_id) tracks.id FROM tracks WHERE (name = 'A') ORDER BY tracks.album_id, name)) AND (tracks.id = 5))))"
3396
- end
3397
-
3398
- it "should be able to filter on many_to_many associations with :limit and :conditions" do
3399
- @Album.filter(:al_tags=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND ((albums_tags.album_id, tags.id) IN (SELECT b, c FROM (SELECT albums_tags.album_id AS b, tags.id AS c, row_number() OVER (PARTITION BY albums_tags.album_id) AS x_sequel_row_number_x FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE (name = 'A')) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tags.id = 3))))"
3400
- end
3401
-
3402
- it "should be able to filter on one_through_one associations with :order and :conditions" do
3403
- @Album.filter(:al_tag=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND ((albums_tags.album_id, tags.id) IN (SELECT DISTINCT ON (albums_tags.album_id) albums_tags.album_id, tags.id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE (name = 'A') ORDER BY albums_tags.album_id, name)) AND (tags.id = 3))))"
3404
- end
3405
-
3406
- it "should be able to filter on many_to_one associations with composite keys" do
3407
- @Album.filter(:cartist=>@Artist.load(:id1=>3, :id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id1 = 3) AND (albums.artist_id2 = 4))'
3408
- end
3409
-
3410
- it "should be able to filter on one_to_many associations with composite keys" do
3411
- @Album.filter(:ctracks=>@Track.load(:album_id1=>3, :album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1 = 3) AND (albums.id2 = 4))'
3412
- end
3413
-
3414
- it "should be able to filter on one_to_one associations with composite keys" do
3415
- @Album.filter(:calbum_info=>@AlbumInfo.load(:album_id1=>3, :album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1 = 3) AND (albums.id2 = 4))'
3416
- end
3417
-
3418
- it "should be able to filter on many_to_many associations with composite keys" do
3419
- @Album.filter(:ctags=>@Tag.load(:tid1=>3, :tid2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE ((albums_tags.tag_id1 = 3) AND (albums_tags.tag_id2 = 4) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL))))'
3420
- end
3421
-
3422
- it "should be able to filter on many_to_one associations with :conditions and composite keys" do
3423
- @Album.filter(:a_cartist=>@Artist.load(:id=>5, :id1=>3, :id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'A') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id = 5))))"
3424
- end
3425
-
3426
- it "should be able to filter on one_to_many associations with :conditions and composite keys" do
3427
- @Album.filter(:a_ctracks=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id = 5))))"
3428
- end
3429
-
3430
- it "should be able to filter on one_to_one associations with :conditions and composite keys" do
3431
- @Album.filter(:a_calbum_info=>@AlbumInfo.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id = 5))))"
3432
- end
3433
-
3434
- it "should be able to filter on many_to_many associations with block and composite keys" do
3435
- @Album.filter(:a_ctags=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id = 5))))"
3436
- end
3437
-
3438
- it "should be able to filter on many_to_one associations with block and composite keys" do
3439
- @Album.filter(:b_cartist=>@Artist.load(:id=>5, :id1=>3, :id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'B') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id = 5))))"
3440
- end
3441
-
3442
- it "should be able to filter on one_to_many associations with block and composite keys" do
3443
- @Album.filter(:b_ctracks=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'B') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id = 5))))"
3444
- end
3445
-
3446
- it "should be able to filter on one_to_one associations with block and composite keys" do
3447
- @Album.filter(:b_calbum_info=>@AlbumInfo.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id = 5))))"
3448
- end
3449
-
3450
- it "should be able to filter on many_to_many associations with block and composite keys" do
3451
- @Album.filter(:b_ctags=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'B') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id = 5))))"
3452
- end
3453
-
3454
- it "should be able to filter on one_to_many associations with :limit and composite keys" do
3455
- @Album.filter(:l_ctracks=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id1, tracks.album_id2) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tracks.id = 5))))"
3456
- end
3457
-
3458
- it "should be able to filter on one_to_many associations with composite keys and :filter_limit_strategy :correlated_subquery" do
3459
- @Album.one_to_one :l_ctracks2, :clone=>:l_ctracks, :filter_limit_strategy=>:correlated_subquery
3460
- @Album.filter(:l_ctracks2=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT t1.id FROM tracks AS t1 WHERE ((t1.album_id1 = tracks.album_id1) AND (t1.album_id2 = tracks.album_id2)) LIMIT 1)) AND (tracks.id = 5))))"
3461
- end
3462
-
3463
- it "should be able to filter on one_to_one associations with :order and composite keys" do
3464
- @Album.filter(:l_ctrack=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT DISTINCT ON (tracks.album_id1, tracks.album_id2) tracks.id FROM tracks ORDER BY tracks.album_id1, tracks.album_id2, name)) AND (tracks.id = 5))))"
3465
- end
3466
-
3467
- it "should be able to filter on many_to_many associations with :limit and composite keys" do
3468
- @Album.filter(:l_ctags=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND ((albums_tags.album_id1, albums_tags.album_id2, tags.id) IN (SELECT b, c, d FROM (SELECT albums_tags.album_id1 AS b, albums_tags.album_id2 AS c, tags.id AS d, row_number() OVER (PARTITION BY albums_tags.album_id1, albums_tags.album_id2) AS x_sequel_row_number_x FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2))) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tags.id = 5))))"
3469
- end
3470
-
3471
- it "should be able to filter on one_through_one associations with :order and composite keys" do
3472
- @Album.filter(:l_ctag=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND ((albums_tags.album_id1, albums_tags.album_id2, tags.id) IN (SELECT DISTINCT ON (albums_tags.album_id1, albums_tags.album_id2) albums_tags.album_id1, albums_tags.album_id2, tags.id FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) ORDER BY albums_tags.album_id1, albums_tags.album_id2, name)) AND (tags.id = 5))))"
3473
- end
3474
-
3475
- it "should be able to filter on one_to_many associations with :limit and :conditions and composite keys" do
3476
- @Album.filter(:al_ctracks=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT id FROM (SELECT tracks.id, row_number() OVER (PARTITION BY tracks.album_id1, tracks.album_id2) AS x_sequel_row_number_x FROM tracks WHERE (name = 'A')) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tracks.id = 5))))"
3477
- end
3478
-
3479
- it "should be able to filter on one_to_one associations with :order and :conditions and composite keys" do
3480
- @Album.filter(:al_ctrack=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT DISTINCT ON (tracks.album_id1, tracks.album_id2) tracks.id FROM tracks WHERE (name = 'A') ORDER BY tracks.album_id1, tracks.album_id2, name)) AND (tracks.id = 5))))"
3481
- end
3482
-
3483
- it "should be able to filter on many_to_many associations with :limit and :conditions and composite keys" do
3484
- @Album.filter(:al_ctags=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND ((albums_tags.album_id1, albums_tags.album_id2, tags.id) IN (SELECT b, c, d FROM (SELECT albums_tags.album_id1 AS b, albums_tags.album_id2 AS c, tags.id AS d, row_number() OVER (PARTITION BY albums_tags.album_id1, albums_tags.album_id2) AS x_sequel_row_number_x FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE (name = 'A')) AS t1 WHERE (x_sequel_row_number_x <= 10))) AND (tags.id = 5))))"
3485
- end
3486
-
3487
- it "should be able to filter on one_through_one associations with :order and :conditions and composite keys" do
3488
- @Album.filter(:al_ctag=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND ((albums_tags.album_id1, albums_tags.album_id2, tags.id) IN (SELECT DISTINCT ON (albums_tags.album_id1, albums_tags.album_id2) albums_tags.album_id1, albums_tags.album_id2, tags.id FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE (name = 'A') ORDER BY albums_tags.album_id1, albums_tags.album_id2, name)) AND (tags.id = 5))))"
3489
- end
3490
-
3491
- it "should work inside a complex filter" do
3492
- artist = @Artist.load(:id=>3)
3493
- @Album.filter{foo & {:artist=>artist}}.sql.must_equal 'SELECT * FROM albums WHERE (foo AND (albums.artist_id = 3))'
3494
- track = @Track.load(:album_id=>4)
3495
- @Album.filter{foo & [[:artist, artist], [:tracks, track]]}.sql.must_equal 'SELECT * FROM albums WHERE (foo AND (albums.artist_id = 3) AND (albums.id = 4))'
3496
- end
3497
-
3498
- it "should raise for an invalid association name" do
3499
- proc{@Album.filter(:foo=>@Artist.load(:id=>3)).sql}.must_raise(Sequel::Error)
3500
- end
3501
-
3502
- it "should raise for an invalid association type" do
3503
- @Album.many_to_many :iatags, :clone=>:tags
3504
- @Album.association_reflection(:iatags)[:type] = :foo
3505
- proc{@Album.filter(:iatags=>@Tag.load(:id=>3)).sql}.must_raise(Sequel::Error)
3506
- end
3507
-
3508
- it "should raise for an invalid associated object class " do
3509
- proc{@Album.filter(:tags=>@Artist.load(:id=>3)).sql}.must_raise(Sequel::Error)
3510
- end
3511
-
3512
- it "should raise for an invalid associated object class when multiple objects are used" do
3513
- proc{@Album.filter(:tags=>[@Tag.load(:id=>3), @Artist.load(:id=>3)]).sql}.must_raise(Sequel::Error)
3514
- end
3515
-
3516
- it "should correctly handle case when a multiple value association is used" do
3517
- proc{@Album.filter(:tags=>[@Tag.load(:id=>3), @Artist.load(:id=>3)]).sql}.must_raise(Sequel::Error)
3518
- end
3519
-
3520
- it "should not affect non-association IN/NOT IN filtering with an empty array" do
3521
- @Album.filter(:tag_id=>[]).sql.must_equal 'SELECT * FROM albums WHERE (1 = 0)'
3522
- @Album.exclude(:tag_id=>[]).sql.must_equal 'SELECT * FROM albums WHERE (1 = 1)'
3523
- end
3524
-
3525
- it "should work correctly in subclasses" do
3526
- c = Class.new(@Album)
3527
- c.many_to_one :sartist, :class=>@Artist
3528
- c.filter(:sartist=>@Artist.load(:id=>3)).sql.must_equal 'SELECT * FROM albums WHERE (albums.sartist_id = 3)'
3529
- end
3530
-
3531
- it "should be able to exclude on many_to_one associations" do
3532
- @Album.exclude(:artist=>@Artist.load(:id=>3)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id != 3) OR (albums.artist_id IS NULL))'
3533
- end
3534
-
3535
- it "should be able to exclude on one_to_many associations" do
3536
- @Album.exclude(:tracks=>@Track.load(:album_id=>3)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id != 3) OR (albums.id IS NULL))'
3537
- end
3538
-
3539
- it "should be able to exclude on one_to_one associations" do
3540
- @Album.exclude(:album_info=>@AlbumInfo.load(:album_id=>3)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id != 3) OR (albums.id IS NULL))'
3541
- end
3542
-
3543
- it "should be able to exclude on many_to_many associations" do
3544
- @Album.exclude(:tags=>@Tag.load(:id=>3)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id = 3) AND (albums_tags.album_id IS NOT NULL)))) OR (albums.id IS NULL))'
3545
- end
3546
-
3547
- it "should be able to exclude on many_to_one associations with :conditions" do
3548
- @Album.exclude(:a_artist=>@Artist.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((name = 'A') AND (artists.id IS NOT NULL) AND (artists.id = 3)))) OR (albums.artist_id IS NULL))"
3549
- end
3550
-
3551
- it "should be able to exclude on one_to_many associations with :conditions" do
3552
- @Album.exclude(:a_tracks=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id = 5)))) OR (albums.id IS NULL))"
3553
- end
3554
-
3555
- it "should be able to exclude on one_to_one associations with :conditions" do
3556
- @Album.exclude(:a_album_info=>@AlbumInfo.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id = 5)))) OR (albums.id IS NULL))"
3557
- end
3558
-
3559
- it "should be able to exclude on many_to_many associations with :conditions" do
3560
- @Album.exclude(:a_tags=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND (tags.id = 3)))) OR (albums.id IS NULL))"
3561
- end
3562
-
3563
- it "should be able to exclude on many_to_one associations with block" do
3564
- @Album.exclude(:b_artist=>@Artist.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((name = 'B') AND (artists.id IS NOT NULL) AND (artists.id = 3)))) OR (albums.artist_id IS NULL))"
3565
- end
3566
-
3567
- it "should be able to exclude on one_to_many associations with block" do
3568
- @Album.exclude(:b_tracks=>@Track.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'B') AND (tracks.album_id IS NOT NULL) AND (tracks.id = 5)))) OR (albums.id IS NULL))"
3569
- end
3570
-
3571
- it "should be able to exclude on one_to_one associations with block" do
3572
- @Album.exclude(:b_album_info=>@AlbumInfo.load(:id=>5, :album_id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id = 5)))) OR (albums.id IS NULL))"
3573
- end
3574
-
3575
- it "should be able to exclude on many_to_many associations with block" do
3576
- @Album.exclude(:b_tags=>@Tag.load(:id=>3)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'B') AND (albums_tags.album_id IS NOT NULL) AND (tags.id = 3)))) OR (albums.id IS NULL))"
3577
- end
3578
-
3579
- it "should be able to exclude on many_to_one associations with composite keys" do
3580
- @Album.exclude(:cartist=>@Artist.load(:id1=>3, :id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id1 != 3) OR (albums.artist_id2 != 4) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))'
3581
- end
3582
-
3583
- it "should be able to exclude on one_to_many associations with composite keys" do
3584
- @Album.exclude(:ctracks=>@Track.load(:album_id1=>3, :album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1 != 3) OR (albums.id2 != 4) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3585
- end
3586
-
3587
- it "should be able to exclude on one_to_one associations with composite keys" do
3588
- @Album.exclude(:calbum_info=>@AlbumInfo.load(:album_id1=>3, :album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1 != 3) OR (albums.id2 != 4) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3589
- end
3590
-
3591
- it "should be able to exclude on many_to_many associations with composite keys" do
3592
- @Album.exclude(:ctags=>@Tag.load(:tid1=>3, :tid2=>4)).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE ((albums_tags.tag_id1 = 3) AND (albums_tags.tag_id2 = 4) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3593
- end
3594
-
3595
- it "should be able to exclude on many_to_one associations with :conditions and composite keys" do
3596
- @Album.exclude(:a_cartist=>@Artist.load(:id=>5, :id1=>3, :id2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'A') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id = 5)))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))"
3597
- end
3598
-
3599
- it "should be able to exclude on one_to_many associations with :conditions and composite keys" do
3600
- @Album.exclude(:a_ctracks=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id = 5)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3601
- end
3602
-
3603
- it "should be able to exclude on one_to_one associations with :conditions and composite keys" do
3604
- @Album.exclude(:a_calbum_info=>@AlbumInfo.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id = 5)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3605
- end
3606
-
3607
- it "should be able to exclude on many_to_many associations with block and composite keys" do
3608
- @Album.exclude(:a_ctags=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id = 5)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3609
- end
3610
-
3611
- it "should be able to exclude on many_to_one associations with block and composite keys" do
3612
- @Album.exclude(:b_cartist=>@Artist.load(:id=>5, :id1=>3, :id2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'B') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id = 5)))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))"
3613
- end
3614
-
3615
- it "should be able to exclude on one_to_many associations with block and composite keys" do
3616
- @Album.exclude(:b_ctracks=>@Track.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'B') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id = 5)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3617
- end
3618
-
3619
- it "should be able to exclude on one_to_one associations with block and composite keys" do
3620
- @Album.exclude(:b_calbum_info=>@AlbumInfo.load(:id=>5, :album_id1=>3, :album_id2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id = 5)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3621
- end
3622
-
3623
- it "should be able to exclude on many_to_many associations with block and composite keys" do
3624
- @Album.exclude(:b_ctags=>@Tag.load(:id=>5, :tid1=>3, :tid2=>4)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'B') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id = 5)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3625
- end
3626
-
3627
- it "should be able to filter on multiple many_to_one associations" do
3628
- @Album.filter(:artist=>[@Artist.load(:id=>3), @Artist.load(:id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE (albums.artist_id IN (3, 4))'
3629
- end
3630
-
3631
- it "should be able to filter on multiple one_to_many associations" do
3632
- @Album.filter(:tracks=>[@Track.load(:album_id=>3), @Track.load(:album_id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (3, 4))'
3633
- end
3634
-
3635
- it "should be able to filter on multiple one_to_one associations" do
3636
- @Album.filter(:album_info=>[@AlbumInfo.load(:album_id=>3), @AlbumInfo.load(:album_id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (3, 4))'
3637
- end
3638
-
3639
- it "should be able to filter on multiple many_to_many associations" do
3640
- @Album.filter(:tags=>[@Tag.load(:id=>3), @Tag.load(:id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id IN (3, 4)) AND (albums_tags.album_id IS NOT NULL))))'
3641
- end
3642
-
3643
- it "should be able to filter on multiple many_to_one associations with :conditions" do
3644
- @Album.filter(:a_artist=>[@Artist.load(:id=>3), @Artist.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((name = 'A') AND (artists.id IS NOT NULL) AND (artists.id IN (3, 4)))))"
3645
- end
3646
-
3647
- it "should be able to filter on multiple one_to_many associations with :conditions" do
3648
- @Album.filter(:a_tracks=>[@Track.load(:id=>5, :album_id=>3), @Track.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (5, 6)))))"
3649
- end
3650
-
3651
- it "should be able to filter on multiple one_to_one associations with :conditions" do
3652
- @Album.filter(:a_album_info=>[@AlbumInfo.load(:id=>5, :album_id=>3), @AlbumInfo.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (5, 6)))))"
3653
- end
3654
-
3655
- it "should be able to filter on multiple many_to_many associations with :conditions" do
3656
- @Album.filter(:a_tags=>[@Tag.load(:id=>3), @Tag.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (3, 4)))))"
3657
- end
3658
-
3659
- it "should be able to filter on multiple many_to_one associations with block" do
3660
- @Album.filter(:b_artist=>[@Artist.load(:id=>3), @Artist.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((name = 'B') AND (artists.id IS NOT NULL) AND (artists.id IN (3, 4)))))"
3661
- end
3662
-
3663
- it "should be able to filter on multiple one_to_many associations with block" do
3664
- @Album.filter(:b_tracks=>[@Track.load(:id=>5, :album_id=>3), @Track.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'B') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (5, 6)))))"
3665
- end
3666
-
3667
- it "should be able to filter on multiple one_to_one associations with block" do
3668
- @Album.filter(:b_album_info=>[@AlbumInfo.load(:id=>5, :album_id=>3), @AlbumInfo.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (5, 6)))))"
3669
- end
3670
-
3671
- it "should be able to filter on multiple many_to_many associations with block" do
3672
- @Album.filter(:b_tags=>[@Tag.load(:id=>3), @Tag.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'B') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (3, 4)))))"
3673
- end
3674
-
3675
- it "should be able to filter on multiple many_to_one associations with composite keys" do
3676
- @Album.filter(:cartist=>[@Artist.load(:id1=>3, :id2=>4), @Artist.load(:id1=>5, :id2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN ((3, 4), (5, 6)))'
3677
- end
3678
-
3679
- it "should be able to filter on multiple one_to_many associations with composite keys" do
3680
- @Album.filter(:ctracks=>[@Track.load(:album_id1=>3, :album_id2=>4), @Track.load(:album_id1=>5, :album_id2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN ((3, 4), (5, 6)))'
3681
- end
3682
-
3683
- it "should be able to filter on multiple one_to_one associations with composite keys" do
3684
- @Album.filter(:calbum_info=>[@AlbumInfo.load(:album_id1=>3, :album_id2=>4), @AlbumInfo.load(:album_id1=>5, :album_id2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN ((3, 4), (5, 6)))'
3685
- end
3686
-
3687
- it "should be able to filter on multiple many_to_many associations with composite keys" do
3688
- @Album.filter(:ctags=>[@Tag.load(:tid1=>3, :tid2=>4), @Tag.load(:tid1=>5, :tid2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN ((3, 4), (5, 6))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL))))'
3689
- end
3690
-
3691
- it "should be able to filter on multiple many_to_one associations with :conditions and composite keys" do
3692
- @Album.filter(:a_cartist=>[@Artist.load(:id=>7, :id1=>3, :id2=>4), @Artist.load(:id=>8, :id1=>5, :id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'A') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (7, 8)))))"
3693
- end
3694
-
3695
- it "should be able to filter on multiple one_to_many associations with :conditions and composite keys" do
3696
- @Album.filter(:a_ctracks=>[@Track.load(:id=>7, :album_id1=>3, :album_id2=>4), @Track.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (7, 8)))))"
3697
- end
3698
-
3699
- it "should be able to filter on multiple one_to_one associations with :conditions and composite keys" do
3700
- @Album.filter(:a_calbum_info=>[@AlbumInfo.load(:id=>7, :album_id1=>3, :album_id2=>4), @AlbumInfo.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (7, 8)))))"
3701
- end
3702
-
3703
- it "should be able to filter on multiple many_to_many associations with block and composite keys" do
3704
- @Album.filter(:a_ctags=>[@Tag.load(:id=>7, :tid1=>3, :tid2=>4), @Tag.load(:id=>8, :tid1=>5, :tid2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (7, 8)))))"
3705
- end
3706
-
3707
- it "should be able to filter on multiple many_to_one associations with block and composite keys" do
3708
- @Album.filter(:b_cartist=>[@Artist.load(:id=>7, :id1=>3, :id2=>4), @Artist.load(:id=>8, :id1=>5, :id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'B') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (7, 8)))))"
3709
- end
3710
-
3711
- it "should be able to filter on multiple one_to_many associations with block and composite keys" do
3712
- @Album.filter(:b_ctracks=>[@Track.load(:id=>7, :album_id1=>3, :album_id2=>4), @Track.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'B') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (7, 8)))))"
3713
- end
3714
-
3715
- it "should be able to filter on multiple one_to_one associations with block and composite keys" do
3716
- @Album.filter(:b_calbum_info=>[@AlbumInfo.load(:id=>7, :album_id1=>3, :album_id2=>4), @AlbumInfo.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (7, 8)))))"
3717
- end
3718
-
3719
- it "should be able to filter on multiple many_to_many associations with block and composite keys" do
3720
- @Album.filter(:b_ctags=>[@Tag.load(:id=>7, :tid1=>3, :tid2=>4), @Tag.load(:id=>8, :tid1=>5, :tid2=>6)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'B') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (7, 8)))))"
3721
- end
3722
-
3723
- it "should be able to exclude on multiple many_to_one associations" do
3724
- @Album.exclude(:artist=>[@Artist.load(:id=>3), @Artist.load(:id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id NOT IN (3, 4)) OR (albums.artist_id IS NULL))'
3725
- end
3726
-
3727
- it "should be able to exclude on multiple one_to_many associations" do
3728
- @Album.exclude(:tracks=>[@Track.load(:album_id=>3), @Track.load(:album_id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (3, 4)) OR (albums.id IS NULL))'
3729
- end
3730
-
3731
- it "should be able to exclude on multiple one_to_one associations" do
3732
- @Album.exclude(:album_info=>[@AlbumInfo.load(:album_id=>3), @AlbumInfo.load(:album_id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (3, 4)) OR (albums.id IS NULL))'
3733
- end
3734
-
3735
- it "should be able to exclude on multiple many_to_many associations" do
3736
- @Album.exclude(:tags=>[@Tag.load(:id=>3), @Tag.load(:id=>4)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id IN (3, 4)) AND (albums_tags.album_id IS NOT NULL)))) OR (albums.id IS NULL))'
3737
- end
3738
-
3739
- it "should be able to exclude on multiple many_to_one associations with :conditions" do
3740
- @Album.exclude(:a_artist=>[@Artist.load(:id=>3), @Artist.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((name = 'A') AND (artists.id IS NOT NULL) AND (artists.id IN (3, 4))))) OR (albums.artist_id IS NULL))"
3741
- end
3742
-
3743
- it "should be able to exclude on multiple one_to_many associations with :conditions" do
3744
- @Album.exclude(:a_tracks=>[@Track.load(:id=>5, :album_id=>3), @Track.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (5, 6))))) OR (albums.id IS NULL))"
3745
- end
3746
-
3747
- it "should be able to exclude on multiple one_to_one associations with :conditions" do
3748
- @Album.exclude(:a_album_info=>[@AlbumInfo.load(:id=>5, :album_id=>3), @AlbumInfo.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (5, 6))))) OR (albums.id IS NULL))"
3749
- end
3750
-
3751
- it "should be able to exclude on multiple many_to_many associations with :conditions" do
3752
- @Album.exclude(:a_tags=>[@Tag.load(:id=>3), @Tag.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (3, 4))))) OR (albums.id IS NULL))"
3753
- end
3754
-
3755
- it "should be able to exclude on multiple many_to_one associations with block" do
3756
- @Album.exclude(:b_artist=>[@Artist.load(:id=>3), @Artist.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((name = 'B') AND (artists.id IS NOT NULL) AND (artists.id IN (3, 4))))) OR (albums.artist_id IS NULL))"
3757
- end
3758
-
3759
- it "should be able to exclude on multiple one_to_many associations with block" do
3760
- @Album.exclude(:b_tracks=>[@Track.load(:id=>5, :album_id=>3), @Track.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'B') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (5, 6))))) OR (albums.id IS NULL))"
3761
- end
3762
-
3763
- it "should be able to exclude on multiple one_to_one associations with block" do
3764
- @Album.exclude(:b_album_info=>[@AlbumInfo.load(:id=>5, :album_id=>3), @AlbumInfo.load(:id=>6, :album_id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (5, 6))))) OR (albums.id IS NULL))"
3765
- end
3766
-
3767
- it "should be able to exclude on multiple many_to_many associations with block" do
3768
- @Album.exclude(:b_tags=>[@Tag.load(:id=>3), @Tag.load(:id=>4)]).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'B') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (3, 4))))) OR (albums.id IS NULL))"
3769
- end
3770
-
3771
- it "should be able to exclude on multiple many_to_one associations with composite keys" do
3772
- @Album.exclude(:cartist=>[@Artist.load(:id1=>3, :id2=>4), @Artist.load(:id1=>5, :id2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN ((3, 4), (5, 6))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))'
3773
- end
3774
-
3775
- it "should be able to exclude on multiple one_to_many associations with composite keys" do
3776
- @Album.exclude(:ctracks=>[@Track.load(:album_id1=>3, :album_id2=>4), @Track.load(:album_id1=>5, :album_id2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN ((3, 4), (5, 6))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3777
- end
3778
-
3779
- it "should be able to exclude on multiple one_to_one associations with composite keys" do
3780
- @Album.exclude(:calbum_info=>[@AlbumInfo.load(:album_id1=>3, :album_id2=>4), @AlbumInfo.load(:album_id1=>5, :album_id2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN ((3, 4), (5, 6))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3781
- end
3782
-
3783
- it "should be able to exclude on multiple many_to_many associations with composite keys" do
3784
- @Album.exclude(:ctags=>[@Tag.load(:tid1=>3, :tid2=>4), @Tag.load(:tid1=>5, :tid2=>6)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN ((3, 4), (5, 6))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3785
- end
3786
-
3787
- it "should be able to exclude on multiple many_to_one associations with :conditions and composite keys" do
3788
- @Album.exclude(:a_cartist=>[@Artist.load(:id=>7, :id1=>3, :id2=>4), @Artist.load(:id=>8, :id1=>5, :id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'A') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (7, 8))))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))"
3789
- end
3790
-
3791
- it "should be able to exclude on multiple one_to_many associations with :conditions and composite keys" do
3792
- @Album.exclude(:a_ctracks=>[@Track.load(:id=>7, :album_id1=>3, :album_id2=>4), @Track.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (7, 8))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3793
- end
3794
-
3795
- it "should be able to exclude on multiple one_to_one associations with :conditions and composite keys" do
3796
- @Album.exclude(:a_calbum_info=>[@AlbumInfo.load(:id=>7, :album_id1=>3, :album_id2=>4), @AlbumInfo.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (7, 8))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3797
- end
3798
-
3799
- it "should be able to exclude on multiple many_to_many associations with :conditions and composite keys" do
3800
- @Album.exclude(:a_ctags=>[@Tag.load(:id=>7, :tid1=>3, :tid2=>4), @Tag.load(:id=>8, :tid1=>5, :tid2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (7, 8))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3801
- end
3802
-
3803
- it "should be able to exclude on multiple many_to_one associations with block and composite keys" do
3804
- @Album.exclude(:b_cartist=>[@Artist.load(:id=>7, :id1=>3, :id2=>4), @Artist.load(:id=>8, :id1=>5, :id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'B') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (7, 8))))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))"
3805
- end
3806
-
3807
- it "should be able to exclude on multiple one_to_many associations with block and composite keys" do
3808
- @Album.exclude(:b_ctracks=>[@Track.load(:id=>7, :album_id1=>3, :album_id2=>4), @Track.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'B') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (7, 8))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3809
- end
3810
-
3811
- it "should be able to exclude on multiple one_to_one associations with block and composite keys" do
3812
- @Album.exclude(:b_calbum_info=>[@AlbumInfo.load(:id=>7, :album_id1=>3, :album_id2=>4), @AlbumInfo.load(:id=>8, :album_id1=>5, :album_id2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (7, 8))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3813
- end
3814
-
3815
- it "should be able to exclude on multiple many_to_many associations with block and composite keys" do
3816
- @Album.exclude(:b_ctags=>[@Tag.load(:id=>7, :tid1=>3, :tid2=>4), @Tag.load(:id=>8, :tid1=>5, :tid2=>6)]).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'B') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (7, 8))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
3817
- end
3818
-
3819
- it "should be able to handle NULL values when filtering many_to_one associations" do
3820
- @Album.filter(:artist=>@Artist.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3821
- end
3822
-
3823
- it "should be able to handle NULL values when filtering one_to_many associations" do
3824
- @Album.filter(:tracks=>@Track.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3825
- end
3826
-
3827
- it "should be able to handle NULL values when filtering one_to_one associations" do
3828
- @Album.filter(:album_info=>@AlbumInfo.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3829
- end
3830
-
3831
- it "should be able to handle NULL values when filtering many_to_many associations" do
3832
- @Album.filter(:tags=>@Tag.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3833
- end
3834
-
3835
- it "should be able to handle filtering with NULL values for many_to_one associations with composite keys" do
3836
- @Album.filter(:cartist=>@Artist.load(:id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3837
- @Album.filter(:cartist=>@Artist.load(:id1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3838
- @Album.filter(:cartist=>@Artist.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3839
- end
3840
-
3841
- it "should be able to filter with NULL values for one_to_many associations with composite keys" do
3842
- @Album.filter(:ctracks=>@Track.load(:album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3843
- @Album.filter(:ctracks=>@Track.load(:album_id1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3844
- @Album.filter(:ctracks=>@Track.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3845
- end
3846
-
3847
- it "should be able to filter with NULL values for one_to_one associations with composite keys" do
3848
- @Album.filter(:calbum_info=>@AlbumInfo.load(:album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3849
- @Album.filter(:calbum_info=>@AlbumInfo.load(:album_id1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3850
- @Album.filter(:calbum_info=>@AlbumInfo.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3851
- end
3852
-
3853
- it "should be able to filter with NULL values for many_to_many associations with composite keys" do
3854
- @Album.filter(:ctags=>@Tag.load(:tid1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3855
- @Album.filter(:ctags=>@Tag.load(:tid2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3856
- @Album.filter(:ctags=>@Tag.new).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3857
- end
3858
-
3859
- it "should be able to handle NULL values when excluding many_to_one associations" do
3860
- @Album.exclude(:artist=>@Artist.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3861
- end
3862
-
3863
- it "should be able to handle NULL values when excluding one_to_many associations" do
3864
- @Album.exclude(:tracks=>@Track.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3865
- end
3866
-
3867
- it "should be able to handle NULL values when excluding one_to_one associations" do
3868
- @Album.exclude(:album_info=>@AlbumInfo.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3869
- end
3870
-
3871
- it "should be able to handle NULL values when excluding many_to_many associations" do
3872
- @Album.exclude(:tags=>@Tag.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3873
- end
3874
-
3875
- it "should be able to handle excluding with NULL values for many_to_one associations with composite keys" do
3876
- @Album.exclude(:cartist=>@Artist.load(:id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3877
- @Album.exclude(:cartist=>@Artist.load(:id1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3878
- @Album.exclude(:cartist=>@Artist.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3879
- end
3880
-
3881
- it "should be able to excluding with NULL values for one_to_many associations with composite keys" do
3882
- @Album.exclude(:ctracks=>@Track.load(:album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3883
- @Album.exclude(:ctracks=>@Track.load(:album_id1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3884
- @Album.exclude(:ctracks=>@Track.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3885
- end
3886
-
3887
- it "should be able to excluding with NULL values for one_to_one associations with composite keys" do
3888
- @Album.exclude(:calbum_info=>@AlbumInfo.load(:album_id2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3889
- @Album.exclude(:calbum_info=>@AlbumInfo.load(:album_id1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3890
- @Album.exclude(:calbum_info=>@AlbumInfo.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3891
- end
3892
-
3893
- it "should be able to excluding with NULL values for many_to_many associations with composite keys" do
3894
- @Album.exclude(:ctags=>@Tag.load(:tid1=>3)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3895
- @Album.exclude(:ctags=>@Tag.load(:tid2=>4)).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3896
- @Album.exclude(:ctags=>@Tag.new).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3897
- end
3898
-
3899
- it "should be able to handle NULL values when filtering multiple many_to_one associations" do
3900
- @Album.filter(:artist=>[@Artist.load(:id=>3), @Artist.new]).sql.must_equal 'SELECT * FROM albums WHERE (albums.artist_id IN (3))'
3901
- @Album.filter(:artist=>[@Artist.new, @Artist.new]).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3902
- end
3903
-
3904
- it "should be able to handle NULL values when filtering multiple one_to_many associations" do
3905
- @Album.filter(:tracks=>[@Track.load(:album_id=>3), @Track.new]).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (3))'
3906
- @Album.filter(:tracks=>[@Track.new, @Track.new]).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3907
- end
3908
-
3909
- it "should be able to handle NULL values when filtering multiple one_to_one associations" do
3910
- @Album.filter(:album_info=>[@AlbumInfo.load(:album_id=>3), @AlbumInfo.new]).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (3))'
3911
- @Album.filter(:album_info=>[@AlbumInfo.new, @AlbumInfo.new]).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3912
- end
3913
-
3914
- it "should be able to handle NULL values when filtering multiple many_to_many associations" do
3915
- @Album.filter(:tags=>[@Tag.load(:id=>3), @Tag.new]).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id IN (3)) AND (albums_tags.album_id IS NOT NULL))))'
3916
- @Album.filter(:tags=>[@Tag.new, @Tag.new]).sql.must_equal 'SELECT * FROM albums WHERE \'f\''
3917
- end
3918
-
3919
- it "should be able to handle NULL values when filtering multiple many_to_one associations with composite keys" do
3920
- @Album.filter(:cartist=>[@Artist.load(:id1=>3, :id2=>4), @Artist.load(:id1=>3)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN ((3, 4)))'
3921
- @Album.filter(:cartist=>[@Artist.load(:id1=>3, :id2=>4), @Artist.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN ((3, 4)))'
3922
- end
3923
-
3924
- it "should be able handle NULL values when filtering multiple one_to_many associations with composite keys" do
3925
- @Album.filter(:ctracks=>[@Track.load(:album_id1=>3, :album_id2=>4), @Track.load(:album_id1=>3)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN ((3, 4)))'
3926
- @Album.filter(:ctracks=>[@Track.load(:album_id1=>3, :album_id2=>4), @Track.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN ((3, 4)))'
3927
- end
3928
-
3929
- it "should be able to handle NULL values when filtering multiple one_to_one associations with composite keys" do
3930
- @Album.filter(:calbum_info=>[@AlbumInfo.load(:album_id1=>3, :album_id2=>4), @AlbumInfo.load(:album_id1=>5)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN ((3, 4)))'
3931
- @Album.filter(:calbum_info=>[@AlbumInfo.load(:album_id1=>3, :album_id2=>4), @AlbumInfo.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN ((3, 4)))'
3932
- end
3933
-
3934
- it "should be able to handle NULL values when filtering multiple many_to_many associations with composite keys" do
3935
- @Album.filter(:ctags=>[@Tag.load(:tid1=>3, :tid2=>4), @Tag.load(:tid1=>5)]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN ((3, 4))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL))))'
3936
- @Album.filter(:ctags=>[@Tag.load(:tid1=>3, :tid2=>4), @Tag.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN ((3, 4))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL))))'
3937
- end
3938
-
3939
- it "should be able to handle NULL values when excluding multiple many_to_one associations" do
3940
- @Album.exclude(:artist=>[@Artist.load(:id=>3), @Artist.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id NOT IN (3)) OR (albums.artist_id IS NULL))'
3941
- @Album.exclude(:artist=>[@Artist.new, @Artist.new]).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3942
- end
3943
-
3944
- it "should be able to handle NULL values when excluding multiple one_to_many associations" do
3945
- @Album.exclude(:tracks=>[@Track.load(:album_id=>3), @Track.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (3)) OR (albums.id IS NULL))'
3946
- @Album.exclude(:tracks=>[@Track.new, @Track.new]).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3947
- end
3948
-
3949
- it "should be able to handle NULL values when excluding multiple one_to_one associations" do
3950
- @Album.exclude(:album_info=>[@AlbumInfo.load(:album_id=>3), @AlbumInfo.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (3)) OR (albums.id IS NULL))'
3951
- @Album.exclude(:album_info=>[@AlbumInfo.new, @AlbumInfo.new]).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3952
- end
3953
-
3954
- it "should be able to handle NULL values when excluding multiple many_to_many associations" do
3955
- @Album.exclude(:tags=>[@Tag.load(:id=>3), @Tag.new]).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id IN (3)) AND (albums_tags.album_id IS NOT NULL)))) OR (albums.id IS NULL))'
3956
- @Album.exclude(:tags=>[@Tag.new, @Tag.new]).sql.must_equal 'SELECT * FROM albums WHERE \'t\''
3957
- end
3958
-
3959
- it "should be able to handle NULL values when excluding multiple many_to_one associations with composite keys" do
3960
- @Album.exclude(:cartist=>[@Artist.load(:id1=>3, :id2=>4), @Artist.load(:id1=>3)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN ((3, 4))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))'
3961
- @Album.exclude(:cartist=>[@Artist.load(:id1=>3, :id2=>4), @Artist.new]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN ((3, 4))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))'
3962
- end
3963
-
3964
- it "should be able handle NULL values when excluding multiple one_to_many associations with composite keys" do
3965
- @Album.exclude(:ctracks=>[@Track.load(:album_id1=>3, :album_id2=>4), @Track.load(:album_id1=>3)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN ((3, 4))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3966
- @Album.exclude(:ctracks=>[@Track.load(:album_id1=>3, :album_id2=>4), @Track.new]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN ((3, 4))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3967
- end
3968
-
3969
- it "should be able to handle NULL values when excluding multiple one_to_one associations with composite keys" do
3970
- @Album.exclude(:calbum_info=>[@AlbumInfo.load(:album_id1=>3, :album_id2=>4), @AlbumInfo.load(:album_id1=>5)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN ((3, 4))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3971
- @Album.exclude(:calbum_info=>[@AlbumInfo.load(:album_id1=>3, :album_id2=>4), @AlbumInfo.new]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN ((3, 4))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3972
- end
3973
-
3974
- it "should be able to handle NULL values when excluding multiple many_to_many associations with composite keys" do
3975
- @Album.exclude(:ctags=>[@Tag.load(:tid1=>3, :tid2=>4), @Tag.load(:tid1=>5)]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN ((3, 4))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3976
- @Album.exclude(:ctags=>[@Tag.load(:tid1=>3, :tid2=>4), @Tag.new]).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN ((3, 4))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
3977
- end
3978
-
3979
- it "should be able to filter on many_to_one association datasets" do
3980
- @Album.filter(:artist=>@Artist.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((x = 1) AND (artists.id IS NOT NULL))))'
3981
- end
3982
-
3983
- it "should be able to filter on one_to_many association datasets" do
3984
- @Album.filter(:tracks=>@Track.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((x = 1) AND (tracks.album_id IS NOT NULL))))'
3985
- end
3986
-
3987
- it "should be able to filter on one_to_one association datasets" do
3988
- @Album.filter(:album_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((x = 1) AND (album_infos.album_id IS NOT NULL))))'
3989
- end
3990
-
3991
- it "should be able to filter on many_to_many association datasets" do
3992
- @Album.filter(:tags=>@Tag.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id IN (SELECT tags.id FROM tags WHERE ((x = 1) AND (tags.id IS NOT NULL)))) AND (albums_tags.album_id IS NOT NULL))))'
3993
- end
3994
-
3995
- it "should be able to filter on many_to_one association datasets with :conditions" do
3996
- @Album.filter(:a_artist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((name = 'A') AND (artists.id IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1))))))"
3997
- end
3998
-
3999
- it "should be able to filter on one_to_many association datasets with :conditions" do
4000
- @Album.filter(:a_tracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1))))))"
4001
- end
4002
-
4003
- it "should be able to filter on one_to_one association datasets with :conditions" do
4004
- @Album.filter(:a_album_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1))))))"
4005
- end
4006
-
4007
- it "should be able to filter on many_to_many association datasets with :conditions" do
4008
- @Album.filter(:a_tags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1))))))"
4009
- end
4010
-
4011
- it "should be able to filter on many_to_one association datasets with block" do
4012
- @Album.filter(:b_artist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.artist_id IN (SELECT artists.id FROM artists WHERE ((name = 'B') AND (artists.id IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1))))))"
4013
- end
4014
-
4015
- it "should be able to filter on one_to_many association datasets with block" do
4016
- @Album.filter(:b_tracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'B') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1))))))"
4017
- end
4018
-
4019
- it "should be able to filter on one_to_one association datasets with block" do
4020
- @Album.filter(:b_album_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1))))))"
4021
- end
4022
-
4023
- it "should be able to filter on many_to_many association datasets with block" do
4024
- @Album.filter(:b_tags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (albums.id IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'B') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1))))))"
4025
- end
4026
-
4027
- it "should be able to filter on many_to_one association datasets with composite keys" do
4028
- @Album.filter(:cartist=>@Artist.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((x = 1) AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL))))'
4029
- end
4030
-
4031
- it "should be able to filter on one_to_many association datasets with composite keys" do
4032
- @Album.filter(:ctracks=>@Track.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((x = 1) AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL))))'
4033
- end
4034
-
4035
- it "should be able to filter on one_to_one association datasets with composite keys" do
4036
- @Album.filter(:calbum_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((x = 1) AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL))))'
4037
- end
4038
-
4039
- it "should be able to filter on many_to_many association datasets with composite keys" do
4040
- @Album.filter(:ctags=>@Tag.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN (SELECT tags.tid1, tags.tid2 FROM tags WHERE ((x = 1) AND (tags.tid1 IS NOT NULL) AND (tags.tid2 IS NOT NULL)))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL))))'
4041
- end
4042
-
4043
- it "should be able to filter on many_to_one association datasets with :conditions and composite keys" do
4044
- @Album.filter(:a_cartist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'A') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1))))))"
4045
- end
4046
-
4047
- it "should be able to filter on one_to_many association datasets with :conditions and composite keys" do
4048
- @Album.filter(:a_ctracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1))))))"
4049
- end
4050
-
4051
- it "should be able to filter on one_to_one association datasets with :conditions and composite keys" do
4052
- @Album.filter(:a_calbum_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1))))))"
4053
- end
4054
-
4055
- it "should be able to filter on many_to_many association datasets with :conditions and composite keys" do
4056
- @Album.filter(:a_ctags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1))))))"
4057
- end
4058
-
4059
- it "should be able to filter on many_to_one association datasets with block and composite keys" do
4060
- @Album.filter(:b_cartist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id1, albums.artist_id2) IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'B') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1))))))"
4061
- end
4062
-
4063
- it "should be able to filter on one_to_many association datasets with block and composite keys" do
4064
- @Album.filter(:b_ctracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'B') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1))))))"
4065
- end
4066
-
4067
- it "should be able to filter on one_to_one association datasets with block and composite keys" do
4068
- @Album.filter(:b_calbum_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1))))))"
4069
- end
4070
-
4071
- it "should be able to filter on many_to_many association datasets with block and composite keys" do
4072
- @Album.filter(:b_ctags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id1, albums.id2) IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'B') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1))))))"
4073
- end
4074
-
4075
- it "should be able to exclude on many_to_one association datasets" do
4076
- @Album.exclude(:artist=>@Artist.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((x = 1) AND (artists.id IS NOT NULL)))) OR (albums.artist_id IS NULL))'
4077
- end
4078
-
4079
- it "should be able to exclude on one_to_many association datasets" do
4080
- @Album.exclude(:tracks=>@Track.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((x = 1) AND (tracks.album_id IS NOT NULL)))) OR (albums.id IS NULL))'
4081
- end
4082
-
4083
- it "should be able to exclude on one_to_one association datasets" do
4084
- @Album.exclude(:album_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((x = 1) AND (album_infos.album_id IS NOT NULL)))) OR (albums.id IS NULL))'
4085
- end
4086
-
4087
- it "should be able to exclude on many_to_many association datasets" do
4088
- @Album.exclude(:tags=>@Tag.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM albums_tags WHERE ((albums_tags.tag_id IN (SELECT tags.id FROM tags WHERE ((x = 1) AND (tags.id IS NOT NULL)))) AND (albums_tags.album_id IS NOT NULL)))) OR (albums.id IS NULL))'
4089
- end
4090
-
4091
- it "should be able to exclude on many_to_one association datasets with :conditions" do
4092
- @Album.exclude(:a_artist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((name = 'A') AND (artists.id IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1)))))) OR (albums.artist_id IS NULL))"
4093
- end
4094
-
4095
- it "should be able to exclude on one_to_many association datasets with :conditions" do
4096
- @Album.exclude(:a_tracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'A') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1)))))) OR (albums.id IS NULL))"
4097
- end
4098
-
4099
- it "should be able to exclude on one_to_one association datasets with :conditions" do
4100
- @Album.exclude(:a_album_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1)))))) OR (albums.id IS NULL))"
4101
- end
4102
-
4103
- it "should be able to exclude on many_to_many association datasets with :conditions" do
4104
- @Album.exclude(:a_tags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'A') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1)))))) OR (albums.id IS NULL))"
4105
- end
4106
-
4107
- it "should be able to exclude on many_to_one association datasets with block" do
4108
- @Album.exclude(:b_artist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.artist_id NOT IN (SELECT artists.id FROM artists WHERE ((name = 'B') AND (artists.id IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1)))))) OR (albums.artist_id IS NULL))"
4109
- end
4110
-
4111
- it "should be able to exclude on one_to_many association datasets with block" do
4112
- @Album.exclude(:b_tracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT tracks.album_id FROM tracks WHERE ((name = 'B') AND (tracks.album_id IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1)))))) OR (albums.id IS NULL))"
4113
- end
4114
-
4115
- it "should be able to exclude on one_to_one association datasets with block" do
4116
- @Album.exclude(:b_album_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT album_infos.album_id FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1)))))) OR (albums.id IS NULL))"
4117
- end
4118
-
4119
- it "should be able to exclude on many_to_many association datasets with block" do
4120
- @Album.exclude(:b_tags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE ((albums.id NOT IN (SELECT albums_tags.album_id FROM tags INNER JOIN albums_tags ON (albums_tags.tag_id = tags.id) WHERE ((name = 'B') AND (albums_tags.album_id IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1)))))) OR (albums.id IS NULL))"
4121
- end
4122
-
4123
- it "should be able to exclude on many_to_one association datasets with composite keys" do
4124
- @Album.exclude(:cartist=>@Artist.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((x = 1) AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL)))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))'
4125
- end
4126
-
4127
- it "should be able to exclude on one_to_many association datasets with composite keys" do
4128
- @Album.exclude(:ctracks=>@Track.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((x = 1) AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
4129
- end
4130
-
4131
- it "should be able to exclude on one_to_one association datasets with composite keys" do
4132
- @Album.exclude(:calbum_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((x = 1) AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
4133
- end
4134
-
4135
- it "should be able to exclude on many_to_many association datasets with composite keys" do
4136
- @Album.exclude(:ctags=>@Tag.filter(:x=>1)).sql.must_equal 'SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM albums_tags WHERE (((albums_tags.tag_id1, albums_tags.tag_id2) IN (SELECT tags.tid1, tags.tid2 FROM tags WHERE ((x = 1) AND (tags.tid1 IS NOT NULL) AND (tags.tid2 IS NOT NULL)))) AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL)))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))'
4137
- end
4138
-
4139
- it "should be able to exclude on many_to_one association datasets with :conditions and composite keys" do
4140
- @Album.exclude(:a_cartist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'A') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1)))))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))"
4141
- end
4142
-
4143
- it "should be able to exclude on one_to_many association datasets with :conditions and composite keys" do
4144
- @Album.exclude(:a_ctracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'A') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1)))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
4145
- end
4146
-
4147
- it "should be able to exclude on one_to_one association datasets with :conditions and composite keys" do
4148
- @Album.exclude(:a_calbum_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'A') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1)))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
4149
- end
4150
-
4151
- it "should be able to exclude on many_to_many association datasets with :conditions and composite keys" do
4152
- @Album.exclude(:a_ctags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'A') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1)))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
4153
- end
4154
-
4155
- it "should be able to exclude on many_to_one association datasets with block and composite keys" do
4156
- @Album.exclude(:b_cartist=>@Artist.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.artist_id1, albums.artist_id2) NOT IN (SELECT artists.id1, artists.id2 FROM artists WHERE ((name = 'B') AND (artists.id1 IS NOT NULL) AND (artists.id2 IS NOT NULL) AND (artists.id IN (SELECT artists.id FROM artists WHERE (x = 1)))))) OR (albums.artist_id1 IS NULL) OR (albums.artist_id2 IS NULL))"
4157
- end
4158
-
4159
- it "should be able to exclude on one_to_many association datasets with block and composite keys" do
4160
- @Album.exclude(:b_ctracks=>@Track.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT tracks.album_id1, tracks.album_id2 FROM tracks WHERE ((name = 'B') AND (tracks.album_id1 IS NOT NULL) AND (tracks.album_id2 IS NOT NULL) AND (tracks.id IN (SELECT tracks.id FROM tracks WHERE (x = 1)))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
4161
- end
4162
-
4163
- it "should be able to exclude on one_to_one association datasets with block and composite keys" do
4164
- @Album.exclude(:b_calbum_info=>@AlbumInfo.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT album_infos.album_id1, album_infos.album_id2 FROM album_infos WHERE ((name = 'B') AND (album_infos.album_id1 IS NOT NULL) AND (album_infos.album_id2 IS NOT NULL) AND (album_infos.id IN (SELECT album_infos.id FROM album_infos WHERE (x = 1)))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
4165
- end
4166
-
4167
- it "should be able to exclude on many_to_many association datasets with block and composite keys" do
4168
- @Album.exclude(:b_ctags=>@Tag.filter(:x=>1)).sql.must_equal "SELECT * FROM albums WHERE (((albums.id1, albums.id2) NOT IN (SELECT albums_tags.album_id1, albums_tags.album_id2 FROM tags INNER JOIN albums_tags ON ((albums_tags.tag_id1 = tags.tid1) AND (albums_tags.tag_id2 = tags.tid2)) WHERE ((name = 'B') AND (albums_tags.album_id1 IS NOT NULL) AND (albums_tags.album_id2 IS NOT NULL) AND (tags.id IN (SELECT tags.id FROM tags WHERE (x = 1)))))) OR (albums.id1 IS NULL) OR (albums.id2 IS NULL))"
4169
- end
4170
-
4171
- it "should do a regular IN query if the dataset for a different model is used" do
4172
- @Album.filter(:artist=>@Album.select(:x)).sql.must_equal 'SELECT * FROM albums WHERE (artist IN (SELECT x FROM albums))'
4173
- end
4174
-
4175
- it "should do a regular IN query if a non-model dataset is used" do
4176
- @Album.filter(:artist=>@Album.db.from(:albums).select(:x)).sql.must_equal 'SELECT * FROM albums WHERE (artist IN (SELECT x FROM albums))'
4177
- end
4178
- end
4179
-
4180
- describe "Sequel::Model Associations with clashing column names" do
4181
- before do
4182
- @db = Sequel.mock(:fetch=>{:id=>1, :object_id=>2})
4183
- @Foo = Class.new(Sequel::Model(@db[:foos]))
4184
- @Bar = Class.new(Sequel::Model(@db[:bars]))
4185
- @Foo.columns :id, :object_id
4186
- @Bar.columns :id, :object_id
4187
- @Foo.def_column_alias(:obj_id, :object_id)
4188
- @Bar.def_column_alias(:obj_id, :object_id)
4189
- @Foo.one_to_many :bars, :primary_key=>:obj_id, :primary_key_column=>:object_id, :key=>:object_id, :key_method=>:obj_id, :class=>@Bar
4190
- @Foo.one_to_one :bar, :primary_key=>:obj_id, :primary_key_column=>:object_id, :key=>:object_id, :key_method=>:obj_id, :class=>@Bar
4191
- @Bar.many_to_one :foo, :key=>:obj_id, :key_column=>:object_id, :primary_key=>:object_id, :primary_key_method=>:obj_id, :class=>@Foo
4192
- @Foo.many_to_many :mtmbars, :join_table=>:bars_foos, :left_primary_key=>:obj_id, :left_primary_key_column=>:object_id, :right_primary_key=>:object_id, :right_primary_key_method=>:obj_id, :left_key=>:foo_id, :right_key=>:object_id, :class=>@Bar
4193
- @Bar.many_to_many :mtmfoos, :join_table=>:bars_foos, :left_primary_key=>:obj_id, :left_primary_key_column=>:object_id, :right_primary_key=>:object_id, :right_primary_key_method=>:obj_id, :left_key=>:object_id, :right_key=>:foo_id, :class=>@Foo
4194
- @foo = @Foo.load(:id=>1, :object_id=>2)
4195
- @bar = @Bar.load(:id=>1, :object_id=>2)
4196
- @db.sqls
4197
- end
4198
-
4199
- it "should have working regular association methods" do
4200
- @Bar.first.foo.must_equal @foo
4201
- @db.sqls.must_equal ["SELECT * FROM bars LIMIT 1", "SELECT * FROM foos WHERE (foos.object_id = 2) LIMIT 1"]
4202
- @Foo.first.bars.must_equal [@bar]
4203
- @db.sqls.must_equal ["SELECT * FROM foos LIMIT 1", "SELECT * FROM bars WHERE (bars.object_id = 2)"]
4204
- @Foo.first.bar.must_equal @bar
4205
- @db.sqls.must_equal ["SELECT * FROM foos LIMIT 1", "SELECT * FROM bars WHERE (bars.object_id = 2) LIMIT 1"]
4206
- @Foo.first.mtmbars.must_equal [@bar]
4207
- @db.sqls.must_equal ["SELECT * FROM foos LIMIT 1", "SELECT bars.* FROM bars INNER JOIN bars_foos ON (bars_foos.object_id = bars.object_id) WHERE (bars_foos.foo_id = 2)"]
4208
- @Bar.first.mtmfoos.must_equal [@foo]
4209
- @db.sqls.must_equal ["SELECT * FROM bars LIMIT 1", "SELECT foos.* FROM foos INNER JOIN bars_foos ON (bars_foos.foo_id = foos.object_id) WHERE (bars_foos.object_id = 2)"]
4210
- end
4211
-
4212
- it "should have working eager loading methods" do
4213
- @Bar.eager(:foo).all.map{|o| [o, o.foo]}.must_equal [[@bar, @foo]]
4214
- @db.sqls.must_equal ["SELECT * FROM bars", "SELECT * FROM foos WHERE (foos.object_id IN (2))"]
4215
- @Foo.eager(:bars).all.map{|o| [o, o.bars]}.must_equal [[@foo, [@bar]]]
4216
- @db.sqls.must_equal ["SELECT * FROM foos", "SELECT * FROM bars WHERE (bars.object_id IN (2))"]
4217
- @Foo.eager(:bar).all.map{|o| [o, o.bar]}.must_equal [[@foo, @bar]]
4218
- @db.sqls.must_equal ["SELECT * FROM foos", "SELECT * FROM bars WHERE (bars.object_id IN (2))"]
4219
- @db.fetch = [[{:id=>1, :object_id=>2}], [{:id=>1, :object_id=>2, :x_foreign_key_x=>2}]]
4220
- @Foo.eager(:mtmbars).all.map{|o| [o, o.mtmbars]}.must_equal [[@foo, [@bar]]]
4221
- @db.sqls.must_equal ["SELECT * FROM foos", "SELECT bars.*, bars_foos.foo_id AS x_foreign_key_x FROM bars INNER JOIN bars_foos ON (bars_foos.object_id = bars.object_id) WHERE (bars_foos.foo_id IN (2))"]
4222
- @db.fetch = [[{:id=>1, :object_id=>2}], [{:id=>1, :object_id=>2, :x_foreign_key_x=>2}]]
4223
- @Bar.eager(:mtmfoos).all.map{|o| [o, o.mtmfoos]}.must_equal [[@bar, [@foo]]]
4224
- @db.sqls.must_equal ["SELECT * FROM bars", "SELECT foos.*, bars_foos.object_id AS x_foreign_key_x FROM foos INNER JOIN bars_foos ON (bars_foos.foo_id = foos.object_id) WHERE (bars_foos.object_id IN (2))"]
4225
- end
4226
-
4227
- it "should have working eager graphing methods" do
4228
- @db.fetch = {:id=>1, :object_id=>2, :foo_id=>1, :foo_object_id=>2}
4229
- @Bar.eager_graph(:foo).all.map{|o| [o, o.foo]}.must_equal [[@bar, @foo]]
4230
- @db.sqls.must_equal ["SELECT bars.id, bars.object_id, foo.id AS foo_id, foo.object_id AS foo_object_id FROM bars LEFT OUTER JOIN foos AS foo ON (foo.object_id = bars.object_id)"]
4231
- @db.fetch = {:id=>1, :object_id=>2, :bars_id=>1, :bars_object_id=>2}
4232
- @Foo.eager_graph(:bars).all.map{|o| [o, o.bars]}.must_equal [[@foo, [@bar]]]
4233
- @db.sqls.must_equal ["SELECT foos.id, foos.object_id, bars.id AS bars_id, bars.object_id AS bars_object_id FROM foos LEFT OUTER JOIN bars ON (bars.object_id = foos.object_id)"]
4234
- @db.fetch = {:id=>1, :object_id=>2, :bar_id=>1, :bar_object_id=>2}
4235
- @Foo.eager_graph(:bar).all.map{|o| [o, o.bar]}.must_equal [[@foo, @bar]]
4236
- @db.sqls.must_equal ["SELECT foos.id, foos.object_id, bar.id AS bar_id, bar.object_id AS bar_object_id FROM foos LEFT OUTER JOIN bars AS bar ON (bar.object_id = foos.object_id)"]
4237
- @db.fetch = {:id=>1, :object_id=>2, :mtmfoos_id=>1, :mtmfoos_object_id=>2}
4238
- @Bar.eager_graph(:mtmfoos).all.map{|o| [o, o.mtmfoos]}.must_equal [[@bar, [@foo]]]
4239
- @db.sqls.must_equal ["SELECT bars.id, bars.object_id, mtmfoos.id AS mtmfoos_id, mtmfoos.object_id AS mtmfoos_object_id FROM bars LEFT OUTER JOIN bars_foos ON (bars_foos.object_id = bars.object_id) LEFT OUTER JOIN foos AS mtmfoos ON (mtmfoos.object_id = bars_foos.foo_id)"]
4240
- @db.fetch = {:id=>1, :object_id=>2, :mtmbars_id=>1, :mtmbars_object_id=>2}
4241
- @Foo.eager_graph(:mtmbars).all.map{|o| [o, o.mtmbars]}.must_equal [[@foo, [@bar]]]
4242
- @db.sqls.must_equal ["SELECT foos.id, foos.object_id, mtmbars.id AS mtmbars_id, mtmbars.object_id AS mtmbars_object_id FROM foos LEFT OUTER JOIN bars_foos ON (bars_foos.foo_id = foos.object_id) LEFT OUTER JOIN bars AS mtmbars ON (mtmbars.object_id = bars_foos.object_id)"]
4243
- end
4244
-
4245
- it "should not have filter by associations code break if using IN/NOT in with a set-returning function" do
4246
- @Bar.where(Sequel::SQL::BooleanExpression.new(:IN, :foo, Sequel.function(:srf))).sql.must_equal 'SELECT * FROM bars WHERE (foo IN srf())'
4247
- @Bar.exclude(Sequel::SQL::BooleanExpression.new(:IN, :foo, Sequel.function(:srf))).sql.must_equal 'SELECT * FROM bars WHERE (foo NOT IN srf())'
4248
- end
4249
-
4250
- it "should have working eager graphing methods when using SQL::Identifier inside SQL::AliasedExpression" do
4251
- @db.fetch = {:id=>1, :object_id=>2, :f_id=>1, :f_object_id=>2}
4252
- @Bar.eager_graph(Sequel[:foo].as(:f)).all.map{|o| [o, o.foo]}.must_equal [[@bar, @foo]]
4253
- @db.sqls.must_equal ["SELECT bars.id, bars.object_id, f.id AS f_id, f.object_id AS f_object_id FROM bars LEFT OUTER JOIN foos AS f ON (f.object_id = bars.object_id)"]
4254
- end
4255
-
4256
- it "should have working filter by associations with model instances" do
4257
- @Bar.first(:foo=>@foo).must_equal @bar
4258
- @db.sqls.must_equal ["SELECT * FROM bars WHERE (bars.object_id = 2) LIMIT 1"]
4259
- @Foo.first(:bars=>@bar).must_equal @foo
4260
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_id = 2) LIMIT 1"]
4261
- @Foo.first(:bar=>@bar).must_equal @foo
4262
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_id = 2) LIMIT 1"]
4263
- @Foo.first(:mtmbars=>@bar).must_equal @foo
4264
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars_foos.foo_id FROM bars_foos WHERE ((bars_foos.object_id = 2) AND (bars_foos.foo_id IS NOT NULL)))) LIMIT 1"]
4265
- @Bar.first(:mtmfoos=>@foo).must_equal @bar
4266
- @db.sqls.must_equal ["SELECT * FROM bars WHERE (bars.object_id IN (SELECT bars_foos.object_id FROM bars_foos WHERE ((bars_foos.foo_id = 2) AND (bars_foos.object_id IS NOT NULL)))) LIMIT 1"]
4267
- end
4268
-
4269
- it "should have working filter by associations for associations with :conditions with model instances" do
4270
- @Bar.many_to_one :foo, :clone=>:foo, :conditions=>{:name=>'A'}
4271
- @Foo.one_to_many :bars, :clone=>:bars, :conditions=>{:name=>'A'}
4272
- @Foo.one_to_one :bar, :clone=>:bars
4273
- @Foo.many_to_many :mtmbars, :clone=>:mtmbars, :conditions=>{:name=>'A'}
4274
- @Bar.many_to_many :mtmfoos, :clone=>:mtmfoos, :conditions=>{:name=>'A'}
4275
-
4276
- @Bar.where(:foo=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_id IN (SELECT foos.object_id FROM foos WHERE ((name = 'A') AND (foos.object_id IS NOT NULL) AND (foos.id = 1))))"
4277
- @Foo.where(:bars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars.object_id FROM bars WHERE ((name = 'A') AND (bars.object_id IS NOT NULL) AND (bars.id = 1))))"
4278
- @Foo.where(:bar=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars.object_id FROM bars WHERE ((name = 'A') AND (bars.object_id IS NOT NULL) AND (bars.id = 1))))"
4279
- @Foo.where(:mtmbars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars_foos.foo_id FROM bars INNER JOIN bars_foos ON (bars_foos.object_id = bars.object_id) WHERE ((name = 'A') AND (bars_foos.foo_id IS NOT NULL) AND (bars.id = 1))))"
4280
- @Bar.where(:mtmfoos=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_id IN (SELECT bars_foos.object_id FROM foos INNER JOIN bars_foos ON (bars_foos.foo_id = foos.object_id) WHERE ((name = 'A') AND (bars_foos.object_id IS NOT NULL) AND (foos.id = 1))))"
4281
- end
4282
-
4283
- it "should have working filter by associations for associations with block with model instances" do
4284
- b = lambda{|ds| ds.where(:name=>'A')}
4285
- @Bar.many_to_one :foo, :clone=>:foo, &b
4286
- @Foo.one_to_many :bars, :clone=>:bars, &b
4287
- @Foo.one_to_one :bar, :clone=>:bars
4288
- @Foo.many_to_many :mtmbars, :clone=>:mtmbars, &b
4289
- @Bar.many_to_many :mtmfoos, :clone=>:mtmfoos, &b
4290
-
4291
- @Bar.where(:foo=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_id IN (SELECT foos.object_id FROM foos WHERE ((name = 'A') AND (foos.object_id IS NOT NULL) AND (foos.id = 1))))"
4292
- @Foo.where(:bars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars.object_id FROM bars WHERE ((name = 'A') AND (bars.object_id IS NOT NULL) AND (bars.id = 1))))"
4293
- @Foo.where(:bar=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars.object_id FROM bars WHERE ((name = 'A') AND (bars.object_id IS NOT NULL) AND (bars.id = 1))))"
4294
- @Foo.where(:mtmbars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_id IN (SELECT bars_foos.foo_id FROM bars INNER JOIN bars_foos ON (bars_foos.object_id = bars.object_id) WHERE ((name = 'A') AND (bars_foos.foo_id IS NOT NULL) AND (bars.id = 1))))"
4295
- @Bar.where(:mtmfoos=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_id IN (SELECT bars_foos.object_id FROM foos INNER JOIN bars_foos ON (bars_foos.foo_id = foos.object_id) WHERE ((name = 'A') AND (bars_foos.object_id IS NOT NULL) AND (foos.id = 1))))"
4296
- end
4297
-
4298
- it "should have working modification methods" do
4299
- b = @Bar.load(:id=>2, :object_id=>3)
4300
- f = @Foo.load(:id=>2, :object_id=>3)
4301
- @db.numrows = 1
4302
-
4303
- @bar.foo = f
4304
- @bar.obj_id.must_equal 3
4305
- @foo.bar = @bar
4306
- @bar.obj_id.must_equal 2
4307
-
4308
- @foo.add_bar(b)
4309
- @db.fetch = [[{:id=>1, :object_id=>2}, {:id=>2, :object_id=>2}], [{:id=>1, :object_id=>2}]]
4310
- @foo.bars.must_equal [@bar, b]
4311
- @foo.remove_bar(b)
4312
- @foo.bars.must_equal [@bar]
4313
- @foo.remove_all_bars
4314
- @foo.bars.must_equal []
4315
-
4316
- @db.fetch = [[{:id=>1, :object_id=>2}], [], [{:id=>2, :object_id=>2}]]
4317
- @bar = @Bar.load(:id=>1, :object_id=>2)
4318
- @foo.mtmbars.must_equal [@bar]
4319
- @foo.remove_all_mtmbars
4320
- @foo.mtmbars.must_equal []
4321
- @foo.add_mtmbar(b)
4322
- @foo.mtmbars.must_equal [b]
4323
- @foo.remove_mtmbar(b)
4324
- @foo.mtmbars.must_equal []
4325
-
4326
- @db.fetch = [[{:id=>2, :object_id=>3}], [], [{:id=>2, :object_id=>3}]]
4327
- @bar.add_mtmfoo(f)
4328
- @bar.mtmfoos.must_equal [f]
4329
- @bar.remove_all_mtmfoos
4330
- @bar.mtmfoos.must_equal []
4331
- @bar.add_mtmfoo(f)
4332
- @bar.mtmfoos.must_equal [f]
4333
- @bar.remove_mtmfoo(f)
4334
- @bar.mtmfoos.must_equal []
4335
- end
4336
- end
4337
-
4338
- describe "Sequel::Model Associations with non-column expression keys" do
4339
- before do
4340
- @db = Sequel.mock(:fetch=>{:id=>1, :object_ids=>[2]})
4341
- @Foo = Class.new(Sequel::Model(@db[:foos]))
4342
- @Bar = Class.new(Sequel::Model(@db[:bars]))
4343
- @Foo.columns :id, :object_ids
4344
- @Bar.columns :id, :object_ids
4345
- m = Module.new{def obj_id; object_ids[0]; end}
4346
- @Foo.include m
4347
- @Bar.include m
4348
-
4349
- @Foo.one_to_many :bars, :primary_key=>:obj_id, :primary_key_column=>Sequel.subscript(:object_ids, 0), :key=>Sequel.subscript(:object_ids, 0), :key_method=>:obj_id, :class=>@Bar
4350
- @Foo.one_to_one :bar, :primary_key=>:obj_id, :primary_key_column=>Sequel.subscript(:object_ids, 0), :key=>Sequel.subscript(:object_ids, 0), :key_method=>:obj_id, :class=>@Bar
4351
- @Bar.many_to_one :foo, :key=>:obj_id, :key_column=>Sequel.subscript(:object_ids, 0), :primary_key=>Sequel.subscript(:object_ids, 0), :primary_key_method=>:obj_id, :class=>@Foo
4352
- @Foo.many_to_many :mtmbars, :join_table=>:bars_foos, :left_primary_key=>:obj_id, :left_primary_key_column=>Sequel.subscript(:object_ids, 0), :right_primary_key=>Sequel.subscript(:object_ids, 0), :right_primary_key_method=>:obj_id, :left_key=>Sequel.subscript(:foo_ids, 0), :right_key=>Sequel.subscript(:bar_ids, 0), :class=>@Bar
4353
- @Bar.many_to_many :mtmfoos, :join_table=>:bars_foos, :left_primary_key=>:obj_id, :left_primary_key_column=>Sequel.subscript(:object_ids, 0), :right_primary_key=>Sequel.subscript(:object_ids, 0), :right_primary_key_method=>:obj_id, :left_key=>Sequel.subscript(:bar_ids, 0), :right_key=>Sequel.subscript(:foo_ids, 0), :class=>@Foo, :reciprocal=>nil
4354
- @foo = @Foo.load(:id=>1, :object_ids=>[2])
4355
- @bar = @Bar.load(:id=>1, :object_ids=>[2])
4356
- @db.sqls
4357
- end
4358
-
4359
- it "should have working regular association methods" do
4360
- @Bar.first.foo.must_equal @foo
4361
- @db.sqls.must_equal ["SELECT * FROM bars LIMIT 1", "SELECT * FROM foos WHERE (foos.object_ids[0] = 2) LIMIT 1"]
4362
- @Foo.first.bars.must_equal [@bar]
4363
- @db.sqls.must_equal ["SELECT * FROM foos LIMIT 1", "SELECT * FROM bars WHERE (bars.object_ids[0] = 2)"]
4364
- @Foo.first.bar.must_equal @bar
4365
- @db.sqls.must_equal ["SELECT * FROM foos LIMIT 1", "SELECT * FROM bars WHERE (bars.object_ids[0] = 2) LIMIT 1"]
4366
- @Foo.first.mtmbars.must_equal [@bar]
4367
- @db.sqls.must_equal ["SELECT * FROM foos LIMIT 1", "SELECT bars.* FROM bars INNER JOIN bars_foos ON (bars_foos.bar_ids[0] = bars.object_ids[0]) WHERE (bars_foos.foo_ids[0] = 2)"]
4368
- @Bar.first.mtmfoos.must_equal [@foo]
4369
- @db.sqls.must_equal ["SELECT * FROM bars LIMIT 1", "SELECT foos.* FROM foos INNER JOIN bars_foos ON (bars_foos.foo_ids[0] = foos.object_ids[0]) WHERE (bars_foos.bar_ids[0] = 2)"]
4370
- end
4371
-
4372
- it "should have working eager loading methods" do
4373
- @Bar.eager(:foo).all.map{|o| [o, o.foo]}.must_equal [[@bar, @foo]]
4374
- @db.sqls.must_equal ["SELECT * FROM bars", "SELECT * FROM foos WHERE (foos.object_ids[0] IN (2))"]
4375
- @Foo.eager(:bars).all.map{|o| [o, o.bars]}.must_equal [[@foo, [@bar]]]
4376
- @db.sqls.must_equal ["SELECT * FROM foos", "SELECT * FROM bars WHERE (bars.object_ids[0] IN (2))"]
4377
- @Foo.eager(:bar).all.map{|o| [o, o.bar]}.must_equal [[@foo, @bar]]
4378
- @db.sqls.must_equal ["SELECT * FROM foos", "SELECT * FROM bars WHERE (bars.object_ids[0] IN (2))"]
4379
- @db.fetch = [[{:id=>1, :object_ids=>[2]}], [{:id=>1, :object_ids=>[2], :x_foreign_key_x=>2}]]
4380
- @Foo.eager(:mtmbars).all.map{|o| [o, o.mtmbars]}.must_equal [[@foo, [@bar]]]
4381
- @db.sqls.must_equal ["SELECT * FROM foos", "SELECT bars.*, bars_foos.foo_ids[0] AS x_foreign_key_x FROM bars INNER JOIN bars_foos ON (bars_foos.bar_ids[0] = bars.object_ids[0]) WHERE (bars_foos.foo_ids[0] IN (2))"]
4382
- @db.fetch = [[{:id=>1, :object_ids=>[2]}], [{:id=>1, :object_ids=>[2], :x_foreign_key_x=>2}]]
4383
- @Bar.eager(:mtmfoos).all.map{|o| [o, o.mtmfoos]}.must_equal [[@bar, [@foo]]]
4384
- @db.sqls.must_equal ["SELECT * FROM bars", "SELECT foos.*, bars_foos.bar_ids[0] AS x_foreign_key_x FROM foos INNER JOIN bars_foos ON (bars_foos.foo_ids[0] = foos.object_ids[0]) WHERE (bars_foos.bar_ids[0] IN (2))"]
4385
- end
4386
-
4387
- it "should have working eager graphing methods" do
4388
- @db.fetch = {:id=>1, :object_ids=>[2], :foo_id=>1, :foo_object_ids=>[2]}
4389
- @Bar.eager_graph(:foo).all.map{|o| [o, o.foo]}.must_equal [[@bar, @foo]]
4390
- @db.sqls.must_equal ["SELECT bars.id, bars.object_ids, foo.id AS foo_id, foo.object_ids AS foo_object_ids FROM bars LEFT OUTER JOIN foos AS foo ON (foo.object_ids[0] = bars.object_ids[0])"]
4391
- @db.fetch = {:id=>1, :object_ids=>[2], :bars_id=>1, :bars_object_ids=>[2]}
4392
- @Foo.eager_graph(:bars).all.map{|o| [o, o.bars]}.must_equal [[@foo, [@bar]]]
4393
- @db.sqls.must_equal ["SELECT foos.id, foos.object_ids, bars.id AS bars_id, bars.object_ids AS bars_object_ids FROM foos LEFT OUTER JOIN bars ON (bars.object_ids[0] = foos.object_ids[0])"]
4394
- @db.fetch = {:id=>1, :object_ids=>[2], :bar_id=>1, :bar_object_ids=>[2]}
4395
- @Foo.eager_graph(:bar).all.map{|o| [o, o.bar]}.must_equal [[@foo, @bar]]
4396
- @db.sqls.must_equal ["SELECT foos.id, foos.object_ids, bar.id AS bar_id, bar.object_ids AS bar_object_ids FROM foos LEFT OUTER JOIN bars AS bar ON (bar.object_ids[0] = foos.object_ids[0])"]
4397
- @db.fetch = {:id=>1, :object_ids=>[2], :mtmfoos_id=>1, :mtmfoos_object_ids=>[2]}
4398
- @Bar.eager_graph(:mtmfoos).all.map{|o| [o, o.mtmfoos]}.must_equal [[@bar, [@foo]]]
4399
- @db.sqls.must_equal ["SELECT bars.id, bars.object_ids, mtmfoos.id AS mtmfoos_id, mtmfoos.object_ids AS mtmfoos_object_ids FROM bars LEFT OUTER JOIN bars_foos ON (bars_foos.bar_ids[0] = bars.object_ids[0]) LEFT OUTER JOIN foos AS mtmfoos ON (mtmfoos.object_ids[0] = bars_foos.foo_ids[0])"]
4400
- @db.fetch = {:id=>1, :object_ids=>[2], :mtmbars_id=>1, :mtmbars_object_ids=>[2]}
4401
- @Foo.eager_graph(:mtmbars).all.map{|o| [o, o.mtmbars]}.must_equal [[@foo, [@bar]]]
4402
- @db.sqls.must_equal ["SELECT foos.id, foos.object_ids, mtmbars.id AS mtmbars_id, mtmbars.object_ids AS mtmbars_object_ids FROM foos LEFT OUTER JOIN bars_foos ON (bars_foos.foo_ids[0] = foos.object_ids[0]) LEFT OUTER JOIN bars AS mtmbars ON (mtmbars.object_ids[0] = bars_foos.bar_ids[0])"]
4403
- end
4404
-
4405
- it "should have working filter by associations with model instances" do
4406
- @Bar.first(:foo=>@foo).must_equal @bar
4407
- @db.sqls.must_equal ["SELECT * FROM bars WHERE (bars.object_ids[0] = 2) LIMIT 1"]
4408
- @Foo.first(:bars=>@bar).must_equal @foo
4409
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_ids[0] = 2) LIMIT 1"]
4410
- @Foo.first(:bar=>@bar).must_equal @foo
4411
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_ids[0] = 2) LIMIT 1"]
4412
- @Foo.first(:mtmbars=>@bar).must_equal @foo
4413
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars_foos.foo_ids[0] FROM bars_foos WHERE ((bars_foos.bar_ids[0] = 2) AND (bars_foos.foo_ids[0] IS NOT NULL)))) LIMIT 1"]
4414
- @Bar.first(:mtmfoos=>@foo).must_equal @bar
4415
- @db.sqls.must_equal ["SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT bars_foos.bar_ids[0] FROM bars_foos WHERE ((bars_foos.foo_ids[0] = 2) AND (bars_foos.bar_ids[0] IS NOT NULL)))) LIMIT 1"]
4416
- end
4417
-
4418
- it "should have working filter by associations for associations with :conditions with model instances" do
4419
- @Bar.many_to_one :foo, :clone=>:foo, :conditions=>{:name=>'A'}
4420
- @Foo.one_to_many :bars, :clone=>:bars, :conditions=>{:name=>'A'}
4421
- @Foo.one_to_one :bar, :clone=>:bars
4422
- @Foo.many_to_many :mtmbars, :clone=>:mtmbars, :conditions=>{:name=>'A'}
4423
- @Bar.many_to_many :mtmfoos, :clone=>:mtmfoos, :conditions=>{:name=>'A'}
4424
-
4425
- @Bar.where(:foo=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT foos.object_ids[0] FROM foos WHERE ((name = 'A') AND (foos.object_ids[0] IS NOT NULL) AND (foos.id = 1))))"
4426
- @Foo.where(:bars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((name = 'A') AND (bars.object_ids[0] IS NOT NULL) AND (bars.id = 1))))"
4427
- @Foo.where(:bar=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((name = 'A') AND (bars.object_ids[0] IS NOT NULL) AND (bars.id = 1))))"
4428
- @Foo.where(:mtmbars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars_foos.foo_ids[0] FROM bars INNER JOIN bars_foos ON (bars_foos.bar_ids[0] = bars.object_ids[0]) WHERE ((name = 'A') AND (bars_foos.foo_ids[0] IS NOT NULL) AND (bars.id = 1))))"
4429
- @Bar.where(:mtmfoos=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT bars_foos.bar_ids[0] FROM foos INNER JOIN bars_foos ON (bars_foos.foo_ids[0] = foos.object_ids[0]) WHERE ((name = 'A') AND (bars_foos.bar_ids[0] IS NOT NULL) AND (foos.id = 1))))"
4430
- end
4431
-
4432
- it "should have working filter by associations for associations with block with model instances" do
4433
- b = lambda{|ds| ds.where(:name=>'A')}
4434
- @Bar.many_to_one :foo, :clone=>:foo, &b
4435
- @Foo.one_to_many :bars, :clone=>:bars, &b
4436
- @Foo.one_to_one :bar, :clone=>:bars
4437
- @Foo.many_to_many :mtmbars, :clone=>:mtmbars, &b
4438
- @Bar.many_to_many :mtmfoos, :clone=>:mtmfoos, &b
4439
-
4440
- @Bar.where(:foo=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT foos.object_ids[0] FROM foos WHERE ((name = 'A') AND (foos.object_ids[0] IS NOT NULL) AND (foos.id = 1))))"
4441
- @Foo.where(:bars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((name = 'A') AND (bars.object_ids[0] IS NOT NULL) AND (bars.id = 1))))"
4442
- @Foo.where(:bar=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((name = 'A') AND (bars.object_ids[0] IS NOT NULL) AND (bars.id = 1))))"
4443
- @Foo.where(:mtmbars=>@bar).sql.must_equal "SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars_foos.foo_ids[0] FROM bars INNER JOIN bars_foos ON (bars_foos.bar_ids[0] = bars.object_ids[0]) WHERE ((name = 'A') AND (bars_foos.foo_ids[0] IS NOT NULL) AND (bars.id = 1))))"
4444
- @Bar.where(:mtmfoos=>@foo).sql.must_equal "SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT bars_foos.bar_ids[0] FROM foos INNER JOIN bars_foos ON (bars_foos.foo_ids[0] = foos.object_ids[0]) WHERE ((name = 'A') AND (bars_foos.bar_ids[0] IS NOT NULL) AND (foos.id = 1))))"
4445
- end
4446
-
4447
- it "should have working filter by associations with model datasets" do
4448
- @Bar.first(:foo=>@Foo.where(:id=>@foo.id)).must_equal @bar
4449
- @db.sqls.must_equal ["SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT foos.object_ids[0] FROM foos WHERE ((id = 1) AND (foos.object_ids[0] IS NOT NULL)))) LIMIT 1"]
4450
- @Foo.first(:bars=>@Bar.where(:id=>@bar.id)).must_equal @foo
4451
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((id = 1) AND (bars.object_ids[0] IS NOT NULL)))) LIMIT 1"]
4452
- @Foo.first(:bar=>@Bar.where(:id=>@bar.id)).must_equal @foo
4453
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((id = 1) AND (bars.object_ids[0] IS NOT NULL)))) LIMIT 1"]
4454
- @Foo.first(:mtmbars=>@Bar.where(:id=>@bar.id)).must_equal @foo
4455
- @db.sqls.must_equal ["SELECT * FROM foos WHERE (foos.object_ids[0] IN (SELECT bars_foos.foo_ids[0] FROM bars_foos WHERE ((bars_foos.bar_ids[0] IN (SELECT bars.object_ids[0] FROM bars WHERE ((id = 1) AND (bars.object_ids[0] IS NOT NULL)))) AND (bars_foos.foo_ids[0] IS NOT NULL)))) LIMIT 1"]
4456
- @Bar.first(:mtmfoos=>@Foo.where(:id=>@foo.id)).must_equal @bar
4457
- @db.sqls.must_equal ["SELECT * FROM bars WHERE (bars.object_ids[0] IN (SELECT bars_foos.bar_ids[0] FROM bars_foos WHERE ((bars_foos.foo_ids[0] IN (SELECT foos.object_ids[0] FROM foos WHERE ((id = 1) AND (foos.object_ids[0] IS NOT NULL)))) AND (bars_foos.bar_ids[0] IS NOT NULL)))) LIMIT 1"]
4458
- end
4459
- end
4460
-
4461
- describe Sequel::Model, "#refresh" do
4462
- before do
4463
- @c = Class.new(Sequel::Model(:items)) do
4464
- unrestrict_primary_key
4465
- columns :id, :x
4466
- end
4467
- DB.reset
4468
- end
4469
-
4470
- it "should remove cached associations" do
4471
- @c.many_to_one :node, :class=>@c
4472
- @m = @c.new(:id => 555)
4473
- @m.associations[:node] = 15
4474
- @m.reload
4475
- @m.associations.must_equal({})
4476
- end
4477
- end
4478
-
4479
- describe "Model#freeze" do
4480
- before do
4481
- class ::Album < Sequel::Model
4482
- columns :id
4483
- class B < Sequel::Model
4484
- columns :id, :album_id
4485
- many_to_one :album, :class=>Album
4486
- end
4487
- one_to_one :b, :key=>:album_id, :class=>B
4488
- end
4489
- @o = Album.load(:id=>1).freeze
4490
- DB.sqls
4491
- end
4492
- after do
4493
- Object.send(:remove_const, :Album)
4494
- end
4495
-
4496
- it "should freeze the object's associations" do
4497
- @o.associations.frozen?.must_equal true
4498
- end
4499
-
4500
- it "should freeze associations after validating" do
4501
- Album.send(:define_method, :validate){super(); b}
4502
- @o = Album.load(:id=>1)
4503
- @o.freeze
4504
- @o.associations.fetch(:b).id.must_equal 1
4505
- end
4506
-
4507
- it "should not break associations getters" do
4508
- Album::B.dataset = Album::B.dataset.with_fetch(:album_id=>1, :id=>2)
4509
- @o.b.must_equal Album::B.load(:id=>2, :album_id=>1)
4510
- @o.associations[:b].must_be_nil
4511
-
4512
- @o = @o.dup
4513
- @o.b.must_equal Album::B.load(:id=>2, :album_id=>1)
4514
- @o.associations[:b].must_equal Album::B.load(:id=>2, :album_id=>1)
4515
- end
4516
-
4517
- it "should not break reciprocal associations" do
4518
- b = Album::B.load(:id=>2, :album_id=>nil)
4519
- b.album = @o
4520
- @o.associations[:b].must_be_nil
4521
-
4522
- @o = @o.dup
4523
- b = Album::B.load(:id=>2, :album_id=>nil)
4524
- b.album = @o
4525
- @o.associations[:b].must_equal Album::B.load(:id=>2, :album_id=>1)
4526
- end
4527
- end
4528
-
4529
- describe "association autoreloading" do
4530
- before do
4531
- @c = Class.new(Sequel::Model)
4532
- @Artist = Class.new(@c).set_dataset(:artists)
4533
- @Artist.dataset = @Artist.dataset.with_fetch(:id=>2, :name=>'Ar')
4534
- @Album = Class.new(@c).set_dataset(:albums)
4535
- @Artist.columns :id, :name
4536
- @Album.columns :id, :name, :artist_id
4537
- @Album.db_schema[:artist_id][:type] = :integer
4538
- @Album.many_to_one :artist, :class=>@Artist
4539
- DB.reset
4540
- end
4541
-
4542
- it "should not reload many_to_one association when foreign key is not modified" do
4543
- album = @Album.load(:id => 1, :name=>'Al', :artist_id=>1)
4544
- album.artist
4545
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1']
4546
- album.artist_id = 1
4547
- album.artist
4548
- DB.sqls.must_equal []
4549
-
4550
- album = @Album.new(:name=>'Al', :artist_id=>1)
4551
- album.artist
4552
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1']
4553
- album.artist_id = 1
4554
- album.artist
4555
- DB.sqls.must_equal []
4556
- end
4557
-
4558
- it "should reload many_to_one association when foreign key is modified" do
4559
- album = @Album.load(:id => 1, :name=>'Al', :artist_id=>2)
4560
- album.artist
4561
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 2']
4562
-
4563
- album.artist_id = 1
4564
- album.artist
4565
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1']
4566
- end
4567
-
4568
- it "should handle multiple many_to_one association with the same foreign key" do
4569
- @Album.many_to_one :artist2, :key=>:artist_id, :class=>@Artist
4570
- album = @Album.load(:id => 1, :name=>'Al', :artist_id=>2)
4571
- album.artist
4572
- album.artist2
4573
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 2'] * 2
4574
-
4575
- album.artist
4576
- album.artist2
4577
- DB.sqls.must_equal []
4578
-
4579
- album.artist_id = 1
4580
- album.artist
4581
- album.artist2
4582
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1'] * 2
4583
- end
4584
-
4585
- it "should not reload when value has not changed" do
4586
- album = @Album.load(:id => 1, :name=>'Al', :artist_id=>2)
4587
- album.artist
4588
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 2']
4589
-
4590
- album.artist_id = 2
4591
- album.artist
4592
- DB.sqls.must_equal []
4593
-
4594
- album.artist_id = "2"
4595
- album.artist
4596
- DB.sqls.must_equal []
4597
- end
4598
-
4599
- it "should reload all associations which use the foreign key" do
4600
- @Album.many_to_one :other_artist, :key => :artist_id, :foreign_key => :id, :class => @Artist
4601
- album = @Album.load(:id => 1, :name=>'Al', :artist_id=>2)
4602
- album.artist
4603
- album.other_artist
4604
- DB.reset
4605
-
4606
- album.artist_id = 1
4607
- album.artist
4608
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1']
4609
-
4610
- album.other_artist
4611
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1']
4612
- end
4613
-
4614
- it "should work with composite keys" do
4615
- @Album.many_to_one :composite_artist, :key => [:artist_id, :name], :primary_key => [:id, :name], :class => @Artist
4616
- album = @Album.load(:id => 1, :name=>'Al', :artist_id=>2)
4617
- album.composite_artist
4618
- DB.reset
4619
-
4620
- album.artist_id = 1
4621
- album.composite_artist
4622
- DB.sqls.must_equal ["SELECT * FROM artists WHERE ((artists.id = 1) AND (artists.name = 'Al')) LIMIT 1"]
4623
-
4624
- album.name = 'Al2'
4625
- album.composite_artist
4626
- DB.sqls.must_equal ["SELECT * FROM artists WHERE ((artists.id = 1) AND (artists.name = 'Al2')) LIMIT 1"]
4627
- end
4628
-
4629
- it "should work with subclasses" do
4630
- salbum = Class.new(@Album)
4631
- oartist = Class.new(@c).set_dataset(:oartist)
4632
- oartist.columns :id, :name
4633
- salbum.many_to_one :artist2, :class=>oartist, :key=>:artist_id
4634
- album = salbum.load(:id => 1, :name=>'Al', :artist_id=>2)
4635
- album.artist
4636
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 2']
4637
-
4638
- album.artist_id = 1
4639
- album.artist
4640
- DB.sqls.must_equal ['SELECT * FROM artists WHERE id = 1']
4641
- end
4642
- end
4643
-
4644
- describe Sequel::Model, ".dataset_module" do
4645
- before do
4646
- @c = Class.new(Sequel::Model(:items))
4647
- end
4648
-
4649
- it "should have dataset_module support an eager method" do
4650
- @c.many_to_one :foo, :class=>@c
4651
- @c.many_to_one :bar, :class=>@c
4652
- @c.many_to_one :baz, :class=>@c
4653
- @c.many_to_one :quux, :class=>@c
4654
- @c.dataset_module{eager(:foo, {:foo=>{:bar=>:baz}}, :quux)}
4655
- @c.foo.opts[:eager].must_equal(:foo=>{:bar=>:baz}, :quux=>nil)
4656
- @c.where(:bar).foo.opts[:eager].must_equal(:foo=>{:bar=>:baz}, :quux=>nil)
4657
- end
4658
- end