tdiary 5.0.13 → 5.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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