tdiary 5.0.6 → 5.0.7

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 (2988) hide show
  1. checksums.yaml +5 -5
  2. data/ChangeLog +9 -0
  3. data/Gemfile +6 -1
  4. data/Gemfile.lock +38 -31
  5. data/doc/HOWTO-use-plugin.md +1 -1
  6. data/lib/tdiary/io/default.rb +1 -0
  7. data/lib/tdiary/plugin.rb +1 -1
  8. data/lib/tdiary/plugin/50sp.rb +1 -1
  9. data/lib/tdiary/plugin/60sf.rb +1 -1
  10. data/lib/tdiary/plugin/en/00default.rb +1 -1
  11. data/lib/tdiary/plugin/ja/00default.rb +1 -1
  12. data/lib/tdiary/version.rb +1 -1
  13. data/misc/paas/heroku/Gemfile.local +1 -1
  14. data/misc/paas/heroku/Gemfile.lock +57 -48
  15. data/misc/plugin/category-legacy.rb +1 -0
  16. data/misc/plugin/category.rb +1 -1
  17. data/misc/plugin/recent_comment3.rb +1 -0
  18. data/misc/plugin/recent_list.rb +2 -0
  19. data/theme/base.css +8 -0
  20. data/vendor/bundle/bin/htmldiff +1 -1
  21. data/vendor/bundle/bin/ldiff +1 -1
  22. data/vendor/bundle/cache/bundler-1.16.1.gem +0 -0
  23. data/vendor/bundle/cache/capybara-2.16.1.gem +0 -0
  24. data/vendor/bundle/cache/childprocess-0.8.0.gem +0 -0
  25. data/vendor/bundle/cache/fastimage-2.1.1.gem +0 -0
  26. data/vendor/bundle/cache/mail-2.7.0.gem +0 -0
  27. data/vendor/bundle/cache/mini_mime-1.0.0.gem +0 -0
  28. data/vendor/bundle/cache/octokit-4.8.0.gem +0 -0
  29. data/vendor/bundle/cache/power_assert-1.1.1.gem +0 -0
  30. data/vendor/bundle/cache/public_suffix-3.0.1.gem +0 -0
  31. data/vendor/bundle/cache/rack-test-0.8.2.gem +0 -0
  32. data/vendor/bundle/cache/rake-12.3.0.gem +0 -0
  33. data/vendor/bundle/cache/rspec-3.7.0.gem +0 -0
  34. data/vendor/bundle/cache/rspec-core-3.7.0.gem +0 -0
  35. data/vendor/bundle/cache/rspec-expectations-3.7.0.gem +0 -0
  36. data/vendor/bundle/cache/rspec-mocks-3.7.0.gem +0 -0
  37. data/vendor/bundle/cache/rspec-support-3.7.0.gem +0 -0
  38. data/vendor/bundle/cache/selenium-webdriver-3.8.0.gem +0 -0
  39. data/vendor/bundle/cache/sequel-5.3.0.gem +0 -0
  40. data/vendor/bundle/cache/test-unit-3.2.7.gem +0 -0
  41. data/vendor/bundle/cache/tins-1.16.3.gem +0 -0
  42. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/ffi-1.9.18/ffi_c.so +0 -0
  43. data/vendor/bundle/extensions/x86_64-linux/{2.4.0-static/byebug-9.1.0 → 2.5.0-static/ffi-1.9.18}/gem.build_complete +0 -0
  44. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/ffi-1.9.18/gem_make.out +63 -0
  45. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/ffi-1.9.18/mkmf.log +449 -0
  46. data/vendor/bundle/extensions/x86_64-linux/{2.4.0-static/ffi-1.9.18 → 2.5.0-static/nokogiri-1.8.1}/gem.build_complete +0 -0
  47. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/nokogiri-1.8.1/gem_make.out +711 -0
  48. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/nokogiri-1.8.1/mkmf.log +546 -0
  49. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/nokogiri-1.8.1/nokogiri/nokogiri.so +0 -0
  50. data/vendor/bundle/extensions/x86_64-linux/{2.4.0-static/nokogiri-1.8.1 → 2.5.0-static/redcarpet-3.4.0}/gem.build_complete +0 -0
  51. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/redcarpet-3.4.0/gem_make.out +105 -0
  52. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/redcarpet-3.4.0/redcarpet.so +0 -0
  53. data/vendor/bundle/extensions/x86_64-linux/{2.4.0-static/redcarpet-3.4.0 → 2.5.0-static/sqlite3-1.3.13}/gem.build_complete +0 -0
  54. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/gem_make.out +33 -0
  55. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/mkmf.log +583 -0
  56. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/sqlite3-1.3.13/sqlite3/sqlite3_native.so +0 -0
  57. data/vendor/bundle/extensions/x86_64-linux/{2.4.0-static/sqlite3-1.3.13 → 2.5.0-static/unf_ext-0.0.7.4}/gem.build_complete +0 -0
  58. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/unf_ext-0.0.7.4/gem_make.out +23 -0
  59. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/unf_ext-0.0.7.4/mkmf.log +34 -0
  60. data/vendor/bundle/extensions/x86_64-linux/2.5.0-static/unf_ext-0.0.7.4/unf_ext.so +0 -0
  61. data/vendor/bundle/gems/capybara-2.16.1/History.md +1085 -0
  62. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/License.txt +0 -0
  63. data/vendor/bundle/gems/capybara-2.16.1/README.md +1090 -0
  64. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara.rb +494 -0
  65. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/config.rb +132 -0
  66. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/cucumber.rb +0 -0
  67. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/driver/base.rb +161 -0
  68. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/driver/node.rb +0 -0
  69. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/dsl.rb +0 -0
  70. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/helpers.rb +0 -0
  71. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/minitest.rb +276 -0
  72. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/minitest/spec.rb +175 -0
  73. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/node/actions.rb +317 -0
  74. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/node/base.rb +0 -0
  75. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/node/document.rb +0 -0
  76. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/node/document_matchers.rb +0 -0
  77. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/node/element.rb +386 -0
  78. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/node/finders.rb +321 -0
  79. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/node/matchers.rb +0 -0
  80. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/node/simple.rb +0 -0
  81. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/queries/ancestor_query.rb +25 -0
  82. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/queries/base_query.rb +0 -0
  83. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/queries/current_path_query.rb +67 -0
  84. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/queries/match_query.rb +0 -0
  85. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/queries/selector_query.rb +251 -0
  86. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/queries/sibling_query.rb +25 -0
  87. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/queries/text_query.rb +98 -0
  88. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/queries/title_query.rb +0 -0
  89. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/query.rb +0 -0
  90. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rack_test/browser.rb +0 -0
  91. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rack_test/css_handlers.rb +0 -0
  92. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rack_test/driver.rb +0 -0
  93. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/rack_test/form.rb +114 -0
  94. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rack_test/node.rb +0 -0
  95. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rails.rb +0 -0
  96. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/result.rb +0 -0
  97. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rspec.rb +0 -0
  98. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rspec/compound.rb +0 -0
  99. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rspec/features.rb +0 -0
  100. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rspec/matcher_proxies.rb +0 -0
  101. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/rspec/matchers.rb +0 -0
  102. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector.rb +0 -0
  103. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/css.rb +0 -0
  104. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/filter.rb +0 -0
  105. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/filter_set.rb +0 -0
  106. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/filters/base.rb +0 -0
  107. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/filters/expression_filter.rb +0 -0
  108. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/filters/node_filter.rb +0 -0
  109. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/selector/selector.rb +0 -0
  110. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/selenium/driver.rb +512 -0
  111. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/selenium/node.rb +241 -0
  112. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/server.rb +0 -0
  113. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/session.rb +981 -0
  114. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/session/config.rb +0 -0
  115. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/session/matchers.rb +79 -0
  116. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/fixtures/another_test_file.txt +0 -0
  117. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/fixtures/capybara.jpg +0 -0
  118. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/fixtures/no_extension +0 -0
  119. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/fixtures/test_file.txt +0 -0
  120. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/public/jquery-ui.js +0 -0
  121. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/public/jquery.js +0 -0
  122. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/public/test.js +145 -0
  123. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/accept_alert_spec.rb +0 -0
  124. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/accept_confirm_spec.rb +0 -0
  125. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/accept_prompt_spec.rb +78 -0
  126. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/all_spec.rb +0 -0
  127. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/ancestor_spec.rb +0 -0
  128. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +0 -0
  129. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/assert_current_path.rb +0 -0
  130. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/assert_selector.rb +0 -0
  131. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/assert_text.rb +0 -0
  132. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/assert_title.rb +0 -0
  133. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/attach_file_spec.rb +0 -0
  134. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/body_spec.rb +0 -0
  135. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/check_spec.rb +0 -0
  136. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/choose_spec.rb +0 -0
  137. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/click_button_spec.rb +0 -0
  138. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/click_link_or_button_spec.rb +0 -0
  139. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/click_link_spec.rb +0 -0
  140. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/current_scope_spec.rb +0 -0
  141. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/current_url_spec.rb +107 -0
  142. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/dismiss_confirm_spec.rb +0 -0
  143. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/dismiss_prompt_spec.rb +0 -0
  144. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/element/assert_match_selector.rb +0 -0
  145. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/element/match_css_spec.rb +0 -0
  146. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/element/match_xpath_spec.rb +0 -0
  147. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/element/matches_selector_spec.rb +0 -0
  148. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/evaluate_async_script_spec.rb +22 -0
  149. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/evaluate_script_spec.rb +28 -0
  150. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/execute_script_spec.rb +0 -0
  151. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/fill_in_spec.rb +0 -0
  152. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/find_button_spec.rb +0 -0
  153. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/find_by_id_spec.rb +0 -0
  154. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/find_field_spec.rb +0 -0
  155. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/find_link_spec.rb +0 -0
  156. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/find_spec.rb +0 -0
  157. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/first_spec.rb +0 -0
  158. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +0 -0
  159. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/frame/within_frame_spec.rb +0 -0
  160. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/go_back_spec.rb +0 -0
  161. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/go_forward_spec.rb +0 -0
  162. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_button_spec.rb +0 -0
  163. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_css_spec.rb +0 -0
  164. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/has_current_path_spec.rb +146 -0
  165. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_field_spec.rb +0 -0
  166. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_link_spec.rb +0 -0
  167. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_select_spec.rb +0 -0
  168. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_selector_spec.rb +0 -0
  169. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_table_spec.rb +0 -0
  170. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_text_spec.rb +0 -0
  171. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_title_spec.rb +0 -0
  172. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/has_xpath_spec.rb +0 -0
  173. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/headers.rb +0 -0
  174. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/html_spec.rb +0 -0
  175. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/node_spec.rb +0 -0
  176. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/refresh_spec.rb +0 -0
  177. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/reset_session_spec.rb +0 -0
  178. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/response_code.rb +0 -0
  179. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/save_and_open_page_spec.rb +0 -0
  180. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +0 -0
  181. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/save_page_spec.rb +0 -0
  182. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/save_screenshot_spec.rb +0 -0
  183. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/screenshot_spec.rb +0 -0
  184. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/select_spec.rb +202 -0
  185. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/selectors_spec.rb +0 -0
  186. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/sibling_spec.rb +0 -0
  187. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/source_spec.rb +0 -0
  188. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/text_spec.rb +0 -0
  189. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/title_spec.rb +0 -0
  190. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/uncheck_spec.rb +0 -0
  191. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/unselect_spec.rb +115 -0
  192. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/session/visit_spec.rb +192 -0
  193. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/become_closed_spec.rb +0 -0
  194. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/current_window_spec.rb +0 -0
  195. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/open_new_window_spec.rb +0 -0
  196. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/switch_to_window_spec.rb +0 -0
  197. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/window_opened_by_spec.rb +0 -0
  198. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/window_spec.rb +0 -0
  199. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/windows_spec.rb +0 -0
  200. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/window/within_window_spec.rb +0 -0
  201. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/session/within_spec.rb +0 -0
  202. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/spec_helper.rb +0 -0
  203. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/test_app.rb +0 -0
  204. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/buttons.erb +0 -0
  205. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/fieldsets.erb +0 -0
  206. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/form.erb +0 -0
  207. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/frame_child.erb +0 -0
  208. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/frame_one.erb +0 -0
  209. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/frame_parent.erb +0 -0
  210. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/frame_two.erb +0 -0
  211. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/header_links.erb +0 -0
  212. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/host_links.erb +0 -0
  213. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/path.erb +0 -0
  214. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/popup_one.erb +0 -0
  215. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/popup_two.erb +0 -0
  216. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/postback.erb +0 -0
  217. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/tables.erb +0 -0
  218. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_base_tag.erb +0 -0
  219. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_count.erb +0 -0
  220. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
  221. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_hover.erb +0 -0
  222. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_html.erb +0 -0
  223. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_html_entities.erb +0 -0
  224. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/spec/views/with_js.erb +130 -0
  225. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_scope.erb +0 -0
  226. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_simple_html.erb +0 -0
  227. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_slow_unload.erb +0 -0
  228. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_title.erb +0 -0
  229. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_unload_alert.erb +0 -0
  230. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/with_windows.erb +0 -0
  231. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/spec/views/within_frames.erb +0 -0
  232. data/vendor/bundle/gems/capybara-2.16.1/lib/capybara/version.rb +4 -0
  233. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/lib/capybara/window.rb +0 -0
  234. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/basic_node_spec.rb +0 -0
  235. data/vendor/bundle/gems/capybara-2.16.1/spec/capybara_spec.rb +149 -0
  236. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/dsl_spec.rb +0 -0
  237. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/filter_set_spec.rb +0 -0
  238. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/fixtures/capybara.csv +0 -0
  239. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/fixtures/selenium_driver_rspec_failure.rb +0 -0
  240. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/fixtures/selenium_driver_rspec_success.rb +0 -0
  241. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/minitest_spec.rb +0 -0
  242. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/minitest_spec_spec.rb +0 -0
  243. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/per_session_config_spec.rb +0 -0
  244. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rack_test_spec.rb +0 -0
  245. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/result_spec.rb +0 -0
  246. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rspec/features_spec.rb +0 -0
  247. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rspec/scenarios_spec.rb +0 -0
  248. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rspec/shared_spec_matchers.rb +0 -0
  249. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rspec/views_spec.rb +0 -0
  250. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rspec_matchers_spec.rb +0 -0
  251. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/rspec_spec.rb +0 -0
  252. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/selector_spec.rb +0 -0
  253. data/vendor/bundle/gems/capybara-2.16.1/spec/selenium_spec_chrome.rb +58 -0
  254. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/selenium_spec_firefox.rb +0 -0
  255. data/vendor/bundle/gems/capybara-2.16.1/spec/selenium_spec_marionette.rb +127 -0
  256. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/server_spec.rb +0 -0
  257. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/session_spec.rb +0 -0
  258. data/vendor/bundle/gems/capybara-2.16.1/spec/shared_selenium_session.rb +218 -0
  259. data/vendor/bundle/gems/{capybara-2.15.1 → capybara-2.16.1}/spec/spec_helper.rb +0 -0
  260. data/vendor/bundle/gems/childprocess-0.8.0/CHANGELOG.md +44 -0
  261. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/Gemfile +0 -0
  262. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/LICENSE +0 -0
  263. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/README.md +0 -0
  264. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/Rakefile +0 -0
  265. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/appveyor.yml +0 -0
  266. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/childprocess.gemspec +0 -0
  267. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess.rb +0 -0
  268. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/abstract_io.rb +0 -0
  269. data/vendor/bundle/gems/childprocess-0.8.0/lib/childprocess/abstract_process.rb +192 -0
  270. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/errors.rb +0 -0
  271. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/jruby.rb +0 -0
  272. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/jruby/io.rb +0 -0
  273. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/jruby/process.rb +0 -0
  274. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/jruby/pump.rb +0 -0
  275. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/tools/generator.rb +0 -0
  276. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix.rb +0 -0
  277. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/fork_exec_process.rb +0 -0
  278. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/io.rb +0 -0
  279. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/lib.rb +0 -0
  280. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/platform/i386-linux.rb +0 -0
  281. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/platform/i386-solaris.rb +0 -0
  282. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/platform/x86_64-linux.rb +0 -0
  283. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/platform/x86_64-macosx.rb +0 -0
  284. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/posix_spawn_process.rb +0 -0
  285. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/unix/process.rb +0 -0
  286. data/vendor/bundle/gems/childprocess-0.8.0/lib/childprocess/version.rb +3 -0
  287. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows.rb +0 -0
  288. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows/handle.rb +0 -0
  289. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows/io.rb +0 -0
  290. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows/lib.rb +0 -0
  291. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows/process.rb +0 -0
  292. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows/process_builder.rb +0 -0
  293. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/lib/childprocess/windows/structs.rb +0 -0
  294. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/abstract_io_spec.rb +0 -0
  295. data/vendor/bundle/gems/childprocess-0.8.0/spec/childprocess_spec.rb +391 -0
  296. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/io_spec.rb +0 -0
  297. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/jruby_spec.rb +0 -0
  298. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/pid_behavior.rb +0 -0
  299. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/platform_detection_spec.rb +0 -0
  300. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/spec_helper.rb +0 -0
  301. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/unix_spec.rb +0 -0
  302. data/vendor/bundle/gems/{childprocess-0.7.1 → childprocess-0.8.0}/spec/windows_spec.rb +0 -0
  303. data/vendor/bundle/gems/{fastimage-2.1.0 → fastimage-2.1.1}/MIT-LICENSE +0 -0
  304. data/vendor/bundle/gems/fastimage-2.1.1/README.textile +162 -0
  305. data/vendor/bundle/gems/fastimage-2.1.1/lib/fastimage.rb +777 -0
  306. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/AbstractMemory.o +0 -0
  307. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/ArrayType.o +0 -0
  308. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Buffer.o +0 -0
  309. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Call.o +0 -0
  310. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/ClosurePool.o +0 -0
  311. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/DataConverter.o +0 -0
  312. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/DynamicLibrary.o +0 -0
  313. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Function.o +0 -0
  314. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/FunctionInfo.o +0 -0
  315. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/LastError.o +0 -0
  316. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/LongDouble.o +0 -0
  317. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Makefile +11 -11
  318. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/MappedType.o +0 -0
  319. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/MemoryPointer.o +0 -0
  320. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/MethodHandle.o +0 -0
  321. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Platform.o +0 -0
  322. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Pointer.o +0 -0
  323. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Struct.o +0 -0
  324. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/StructByReference.o +0 -0
  325. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/StructByValue.o +0 -0
  326. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/StructLayout.o +0 -0
  327. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Thread.o +0 -0
  328. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Type.o +0 -0
  329. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Types.o +0 -0
  330. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/Variadic.o +0 -0
  331. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/ffi.o +0 -0
  332. data/vendor/bundle/gems/ffi-1.9.18/ext/ffi_c/ffi_c.so +0 -0
  333. data/vendor/bundle/gems/ffi-1.9.18/lib/ffi_c.so +0 -0
  334. data/vendor/bundle/gems/mail-2.7.0/MIT-LICENSE +20 -0
  335. data/vendor/bundle/gems/mail-2.7.0/README.md +695 -0
  336. data/vendor/bundle/gems/mail-2.7.0/lib/mail.rb +85 -0
  337. data/vendor/bundle/gems/mail-2.7.0/lib/mail/attachments_list.rb +110 -0
  338. data/vendor/bundle/gems/mail-2.7.0/lib/mail/body.rb +322 -0
  339. data/vendor/bundle/gems/mail-2.7.0/lib/mail/check_delivery_params.rb +60 -0
  340. data/vendor/bundle/gems/mail-2.7.0/lib/mail/configuration.rb +78 -0
  341. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/constants.rb +0 -0
  342. data/vendor/bundle/gems/mail-2.7.0/lib/mail/core_extensions/smtp.rb +28 -0
  343. data/vendor/bundle/gems/mail-2.7.0/lib/mail/core_extensions/string.rb +17 -0
  344. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/elements.rb +0 -0
  345. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/address.rb +258 -0
  346. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/address_list.rb +34 -0
  347. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/content_disposition_element.rb +20 -0
  348. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/content_location_element.rb +17 -0
  349. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/content_transfer_encoding_element.rb +13 -0
  350. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/content_type_element.rb +21 -0
  351. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/date_time_element.rb +15 -0
  352. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/envelope_from_element.rb +33 -0
  353. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/message_ids_element.rb +22 -0
  354. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/mime_version_element.rb +15 -0
  355. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/phrase_list.rb +14 -0
  356. data/vendor/bundle/gems/mail-2.7.0/lib/mail/elements/received_element.rb +21 -0
  357. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings.rb +343 -0
  358. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/7bit.rb +22 -0
  359. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/8bit.rb +18 -0
  360. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/base64.rb +38 -0
  361. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/binary.rb +13 -0
  362. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/identity.rb +24 -0
  363. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/quoted_printable.rb +45 -0
  364. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/transfer_encoding.rb +77 -0
  365. data/vendor/bundle/gems/mail-2.7.0/lib/mail/encodings/unix_to_unix.rb +19 -0
  366. data/vendor/bundle/gems/mail-2.7.0/lib/mail/envelope.rb +31 -0
  367. data/vendor/bundle/gems/mail-2.7.0/lib/mail/field.rb +297 -0
  368. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/field_list.rb +0 -0
  369. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/fields.rb +0 -0
  370. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/bcc_field.rb +68 -0
  371. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/cc_field.rb +55 -0
  372. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/comments_field.rb +42 -0
  373. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/fields/common/address_container.rb +0 -0
  374. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/common/common_address.rb +161 -0
  375. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/fields/common/common_date.rb +0 -0
  376. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/common/common_field.rb +52 -0
  377. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/fields/common/common_message_id.rb +0 -0
  378. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/common/parameter_hash.rb +59 -0
  379. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/content_description_field.rb +20 -0
  380. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/content_disposition_field.rb +71 -0
  381. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/content_id_field.rb +63 -0
  382. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/content_location_field.rb +43 -0
  383. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/content_transfer_encoding_field.rb +45 -0
  384. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/content_type_field.rb +197 -0
  385. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/date_field.rb +57 -0
  386. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/from_field.rb +55 -0
  387. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/in_reply_to_field.rb +57 -0
  388. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/keywords_field.rb +44 -0
  389. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/message_id_field.rb +83 -0
  390. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/mime_version_field.rb +54 -0
  391. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/optional_field.rb +17 -0
  392. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/received_field.rb +76 -0
  393. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/references_field.rb +57 -0
  394. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/reply_to_field.rb +55 -0
  395. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_bcc_field.rb +55 -0
  396. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_cc_field.rb +55 -0
  397. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_date_field.rb +35 -0
  398. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_from_field.rb +55 -0
  399. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_message_id_field.rb +35 -0
  400. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_sender_field.rb +62 -0
  401. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/resent_to_field.rb +55 -0
  402. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/return_path_field.rb +65 -0
  403. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/sender_field.rb +67 -0
  404. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/fields/structured_field.rb +0 -0
  405. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/subject_field.rb +17 -0
  406. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/to_field.rb +55 -0
  407. data/vendor/bundle/gems/mail-2.7.0/lib/mail/fields/unstructured_field.rb +222 -0
  408. data/vendor/bundle/gems/mail-2.7.0/lib/mail/header.rb +278 -0
  409. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/indifferent_hash.rb +0 -0
  410. data/vendor/bundle/gems/mail-2.7.0/lib/mail/mail.rb +262 -0
  411. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/matchers/attachment_matchers.rb +0 -0
  412. data/vendor/bundle/gems/mail-2.7.0/lib/mail/matchers/has_sent_mail.rb +201 -0
  413. data/vendor/bundle/gems/mail-2.7.0/lib/mail/message.rb +2171 -0
  414. data/vendor/bundle/gems/mail-2.7.0/lib/mail/multibyte.rb +92 -0
  415. data/vendor/bundle/gems/mail-2.7.0/lib/mail/multibyte/chars.rb +476 -0
  416. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/multibyte/unicode.rb +0 -0
  417. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/multibyte/utils.rb +0 -0
  418. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network.rb +16 -0
  419. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/network/delivery_methods/exim.rb +0 -0
  420. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/network/delivery_methods/file_delivery.rb +0 -0
  421. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network/delivery_methods/logger_delivery.rb +37 -0
  422. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network/delivery_methods/sendmail.rb +95 -0
  423. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network/delivery_methods/smtp.rb +149 -0
  424. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network/delivery_methods/smtp_connection.rb +66 -0
  425. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/network/delivery_methods/test_mailer.rb +0 -0
  426. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/network/retriever_methods/base.rb +0 -0
  427. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network/retriever_methods/imap.rb +187 -0
  428. data/vendor/bundle/gems/mail-2.7.0/lib/mail/network/retriever_methods/pop3.rb +143 -0
  429. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/network/retriever_methods/test_retriever.rb +0 -0
  430. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parser_tools.rb +15 -0
  431. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers.rb +19 -0
  432. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/address_lists_parser.rb +33207 -0
  433. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/address_lists_parser.rl +172 -0
  434. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_disposition_parser.rb +901 -0
  435. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_disposition_parser.rl +82 -0
  436. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_location_parser.rb +813 -0
  437. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_location_parser.rl +71 -0
  438. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_transfer_encoding_parser.rb +522 -0
  439. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_transfer_encoding_parser.rl +64 -0
  440. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_type_parser.rb +1045 -0
  441. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/content_type_parser.rl +83 -0
  442. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/date_time_parser.rb +886 -0
  443. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/date_time_parser.rl +62 -0
  444. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/envelope_from_parser.rb +3574 -0
  445. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/envelope_from_parser.rl +82 -0
  446. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/message_ids_parser.rb +2858 -0
  447. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/message_ids_parser.rl +82 -0
  448. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/mime_version_parser.rb +509 -0
  449. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/mime_version_parser.rl +61 -0
  450. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/phrase_lists_parser.rb +891 -0
  451. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/phrase_lists_parser.rl +83 -0
  452. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/received_parser.rb +8754 -0
  453. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/received_parser.rl +84 -0
  454. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +13 -0
  455. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc2045_content_type.rl +25 -0
  456. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc2045_mime.rl +16 -0
  457. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc2183_content_disposition.rl +15 -0
  458. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc3629_utf8.rl +19 -0
  459. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc5234_abnf_core_rules.rl +22 -0
  460. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc5322.rl +59 -0
  461. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc5322_address.rl +72 -0
  462. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc5322_date_time.rl +37 -0
  463. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parsers/rfc5322_lexical_tokens.rl +60 -0
  464. data/vendor/bundle/gems/mail-2.7.0/lib/mail/part.rb +123 -0
  465. data/vendor/bundle/gems/mail-2.7.0/lib/mail/parts_list.rb +74 -0
  466. data/vendor/bundle/gems/mail-2.7.0/lib/mail/utilities.rb +324 -0
  467. data/vendor/bundle/gems/{mail-2.6.6 → mail-2.7.0}/lib/mail/values/unicode_tables.dat +0 -0
  468. data/vendor/bundle/gems/mail-2.7.0/lib/mail/version.rb +17 -0
  469. data/vendor/bundle/gems/mail-2.7.0/lib/mail/version_specific/ruby_1_8.rb +163 -0
  470. data/vendor/bundle/gems/mail-2.7.0/lib/mail/version_specific/ruby_1_9.rb +278 -0
  471. data/vendor/bundle/gems/mini_mime-1.0.0/CHANGELOG +28 -0
  472. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/CODE_OF_CONDUCT.md +0 -0
  473. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/Gemfile +0 -0
  474. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/LICENSE.txt +0 -0
  475. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/README.md +0 -0
  476. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/Rakefile +0 -0
  477. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/bench/bench.rb +0 -0
  478. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/bin/console +0 -0
  479. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/bin/setup +0 -0
  480. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/lib/db/content_type_mime.db +0 -0
  481. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/lib/db/ext_mime.db +0 -0
  482. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/lib/mini_mime.rb +0 -0
  483. data/vendor/bundle/gems/mini_mime-1.0.0/lib/mini_mime/version.rb +3 -0
  484. data/vendor/bundle/gems/{mini_mime-0.1.4 → mini_mime-1.0.0}/mini_mime.gemspec +0 -0
  485. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/Makefile +11 -11
  486. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/html_document.o +0 -0
  487. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/html_element_description.o +0 -0
  488. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/html_entity_lookup.o +0 -0
  489. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/html_sax_parser_context.o +0 -0
  490. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/html_sax_push_parser.o +0 -0
  491. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/nokogiri.o +0 -0
  492. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/nokogiri.so +0 -0
  493. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_attr.o +0 -0
  494. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_attribute_decl.o +0 -0
  495. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_cdata.o +0 -0
  496. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_comment.o +0 -0
  497. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_document.o +0 -0
  498. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_document_fragment.o +0 -0
  499. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_dtd.o +0 -0
  500. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_element_content.o +0 -0
  501. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_element_decl.o +0 -0
  502. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_encoding_handler.o +0 -0
  503. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_entity_decl.o +0 -0
  504. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_entity_reference.o +0 -0
  505. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_io.o +0 -0
  506. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_libxml2_hacks.o +0 -0
  507. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_namespace.o +0 -0
  508. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_node.o +0 -0
  509. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_node_set.o +0 -0
  510. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_processing_instruction.o +0 -0
  511. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_reader.o +0 -0
  512. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_relax_ng.o +0 -0
  513. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_sax_parser.o +0 -0
  514. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_sax_parser_context.o +0 -0
  515. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_sax_push_parser.o +0 -0
  516. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_schema.o +0 -0
  517. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_syntax_error.o +0 -0
  518. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_text.o +0 -0
  519. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xml_xpath_context.o +0 -0
  520. data/vendor/bundle/gems/nokogiri-1.8.1/ext/nokogiri/xslt_stylesheet.o +0 -0
  521. data/vendor/bundle/gems/nokogiri-1.8.1/lib/nokogiri/nokogiri.so +0 -0
  522. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/CONTRIBUTING.md +0 -0
  523. data/vendor/bundle/gems/octokit-4.8.0/LICENSE.md +20 -0
  524. data/vendor/bundle/gems/octokit-4.8.0/README.md +740 -0
  525. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/Rakefile +0 -0
  526. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/ext/sawyer/relation.rb +0 -0
  527. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit.rb +0 -0
  528. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/arguments.rb +0 -0
  529. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/authentication.rb +0 -0
  530. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client.rb +240 -0
  531. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/apps.rb +164 -0
  532. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/authorizations.rb +0 -0
  533. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/commit_comments.rb +0 -0
  534. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/commits.rb +0 -0
  535. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/contents.rb +0 -0
  536. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/deployments.rb +0 -0
  537. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/downloads.rb +0 -0
  538. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/emojis.rb +0 -0
  539. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/events.rb +0 -0
  540. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/feeds.rb +0 -0
  541. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/gists.rb +0 -0
  542. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/gitignore.rb +0 -0
  543. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/hooks.rb +0 -0
  544. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/issues.rb +334 -0
  545. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/labels.rb +0 -0
  546. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/legacy_search.rb +0 -0
  547. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/licenses.rb +45 -0
  548. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/markdown.rb +0 -0
  549. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/marketplace.rb +60 -0
  550. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/meta.rb +0 -0
  551. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/milestones.rb +0 -0
  552. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/notifications.rb +167 -0
  553. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/objects.rb +0 -0
  554. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/organizations.rb +785 -0
  555. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/pages.rb +0 -0
  556. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/projects.rb +0 -0
  557. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/pub_sub_hubbub.rb +0 -0
  558. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/pull_requests.rb +0 -0
  559. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/rate_limit.rb +0 -0
  560. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/reactions.rb +0 -0
  561. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/refs.rb +0 -0
  562. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/releases.rb +0 -0
  563. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/repositories.rb +653 -0
  564. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/repository_invitations.rb +0 -0
  565. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/client/reviews.rb +165 -0
  566. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/say.rb +0 -0
  567. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/search.rb +0 -0
  568. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/service_status.rb +0 -0
  569. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/source_import.rb +0 -0
  570. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/stats.rb +0 -0
  571. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/statuses.rb +0 -0
  572. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/traffic.rb +0 -0
  573. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/client/users.rb +0 -0
  574. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/configurable.rb +0 -0
  575. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/connection.rb +0 -0
  576. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/default.rb +0 -0
  577. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_admin_client.rb +0 -0
  578. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_admin_client/admin_stats.rb +0 -0
  579. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_admin_client/license.rb +0 -0
  580. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_admin_client/orgs.rb +0 -0
  581. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_admin_client/search_indexing.rb +0 -0
  582. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_admin_client/users.rb +0 -0
  583. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_management_console_client.rb +0 -0
  584. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/enterprise_management_console_client/management_console.rb +0 -0
  585. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/error.rb +300 -0
  586. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/gist.rb +0 -0
  587. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/middleware/follow_redirects.rb +0 -0
  588. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/organization.rb +0 -0
  589. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/preview.rb +39 -0
  590. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/rate_limit.rb +0 -0
  591. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/repo_arguments.rb +0 -0
  592. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/repository.rb +95 -0
  593. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/response/feed_parser.rb +0 -0
  594. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/response/raise_error.rb +0 -0
  595. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/user.rb +0 -0
  596. data/vendor/bundle/gems/octokit-4.8.0/lib/octokit/version.rb +17 -0
  597. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/lib/octokit/warnable.rb +0 -0
  598. data/vendor/bundle/gems/{octokit-4.7.0 → octokit-4.8.0}/octokit.gemspec +0 -0
  599. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/BSDL +0 -0
  600. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/COPYING +0 -0
  601. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/Gemfile +0 -0
  602. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/LEGAL +0 -0
  603. data/vendor/bundle/gems/power_assert-1.1.1/README.rdoc +74 -0
  604. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/Rakefile +0 -0
  605. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/bin/console +0 -0
  606. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/bin/setup +0 -0
  607. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/lib/power_assert.rb +0 -0
  608. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/lib/power_assert/colorize.rb +0 -0
  609. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/lib/power_assert/configuration.rb +0 -0
  610. data/vendor/bundle/gems/power_assert-1.1.1/lib/power_assert/context.rb +218 -0
  611. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/lib/power_assert/enable_tracepoint_events.rb +0 -0
  612. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/lib/power_assert/inspector.rb +0 -0
  613. data/vendor/bundle/gems/power_assert-1.1.1/lib/power_assert/parser.rb +243 -0
  614. data/vendor/bundle/gems/power_assert-1.1.1/lib/power_assert/version.rb +3 -0
  615. data/vendor/bundle/gems/{power_assert-1.1.0 → power_assert-1.1.1}/power_assert.gemspec +0 -0
  616. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/2.0-Upgrade.md +0 -0
  617. data/vendor/bundle/gems/public_suffix-3.0.1/CHANGELOG.md +330 -0
  618. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/Gemfile +0 -0
  619. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/LICENSE.txt +0 -0
  620. data/vendor/bundle/gems/public_suffix-3.0.1/README.md +202 -0
  621. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/Rakefile +0 -0
  622. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/bin/console +0 -0
  623. data/vendor/bundle/gems/public_suffix-3.0.1/data/list.txt +12288 -0
  624. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/lib/public_suffix.rb +0 -0
  625. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/lib/public_suffix/domain.rb +0 -0
  626. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/lib/public_suffix/errors.rb +0 -0
  627. data/vendor/bundle/gems/public_suffix-3.0.1/lib/public_suffix/list.rb +243 -0
  628. data/vendor/bundle/gems/public_suffix-3.0.1/lib/public_suffix/rule.rb +348 -0
  629. data/vendor/bundle/gems/public_suffix-3.0.1/lib/public_suffix/version.rb +10 -0
  630. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/public_suffix.gemspec +0 -0
  631. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/acceptance_test.rb +0 -0
  632. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/benchmarks/bm_find.rb +0 -0
  633. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/benchmarks/bm_find_all.rb +0 -0
  634. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/benchmarks/bm_names.rb +0 -0
  635. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/benchmarks/bm_select.rb +0 -0
  636. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/benchmarks/bm_select_incremental.rb +0 -0
  637. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/benchmarks/bm_valid.rb +0 -0
  638. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/profilers/domain_profiler.rb +0 -0
  639. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/profilers/find_profiler.rb +0 -0
  640. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/profilers/find_profiler_jp.rb +0 -0
  641. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/profilers/initialization_profiler.rb +0 -0
  642. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/profilers/list_profsize.rb +0 -0
  643. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/profilers/object_binsize.rb +0 -0
  644. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/psl_test.rb +0 -0
  645. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/test_helper.rb +0 -0
  646. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/tests.txt +0 -0
  647. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/unit/domain_test.rb +0 -0
  648. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/unit/errors_test.rb +0 -0
  649. data/vendor/bundle/gems/public_suffix-3.0.1/test/unit/list_test.rb +239 -0
  650. data/vendor/bundle/gems/public_suffix-3.0.1/test/unit/public_suffix_test.rb +186 -0
  651. data/vendor/bundle/gems/{public_suffix-3.0.0 → public_suffix-3.0.1}/test/unit/rule_test.rb +0 -0
  652. data/vendor/bundle/gems/rack-test-0.8.2/History.md +218 -0
  653. data/vendor/bundle/gems/{rack-test-0.7.0 → rack-test-0.8.2}/MIT-LICENSE.txt +0 -0
  654. data/vendor/bundle/gems/rack-test-0.8.2/README.md +139 -0
  655. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/mock_session.rb +63 -0
  656. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test.rb +319 -0
  657. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test/cookie_jar.rb +192 -0
  658. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test/methods.rb +83 -0
  659. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test/mock_digest_request.rb +25 -0
  660. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test/uploaded_file.rb +84 -0
  661. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test/utils.rb +144 -0
  662. data/vendor/bundle/gems/rack-test-0.8.2/lib/rack/test/version.rb +5 -0
  663. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/CONTRIBUTING.rdoc +0 -0
  664. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/Gemfile +0 -0
  665. data/vendor/bundle/gems/rake-12.3.0/History.rdoc +2299 -0
  666. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/MIT-LICENSE +0 -0
  667. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/README.rdoc +0 -0
  668. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/Rakefile +0 -0
  669. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/bin/console +0 -0
  670. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/bin/setup +0 -0
  671. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/command_line_usage.rdoc +0 -0
  672. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/example/Rakefile1 +0 -0
  673. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/example/Rakefile2 +0 -0
  674. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/example/a.c +0 -0
  675. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/example/b.c +0 -0
  676. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/example/main.c +0 -0
  677. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/glossary.rdoc +0 -0
  678. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/jamis.rb +0 -0
  679. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/proto_rake.rdoc +0 -0
  680. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/rake.1 +0 -0
  681. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/rakefile.rdoc +0 -0
  682. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/doc/rational.rdoc +0 -0
  683. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/exe/rake +0 -0
  684. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake.rb +0 -0
  685. data/vendor/bundle/gems/rake-12.3.0/lib/rake/application.rb +824 -0
  686. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/backtrace.rb +0 -0
  687. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/clean.rb +0 -0
  688. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/cloneable.rb +0 -0
  689. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/cpu_counter.rb +0 -0
  690. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/default_loader.rb +0 -0
  691. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/dsl_definition.rb +0 -0
  692. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/early_time.rb +0 -0
  693. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/ext/core.rb +0 -0
  694. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/ext/string.rb +0 -0
  695. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/file_creation_task.rb +0 -0
  696. data/vendor/bundle/gems/rake-12.3.0/lib/rake/file_list.rb +435 -0
  697. data/vendor/bundle/gems/rake-12.3.0/lib/rake/file_task.rb +54 -0
  698. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/file_utils.rb +0 -0
  699. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/file_utils_ext.rb +0 -0
  700. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/invocation_chain.rb +0 -0
  701. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/invocation_exception_mixin.rb +0 -0
  702. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/late_time.rb +0 -0
  703. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/linked_list.rb +0 -0
  704. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/loaders/makefile.rb +0 -0
  705. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/multi_task.rb +0 -0
  706. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/name_space.rb +0 -0
  707. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/packagetask.rb +0 -0
  708. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/phony.rb +0 -0
  709. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/private_reader.rb +0 -0
  710. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/promise.rb +0 -0
  711. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/pseudo_status.rb +0 -0
  712. data/vendor/bundle/gems/rake-12.3.0/lib/rake/rake_module.rb +67 -0
  713. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/rake_test_loader.rb +0 -0
  714. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/rule_recursion_overflow_error.rb +0 -0
  715. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/scope.rb +0 -0
  716. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/task.rb +0 -0
  717. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/task_argument_error.rb +0 -0
  718. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/task_arguments.rb +0 -0
  719. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/task_manager.rb +0 -0
  720. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/tasklib.rb +0 -0
  721. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/testtask.rb +0 -0
  722. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/thread_history_display.rb +0 -0
  723. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/thread_pool.rb +0 -0
  724. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/trace_output.rb +0 -0
  725. data/vendor/bundle/gems/rake-12.3.0/lib/rake/version.rb +10 -0
  726. data/vendor/bundle/gems/{rake-12.1.0 → rake-12.3.0}/lib/rake/win32.rb +0 -0
  727. data/vendor/bundle/gems/rake-12.3.0/rake.gemspec +43 -0
  728. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/Makefile +11 -11
  729. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/autolink.o +0 -0
  730. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/buffer.o +0 -0
  731. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini_href_e.o +0 -0
  732. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/houdini_html_e.o +0 -0
  733. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html.o +0 -0
  734. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/html_smartypants.o +0 -0
  735. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/markdown.o +0 -0
  736. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/rc_markdown.o +0 -0
  737. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/rc_render.o +0 -0
  738. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/redcarpet.so +0 -0
  739. data/vendor/bundle/gems/redcarpet-3.4.0/ext/redcarpet/stack.o +0 -0
  740. data/vendor/bundle/gems/redcarpet-3.4.0/lib/redcarpet.so +0 -0
  741. data/vendor/bundle/gems/{rspec-3.6.0 → rspec-3.7.0}/LICENSE.md +0 -0
  742. data/vendor/bundle/gems/{rspec-3.6.0 → rspec-3.7.0}/README.md +0 -0
  743. data/vendor/bundle/gems/{rspec-3.6.0 → rspec-3.7.0}/lib/rspec.rb +0 -0
  744. data/vendor/bundle/gems/rspec-3.7.0/lib/rspec/version.rb +5 -0
  745. data/vendor/bundle/gems/rspec-core-3.7.0/Changelog.md +2187 -0
  746. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/LICENSE.md +0 -0
  747. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/README.md +0 -0
  748. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/exe/rspec +0 -0
  749. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/autorun.rb +0 -0
  750. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core.rb +0 -0
  751. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/backtrace_formatter.rb +0 -0
  752. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/bisect/coordinator.rb +0 -0
  753. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/bisect/example_minimizer.rb +0 -0
  754. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/bisect/runner.rb +0 -0
  755. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/bisect/server.rb +0 -0
  756. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/configuration.rb +2179 -0
  757. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/configuration_options.rb +0 -0
  758. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/drb.rb +113 -0
  759. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/dsl.rb +0 -0
  760. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/example.rb +653 -0
  761. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/example_group.rb +884 -0
  762. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/example_status_persister.rb +0 -0
  763. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/filter_manager.rb +0 -0
  764. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/flat_map.rb +0 -0
  765. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters.rb +0 -0
  766. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  767. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/base_text_formatter.rb +0 -0
  768. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/bisect_formatter.rb +0 -0
  769. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -0
  770. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/console_codes.rb +0 -0
  771. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/formatters/deprecation_formatter.rb +221 -0
  772. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/documentation_formatter.rb +0 -0
  773. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/exception_presenter.rb +0 -0
  774. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -0
  775. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/helpers.rb +0 -0
  776. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/html_formatter.rb +0 -0
  777. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_printer.rb +416 -0
  778. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  779. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  780. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/profile_formatter.rb +0 -0
  781. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/progress_formatter.rb +0 -0
  782. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/protocol.rb +0 -0
  783. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/snippet_extractor.rb +0 -0
  784. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/formatters/syntax_highlighter.rb +0 -0
  785. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/hooks.rb +626 -0
  786. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/invocations.rb +0 -0
  787. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/memoized_helpers.rb +0 -0
  788. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/metadata.rb +0 -0
  789. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/metadata_filter.rb +0 -0
  790. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/minitest_assertions_adapter.rb +0 -0
  791. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/mocking_adapters/flexmock.rb +0 -0
  792. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/mocking_adapters/mocha.rb +0 -0
  793. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/mocking_adapters/null.rb +0 -0
  794. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/mocking_adapters/rr.rb +0 -0
  795. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/mocking_adapters/rspec.rb +0 -0
  796. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/notifications.rb +521 -0
  797. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/option_parser.rb +309 -0
  798. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/ordering.rb +0 -0
  799. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/output_wrapper.rb +0 -0
  800. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/pending.rb +0 -0
  801. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/profiler.rb +0 -0
  802. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/project_initializer.rb +0 -0
  803. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -0
  804. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/rake_task.rb +0 -0
  805. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/reporter.rb +0 -0
  806. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/ruby_project.rb +0 -0
  807. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/runner.rb +0 -0
  808. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/sandbox.rb +0 -0
  809. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/set.rb +0 -0
  810. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/shared_context.rb +0 -0
  811. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/shared_example_group.rb +0 -0
  812. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/shell_escape.rb +0 -0
  813. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/test_unit_assertions_adapter.rb +0 -0
  814. data/vendor/bundle/gems/rspec-core-3.7.0/lib/rspec/core/version.rb +9 -0
  815. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/warnings.rb +0 -0
  816. data/vendor/bundle/gems/{rspec-core-3.6.0 → rspec-core-3.7.0}/lib/rspec/core/world.rb +0 -0
  817. data/vendor/bundle/gems/rspec-expectations-3.7.0/Changelog.md +1083 -0
  818. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/LICENSE.md +0 -0
  819. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/README.md +0 -0
  820. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations.rb +0 -0
  821. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/block_snippet_extractor.rb +0 -0
  822. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/configuration.rb +0 -0
  823. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/expectation_target.rb +0 -0
  824. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/fail_with.rb +0 -0
  825. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/failure_aggregator.rb +0 -0
  826. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/handler.rb +0 -0
  827. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/minitest_integration.rb +0 -0
  828. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/expectations/syntax.rb +0 -0
  829. data/vendor/bundle/gems/rspec-expectations-3.7.0/lib/rspec/expectations/version.rb +8 -0
  830. data/vendor/bundle/gems/rspec-expectations-3.7.0/lib/rspec/matchers.rb +1031 -0
  831. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/aliased_matcher.rb +0 -0
  832. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in.rb +0 -0
  833. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/all.rb +0 -0
  834. data/vendor/bundle/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  835. data/vendor/bundle/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/be.rb +288 -0
  836. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/be_between.rb +0 -0
  837. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/be_instance_of.rb +0 -0
  838. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/be_kind_of.rb +0 -0
  839. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/be_within.rb +0 -0
  840. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/change.rb +0 -0
  841. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/compound.rb +0 -0
  842. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/contain_exactly.rb +0 -0
  843. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/cover.rb +0 -0
  844. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/eq.rb +0 -0
  845. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/eql.rb +0 -0
  846. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/equal.rb +0 -0
  847. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/exist.rb +0 -0
  848. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/has.rb +0 -0
  849. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/have_attributes.rb +0 -0
  850. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/include.rb +0 -0
  851. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/match.rb +0 -0
  852. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/operators.rb +0 -0
  853. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/output.rb +0 -0
  854. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/raise_error.rb +0 -0
  855. data/vendor/bundle/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  856. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/satisfy.rb +0 -0
  857. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -0
  858. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/built_in/throw_symbol.rb +0 -0
  859. data/vendor/bundle/gems/rspec-expectations-3.7.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  860. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/composable.rb +0 -0
  861. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/dsl.rb +0 -0
  862. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/english_phrasing.rb +0 -0
  863. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -0
  864. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/fail_matchers.rb +0 -0
  865. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/generated_descriptions.rb +0 -0
  866. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/matcher_delegator.rb +0 -0
  867. data/vendor/bundle/gems/{rspec-expectations-3.6.0 → rspec-expectations-3.7.0}/lib/rspec/matchers/matcher_protocol.rb +0 -0
  868. data/vendor/bundle/gems/rspec-mocks-3.7.0/Changelog.md +1089 -0
  869. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/LICENSE.md +0 -0
  870. data/vendor/bundle/gems/rspec-mocks-3.7.0/README.md +460 -0
  871. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks.rb +0 -0
  872. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance.rb +0 -0
  873. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/chain.rb +0 -0
  874. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/error_generator.rb +0 -0
  875. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -0
  876. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -0
  877. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/message_chains.rb +0 -0
  878. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/proxy.rb +0 -0
  879. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/recorder.rb +0 -0
  880. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/stub_chain.rb +0 -0
  881. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -0
  882. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/argument_list_matcher.rb +0 -0
  883. data/vendor/bundle/gems/rspec-mocks-3.7.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  884. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/configuration.rb +0 -0
  885. data/vendor/bundle/gems/rspec-mocks-3.7.0/lib/rspec/mocks/error_generator.rb +369 -0
  886. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/example_methods.rb +0 -0
  887. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/instance_method_stasher.rb +0 -0
  888. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/marshal_extension.rb +0 -0
  889. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/matchers/expectation_customization.rb +0 -0
  890. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/matchers/have_received.rb +0 -0
  891. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/matchers/receive.rb +0 -0
  892. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -0
  893. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/matchers/receive_messages.rb +0 -0
  894. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/message_chain.rb +0 -0
  895. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/message_expectation.rb +0 -0
  896. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/method_double.rb +0 -0
  897. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/method_reference.rb +0 -0
  898. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/minitest_integration.rb +0 -0
  899. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/mutate_const.rb +0 -0
  900. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/object_reference.rb +0 -0
  901. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/order_group.rb +0 -0
  902. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/proxy.rb +0 -0
  903. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/space.rb +0 -0
  904. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/standalone.rb +0 -0
  905. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/syntax.rb +0 -0
  906. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/targets.rb +0 -0
  907. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/test_double.rb +0 -0
  908. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/verifying_double.rb +0 -0
  909. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/verifying_message_expectation.rb +0 -0
  910. data/vendor/bundle/gems/{rspec-mocks-3.6.0 → rspec-mocks-3.7.0}/lib/rspec/mocks/verifying_proxy.rb +0 -0
  911. data/vendor/bundle/gems/rspec-mocks-3.7.0/lib/rspec/mocks/version.rb +9 -0
  912. data/vendor/bundle/gems/rspec-support-3.7.0/Changelog.md +229 -0
  913. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/LICENSE.md +0 -0
  914. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/README.md +0 -0
  915. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support.rb +149 -0
  916. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/caller_filter.rb +0 -0
  917. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/comparable_version.rb +0 -0
  918. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support/differ.rb +215 -0
  919. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/directory_maker.rb +0 -0
  920. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/encoded_string.rb +0 -0
  921. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/fuzzy_matcher.rb +0 -0
  922. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/hunk_generator.rb +0 -0
  923. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/matcher_definition.rb +0 -0
  924. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/method_signature_verifier.rb +0 -0
  925. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/mutex.rb +0 -0
  926. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support/object_formatter.rb +267 -0
  927. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  928. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/reentrant_mutex.rb +0 -0
  929. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support/ruby_features.rb +162 -0
  930. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/source.rb +0 -0
  931. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/source/location.rb +0 -0
  932. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/source/node.rb +0 -0
  933. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/source/token.rb +0 -0
  934. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec.rb +0 -0
  935. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/deprecation_helpers.rb +0 -0
  936. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/formatting_support.rb +0 -0
  937. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/in_sub_process.rb +0 -0
  938. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/library_wide_checks.rb +0 -0
  939. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/shell_out.rb +0 -0
  940. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/stderr_splitter.rb +0 -0
  941. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/string_matcher.rb +0 -0
  942. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/with_isolated_directory.rb +0 -0
  943. data/vendor/bundle/gems/{rspec-support-3.6.0 → rspec-support-3.7.0}/lib/rspec/support/spec/with_isolated_stderr.rb +0 -0
  944. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support/version.rb +7 -0
  945. data/vendor/bundle/gems/rspec-support-3.7.0/lib/rspec/support/warnings.rb +39 -0
  946. data/vendor/bundle/gems/selenium-webdriver-3.8.0/CHANGES +1349 -0
  947. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/Gemfile +0 -0
  948. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/LICENSE +0 -0
  949. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/README.md +0 -0
  950. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium-webdriver.rb +18 -0
  951. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/server.rb +268 -0
  952. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver.rb +97 -0
  953. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/lib/selenium/webdriver/atoms.rb +0 -0
  954. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
  955. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/chrome.rb +47 -0
  956. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/chrome/driver.rb +112 -0
  957. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/chrome/options.rb +168 -0
  958. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/chrome/profile.rb +109 -0
  959. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/chrome/service.rb +59 -0
  960. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common.rb +70 -0
  961. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/action_builder.rb +363 -0
  962. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/alert.rb +45 -0
  963. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/bridge_helper.rb +79 -0
  964. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver.rb +293 -0
  965. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +48 -0
  966. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_location.rb +40 -0
  967. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +56 -0
  968. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +28 -0
  969. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +37 -0
  970. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +34 -0
  971. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +36 -0
  972. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +59 -0
  973. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +62 -0
  974. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +60 -0
  975. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/element.rb +333 -0
  976. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/error.rb +326 -0
  977. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/file_reaper.rb +65 -0
  978. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/html5/local_storage.rb +57 -0
  979. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/html5/session_storage.rb +59 -0
  980. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/html5/shared_web_storage.rb +50 -0
  981. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/input_device.rb +51 -0
  982. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/interaction.rb +50 -0
  983. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/interactions.rb +41 -0
  984. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/key_actions.rb +143 -0
  985. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/key_input.rb +62 -0
  986. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/none_input.rb +33 -0
  987. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/pointer_actions.rb +353 -0
  988. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/interactions/pointer_input.rb +132 -0
  989. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/keyboard.rb +67 -0
  990. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/keys.rb +143 -0
  991. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/log_entry.rb +46 -0
  992. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/logger.rb +140 -0
  993. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/logs.rb +38 -0
  994. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/mouse.rb +86 -0
  995. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/navigation.rb +58 -0
  996. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/options.rb +151 -0
  997. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/platform.rb +221 -0
  998. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/port_prober.rb +60 -0
  999. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/profile_helper.rb +81 -0
  1000. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/proxy.rb +154 -0
  1001. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/search_context.rb +110 -0
  1002. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/service.rb +161 -0
  1003. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/socket_lock.rb +75 -0
  1004. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/socket_poller.rb +117 -0
  1005. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/target_locator.rb +109 -0
  1006. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/timeouts.rb +53 -0
  1007. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/touch_action_builder.rb +79 -0
  1008. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/touch_screen.rb +120 -0
  1009. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/w3c_action_builder.rb +209 -0
  1010. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/w3c_options.rb +43 -0
  1011. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/wait.rb +75 -0
  1012. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/window.rb +161 -0
  1013. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/common/zipper.rb +97 -0
  1014. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/edge.rb +37 -0
  1015. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/edge/bridge.rb +74 -0
  1016. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/edge/driver.rb +73 -0
  1017. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/edge/service.rb +55 -0
  1018. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox.rb +60 -0
  1019. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/binary.rb +186 -0
  1020. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/driver.rb +48 -0
  1021. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/extension.rb +95 -0
  1022. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/lib/selenium/webdriver/firefox/extension/prefs.json +0 -0
  1023. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  1024. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/launcher.rb +108 -0
  1025. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/legacy/driver.rb +79 -0
  1026. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/marionette/bridge.rb +47 -0
  1027. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/marionette/driver.rb +96 -0
  1028. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  1029. data/vendor/bundle/gems/{selenium-webdriver-3.5.2 → selenium-webdriver-3.8.0}/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  1030. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/options.rb +149 -0
  1031. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/profile.rb +282 -0
  1032. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/profiles_ini.rb +71 -0
  1033. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/service.rb +63 -0
  1034. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/firefox/util.rb +44 -0
  1035. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/ie.rb +35 -0
  1036. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/ie/driver.rb +90 -0
  1037. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/ie/options.rb +136 -0
  1038. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/ie/service.rb +58 -0
  1039. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote.rb +33 -0
  1040. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/bridge.rb +190 -0
  1041. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/capabilities.rb +269 -0
  1042. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/driver.rb +49 -0
  1043. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/http/common.rb +95 -0
  1044. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/http/curb.rb +95 -0
  1045. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/http/default.rb +176 -0
  1046. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/http/persistent.rb +58 -0
  1047. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/oss/bridge.rb +586 -0
  1048. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/oss/commands.rb +221 -0
  1049. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/response.rb +128 -0
  1050. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/server_error.rb +32 -0
  1051. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/w3c/bridge.rb +573 -0
  1052. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/w3c/capabilities.rb +290 -0
  1053. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/remote/w3c/commands.rb +148 -0
  1054. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/safari.rb +56 -0
  1055. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/safari/driver.rb +57 -0
  1056. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/safari/service.rb +57 -0
  1057. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support.rb +23 -0
  1058. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support/abstract_event_listener.rb +85 -0
  1059. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support/block_event_listener.rb +32 -0
  1060. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support/color.rb +144 -0
  1061. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support/escaper.rb +41 -0
  1062. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support/event_firing_bridge.rb +127 -0
  1063. data/vendor/bundle/gems/selenium-webdriver-3.8.0/lib/selenium/webdriver/support/select.rb +269 -0
  1064. data/vendor/bundle/gems/selenium-webdriver-3.8.0/selenium-webdriver.gemspec +31 -0
  1065. data/vendor/bundle/gems/sequel-5.3.0/CHANGELOG +7152 -0
  1066. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/MIT-LICENSE +0 -0
  1067. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/README.rdoc +0 -0
  1068. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/Rakefile +0 -0
  1069. data/vendor/bundle/gems/sequel-5.3.0/bin/sequel +250 -0
  1070. data/vendor/bundle/gems/sequel-5.3.0/doc/advanced_associations.rdoc +764 -0
  1071. data/vendor/bundle/gems/sequel-5.3.0/doc/association_basics.rdoc +1759 -0
  1072. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/bin_sequel.rdoc +0 -0
  1073. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/cheat_sheet.rdoc +0 -0
  1074. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/code_order.rdoc +0 -0
  1075. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/core_extensions.rdoc +0 -0
  1076. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/dataset_basics.rdoc +0 -0
  1077. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/dataset_filtering.rdoc +0 -0
  1078. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/extensions.rdoc +0 -0
  1079. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/mass_assignment.rdoc +0 -0
  1080. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/migration.rdoc +0 -0
  1081. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/model_dataset_method_design.rdoc +0 -0
  1082. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/model_hooks.rdoc +0 -0
  1083. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/model_plugins.rdoc +0 -0
  1084. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/mssql_stored_procedures.rdoc +0 -0
  1085. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/object_model.rdoc +0 -0
  1086. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/opening_databases.rdoc +0 -0
  1087. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/postgresql.rdoc +0 -0
  1088. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/prepared_statements.rdoc +0 -0
  1089. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/querying.rdoc +0 -0
  1090. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/reflection.rdoc +0 -0
  1091. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/1.0.txt +0 -0
  1092. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/1.1.txt +0 -0
  1093. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/1.3.txt +0 -0
  1094. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/1.4.0.txt +0 -0
  1095. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/1.5.0.txt +0 -0
  1096. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.0.0.txt +0 -0
  1097. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.1.0.txt +0 -0
  1098. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.10.0.txt +0 -0
  1099. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.11.0.txt +0 -0
  1100. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.12.0.txt +0 -0
  1101. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.2.0.txt +0 -0
  1102. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.3.0.txt +0 -0
  1103. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.4.0.txt +0 -0
  1104. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.5.0.txt +0 -0
  1105. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.6.0.txt +0 -0
  1106. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.7.0.txt +0 -0
  1107. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.8.0.txt +0 -0
  1108. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/2.9.0.txt +0 -0
  1109. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.0.0.txt +0 -0
  1110. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.1.0.txt +0 -0
  1111. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.10.0.txt +0 -0
  1112. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.11.0.txt +0 -0
  1113. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.12.0.txt +0 -0
  1114. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.13.0.txt +0 -0
  1115. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.14.0.txt +0 -0
  1116. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.15.0.txt +0 -0
  1117. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.16.0.txt +0 -0
  1118. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.17.0.txt +0 -0
  1119. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.18.0.txt +0 -0
  1120. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.19.0.txt +0 -0
  1121. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.2.0.txt +0 -0
  1122. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.20.0.txt +0 -0
  1123. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.21.0.txt +0 -0
  1124. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.22.0.txt +0 -0
  1125. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.23.0.txt +0 -0
  1126. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.24.0.txt +0 -0
  1127. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.25.0.txt +0 -0
  1128. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.26.0.txt +0 -0
  1129. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.27.0.txt +0 -0
  1130. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.28.0.txt +0 -0
  1131. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.29.0.txt +0 -0
  1132. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.3.0.txt +0 -0
  1133. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.30.0.txt +0 -0
  1134. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.31.0.txt +0 -0
  1135. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.32.0.txt +0 -0
  1136. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.33.0.txt +0 -0
  1137. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.34.0.txt +0 -0
  1138. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.35.0.txt +0 -0
  1139. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.36.0.txt +0 -0
  1140. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.37.0.txt +0 -0
  1141. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.38.0.txt +0 -0
  1142. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.39.0.txt +0 -0
  1143. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.4.0.txt +0 -0
  1144. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.40.0.txt +0 -0
  1145. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.41.0.txt +0 -0
  1146. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.42.0.txt +0 -0
  1147. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.43.0.txt +0 -0
  1148. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.44.0.txt +0 -0
  1149. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.45.0.txt +0 -0
  1150. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.46.0.txt +0 -0
  1151. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.47.0.txt +0 -0
  1152. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.48.0.txt +0 -0
  1153. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.5.0.txt +0 -0
  1154. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.6.0.txt +0 -0
  1155. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.7.0.txt +0 -0
  1156. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.8.0.txt +0 -0
  1157. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/3.9.0.txt +0 -0
  1158. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.0.0.txt +0 -0
  1159. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.1.0.txt +0 -0
  1160. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.10.0.txt +0 -0
  1161. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.11.0.txt +0 -0
  1162. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.12.0.txt +0 -0
  1163. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.13.0.txt +0 -0
  1164. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.14.0.txt +0 -0
  1165. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.15.0.txt +0 -0
  1166. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.16.0.txt +0 -0
  1167. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.17.0.txt +0 -0
  1168. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.18.0.txt +0 -0
  1169. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.19.0.txt +0 -0
  1170. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.2.0.txt +0 -0
  1171. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.20.0.txt +0 -0
  1172. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.21.0.txt +0 -0
  1173. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.22.0.txt +0 -0
  1174. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.23.0.txt +0 -0
  1175. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.24.0.txt +0 -0
  1176. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.25.0.txt +0 -0
  1177. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.26.0.txt +0 -0
  1178. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.27.0.txt +0 -0
  1179. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.28.0.txt +0 -0
  1180. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.29.0.txt +0 -0
  1181. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.3.0.txt +0 -0
  1182. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.30.0.txt +0 -0
  1183. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.31.0.txt +0 -0
  1184. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.32.0.txt +0 -0
  1185. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.33.0.txt +0 -0
  1186. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.34.0.txt +0 -0
  1187. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.35.0.txt +0 -0
  1188. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.36.0.txt +0 -0
  1189. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.37.0.txt +0 -0
  1190. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.38.0.txt +0 -0
  1191. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.39.0.txt +0 -0
  1192. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.4.0.txt +0 -0
  1193. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.40.0.txt +0 -0
  1194. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.41.0.txt +0 -0
  1195. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.42.0.txt +0 -0
  1196. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.43.0.txt +0 -0
  1197. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.44.0.txt +0 -0
  1198. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.45.0.txt +0 -0
  1199. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.46.0.txt +0 -0
  1200. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.47.0.txt +0 -0
  1201. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.48.0.txt +0 -0
  1202. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.49.0.txt +0 -0
  1203. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.5.0.txt +0 -0
  1204. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.6.0.txt +0 -0
  1205. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.7.0.txt +0 -0
  1206. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.8.0.txt +0 -0
  1207. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/4.9.0.txt +0 -0
  1208. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/release_notes/5.0.0.txt +0 -0
  1209. data/vendor/bundle/gems/sequel-5.3.0/doc/release_notes/5.1.0.txt +31 -0
  1210. data/vendor/bundle/gems/sequel-5.3.0/doc/release_notes/5.2.0.txt +33 -0
  1211. data/vendor/bundle/gems/sequel-5.3.0/doc/release_notes/5.3.0.txt +121 -0
  1212. data/vendor/bundle/gems/sequel-5.3.0/doc/schema_modification.rdoc +679 -0
  1213. data/vendor/bundle/gems/sequel-5.3.0/doc/security.rdoc +433 -0
  1214. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/sharding.rdoc +0 -0
  1215. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/sql.rdoc +0 -0
  1216. data/vendor/bundle/gems/sequel-5.3.0/doc/testing.rdoc +167 -0
  1217. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/thread_safety.rdoc +0 -0
  1218. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/transactions.rdoc +0 -0
  1219. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/validations.rdoc +0 -0
  1220. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/doc/virtual_rows.rdoc +0 -0
  1221. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel.rb +0 -0
  1222. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/ado.rb +0 -0
  1223. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/ado/access.rb +0 -0
  1224. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/ado/mssql.rb +0 -0
  1225. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/amalgalite.rb +0 -0
  1226. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/ibmdb.rb +0 -0
  1227. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/jdbc.rb +785 -0
  1228. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/db2.rb +0 -0
  1229. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/derby.rb +0 -0
  1230. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/jdbc/h2.rb +237 -0
  1231. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/jdbc/hsqldb.rb +220 -0
  1232. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/jtds.rb +0 -0
  1233. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/mssql.rb +0 -0
  1234. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/jdbc/mysql.rb +89 -0
  1235. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/oracle.rb +0 -0
  1236. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/jdbc/postgresql.rb +247 -0
  1237. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/sqlanywhere.rb +0 -0
  1238. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/sqlite.rb +0 -0
  1239. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/sqlserver.rb +0 -0
  1240. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/jdbc/transactions.rb +0 -0
  1241. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/mock.rb +0 -0
  1242. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/mysql.rb +0 -0
  1243. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/mysql2.rb +0 -0
  1244. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/odbc.rb +0 -0
  1245. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/odbc/db2.rb +0 -0
  1246. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/odbc/mssql.rb +0 -0
  1247. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/odbc/oracle.rb +0 -0
  1248. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/oracle.rb +410 -0
  1249. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/postgres.rb +753 -0
  1250. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/postgresql.rb +0 -0
  1251. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/shared/access.rb +0 -0
  1252. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/shared/db2.rb +0 -0
  1253. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/shared/mssql.rb +0 -0
  1254. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/shared/mysql.rb +973 -0
  1255. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/shared/oracle.rb +0 -0
  1256. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/shared/postgres.rb +1770 -0
  1257. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/shared/sqlanywhere.rb +0 -0
  1258. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/shared/sqlite.rb +789 -0
  1259. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/sqlanywhere.rb +0 -0
  1260. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/sqlite.rb +0 -0
  1261. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/tinytds.rb +0 -0
  1262. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +0 -0
  1263. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +0 -0
  1264. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/adapters/utils/mysql_mysql2.rb +83 -0
  1265. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/mysql_prepared_statements.rb +0 -0
  1266. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/replace.rb +0 -0
  1267. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/split_alter_table.rb +0 -0
  1268. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/stored_procedures.rb +0 -0
  1269. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/adapters/utils/unmodified_identifiers.rb +0 -0
  1270. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/ast_transformer.rb +0 -0
  1271. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/connection_pool.rb +147 -0
  1272. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/connection_pool/sharded_single.rb +0 -0
  1273. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/connection_pool/sharded_threaded.rb +0 -0
  1274. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/connection_pool/single.rb +0 -0
  1275. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/connection_pool/threaded.rb +0 -0
  1276. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/core.rb +0 -0
  1277. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database.rb +0 -0
  1278. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/connecting.rb +0 -0
  1279. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/dataset.rb +0 -0
  1280. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/dataset_defaults.rb +0 -0
  1281. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/features.rb +0 -0
  1282. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/logging.rb +0 -0
  1283. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/database/misc.rb +537 -0
  1284. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/query.rb +0 -0
  1285. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/database/schema_generator.rb +632 -0
  1286. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/schema_methods.rb +0 -0
  1287. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/database/transactions.rb +0 -0
  1288. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/dataset.rb +0 -0
  1289. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/dataset/actions.rb +1223 -0
  1290. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/dataset/dataset_module.rb +46 -0
  1291. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/dataset/features.rb +216 -0
  1292. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/dataset/graph.rb +0 -0
  1293. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/dataset/misc.rb +0 -0
  1294. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/dataset/placeholder_literalizer.rb +0 -0
  1295. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/dataset/prepared_statements.rb +0 -0
  1296. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/dataset/query.rb +1320 -0
  1297. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/dataset/sql.rb +1537 -0
  1298. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/deprecated.rb +0 -0
  1299. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/exceptions.rb +0 -0
  1300. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/_model_constraint_validations.rb +0 -0
  1301. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/_model_pg_row.rb +0 -0
  1302. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/_pretty_table.rb +0 -0
  1303. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/arbitrary_servers.rb +0 -0
  1304. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/auto_literal_strings.rb +0 -0
  1305. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/blank.rb +0 -0
  1306. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/columns_introspection.rb +0 -0
  1307. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/connection_expiration.rb +0 -0
  1308. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/connection_validator.rb +0 -0
  1309. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/constraint_validations.rb +0 -0
  1310. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/core_extensions.rb +0 -0
  1311. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/core_refinements.rb +0 -0
  1312. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/current_datetime_timestamp.rb +0 -0
  1313. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/dataset_source_alias.rb +0 -0
  1314. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/date_arithmetic.rb +0 -0
  1315. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/duplicate_columns_handler.rb +0 -0
  1316. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/empty_array_consider_nulls.rb +0 -0
  1317. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/error_sql.rb +0 -0
  1318. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/eval_inspect.rb +0 -0
  1319. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/freeze_datasets.rb +0 -0
  1320. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/from_block.rb +0 -0
  1321. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/graph_each.rb +0 -0
  1322. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/identifier_mangling.rb +0 -0
  1323. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/implicit_subquery.rb +0 -0
  1324. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/inflector.rb +0 -0
  1325. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/looser_typecasting.rb +0 -0
  1326. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/extensions/migration.rb +796 -0
  1327. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +0 -0
  1328. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/named_timezones.rb +0 -0
  1329. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/no_auto_literal_strings.rb +0 -0
  1330. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/null_dataset.rb +0 -0
  1331. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pagination.rb +0 -0
  1332. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_array.rb +0 -0
  1333. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_array_ops.rb +0 -0
  1334. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_enum.rb +0 -0
  1335. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/extensions/pg_extended_date_support.rb +230 -0
  1336. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_hstore.rb +0 -0
  1337. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_hstore_ops.rb +0 -0
  1338. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/extensions/pg_inet.rb +117 -0
  1339. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_inet_ops.rb +0 -0
  1340. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_interval.rb +0 -0
  1341. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_json.rb +0 -0
  1342. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_json_ops.rb +0 -0
  1343. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_loose_count.rb +0 -0
  1344. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_range.rb +0 -0
  1345. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_range_ops.rb +0 -0
  1346. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_row.rb +0 -0
  1347. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_row_ops.rb +0 -0
  1348. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pg_static_cache_updater.rb +0 -0
  1349. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/pretty_table.rb +0 -0
  1350. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/query.rb +0 -0
  1351. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/round_timestamps.rb +0 -0
  1352. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/s.rb +0 -0
  1353. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/schema_caching.rb +0 -0
  1354. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/schema_dumper.rb +0 -0
  1355. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/select_remove.rb +0 -0
  1356. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/sequel_4_dataset_methods.rb +0 -0
  1357. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/server_block.rb +0 -0
  1358. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/server_logging.rb +0 -0
  1359. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/split_array_nil.rb +0 -0
  1360. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/sql_comments.rb +0 -0
  1361. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/sql_expr.rb +0 -0
  1362. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/string_agg.rb +0 -0
  1363. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/string_date_time.rb +0 -0
  1364. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/symbol_aref.rb +0 -0
  1365. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/symbol_aref_refinement.rb +0 -0
  1366. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/symbol_as.rb +0 -0
  1367. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/symbol_as_refinement.rb +0 -0
  1368. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/extensions/synchronize_sql.rb +45 -0
  1369. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/thread_local_timezones.rb +0 -0
  1370. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/to_dot.rb +0 -0
  1371. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/extensions/virtual_row_method_block.rb +0 -0
  1372. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model.rb +0 -0
  1373. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/model/associations.rb +3456 -0
  1374. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/model/base.rb +2156 -0
  1375. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model/dataset_module.rb +0 -0
  1376. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model/default_inflections.rb +0 -0
  1377. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model/errors.rb +0 -0
  1378. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model/exceptions.rb +0 -0
  1379. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model/inflections.rb +0 -0
  1380. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/model/plugins.rb +0 -0
  1381. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/accessed_columns.rb +0 -0
  1382. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/active_model.rb +0 -0
  1383. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/after_initialize.rb +0 -0
  1384. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/association_dependencies.rb +0 -0
  1385. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/association_pks.rb +0 -0
  1386. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/association_proxies.rb +0 -0
  1387. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/auto_validations.rb +0 -0
  1388. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/before_after_save.rb +0 -0
  1389. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/blacklist_security.rb +0 -0
  1390. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/boolean_readers.rb +0 -0
  1391. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/boolean_subsets.rb +0 -0
  1392. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/caching.rb +0 -0
  1393. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/plugins/class_table_inheritance.rb +403 -0
  1394. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/column_conflicts.rb +0 -0
  1395. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/column_select.rb +0 -0
  1396. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/columns_updated.rb +0 -0
  1397. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/composition.rb +0 -0
  1398. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/constraint_validations.rb +0 -0
  1399. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/csv_serializer.rb +0 -0
  1400. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/dataset_associations.rb +0 -0
  1401. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/def_dataset_method.rb +0 -0
  1402. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/defaults_setter.rb +0 -0
  1403. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/delay_add_association.rb +0 -0
  1404. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/dirty.rb +0 -0
  1405. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/eager_each.rb +0 -0
  1406. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/error_splitter.rb +0 -0
  1407. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/finder.rb +0 -0
  1408. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/force_encoding.rb +0 -0
  1409. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/hook_class_methods.rb +0 -0
  1410. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/input_transformer.rb +0 -0
  1411. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/insert_returning_select.rb +0 -0
  1412. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/instance_filters.rb +0 -0
  1413. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/instance_hooks.rb +0 -0
  1414. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/inverted_subsets.rb +0 -0
  1415. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/json_serializer.rb +0 -0
  1416. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/lazy_attributes.rb +0 -0
  1417. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/list.rb +0 -0
  1418. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/many_through_many.rb +0 -0
  1419. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/modification_detection.rb +0 -0
  1420. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/mssql_optimistic_locking.rb +0 -0
  1421. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/nested_attributes.rb +0 -0
  1422. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/optimistic_locking.rb +0 -0
  1423. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/pg_array_associations.rb +0 -0
  1424. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/pg_row.rb +0 -0
  1425. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/prepared_statements.rb +0 -0
  1426. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/prepared_statements_safe.rb +0 -0
  1427. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/rcte_tree.rb +0 -0
  1428. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/serialization.rb +0 -0
  1429. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/serialization_modification_detection.rb +0 -0
  1430. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/sharding.rb +0 -0
  1431. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/single_table_inheritance.rb +0 -0
  1432. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/singular_table_names.rb +0 -0
  1433. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/skip_create_refresh.rb +0 -0
  1434. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/split_values.rb +0 -0
  1435. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/static_cache.rb +0 -0
  1436. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/string_stripper.rb +0 -0
  1437. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/subclasses.rb +0 -0
  1438. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/subset_conditions.rb +0 -0
  1439. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/table_select.rb +0 -0
  1440. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/tactical_eager_loading.rb +0 -0
  1441. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/timestamps.rb +0 -0
  1442. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/touch.rb +0 -0
  1443. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/tree.rb +0 -0
  1444. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/typecast_on_load.rb +0 -0
  1445. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/unlimited_update.rb +0 -0
  1446. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/update_or_create.rb +0 -0
  1447. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/update_primary_key.rb +0 -0
  1448. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/update_refresh.rb +0 -0
  1449. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/uuid.rb +0 -0
  1450. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/validate_associated.rb +0 -0
  1451. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/validation_class_methods.rb +0 -0
  1452. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/validation_contexts.rb +0 -0
  1453. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/plugins/validation_helpers.rb +316 -0
  1454. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/whitelist_security.rb +0 -0
  1455. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/plugins/xml_serializer.rb +0 -0
  1456. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/lib/sequel/sql.rb +0 -0
  1457. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/timezones.rb +210 -0
  1458. data/vendor/bundle/gems/sequel-5.3.0/lib/sequel/version.rb +20 -0
  1459. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapter_spec.rb +0 -0
  1460. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapters/db2_spec.rb +0 -0
  1461. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapters/mssql_spec.rb +0 -0
  1462. data/vendor/bundle/gems/sequel-5.3.0/spec/adapters/mysql_spec.rb +1042 -0
  1463. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapters/oracle_spec.rb +0 -0
  1464. data/vendor/bundle/gems/sequel-5.3.0/spec/adapters/postgres_spec.rb +3673 -0
  1465. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapters/spec_helper.rb +0 -0
  1466. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapters/sqlanywhere_spec.rb +0 -0
  1467. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/adapters/sqlite_spec.rb +0 -0
  1468. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/bin_spec.rb +0 -0
  1469. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/connection_pool_spec.rb +0 -0
  1470. data/vendor/bundle/gems/sequel-5.3.0/spec/core/database_spec.rb +2673 -0
  1471. data/vendor/bundle/gems/sequel-5.3.0/spec/core/dataset_spec.rb +5393 -0
  1472. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/deprecated_spec.rb +0 -0
  1473. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/expression_filters_spec.rb +0 -0
  1474. data/vendor/bundle/gems/sequel-5.3.0/spec/core/mock_adapter_spec.rb +722 -0
  1475. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/object_graph_spec.rb +0 -0
  1476. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/placeholder_literalizer_spec.rb +0 -0
  1477. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/schema_generator_spec.rb +0 -0
  1478. data/vendor/bundle/gems/sequel-5.3.0/spec/core/schema_spec.rb +1801 -0
  1479. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/spec_helper.rb +0 -0
  1480. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core/version_spec.rb +0 -0
  1481. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core_extensions_spec.rb +0 -0
  1482. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core_model_spec.rb +0 -0
  1483. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/core_spec.rb +0 -0
  1484. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/deprecation_helper.rb +0 -0
  1485. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/accessed_columns_spec.rb +0 -0
  1486. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/active_model_spec.rb +0 -0
  1487. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/after_initialize_spec.rb +0 -0
  1488. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/arbitrary_servers_spec.rb +0 -0
  1489. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/association_dependencies_spec.rb +0 -0
  1490. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/association_pks_spec.rb +423 -0
  1491. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/association_proxies_spec.rb +0 -0
  1492. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/auto_literal_strings_spec.rb +0 -0
  1493. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/auto_validations_spec.rb +0 -0
  1494. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/blacklist_security_spec.rb +0 -0
  1495. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/blank_spec.rb +0 -0
  1496. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/boolean_readers_spec.rb +0 -0
  1497. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/boolean_subsets_spec.rb +0 -0
  1498. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/caching_spec.rb +0 -0
  1499. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/class_table_inheritance_spec.rb +518 -0
  1500. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/column_conflicts_spec.rb +0 -0
  1501. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/column_select_spec.rb +0 -0
  1502. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/columns_introspection_spec.rb +0 -0
  1503. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/columns_updated_spec.rb +0 -0
  1504. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/composition_spec.rb +248 -0
  1505. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/connection_expiration_spec.rb +0 -0
  1506. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/connection_validator_spec.rb +0 -0
  1507. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/constraint_validations_plugin_spec.rb +0 -0
  1508. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/constraint_validations_spec.rb +0 -0
  1509. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/core_refinements_spec.rb +0 -0
  1510. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/csv_serializer_spec.rb +0 -0
  1511. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/current_datetime_timestamp_spec.rb +0 -0
  1512. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/dataset_associations_spec.rb +0 -0
  1513. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/dataset_source_alias_spec.rb +0 -0
  1514. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/date_arithmetic_spec.rb +0 -0
  1515. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/def_dataset_method_spec.rb +0 -0
  1516. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/defaults_setter_spec.rb +0 -0
  1517. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/delay_add_association_spec.rb +0 -0
  1518. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/dirty_spec.rb +0 -0
  1519. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/duplicate_columns_handler_spec.rb +0 -0
  1520. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/eager_each_spec.rb +0 -0
  1521. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/empty_array_consider_nulls_spec.rb +0 -0
  1522. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/error_splitter_spec.rb +0 -0
  1523. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/error_sql_spec.rb +0 -0
  1524. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/eval_inspect_spec.rb +0 -0
  1525. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/finder_spec.rb +0 -0
  1526. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/force_encoding_spec.rb +0 -0
  1527. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/freeze_datasets_spec.rb +0 -0
  1528. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/graph_each_spec.rb +0 -0
  1529. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/hook_class_methods_spec.rb +0 -0
  1530. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/identifier_mangling_spec.rb +0 -0
  1531. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/implicit_subquery_spec.rb +0 -0
  1532. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/inflector_spec.rb +0 -0
  1533. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/input_transformer_spec.rb +0 -0
  1534. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/insert_returning_select_spec.rb +0 -0
  1535. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/instance_filters_spec.rb +0 -0
  1536. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/instance_hooks_spec.rb +0 -0
  1537. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/inverted_subsets_spec.rb +0 -0
  1538. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/json_serializer_spec.rb +0 -0
  1539. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/lazy_attributes_spec.rb +0 -0
  1540. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/list_spec.rb +275 -0
  1541. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/looser_typecasting_spec.rb +0 -0
  1542. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/many_through_many_spec.rb +2177 -0
  1543. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/migration_spec.rb +804 -0
  1544. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/modification_detection_spec.rb +0 -0
  1545. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/mssql_optimistic_locking_spec.rb +0 -0
  1546. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/named_timezones_spec.rb +0 -0
  1547. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/nested_attributes_spec.rb +0 -0
  1548. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/null_dataset_spec.rb +0 -0
  1549. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/optimistic_locking_spec.rb +127 -0
  1550. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pagination_spec.rb +0 -0
  1551. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/pg_array_associations_spec.rb +790 -0
  1552. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_array_ops_spec.rb +0 -0
  1553. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_array_spec.rb +0 -0
  1554. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_enum_spec.rb +0 -0
  1555. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/pg_extended_date_support_spec.rb +122 -0
  1556. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_hstore_ops_spec.rb +0 -0
  1557. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/pg_hstore_spec.rb +208 -0
  1558. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_inet_ops_spec.rb +0 -0
  1559. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_inet_spec.rb +0 -0
  1560. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_interval_spec.rb +0 -0
  1561. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_json_ops_spec.rb +0 -0
  1562. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_json_spec.rb +0 -0
  1563. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_loose_count_spec.rb +0 -0
  1564. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_range_ops_spec.rb +0 -0
  1565. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_range_spec.rb +0 -0
  1566. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_row_ops_spec.rb +0 -0
  1567. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_row_plugin_spec.rb +0 -0
  1568. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_row_spec.rb +0 -0
  1569. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/pg_static_cache_updater_spec.rb +0 -0
  1570. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/prepared_statements_safe_spec.rb +66 -0
  1571. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/prepared_statements_spec.rb +0 -0
  1572. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/pretty_table_spec.rb +123 -0
  1573. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/query_spec.rb +0 -0
  1574. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/rcte_tree_spec.rb +381 -0
  1575. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/round_timestamps_spec.rb +0 -0
  1576. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/s_spec.rb +0 -0
  1577. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/schema_caching_spec.rb +0 -0
  1578. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/schema_dumper_spec.rb +868 -0
  1579. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/select_remove_spec.rb +0 -0
  1580. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/sequel_4_dataset_methods_spec.rb +0 -0
  1581. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/serialization_modification_detection_spec.rb +0 -0
  1582. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/serialization_spec.rb +365 -0
  1583. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/server_block_spec.rb +0 -0
  1584. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/server_logging_spec.rb +0 -0
  1585. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/sharding_spec.rb +0 -0
  1586. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/shared_caching_spec.rb +0 -0
  1587. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/single_table_inheritance_spec.rb +0 -0
  1588. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/singular_table_names_spec.rb +0 -0
  1589. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/skip_create_refresh_spec.rb +0 -0
  1590. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/spec_helper.rb +0 -0
  1591. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/split_array_nil_spec.rb +0 -0
  1592. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/split_values_spec.rb +0 -0
  1593. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/sql_comments_spec.rb +0 -0
  1594. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/sql_expr_spec.rb +0 -0
  1595. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/static_cache_spec.rb +0 -0
  1596. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/string_agg_spec.rb +0 -0
  1597. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/string_date_time_spec.rb +0 -0
  1598. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/string_stripper_spec.rb +0 -0
  1599. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/subclasses_spec.rb +0 -0
  1600. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/subset_conditions_spec.rb +0 -0
  1601. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/symbol_aref_refinement_spec.rb +0 -0
  1602. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/symbol_as_refinement_spec.rb +0 -0
  1603. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/synchronize_sql_spec.rb +124 -0
  1604. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/table_select_spec.rb +0 -0
  1605. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/tactical_eager_loading_spec.rb +0 -0
  1606. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/thread_local_timezones_spec.rb +0 -0
  1607. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/timestamps_spec.rb +209 -0
  1608. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/to_dot_spec.rb +0 -0
  1609. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/touch_spec.rb +0 -0
  1610. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/tree_spec.rb +0 -0
  1611. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/typecast_on_load_spec.rb +0 -0
  1612. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/unlimited_update_spec.rb +0 -0
  1613. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/update_or_create_spec.rb +83 -0
  1614. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/update_primary_key_spec.rb +0 -0
  1615. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/update_refresh_spec.rb +0 -0
  1616. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/uuid_spec.rb +101 -0
  1617. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/validate_associated_spec.rb +0 -0
  1618. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/validation_class_methods_spec.rb +0 -0
  1619. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/validation_contexts_spec.rb +0 -0
  1620. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/validation_helpers_spec.rb +0 -0
  1621. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/extensions/whitelist_security_spec.rb +0 -0
  1622. data/vendor/bundle/gems/sequel-5.3.0/spec/extensions/xml_serializer_spec.rb +206 -0
  1623. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -0
  1624. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -0
  1625. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -0
  1626. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -0
  1627. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -0
  1628. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -0
  1629. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -0
  1630. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -0
  1631. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -0
  1632. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -0
  1633. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -0
  1634. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -0
  1635. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/double_migration/001_create_sessions.rb +0 -0
  1636. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/double_migration/002_create_nodes.rb +0 -0
  1637. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/double_migration/003_3_create_users.rb +0 -0
  1638. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -0
  1639. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -0
  1640. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -0
  1641. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -0
  1642. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -0
  1643. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/empty_migration/001_create_sessions.rb +0 -0
  1644. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/empty_migration/002_create_nodes.rb +0 -0
  1645. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/empty_migration/003_3_create_users.rb +0 -0
  1646. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/integer_migrations/001_create_sessions.rb +0 -0
  1647. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/integer_migrations/002_create_nodes.rb +0 -0
  1648. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/integer_migrations/003_3_create_users.rb +0 -0
  1649. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -0
  1650. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -0
  1651. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -0
  1652. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -0
  1653. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -0
  1654. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -0
  1655. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -0
  1656. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -0
  1657. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -0
  1658. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/001_reversible.rb +0 -0
  1659. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/002_reversible.rb +0 -0
  1660. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/003_reversible.rb +0 -0
  1661. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/004_reversible.rb +0 -0
  1662. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/005_reversible.rb +0 -0
  1663. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/006_reversible.rb +0 -0
  1664. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/reversible_migrations/007_reversible.rb +0 -0
  1665. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -0
  1666. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -0
  1667. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -0
  1668. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -0
  1669. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -0
  1670. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -0
  1671. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -0
  1672. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -0
  1673. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -0
  1674. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -0
  1675. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/guards_helper.rb +0 -0
  1676. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/associations_test.rb +0 -0
  1677. data/vendor/bundle/gems/sequel-5.3.0/spec/integration/database_test.rb +113 -0
  1678. data/vendor/bundle/gems/sequel-5.3.0/spec/integration/dataset_test.rb +1848 -0
  1679. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/eager_loader_test.rb +0 -0
  1680. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/migrator_test.rb +0 -0
  1681. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/model_test.rb +0 -0
  1682. data/vendor/bundle/gems/sequel-5.3.0/spec/integration/plugin_test.rb +2302 -0
  1683. data/vendor/bundle/gems/sequel-5.3.0/spec/integration/prepared_statement_test.rb +398 -0
  1684. data/vendor/bundle/gems/sequel-5.3.0/spec/integration/schema_test.rb +867 -0
  1685. data/vendor/bundle/gems/sequel-5.3.0/spec/integration/spec_helper.rb +66 -0
  1686. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/timezone_test.rb +0 -0
  1687. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/transaction_test.rb +0 -0
  1688. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/integration/type_test.rb +0 -0
  1689. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/association_reflection_spec.rb +0 -0
  1690. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/associations_spec.rb +0 -0
  1691. data/vendor/bundle/gems/sequel-5.3.0/spec/model/base_spec.rb +817 -0
  1692. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/class_dataset_methods_spec.rb +0 -0
  1693. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/dataset_methods_spec.rb +0 -0
  1694. data/vendor/bundle/gems/sequel-5.3.0/spec/model/eager_loading_spec.rb +2262 -0
  1695. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/hooks_spec.rb +0 -0
  1696. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/inflector_spec.rb +0 -0
  1697. data/vendor/bundle/gems/sequel-5.3.0/spec/model/model_spec.rb +953 -0
  1698. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/plugins_spec.rb +0 -0
  1699. data/vendor/bundle/gems/sequel-5.3.0/spec/model/record_spec.rb +2079 -0
  1700. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/spec_helper.rb +0 -0
  1701. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model/validations_spec.rb +0 -0
  1702. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model_no_assoc_spec.rb +0 -0
  1703. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/model_spec.rb +0 -0
  1704. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/plugin_spec.rb +0 -0
  1705. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/sequel_coverage.rb +0 -0
  1706. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/sequel_warning.rb +0 -0
  1707. data/vendor/bundle/gems/{sequel-5.0.0 → sequel-5.3.0}/spec/spec_config.rb +0 -0
  1708. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/Makefile +11 -11
  1709. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/backup.o +0 -0
  1710. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/database.o +0 -0
  1711. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/exception.o +0 -0
  1712. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/sqlite3.o +0 -0
  1713. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/sqlite3_native.so +0 -0
  1714. data/vendor/bundle/gems/sqlite3-1.3.13/ext/sqlite3/statement.o +0 -0
  1715. data/vendor/bundle/gems/sqlite3-1.3.13/lib/sqlite3/sqlite3_native.so +0 -0
  1716. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/COPYING +0 -0
  1717. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/GPL +0 -0
  1718. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/LGPL +0 -0
  1719. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/PSFL +0 -0
  1720. data/vendor/bundle/gems/test-unit-3.2.7/README.md +101 -0
  1721. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/Rakefile +0 -0
  1722. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/doc/text/getting-started.md +0 -0
  1723. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/doc/text/how-to.md +0 -0
  1724. data/vendor/bundle/gems/test-unit-3.2.7/doc/text/news.md +1296 -0
  1725. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test-unit.rb +0 -0
  1726. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit.rb +0 -0
  1727. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/assertion-failed-error.rb +0 -0
  1728. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/assertions.rb +0 -0
  1729. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/attribute-matcher.rb +0 -0
  1730. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/attribute.rb +0 -0
  1731. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/auto-runner-loader.rb +0 -0
  1732. data/vendor/bundle/gems/test-unit-3.2.7/lib/test/unit/autorunner.rb +533 -0
  1733. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/code-snippet-fetcher.rb +0 -0
  1734. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/collector.rb +0 -0
  1735. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/collector/descendant.rb +0 -0
  1736. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/collector/dir.rb +0 -0
  1737. data/vendor/bundle/gems/test-unit-3.2.7/lib/test/unit/collector/load.rb +199 -0
  1738. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/collector/objectspace.rb +0 -0
  1739. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/collector/xml.rb +0 -0
  1740. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/color-scheme.rb +0 -0
  1741. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/color.rb +0 -0
  1742. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/data.rb +0 -0
  1743. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/diff.rb +0 -0
  1744. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/error.rb +0 -0
  1745. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/exception-handler.rb +0 -0
  1746. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/failure.rb +0 -0
  1747. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/fault-location-detector.rb +0 -0
  1748. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/fixture.rb +0 -0
  1749. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/notification.rb +0 -0
  1750. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/omission.rb +0 -0
  1751. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/pending.rb +0 -0
  1752. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/priority.rb +0 -0
  1753. data/vendor/bundle/gems/test-unit-3.2.7/lib/test/unit/runner/console.rb +84 -0
  1754. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/runner/emacs.rb +0 -0
  1755. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/runner/xml.rb +0 -0
  1756. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/test-suite-creator.rb +0 -0
  1757. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/testcase.rb +0 -0
  1758. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/testresult.rb +0 -0
  1759. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/testsuite.rb +0 -0
  1760. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/ui/console/outputlevel.rb +0 -0
  1761. data/vendor/bundle/gems/test-unit-3.2.7/lib/test/unit/ui/console/testrunner.rb +731 -0
  1762. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/ui/emacs/testrunner.rb +0 -0
  1763. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/ui/testrunner.rb +0 -0
  1764. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/ui/testrunnermediator.rb +0 -0
  1765. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/ui/testrunnerutilities.rb +0 -0
  1766. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/ui/xml/testrunner.rb +0 -0
  1767. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/util/backtracefilter.rb +0 -0
  1768. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/util/method-owner-finder.rb +0 -0
  1769. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/util/observable.rb +0 -0
  1770. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/util/output.rb +0 -0
  1771. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/lib/test/unit/util/procwrapper.rb +0 -0
  1772. data/vendor/bundle/gems/test-unit-3.2.7/lib/test/unit/version.rb +5 -0
  1773. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/sample/adder.rb +0 -0
  1774. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/sample/subtracter.rb +0 -0
  1775. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/sample/test_adder.rb +0 -0
  1776. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/sample/test_subtracter.rb +0 -0
  1777. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/sample/test_user.rb +0 -0
  1778. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/collector/test-descendant.rb +0 -0
  1779. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/collector/test-load.rb +0 -0
  1780. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/collector/test_dir.rb +0 -0
  1781. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/collector/test_objectspace.rb +0 -0
  1782. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/header-label.csv +0 -0
  1783. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/header-label.tsv +0 -0
  1784. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/header.csv +0 -0
  1785. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/header.tsv +0 -0
  1786. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/no-header.csv +0 -0
  1787. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/no-header.tsv +0 -0
  1788. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/fixtures/plus.csv +0 -0
  1789. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/run-test.rb +0 -0
  1790. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-assertions.rb +0 -0
  1791. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-attribute-matcher.rb +0 -0
  1792. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-attribute.rb +0 -0
  1793. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-code-snippet.rb +0 -0
  1794. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-color-scheme.rb +0 -0
  1795. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-color.rb +0 -0
  1796. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-data.rb +0 -0
  1797. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-diff.rb +0 -0
  1798. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-emacs-runner.rb +0 -0
  1799. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-error.rb +0 -0
  1800. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-failure.rb +0 -0
  1801. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-fault-location-detector.rb +0 -0
  1802. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-fixture.rb +0 -0
  1803. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-notification.rb +0 -0
  1804. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-omission.rb +0 -0
  1805. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-pending.rb +0 -0
  1806. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-priority.rb +0 -0
  1807. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-test-case.rb +0 -0
  1808. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-test-result.rb +0 -0
  1809. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-test-suite-creator.rb +0 -0
  1810. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/test-test-suite.rb +0 -0
  1811. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/testunit-test-util.rb +0 -0
  1812. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/ui/test_testrunmediator.rb +0 -0
  1813. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/util/test-method-owner-finder.rb +0 -0
  1814. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/util/test-output.rb +0 -0
  1815. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/util/test_backtracefilter.rb +0 -0
  1816. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/util/test_observable.rb +0 -0
  1817. data/vendor/bundle/gems/{test-unit-3.2.5 → test-unit-3.2.7}/test/util/test_procwrapper.rb +0 -0
  1818. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/COPYING +0 -0
  1819. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/Gemfile +0 -0
  1820. data/vendor/bundle/gems/tins-1.16.3/README.md +94 -0
  1821. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/Rakefile +0 -0
  1822. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/TODO +0 -0
  1823. data/vendor/bundle/gems/tins-1.16.3/VERSION +1 -0
  1824. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/add_one.png +0 -0
  1825. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/add_one.stm +0 -0
  1826. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/bb3.png +0 -0
  1827. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/bb3.stm +0 -0
  1828. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/concatenate_compare.mtm +0 -0
  1829. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/concatenate_compare.png +0 -0
  1830. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/length_difference.mtm +0 -0
  1831. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/length_difference.png +0 -0
  1832. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/let.rb +0 -0
  1833. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/mail.rb +0 -0
  1834. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/minsky.rb +0 -0
  1835. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/multiply.reg +0 -0
  1836. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/null_pattern.rb +0 -0
  1837. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/ones_difference-mtm.png +0 -0
  1838. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/ones_difference-stm.png +0 -0
  1839. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/ones_difference.mtm +0 -0
  1840. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/ones_difference.stm +0 -0
  1841. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/prefix-equals-suffix-reversed-with-infix.png +0 -0
  1842. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/prefix-equals-suffix-reversed-with-infix.stm +0 -0
  1843. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/recipe.rb +0 -0
  1844. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/recipe2.rb +0 -0
  1845. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/recipe_common.rb +0 -0
  1846. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/subtract.reg +0 -0
  1847. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/turing-graph.rb +0 -0
  1848. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/examples/turing.rb +0 -0
  1849. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/dslkit.rb +0 -0
  1850. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/dslkit/polite.rb +0 -0
  1851. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/dslkit/rude.rb +0 -0
  1852. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/spruz.rb +0 -0
  1853. data/vendor/bundle/gems/tins-1.16.3/lib/tins.rb +60 -0
  1854. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/alias.rb +0 -0
  1855. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/annotate.rb +0 -0
  1856. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/ask_and_send.rb +0 -0
  1857. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/attempt.rb +0 -0
  1858. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/bijection.rb +0 -0
  1859. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/case_predicate.rb +0 -0
  1860. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/complete.rb +0 -0
  1861. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/concern.rb +0 -0
  1862. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/count_by.rb +0 -0
  1863. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/date_dummy.rb +0 -0
  1864. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/date_time_dummy.rb +0 -0
  1865. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/deep_const_get.rb +0 -0
  1866. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/deep_dup.rb +0 -0
  1867. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/dslkit.rb +0 -0
  1868. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/duration.rb +0 -0
  1869. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/expose.rb +0 -0
  1870. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/extract_last_argument_options.rb +0 -0
  1871. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/file_binary.rb +0 -0
  1872. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/find.rb +0 -0
  1873. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/generator.rb +0 -0
  1874. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/go.rb +0 -0
  1875. data/vendor/bundle/gems/tins-1.16.3/lib/tins/hash_symbolize_keys_recursive.rb +27 -0
  1876. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/hash_union.rb +0 -0
  1877. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/if_predicate.rb +0 -0
  1878. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/implement.rb +0 -0
  1879. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/limited.rb +0 -0
  1880. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/lines_file.rb +0 -0
  1881. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/memoize.rb +0 -0
  1882. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/method_description.rb +0 -0
  1883. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/minimize.rb +0 -0
  1884. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/module_group.rb +0 -0
  1885. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/named_set.rb +0 -0
  1886. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/null.rb +0 -0
  1887. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/once.rb +0 -0
  1888. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/p.rb +0 -0
  1889. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/partial_application.rb +0 -0
  1890. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/proc_compose.rb +0 -0
  1891. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/proc_prelude.rb +0 -0
  1892. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/range_plus.rb +0 -0
  1893. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/require_maybe.rb +0 -0
  1894. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/responding.rb +0 -0
  1895. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/secure_write.rb +0 -0
  1896. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/sexy_singleton.rb +0 -0
  1897. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/string_byte_order_mark.rb +0 -0
  1898. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/string_camelize.rb +0 -0
  1899. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/string_underscore.rb +0 -0
  1900. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/string_version.rb +0 -0
  1901. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/subhash.rb +0 -0
  1902. data/vendor/bundle/gems/tins-1.16.3/lib/tins/temp_io.rb +26 -0
  1903. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/terminal.rb +0 -0
  1904. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/thread_local.rb +0 -0
  1905. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/time_dummy.rb +0 -0
  1906. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/to.rb +0 -0
  1907. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/to_proc.rb +0 -0
  1908. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/token.rb +0 -0
  1909. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/uniq_by.rb +0 -0
  1910. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/unit.rb +0 -0
  1911. data/vendor/bundle/gems/tins-1.16.3/lib/tins/version.rb +8 -0
  1912. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/write.rb +0 -0
  1913. data/vendor/bundle/gems/tins-1.16.3/lib/tins/xt.rb +45 -0
  1914. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/annotate.rb +0 -0
  1915. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/ask_and_send.rb +0 -0
  1916. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/attempt.rb +0 -0
  1917. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/blank.rb +0 -0
  1918. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/case_predicate.rb +0 -0
  1919. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/complete.rb +0 -0
  1920. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/concern.rb +0 -0
  1921. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/count_by.rb +0 -0
  1922. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/date_dummy.rb +0 -0
  1923. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/date_time_dummy.rb +0 -0
  1924. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/deep_const_get.rb +0 -0
  1925. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/deep_dup.rb +0 -0
  1926. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/dslkit.rb +0 -0
  1927. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/expose.rb +0 -0
  1928. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/extract_last_argument_options.rb +0 -0
  1929. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/file_binary.rb +0 -0
  1930. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/full.rb +0 -0
  1931. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/hash_symbolize_keys_recursive.rb +0 -0
  1932. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/hash_union.rb +0 -0
  1933. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/if_predicate.rb +0 -0
  1934. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/implement.rb +0 -0
  1935. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/irb.rb +0 -0
  1936. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/method_description.rb +0 -0
  1937. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/named.rb +0 -0
  1938. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/null.rb +0 -0
  1939. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/p.rb +0 -0
  1940. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/partial_application.rb +0 -0
  1941. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/proc_compose.rb +0 -0
  1942. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/proc_prelude.rb +0 -0
  1943. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/range_plus.rb +0 -0
  1944. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/require_maybe.rb +0 -0
  1945. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/responding.rb +0 -0
  1946. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/secure_write.rb +0 -0
  1947. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/sexy_singleton.rb +0 -0
  1948. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/string.rb +0 -0
  1949. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/string_byte_order_mark.rb +0 -0
  1950. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/string_camelize.rb +0 -0
  1951. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/string_underscore.rb +0 -0
  1952. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/string_version.rb +0 -0
  1953. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/subhash.rb +0 -0
  1954. data/vendor/bundle/gems/tins-1.16.3/lib/tins/xt/temp_io.rb +5 -0
  1955. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/time_dummy.rb +0 -0
  1956. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/time_freezer.rb +0 -0
  1957. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/to.rb +0 -0
  1958. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/uniq_by.rb +0 -0
  1959. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/lib/tins/xt/write.rb +0 -0
  1960. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/annotate_test.rb +0 -0
  1961. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/ask_and_send_test.rb +0 -0
  1962. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/attempt_test.rb +0 -0
  1963. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/bijection_test.rb +0 -0
  1964. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/blank_full_test.rb +0 -0
  1965. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/case_predicate_test.rb +0 -0
  1966. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/concern_test.rb +0 -0
  1967. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/count_by_test.rb +0 -0
  1968. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/date_dummy_test.rb +0 -0
  1969. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/date_time_dummy_test.rb +0 -0
  1970. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/deep_const_get_test.rb +0 -0
  1971. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/deep_dup_test.rb +0 -0
  1972. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/delegate_test.rb +0 -0
  1973. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/dslkit_test.rb +0 -0
  1974. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/duration_test.rb +0 -0
  1975. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/dynamic_scope_test.rb +0 -0
  1976. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/expose_test.rb +0 -0
  1977. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/extract_last_argument_options_test.rb +0 -0
  1978. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/file_binary_test.rb +0 -0
  1979. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/find_test.rb +0 -0
  1980. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/from_module_test.rb +0 -0
  1981. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/generator_test.rb +0 -0
  1982. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/go_test.rb +0 -0
  1983. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/hash_symbolize_keys_recursive_test.rb +0 -0
  1984. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/hash_union_test.rb +0 -0
  1985. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/if_predicate_test.rb +0 -0
  1986. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/implement_test.rb +0 -0
  1987. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/limited_test.rb +0 -0
  1988. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/lines_file_test.rb +0 -0
  1989. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/memoize_test.rb +0 -0
  1990. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/method_description_test.rb +0 -0
  1991. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/minimize_test.rb +0 -0
  1992. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/module_group_test.rb +0 -0
  1993. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/named_set_test.rb +0 -0
  1994. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/named_test.rb +0 -0
  1995. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/null_test.rb +0 -0
  1996. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/p_test.rb +0 -0
  1997. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/partial_application_test.rb +0 -0
  1998. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/proc_compose_test.rb +0 -0
  1999. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/proc_prelude_test.rb +0 -0
  2000. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/range_plus_test.rb +0 -0
  2001. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/require_maybe_test.rb +0 -0
  2002. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/responding_test.rb +0 -0
  2003. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/rotate_test.rb +0 -0
  2004. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/scope_test.rb +0 -0
  2005. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/secure_write_test.rb +0 -0
  2006. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/sexy_singleton_test.rb +0 -0
  2007. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/string_byte_order_mark_test.rb +0 -0
  2008. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/string_camelize_test.rb +0 -0
  2009. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/string_underscore_test.rb +0 -0
  2010. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/string_version_test.rb +0 -0
  2011. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/subhash_test.rb +0 -0
  2012. data/vendor/bundle/gems/tins-1.16.3/tests/temp_io_test.rb +38 -0
  2013. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/test_helper.rb +0 -0
  2014. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/time_dummy_test.rb +0 -0
  2015. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/time_freezer_test.rb +0 -0
  2016. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/to_test.rb +0 -0
  2017. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/token_test.rb +0 -0
  2018. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/uniq_by_test.rb +0 -0
  2019. data/vendor/bundle/gems/{tins-1.15.0 → tins-1.16.3}/tests/unit_test.rb +0 -0
  2020. data/vendor/bundle/gems/tins-1.16.3/tins.gemspec +41 -0
  2021. data/vendor/bundle/gems/unf_ext-0.0.7.4/ext/unf_ext/Makefile +10 -10
  2022. data/vendor/bundle/gems/unf_ext-0.0.7.4/ext/unf_ext/unf.o +0 -0
  2023. data/vendor/bundle/gems/unf_ext-0.0.7.4/ext/unf_ext/unf_ext.so +0 -0
  2024. data/vendor/bundle/gems/unf_ext-0.0.7.4/lib/unf_ext.so +0 -0
  2025. data/vendor/bundle/specifications/addressable-2.5.2.gemspec +2 -2
  2026. data/vendor/bundle/specifications/capybara-2.16.1.gemspec +85 -0
  2027. data/vendor/bundle/specifications/childprocess-0.8.0.gemspec +45 -0
  2028. data/vendor/bundle/specifications/concurrent-ruby-1.0.5.gemspec +2 -2
  2029. data/vendor/bundle/specifications/coveralls-0.7.12.gemspec +2 -2
  2030. data/vendor/bundle/specifications/diff-lcs-1.3.gemspec +2 -2
  2031. data/vendor/bundle/specifications/docile-1.1.5.gemspec +2 -2
  2032. data/vendor/bundle/specifications/domain_name-0.5.20170404.gemspec +2 -2
  2033. data/vendor/bundle/specifications/emot-0.0.4.gemspec +2 -2
  2034. data/vendor/bundle/specifications/faraday-0.13.1.gemspec +2 -2
  2035. data/vendor/bundle/specifications/fastimage-2.1.1.gemspec +45 -0
  2036. data/vendor/bundle/specifications/ffi-1.9.18.gemspec +2 -2
  2037. data/vendor/bundle/specifications/hikidoc-0.1.0.gemspec +2 -2
  2038. data/vendor/bundle/specifications/http-cookie-1.0.3.gemspec +2 -2
  2039. data/vendor/bundle/specifications/jasmine-2.8.0.gemspec +2 -2
  2040. data/vendor/bundle/specifications/jasmine-core-2.8.0.gemspec +2 -2
  2041. data/vendor/bundle/specifications/launchy-2.4.3.gemspec +2 -2
  2042. data/vendor/bundle/specifications/mail-2.7.0.gemspec +47 -0
  2043. data/vendor/bundle/specifications/mime-types-2.99.3.gemspec +2 -2
  2044. data/vendor/bundle/specifications/mini_mime-1.0.0.gemspec +39 -0
  2045. data/vendor/bundle/specifications/mini_portile2-2.3.0.gemspec +2 -2
  2046. data/vendor/bundle/specifications/multi_json-1.12.2.gemspec +2 -2
  2047. data/vendor/bundle/specifications/multipart-post-2.0.0.gemspec +2 -2
  2048. data/vendor/bundle/specifications/netrc-0.11.0.gemspec +2 -2
  2049. data/vendor/bundle/specifications/nokogiri-1.8.1.gemspec +2 -2
  2050. data/vendor/bundle/specifications/octokit-4.8.0.gemspec +36 -0
  2051. data/vendor/bundle/specifications/phantomjs-2.1.1.0.gemspec +2 -2
  2052. data/vendor/bundle/specifications/pit-0.0.7.gemspec +2 -2
  2053. data/vendor/bundle/specifications/power_assert-1.1.1.gemspec +51 -0
  2054. data/vendor/bundle/specifications/public_suffix-3.0.1.gemspec +41 -0
  2055. data/vendor/bundle/specifications/rack-1.6.8.gemspec +2 -2
  2056. data/vendor/bundle/specifications/rack-test-0.8.2.gemspec +54 -0
  2057. data/vendor/bundle/specifications/racksh-1.0.0.gemspec +2 -2
  2058. data/vendor/bundle/specifications/rake-12.3.0.gemspec +49 -0
  2059. data/vendor/bundle/specifications/redcarpet-3.4.0.gemspec +2 -2
  2060. data/vendor/bundle/specifications/rest-client-1.8.0.gemspec +2 -2
  2061. data/vendor/bundle/specifications/rspec-3.7.0.gemspec +42 -0
  2062. data/vendor/bundle/specifications/rspec-core-3.7.0.gemspec +62 -0
  2063. data/vendor/bundle/specifications/rspec-expectations-3.7.0.gemspec +50 -0
  2064. data/vendor/bundle/specifications/rspec-mocks-3.7.0.gemspec +50 -0
  2065. data/vendor/bundle/specifications/rspec-support-3.7.0.gemspec +41 -0
  2066. data/vendor/bundle/specifications/rubyzip-1.2.1.gemspec +2 -2
  2067. data/vendor/bundle/specifications/sawyer-0.8.1.gemspec +2 -2
  2068. data/vendor/bundle/specifications/selenium-webdriver-3.8.0.gemspec +51 -0
  2069. data/vendor/bundle/specifications/sequel-5.3.0.gemspec +52 -0
  2070. data/vendor/bundle/specifications/simplecov-0.9.2.gemspec +2 -2
  2071. data/vendor/bundle/specifications/simplecov-html-0.9.0.gemspec +2 -2
  2072. data/vendor/bundle/specifications/sprockets-3.7.1.gemspec +2 -2
  2073. data/vendor/bundle/specifications/sqlite3-1.3.13.gemspec +2 -2
  2074. data/vendor/bundle/specifications/term-ansicolor-1.6.0.gemspec +2 -2
  2075. data/vendor/bundle/specifications/test-unit-3.2.7.gemspec +48 -0
  2076. data/vendor/bundle/specifications/thor-0.19.4.gemspec +2 -2
  2077. data/vendor/bundle/specifications/tins-1.16.3.gemspec +42 -0
  2078. data/vendor/bundle/specifications/unf-0.1.4.gemspec +2 -2
  2079. data/vendor/bundle/specifications/unf_ext-0.0.7.4.gemspec +2 -2
  2080. data/vendor/bundle/specifications/xpath-2.1.0.gemspec +2 -2
  2081. metadata +1935 -2344
  2082. data/misc/paas/cloudfoundry/Gemfile +0 -29
  2083. data/misc/paas/cloudfoundry/Gemfile.lock +0 -101
  2084. data/misc/paas/cloudfoundry/tdiary.conf +0 -87
  2085. data/vendor/bundle/bin/byebug +0 -27
  2086. data/vendor/bundle/bin/coderay +0 -27
  2087. data/vendor/bundle/bin/pry +0 -27
  2088. data/vendor/bundle/cache/byebug-9.1.0.gem +0 -0
  2089. data/vendor/bundle/cache/capybara-2.15.1.gem +0 -0
  2090. data/vendor/bundle/cache/childprocess-0.7.1.gem +0 -0
  2091. data/vendor/bundle/cache/coderay-1.1.2.gem +0 -0
  2092. data/vendor/bundle/cache/fastimage-2.1.0.gem +0 -0
  2093. data/vendor/bundle/cache/mail-2.6.6.gem +0 -0
  2094. data/vendor/bundle/cache/method_source-0.8.2.gem +0 -0
  2095. data/vendor/bundle/cache/mini_mime-0.1.4.gem +0 -0
  2096. data/vendor/bundle/cache/octokit-4.7.0.gem +0 -0
  2097. data/vendor/bundle/cache/power_assert-1.1.0.gem +0 -0
  2098. data/vendor/bundle/cache/pry-0.11.0.gem +0 -0
  2099. data/vendor/bundle/cache/pry-byebug-3.5.0.gem +0 -0
  2100. data/vendor/bundle/cache/public_suffix-3.0.0.gem +0 -0
  2101. data/vendor/bundle/cache/rack-test-0.7.0.gem +0 -0
  2102. data/vendor/bundle/cache/rake-12.1.0.gem +0 -0
  2103. data/vendor/bundle/cache/rspec-3.6.0.gem +0 -0
  2104. data/vendor/bundle/cache/rspec-core-3.6.0.gem +0 -0
  2105. data/vendor/bundle/cache/rspec-expectations-3.6.0.gem +0 -0
  2106. data/vendor/bundle/cache/rspec-mocks-3.6.0.gem +0 -0
  2107. data/vendor/bundle/cache/rspec-support-3.6.0.gem +0 -0
  2108. data/vendor/bundle/cache/selenium-webdriver-3.5.2.gem +0 -0
  2109. data/vendor/bundle/cache/sequel-5.0.0.gem +0 -0
  2110. data/vendor/bundle/cache/test-unit-3.2.5.gem +0 -0
  2111. data/vendor/bundle/cache/tins-1.15.0.gem +0 -0
  2112. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/byebug-9.1.0/byebug/byebug.so +0 -0
  2113. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/byebug-9.1.0/gem_make.out +0 -19
  2114. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/ffi-1.9.18/ffi_c.so +0 -0
  2115. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/ffi-1.9.18/gem_make.out +0 -63
  2116. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/ffi-1.9.18/mkmf.log +0 -444
  2117. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/nokogiri-1.8.1/gem_make.out +0 -695
  2118. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/nokogiri-1.8.1/mkmf.log +0 -538
  2119. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/nokogiri-1.8.1/nokogiri/nokogiri.so +0 -0
  2120. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/redcarpet-3.4.0/gem_make.out +0 -106
  2121. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/redcarpet-3.4.0/redcarpet.so +0 -0
  2122. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/sqlite3-1.3.13/gem_make.out +0 -33
  2123. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/sqlite3-1.3.13/mkmf.log +0 -574
  2124. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/sqlite3-1.3.13/sqlite3/sqlite3_native.so +0 -0
  2125. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/unf_ext-0.0.7.4/gem.build_complete +0 -0
  2126. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/unf_ext-0.0.7.4/gem_make.out +0 -22
  2127. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/unf_ext-0.0.7.4/mkmf.log +0 -34
  2128. data/vendor/bundle/extensions/x86_64-linux/2.4.0-static/unf_ext-0.0.7.4/unf_ext.so +0 -0
  2129. data/vendor/bundle/gems/byebug-9.1.0/CHANGELOG.md +0 -825
  2130. data/vendor/bundle/gems/byebug-9.1.0/CONTRIBUTING.md +0 -65
  2131. data/vendor/bundle/gems/byebug-9.1.0/GUIDE.md +0 -1806
  2132. data/vendor/bundle/gems/byebug-9.1.0/LICENSE +0 -23
  2133. data/vendor/bundle/gems/byebug-9.1.0/README.md +0 -181
  2134. data/vendor/bundle/gems/byebug-9.1.0/bin/byebug +0 -9
  2135. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/Makefile +0 -263
  2136. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/breakpoint.c +0 -517
  2137. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/breakpoint.o +0 -0
  2138. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/byebug.c +0 -905
  2139. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/byebug.h +0 -129
  2140. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/byebug.o +0 -0
  2141. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/byebug.so +0 -0
  2142. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/context.c +0 -673
  2143. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/context.o +0 -0
  2144. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/extconf.rb +0 -10
  2145. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/locker.c +0 -96
  2146. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/locker.o +0 -0
  2147. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/threads.c +0 -230
  2148. data/vendor/bundle/gems/byebug-9.1.0/ext/byebug/threads.o +0 -0
  2149. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug.rb +0 -1
  2150. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/attacher.rb +0 -34
  2151. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/breakpoint.rb +0 -89
  2152. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/byebug.so +0 -0
  2153. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/command.rb +0 -105
  2154. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/command_list.rb +0 -32
  2155. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands.rb +0 -37
  2156. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/break.rb +0 -98
  2157. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/catch.rb +0 -80
  2158. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/condition.rb +0 -55
  2159. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/continue.rb +0 -48
  2160. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/debug.rb +0 -36
  2161. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/delete.rb +0 -55
  2162. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/disable.rb +0 -31
  2163. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/disable/breakpoints.rb +0 -40
  2164. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/disable/display.rb +0 -41
  2165. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/display.rb +0 -64
  2166. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/down.rb +0 -43
  2167. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/edit.rb +0 -66
  2168. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/enable.rb +0 -31
  2169. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/enable/breakpoints.rb +0 -40
  2170. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/enable/display.rb +0 -41
  2171. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/finish.rb +0 -55
  2172. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/frame.rb +0 -55
  2173. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/help.rb +0 -62
  2174. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/history.rb +0 -37
  2175. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/info.rb +0 -35
  2176. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/info/breakpoints.rb +0 -61
  2177. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/info/display.rb +0 -42
  2178. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/info/file.rb +0 -80
  2179. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/info/line.rb +0 -33
  2180. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/info/program.rb +0 -47
  2181. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/interrupt.rb +0 -30
  2182. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/irb.rb +0 -50
  2183. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/kill.rb +0 -45
  2184. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/list.rb +0 -164
  2185. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/method.rb +0 -51
  2186. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/next.rb +0 -38
  2187. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/pry.rb +0 -41
  2188. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/quit.rb +0 -40
  2189. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/restart.rb +0 -62
  2190. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/save.rb +0 -70
  2191. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/set.rb +0 -77
  2192. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/show.rb +0 -43
  2193. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/source.rb +0 -40
  2194. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/step.rb +0 -38
  2195. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/thread.rb +0 -32
  2196. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/thread/current.rb +0 -35
  2197. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/thread/list.rb +0 -41
  2198. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/thread/resume.rb +0 -45
  2199. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/thread/stop.rb +0 -41
  2200. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/thread/switch.rb +0 -44
  2201. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/tracevar.rb +0 -55
  2202. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/undisplay.rb +0 -50
  2203. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/untracevar.rb +0 -34
  2204. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/up.rb +0 -43
  2205. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var.rb +0 -35
  2206. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var/all.rb +0 -39
  2207. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var/args.rb +0 -37
  2208. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var/const.rb +0 -49
  2209. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var/global.rb +0 -35
  2210. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var/instance.rb +0 -37
  2211. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/var/local.rb +0 -37
  2212. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/commands/where.rb +0 -51
  2213. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/context.rb +0 -155
  2214. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/core.rb +0 -114
  2215. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/errors.rb +0 -27
  2216. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/frame.rb +0 -185
  2217. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/bin.rb +0 -26
  2218. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/eval.rb +0 -124
  2219. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/file.rb +0 -61
  2220. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/frame.rb +0 -73
  2221. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/parse.rb +0 -75
  2222. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/path.rb +0 -38
  2223. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/reflection.rb +0 -17
  2224. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/string.rb +0 -34
  2225. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/thread.rb +0 -65
  2226. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/toggle.rb +0 -62
  2227. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/helpers/var.rb +0 -52
  2228. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/history.rb +0 -128
  2229. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/interface.rb +0 -144
  2230. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/interfaces/local_interface.rb +0 -44
  2231. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/interfaces/remote_interface.rb +0 -38
  2232. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/interfaces/script_interface.rb +0 -30
  2233. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/interfaces/test_interface.rb +0 -65
  2234. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/option_setter.rb +0 -93
  2235. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/printers/base.rb +0 -69
  2236. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/printers/plain.rb +0 -42
  2237. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/printers/texts/base.yml +0 -115
  2238. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/printers/texts/plain.yml +0 -33
  2239. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/processors/command_processor.rb +0 -174
  2240. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/processors/control_processor.rb +0 -26
  2241. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/processors/post_mortem_processor.rb +0 -16
  2242. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/processors/script_processor.rb +0 -45
  2243. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/remote.rb +0 -105
  2244. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/runner.rb +0 -191
  2245. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/setting.rb +0 -73
  2246. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/autoirb.rb +0 -27
  2247. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/autolist.rb +0 -27
  2248. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/autopry.rb +0 -27
  2249. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/autosave.rb +0 -15
  2250. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/basename.rb +0 -14
  2251. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/callstyle.rb +0 -20
  2252. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/fullpath.rb +0 -14
  2253. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/histfile.rb +0 -18
  2254. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/histsize.rb +0 -18
  2255. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/linetrace.rb +0 -20
  2256. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/listsize.rb +0 -19
  2257. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/post_mortem.rb +0 -25
  2258. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/savefile.rb +0 -18
  2259. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/stack_on_error.rb +0 -13
  2260. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/settings/width.rb +0 -18
  2261. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/subcommands.rb +0 -52
  2262. data/vendor/bundle/gems/byebug-9.1.0/lib/byebug/version.rb +0 -8
  2263. data/vendor/bundle/gems/capybara-2.15.1/History.md +0 -1039
  2264. data/vendor/bundle/gems/capybara-2.15.1/README.md +0 -1080
  2265. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara.rb +0 -494
  2266. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/config.rb +0 -131
  2267. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/driver/base.rb +0 -157
  2268. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/minitest.rb +0 -276
  2269. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/minitest/spec.rb +0 -175
  2270. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/node/actions.rb +0 -317
  2271. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/node/element.rb +0 -386
  2272. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/node/finders.rb +0 -320
  2273. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/queries/ancestor_query.rb +0 -25
  2274. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/queries/current_path_query.rb +0 -64
  2275. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/queries/selector_query.rb +0 -244
  2276. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/queries/sibling_query.rb +0 -25
  2277. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/queries/text_query.rb +0 -98
  2278. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/rack_test/form.rb +0 -112
  2279. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/selenium/driver.rb +0 -483
  2280. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/selenium/node.rb +0 -232
  2281. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/session.rb +0 -947
  2282. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/session/matchers.rb +0 -71
  2283. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/public/test.js +0 -134
  2284. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/accept_prompt_spec.rb +0 -50
  2285. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/current_url_spec.rb +0 -107
  2286. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/evaluate_script_spec.rb +0 -28
  2287. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/has_current_path_spec.rb +0 -109
  2288. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/select_spec.rb +0 -202
  2289. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/unselect_spec.rb +0 -115
  2290. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/session/visit_spec.rb +0 -137
  2291. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/spec/views/with_js.erb +0 -126
  2292. data/vendor/bundle/gems/capybara-2.15.1/lib/capybara/version.rb +0 -4
  2293. data/vendor/bundle/gems/capybara-2.15.1/spec/capybara_spec.rb +0 -163
  2294. data/vendor/bundle/gems/capybara-2.15.1/spec/selenium_spec_chrome.rb +0 -58
  2295. data/vendor/bundle/gems/capybara-2.15.1/spec/selenium_spec_marionette.rb +0 -117
  2296. data/vendor/bundle/gems/capybara-2.15.1/spec/shared_selenium_session.rb +0 -169
  2297. data/vendor/bundle/gems/childprocess-0.7.1/CHANGELOG.md +0 -39
  2298. data/vendor/bundle/gems/childprocess-0.7.1/lib/childprocess/abstract_process.rb +0 -187
  2299. data/vendor/bundle/gems/childprocess-0.7.1/lib/childprocess/version.rb +0 -3
  2300. data/vendor/bundle/gems/childprocess-0.7.1/spec/childprocess_spec.rb +0 -367
  2301. data/vendor/bundle/gems/coderay-1.1.2/MIT-LICENSE +0 -22
  2302. data/vendor/bundle/gems/coderay-1.1.2/README_INDEX.rdoc +0 -123
  2303. data/vendor/bundle/gems/coderay-1.1.2/bin/coderay +0 -215
  2304. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay.rb +0 -284
  2305. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/duo.rb +0 -81
  2306. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders.rb +0 -18
  2307. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/_map.rb +0 -17
  2308. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/comment_filter.rb +0 -25
  2309. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/count.rb +0 -39
  2310. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/debug.rb +0 -49
  2311. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/debug_lint.rb +0 -63
  2312. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/div.rb +0 -23
  2313. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/encoder.rb +0 -190
  2314. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/filter.rb +0 -58
  2315. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html.rb +0 -333
  2316. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html/css.rb +0 -65
  2317. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html/numbering.rb +0 -108
  2318. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/html/output.rb +0 -166
  2319. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/json.rb +0 -83
  2320. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/lines_of_code.rb +0 -45
  2321. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/lint.rb +0 -59
  2322. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/null.rb +0 -18
  2323. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/page.rb +0 -24
  2324. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/span.rb +0 -23
  2325. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/statistic.rb +0 -95
  2326. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/terminal.rb +0 -195
  2327. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/text.rb +0 -46
  2328. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/token_kind_filter.rb +0 -111
  2329. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/xml.rb +0 -72
  2330. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/encoders/yaml.rb +0 -50
  2331. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/for_redcloth.rb +0 -95
  2332. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/file_type.rb +0 -151
  2333. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/plugin.rb +0 -55
  2334. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/plugin_host.rb +0 -221
  2335. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/helpers/word_list.rb +0 -72
  2336. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners.rb +0 -27
  2337. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/_map.rb +0 -24
  2338. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/c.rb +0 -189
  2339. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/clojure.rb +0 -217
  2340. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/cpp.rb +0 -217
  2341. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/css.rb +0 -196
  2342. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/debug.rb +0 -75
  2343. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/delphi.rb +0 -144
  2344. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/diff.rb +0 -221
  2345. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/erb.rb +0 -81
  2346. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/go.rb +0 -208
  2347. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/groovy.rb +0 -268
  2348. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/haml.rb +0 -168
  2349. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/html.rb +0 -275
  2350. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/java.rb +0 -174
  2351. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/java/builtin_types.rb +0 -421
  2352. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/java_script.rb +0 -237
  2353. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/json.rb +0 -98
  2354. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/lua.rb +0 -280
  2355. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/php.rb +0 -527
  2356. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/python.rb +0 -287
  2357. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/raydebug.rb +0 -75
  2358. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/ruby.rb +0 -477
  2359. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/ruby/patterns.rb +0 -178
  2360. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/ruby/string_state.rb +0 -79
  2361. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/sass.rb +0 -232
  2362. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/scanner.rb +0 -337
  2363. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/sql.rb +0 -169
  2364. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/taskpaper.rb +0 -36
  2365. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/text.rb +0 -26
  2366. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/xml.rb +0 -17
  2367. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/scanners/yaml.rb +0 -140
  2368. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles.rb +0 -15
  2369. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles/_map.rb +0 -7
  2370. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles/alpha.rb +0 -153
  2371. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/styles/style.rb +0 -18
  2372. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/token_kinds.rb +0 -85
  2373. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/tokens.rb +0 -161
  2374. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/tokens_proxy.rb +0 -55
  2375. data/vendor/bundle/gems/coderay-1.1.2/lib/coderay/version.rb +0 -3
  2376. data/vendor/bundle/gems/fastimage-2.1.0/README.textile +0 -157
  2377. data/vendor/bundle/gems/fastimage-2.1.0/lib/fastimage.rb +0 -769
  2378. data/vendor/bundle/gems/mail-2.6.6/CHANGELOG.rdoc +0 -803
  2379. data/vendor/bundle/gems/mail-2.6.6/CONTRIBUTING.md +0 -60
  2380. data/vendor/bundle/gems/mail-2.6.6/Dependencies.txt +0 -2
  2381. data/vendor/bundle/gems/mail-2.6.6/Gemfile +0 -14
  2382. data/vendor/bundle/gems/mail-2.6.6/MIT-LICENSE +0 -20
  2383. data/vendor/bundle/gems/mail-2.6.6/README.md +0 -711
  2384. data/vendor/bundle/gems/mail-2.6.6/Rakefile +0 -29
  2385. data/vendor/bundle/gems/mail-2.6.6/TODO.rdoc +0 -9
  2386. data/vendor/bundle/gems/mail-2.6.6/lib/mail.rb +0 -98
  2387. data/vendor/bundle/gems/mail-2.6.6/lib/mail/attachments_list.rb +0 -106
  2388. data/vendor/bundle/gems/mail-2.6.6/lib/mail/body.rb +0 -316
  2389. data/vendor/bundle/gems/mail-2.6.6/lib/mail/check_delivery_params.rb +0 -58
  2390. data/vendor/bundle/gems/mail-2.6.6/lib/mail/configuration.rb +0 -76
  2391. data/vendor/bundle/gems/mail-2.6.6/lib/mail/core_extensions/smtp.rb +0 -25
  2392. data/vendor/bundle/gems/mail-2.6.6/lib/mail/core_extensions/string.rb +0 -21
  2393. data/vendor/bundle/gems/mail-2.6.6/lib/mail/core_extensions/string/access.rb +0 -146
  2394. data/vendor/bundle/gems/mail-2.6.6/lib/mail/core_extensions/string/multibyte.rb +0 -79
  2395. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/address.rb +0 -252
  2396. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/address_list.rb +0 -42
  2397. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/content_disposition_element.rb +0 -27
  2398. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/content_location_element.rb +0 -22
  2399. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/content_transfer_encoding_element.rb +0 -18
  2400. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/content_type_element.rb +0 -32
  2401. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/date_time_element.rb +0 -23
  2402. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/envelope_from_element.rb +0 -40
  2403. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/message_ids_element.rb +0 -26
  2404. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/mime_version_element.rb +0 -23
  2405. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/phrase_list.rb +0 -17
  2406. data/vendor/bundle/gems/mail-2.6.6/lib/mail/elements/received_element.rb +0 -27
  2407. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings.rb +0 -287
  2408. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/7bit.rb +0 -32
  2409. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/8bit.rb +0 -37
  2410. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/base64.rb +0 -39
  2411. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/binary.rb +0 -32
  2412. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/quoted_printable.rb +0 -45
  2413. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/transfer_encoding.rb +0 -68
  2414. data/vendor/bundle/gems/mail-2.6.6/lib/mail/encodings/unix_to_unix.rb +0 -18
  2415. data/vendor/bundle/gems/mail-2.6.6/lib/mail/envelope.rb +0 -31
  2416. data/vendor/bundle/gems/mail-2.6.6/lib/mail/field.rb +0 -262
  2417. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/bcc_field.rb +0 -68
  2418. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/cc_field.rb +0 -55
  2419. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/comments_field.rb +0 -42
  2420. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/common/common_address.rb +0 -136
  2421. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/common/common_field.rb +0 -61
  2422. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/common/parameter_hash.rb +0 -59
  2423. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/content_description_field.rb +0 -20
  2424. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/content_disposition_field.rb +0 -71
  2425. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/content_id_field.rb +0 -63
  2426. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/content_location_field.rb +0 -43
  2427. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/content_transfer_encoding_field.rb +0 -45
  2428. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/content_type_field.rb +0 -202
  2429. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/date_field.rb +0 -58
  2430. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/from_field.rb +0 -55
  2431. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/in_reply_to_field.rb +0 -57
  2432. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/keywords_field.rb +0 -44
  2433. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/message_id_field.rb +0 -83
  2434. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/mime_version_field.rb +0 -54
  2435. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/optional_field.rb +0 -14
  2436. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/received_field.rb +0 -76
  2437. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/references_field.rb +0 -57
  2438. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/reply_to_field.rb +0 -55
  2439. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_bcc_field.rb +0 -55
  2440. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_cc_field.rb +0 -55
  2441. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_date_field.rb +0 -36
  2442. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_from_field.rb +0 -55
  2443. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_message_id_field.rb +0 -35
  2444. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_sender_field.rb +0 -62
  2445. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/resent_to_field.rb +0 -55
  2446. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/return_path_field.rb +0 -65
  2447. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/sender_field.rb +0 -67
  2448. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/subject_field.rb +0 -17
  2449. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/to_field.rb +0 -55
  2450. data/vendor/bundle/gems/mail-2.6.6/lib/mail/fields/unstructured_field.rb +0 -205
  2451. data/vendor/bundle/gems/mail-2.6.6/lib/mail/header.rb +0 -276
  2452. data/vendor/bundle/gems/mail-2.6.6/lib/mail/mail.rb +0 -270
  2453. data/vendor/bundle/gems/mail-2.6.6/lib/mail/matchers/has_sent_mail.rb +0 -181
  2454. data/vendor/bundle/gems/mail-2.6.6/lib/mail/message.rb +0 -2160
  2455. data/vendor/bundle/gems/mail-2.6.6/lib/mail/multibyte.rb +0 -43
  2456. data/vendor/bundle/gems/mail-2.6.6/lib/mail/multibyte/chars.rb +0 -475
  2457. data/vendor/bundle/gems/mail-2.6.6/lib/mail/multibyte/exceptions.rb +0 -9
  2458. data/vendor/bundle/gems/mail-2.6.6/lib/mail/network.rb +0 -15
  2459. data/vendor/bundle/gems/mail-2.6.6/lib/mail/network/delivery_methods/sendmail.rb +0 -92
  2460. data/vendor/bundle/gems/mail-2.6.6/lib/mail/network/delivery_methods/smtp.rb +0 -140
  2461. data/vendor/bundle/gems/mail-2.6.6/lib/mail/network/delivery_methods/smtp_connection.rb +0 -58
  2462. data/vendor/bundle/gems/mail-2.6.6/lib/mail/network/retriever_methods/imap.rb +0 -174
  2463. data/vendor/bundle/gems/mail-2.6.6/lib/mail/network/retriever_methods/pop3.rb +0 -141
  2464. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers.rb +0 -27
  2465. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/address_lists_parser.rb +0 -133
  2466. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/content_disposition_parser.rb +0 -68
  2467. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/content_location_parser.rb +0 -36
  2468. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/content_transfer_encoding_parser.rb +0 -34
  2469. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/content_type_parser.rb +0 -67
  2470. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/date_time_parser.rb +0 -39
  2471. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/envelope_from_parser.rb +0 -46
  2472. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/message_ids_parser.rb +0 -40
  2473. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/mime_version_parser.rb +0 -42
  2474. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/phrase_lists_parser.rb +0 -36
  2475. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel.rb +0 -18
  2476. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/common.rl +0 -185
  2477. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/date_time.rl +0 -30
  2478. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/parser_info.rb +0 -61
  2479. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby.rb +0 -40
  2480. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb +0 -14864
  2481. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb.rl +0 -37
  2482. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb +0 -751
  2483. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb.rl +0 -37
  2484. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb +0 -614
  2485. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb.rl +0 -37
  2486. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb +0 -447
  2487. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb.rl +0 -37
  2488. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb +0 -825
  2489. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb.rl +0 -37
  2490. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb +0 -817
  2491. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb.rl +0 -37
  2492. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb +0 -2149
  2493. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb.rl +0 -37
  2494. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb +0 -1570
  2495. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb.rl +0 -37
  2496. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb +0 -440
  2497. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl +0 -37
  2498. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb +0 -564
  2499. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb.rl +0 -37
  2500. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl +0 -51
  2501. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/received_machine.rb +0 -5144
  2502. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/machines/received_machine.rb.rl +0 -37
  2503. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/ragel/ruby/parser.rb.rl.erb +0 -37
  2504. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parsers/received_parser.rb +0 -49
  2505. data/vendor/bundle/gems/mail-2.6.6/lib/mail/part.rb +0 -123
  2506. data/vendor/bundle/gems/mail-2.6.6/lib/mail/parts_list.rb +0 -75
  2507. data/vendor/bundle/gems/mail-2.6.6/lib/mail/utilities.rb +0 -293
  2508. data/vendor/bundle/gems/mail-2.6.6/lib/mail/version.rb +0 -17
  2509. data/vendor/bundle/gems/mail-2.6.6/lib/mail/version_specific/ruby_1_8.rb +0 -126
  2510. data/vendor/bundle/gems/mail-2.6.6/lib/mail/version_specific/ruby_1_9.rb +0 -226
  2511. data/vendor/bundle/gems/method_source-0.8.2/Gemfile +0 -2
  2512. data/vendor/bundle/gems/method_source-0.8.2/LICENSE +0 -25
  2513. data/vendor/bundle/gems/method_source-0.8.2/README.markdown +0 -91
  2514. data/vendor/bundle/gems/method_source-0.8.2/Rakefile +0 -79
  2515. data/vendor/bundle/gems/method_source-0.8.2/lib/method_source.rb +0 -141
  2516. data/vendor/bundle/gems/method_source-0.8.2/lib/method_source/code_helpers.rb +0 -154
  2517. data/vendor/bundle/gems/method_source-0.8.2/lib/method_source/source_location.rb +0 -138
  2518. data/vendor/bundle/gems/method_source-0.8.2/lib/method_source/version.rb +0 -3
  2519. data/vendor/bundle/gems/method_source-0.8.2/method_source.gemspec +0 -33
  2520. data/vendor/bundle/gems/method_source-0.8.2/test/test.rb +0 -138
  2521. data/vendor/bundle/gems/method_source-0.8.2/test/test_code_helpers.rb +0 -41
  2522. data/vendor/bundle/gems/method_source-0.8.2/test/test_helper.rb +0 -98
  2523. data/vendor/bundle/gems/mini_mime-0.1.4/CHANGELOG +0 -24
  2524. data/vendor/bundle/gems/mini_mime-0.1.4/lib/mini_mime/version.rb +0 -3
  2525. data/vendor/bundle/gems/octokit-4.7.0/LICENSE.md +0 -20
  2526. data/vendor/bundle/gems/octokit-4.7.0/README.md +0 -714
  2527. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client.rb +0 -238
  2528. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/integrations.rb +0 -77
  2529. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/issues.rb +0 -321
  2530. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/licenses.rb +0 -45
  2531. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/notifications.rb +0 -171
  2532. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/organizations.rb +0 -768
  2533. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/repositories.rb +0 -654
  2534. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/client/reviews.rb +0 -174
  2535. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/error.rb +0 -286
  2536. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/preview.rb +0 -38
  2537. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/repository.rb +0 -93
  2538. data/vendor/bundle/gems/octokit-4.7.0/lib/octokit/version.rb +0 -17
  2539. data/vendor/bundle/gems/power_assert-1.1.0/README.rdoc +0 -26
  2540. data/vendor/bundle/gems/power_assert-1.1.0/lib/power_assert/context.rb +0 -212
  2541. data/vendor/bundle/gems/power_assert-1.1.0/lib/power_assert/parser.rb +0 -240
  2542. data/vendor/bundle/gems/power_assert-1.1.0/lib/power_assert/version.rb +0 -3
  2543. data/vendor/bundle/gems/pry-0.11.0/CHANGELOG.md +0 -752
  2544. data/vendor/bundle/gems/pry-0.11.0/LICENSE +0 -25
  2545. data/vendor/bundle/gems/pry-0.11.0/README.md +0 -407
  2546. data/vendor/bundle/gems/pry-0.11.0/bin/pry +0 -12
  2547. data/vendor/bundle/gems/pry-0.11.0/lib/pry.rb +0 -161
  2548. data/vendor/bundle/gems/pry-0.11.0/lib/pry/basic_object.rb +0 -6
  2549. data/vendor/bundle/gems/pry-0.11.0/lib/pry/cli.rb +0 -225
  2550. data/vendor/bundle/gems/pry-0.11.0/lib/pry/code.rb +0 -353
  2551. data/vendor/bundle/gems/pry-0.11.0/lib/pry/code/code_file.rb +0 -109
  2552. data/vendor/bundle/gems/pry-0.11.0/lib/pry/code/code_range.rb +0 -71
  2553. data/vendor/bundle/gems/pry-0.11.0/lib/pry/code/loc.rb +0 -92
  2554. data/vendor/bundle/gems/pry-0.11.0/lib/pry/code_object.rb +0 -195
  2555. data/vendor/bundle/gems/pry-0.11.0/lib/pry/color_printer.rb +0 -64
  2556. data/vendor/bundle/gems/pry-0.11.0/lib/pry/command.rb +0 -716
  2557. data/vendor/bundle/gems/pry-0.11.0/lib/pry/command_set.rb +0 -450
  2558. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands.rb +0 -6
  2559. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/amend_line.rb +0 -99
  2560. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/bang.rb +0 -20
  2561. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/bang_pry.rb +0 -17
  2562. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/cat.rb +0 -62
  2563. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/cat/abstract_formatter.rb +0 -27
  2564. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/cat/exception_formatter.rb +0 -78
  2565. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/cat/file_formatter.rb +0 -71
  2566. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/cat/input_expression_formatter.rb +0 -43
  2567. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/cd.rb +0 -41
  2568. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/change_inspector.rb +0 -27
  2569. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/change_prompt.rb +0 -26
  2570. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/code_collector.rb +0 -167
  2571. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/disable_pry.rb +0 -27
  2572. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/disabled_commands.rb +0 -2
  2573. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/easter_eggs.rb +0 -112
  2574. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/edit.rb +0 -199
  2575. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/edit/exception_patcher.rb +0 -25
  2576. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/edit/file_and_line_locator.rb +0 -36
  2577. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/exit.rb +0 -42
  2578. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/exit_all.rb +0 -29
  2579. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/exit_program.rb +0 -23
  2580. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/find_method.rb +0 -193
  2581. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/fix_indent.rb +0 -19
  2582. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gem_cd.rb +0 -26
  2583. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gem_install.rb +0 -32
  2584. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gem_list.rb +0 -33
  2585. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gem_open.rb +0 -29
  2586. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gem_readme.rb +0 -25
  2587. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gem_search.rb +0 -40
  2588. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/gist.rb +0 -101
  2589. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/help.rb +0 -164
  2590. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/hist.rb +0 -180
  2591. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/import_set.rb +0 -22
  2592. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/install_command.rb +0 -53
  2593. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/jump_to.rb +0 -29
  2594. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/list_inspectors.rb +0 -35
  2595. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/list_prompts.rb +0 -35
  2596. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls.rb +0 -116
  2597. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/constants.rb +0 -58
  2598. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/formatter.rb +0 -50
  2599. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/globals.rb +0 -48
  2600. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/grep.rb +0 -21
  2601. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/instance_vars.rb +0 -39
  2602. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/interrogatable.rb +0 -18
  2603. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/jruby_hacks.rb +0 -49
  2604. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/local_names.rb +0 -35
  2605. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/local_vars.rb +0 -39
  2606. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/ls_entity.rb +0 -70
  2607. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/methods.rb +0 -57
  2608. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/methods_helper.rb +0 -46
  2609. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ls/self_methods.rb +0 -34
  2610. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/nesting.rb +0 -25
  2611. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/play.rb +0 -103
  2612. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/pry_backtrace.rb +0 -25
  2613. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/pry_version.rb +0 -17
  2614. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/raise_up.rb +0 -32
  2615. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/reload_code.rb +0 -62
  2616. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/reset.rb +0 -18
  2617. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/ri.rb +0 -64
  2618. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/save_file.rb +0 -61
  2619. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/shell_command.rb +0 -74
  2620. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/shell_mode.rb +0 -25
  2621. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/show_doc.rb +0 -83
  2622. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/show_info.rb +0 -209
  2623. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/show_input.rb +0 -17
  2624. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/show_source.rb +0 -50
  2625. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/simple_prompt.rb +0 -22
  2626. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/stat.rb +0 -40
  2627. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/switch_to.rb +0 -23
  2628. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/toggle_color.rb +0 -24
  2629. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/watch_expression.rb +0 -105
  2630. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/watch_expression/expression.rb +0 -38
  2631. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/whereami.rb +0 -197
  2632. data/vendor/bundle/gems/pry-0.11.0/lib/pry/commands/wtf.rb +0 -57
  2633. data/vendor/bundle/gems/pry-0.11.0/lib/pry/config.rb +0 -11
  2634. data/vendor/bundle/gems/pry-0.11.0/lib/pry/config/behavior.rb +0 -230
  2635. data/vendor/bundle/gems/pry-0.11.0/lib/pry/config/convenience.rb +0 -25
  2636. data/vendor/bundle/gems/pry-0.11.0/lib/pry/config/default.rb +0 -149
  2637. data/vendor/bundle/gems/pry-0.11.0/lib/pry/config/memoization.rb +0 -44
  2638. data/vendor/bundle/gems/pry-0.11.0/lib/pry/core_extensions.rb +0 -141
  2639. data/vendor/bundle/gems/pry-0.11.0/lib/pry/editor.rb +0 -135
  2640. data/vendor/bundle/gems/pry-0.11.0/lib/pry/exceptions.rb +0 -78
  2641. data/vendor/bundle/gems/pry-0.11.0/lib/pry/forwardable.rb +0 -23
  2642. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers.rb +0 -5
  2643. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers/base_helpers.rb +0 -109
  2644. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers/command_helpers.rb +0 -156
  2645. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers/documentation_helpers.rb +0 -76
  2646. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers/options_helpers.rb +0 -27
  2647. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers/table.rb +0 -109
  2648. data/vendor/bundle/gems/pry-0.11.0/lib/pry/helpers/text.rb +0 -101
  2649. data/vendor/bundle/gems/pry-0.11.0/lib/pry/history.rb +0 -148
  2650. data/vendor/bundle/gems/pry-0.11.0/lib/pry/history_array.rb +0 -121
  2651. data/vendor/bundle/gems/pry-0.11.0/lib/pry/hooks.rb +0 -171
  2652. data/vendor/bundle/gems/pry-0.11.0/lib/pry/indent.rb +0 -410
  2653. data/vendor/bundle/gems/pry-0.11.0/lib/pry/input_completer.rb +0 -260
  2654. data/vendor/bundle/gems/pry-0.11.0/lib/pry/input_lock.rb +0 -132
  2655. data/vendor/bundle/gems/pry-0.11.0/lib/pry/inspector.rb +0 -27
  2656. data/vendor/bundle/gems/pry-0.11.0/lib/pry/last_exception.rb +0 -61
  2657. data/vendor/bundle/gems/pry-0.11.0/lib/pry/method.rb +0 -546
  2658. data/vendor/bundle/gems/pry-0.11.0/lib/pry/method/disowned.rb +0 -54
  2659. data/vendor/bundle/gems/pry-0.11.0/lib/pry/method/patcher.rb +0 -122
  2660. data/vendor/bundle/gems/pry-0.11.0/lib/pry/method/weird_method_locator.rb +0 -188
  2661. data/vendor/bundle/gems/pry-0.11.0/lib/pry/object_path.rb +0 -82
  2662. data/vendor/bundle/gems/pry-0.11.0/lib/pry/output.rb +0 -49
  2663. data/vendor/bundle/gems/pry-0.11.0/lib/pry/pager.rb +0 -242
  2664. data/vendor/bundle/gems/pry-0.11.0/lib/pry/plugins.rb +0 -118
  2665. data/vendor/bundle/gems/pry-0.11.0/lib/pry/prompt.rb +0 -26
  2666. data/vendor/bundle/gems/pry-0.11.0/lib/pry/pry_class.rb +0 -401
  2667. data/vendor/bundle/gems/pry-0.11.0/lib/pry/pry_instance.rb +0 -666
  2668. data/vendor/bundle/gems/pry-0.11.0/lib/pry/rbx_path.rb +0 -22
  2669. data/vendor/bundle/gems/pry-0.11.0/lib/pry/repl.rb +0 -232
  2670. data/vendor/bundle/gems/pry-0.11.0/lib/pry/repl_file_loader.rb +0 -74
  2671. data/vendor/bundle/gems/pry-0.11.0/lib/pry/rubygem.rb +0 -84
  2672. data/vendor/bundle/gems/pry-0.11.0/lib/pry/slop.rb +0 -661
  2673. data/vendor/bundle/gems/pry-0.11.0/lib/pry/slop/LICENSE +0 -20
  2674. data/vendor/bundle/gems/pry-0.11.0/lib/pry/slop/commands.rb +0 -196
  2675. data/vendor/bundle/gems/pry-0.11.0/lib/pry/slop/option.rb +0 -208
  2676. data/vendor/bundle/gems/pry-0.11.0/lib/pry/terminal.rb +0 -90
  2677. data/vendor/bundle/gems/pry-0.11.0/lib/pry/test/helper.rb +0 -179
  2678. data/vendor/bundle/gems/pry-0.11.0/lib/pry/version.rb +0 -3
  2679. data/vendor/bundle/gems/pry-0.11.0/lib/pry/wrapped_module.rb +0 -378
  2680. data/vendor/bundle/gems/pry-0.11.0/lib/pry/wrapped_module/candidate.rb +0 -131
  2681. data/vendor/bundle/gems/pry-byebug-3.5.0/CHANGELOG.md +0 -173
  2682. data/vendor/bundle/gems/pry-byebug-3.5.0/LICENSE +0 -20
  2683. data/vendor/bundle/gems/pry-byebug-3.5.0/README.md +0 -176
  2684. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/byebug/processors/pry_processor.rb +0 -164
  2685. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug.rb +0 -2
  2686. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/base.rb +0 -25
  2687. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/cli.rb +0 -4
  2688. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands.rb +0 -10
  2689. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/backtrace.rb +0 -29
  2690. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/breakpoint.rb +0 -133
  2691. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/continue.rb +0 -39
  2692. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/down.rb +0 -33
  2693. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/exit_all.rb +0 -14
  2694. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/finish.rb +0 -26
  2695. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/frame.rb +0 -33
  2696. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/next.rb +0 -37
  2697. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/step.rb +0 -32
  2698. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/commands/up.rb +0 -33
  2699. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/control_d_handler.rb +0 -7
  2700. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/helpers/breakpoints.rb +0 -84
  2701. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/helpers/multiline.rb +0 -21
  2702. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/helpers/navigation.rb +0 -17
  2703. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/pry_ext.rb +0 -16
  2704. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/pry_remote_ext.rb +0 -42
  2705. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry-byebug/version.rb +0 -6
  2706. data/vendor/bundle/gems/pry-byebug-3.5.0/lib/pry/byebug/breakpoints.rb +0 -164
  2707. data/vendor/bundle/gems/public_suffix-3.0.0/CHANGELOG.md +0 -324
  2708. data/vendor/bundle/gems/public_suffix-3.0.0/README.md +0 -202
  2709. data/vendor/bundle/gems/public_suffix-3.0.0/data/list.txt +0 -12225
  2710. data/vendor/bundle/gems/public_suffix-3.0.0/lib/public_suffix/list.rb +0 -245
  2711. data/vendor/bundle/gems/public_suffix-3.0.0/lib/public_suffix/rule.rb +0 -348
  2712. data/vendor/bundle/gems/public_suffix-3.0.0/lib/public_suffix/version.rb +0 -10
  2713. data/vendor/bundle/gems/public_suffix-3.0.0/test/unit/list_test.rb +0 -239
  2714. data/vendor/bundle/gems/public_suffix-3.0.0/test/unit/public_suffix_test.rb +0 -186
  2715. data/vendor/bundle/gems/rack-test-0.7.0/History.md +0 -191
  2716. data/vendor/bundle/gems/rack-test-0.7.0/README.md +0 -110
  2717. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/mock_session.rb +0 -66
  2718. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test.rb +0 -323
  2719. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test/cookie_jar.rb +0 -198
  2720. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test/methods.rb +0 -83
  2721. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test/mock_digest_request.rb +0 -29
  2722. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test/uploaded_file.rb +0 -64
  2723. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test/utils.rb +0 -156
  2724. data/vendor/bundle/gems/rack-test-0.7.0/lib/rack/test/version.rb +0 -5
  2725. data/vendor/bundle/gems/rake-12.1.0/History.rdoc +0 -2266
  2726. data/vendor/bundle/gems/rake-12.1.0/lib/rake/application.rb +0 -786
  2727. data/vendor/bundle/gems/rake-12.1.0/lib/rake/file_list.rb +0 -435
  2728. data/vendor/bundle/gems/rake-12.1.0/lib/rake/file_task.rb +0 -54
  2729. data/vendor/bundle/gems/rake-12.1.0/lib/rake/rake_module.rb +0 -39
  2730. data/vendor/bundle/gems/rake-12.1.0/lib/rake/version.rb +0 -10
  2731. data/vendor/bundle/gems/rake-12.1.0/rake.gemspec +0 -43
  2732. data/vendor/bundle/gems/rspec-3.6.0/lib/rspec/version.rb +0 -5
  2733. data/vendor/bundle/gems/rspec-core-3.6.0/Changelog.md +0 -2167
  2734. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/configuration.rb +0 -2177
  2735. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/drb.rb +0 -113
  2736. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/example.rb +0 -653
  2737. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/example_group.rb +0 -883
  2738. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_formatter.rb +0 -70
  2739. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/formatters/deprecation_formatter.rb +0 -223
  2740. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_printer.rb +0 -414
  2741. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -118
  2742. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/formatters/json_formatter.rb +0 -101
  2743. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/hooks.rb +0 -624
  2744. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/notifications.rb +0 -514
  2745. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/option_parser.rb +0 -309
  2746. data/vendor/bundle/gems/rspec-core-3.6.0/lib/rspec/core/version.rb +0 -9
  2747. data/vendor/bundle/gems/rspec-expectations-3.6.0/Changelog.md +0 -1072
  2748. data/vendor/bundle/gems/rspec-expectations-3.6.0/lib/rspec/expectations/version.rb +0 -8
  2749. data/vendor/bundle/gems/rspec-expectations-3.6.0/lib/rspec/matchers.rb +0 -1025
  2750. data/vendor/bundle/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/base_matcher.rb +0 -193
  2751. data/vendor/bundle/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be.rb +0 -288
  2752. data/vendor/bundle/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/respond_to.rb +0 -165
  2753. data/vendor/bundle/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/yield.rb +0 -432
  2754. data/vendor/bundle/gems/rspec-mocks-3.6.0/Changelog.md +0 -1073
  2755. data/vendor/bundle/gems/rspec-mocks-3.6.0/README.md +0 -460
  2756. data/vendor/bundle/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_matchers.rb +0 -320
  2757. data/vendor/bundle/gems/rspec-mocks-3.6.0/lib/rspec/mocks/error_generator.rb +0 -369
  2758. data/vendor/bundle/gems/rspec-mocks-3.6.0/lib/rspec/mocks/version.rb +0 -9
  2759. data/vendor/bundle/gems/rspec-support-3.6.0/Changelog.md +0 -211
  2760. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support.rb +0 -139
  2761. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support/differ.rb +0 -215
  2762. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support/object_formatter.rb +0 -268
  2763. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support/recursive_const_methods.rb +0 -76
  2764. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support/ruby_features.rb +0 -162
  2765. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support/version.rb +0 -7
  2766. data/vendor/bundle/gems/rspec-support-3.6.0/lib/rspec/support/warnings.rb +0 -39
  2767. data/vendor/bundle/gems/selenium-webdriver-3.5.2/CHANGES +0 -1284
  2768. data/vendor/bundle/gems/selenium-webdriver-3.5.2/Gemfile.lock +0 -56
  2769. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium-webdriver.rb +0 -20
  2770. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/server.rb +0 -270
  2771. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver.rb +0 -99
  2772. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/chrome.rb +0 -49
  2773. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/chrome/driver.rb +0 -124
  2774. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/chrome/options.rb +0 -170
  2775. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/chrome/profile.rb +0 -111
  2776. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/chrome/service.rb +0 -61
  2777. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common.rb +0 -73
  2778. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/action_builder.rb +0 -365
  2779. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/alert.rb +0 -53
  2780. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/bridge_helper.rb +0 -81
  2781. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver.rb +0 -295
  2782. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -50
  2783. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_location.rb +0 -42
  2784. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +0 -58
  2785. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +0 -30
  2786. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +0 -39
  2787. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +0 -36
  2788. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +0 -38
  2789. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +0 -61
  2790. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  2791. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +0 -62
  2792. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/element.rb +0 -335
  2793. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/error.rb +0 -225
  2794. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/file_reaper.rb +0 -67
  2795. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/html5/local_storage.rb +0 -59
  2796. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/html5/session_storage.rb +0 -61
  2797. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/html5/shared_web_storage.rb +0 -52
  2798. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/input_device.rb +0 -53
  2799. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/interaction.rb +0 -52
  2800. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/interactions.rb +0 -43
  2801. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/key_actions.rb +0 -145
  2802. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/key_input.rb +0 -64
  2803. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/none_input.rb +0 -35
  2804. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/pointer_actions.rb +0 -355
  2805. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/interactions/pointer_input.rb +0 -134
  2806. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/keyboard.rb +0 -69
  2807. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/keys.rb +0 -145
  2808. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/log_entry.rb +0 -48
  2809. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/logger.rb +0 -142
  2810. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/logs.rb +0 -40
  2811. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/mouse.rb +0 -88
  2812. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/navigation.rb +0 -60
  2813. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/options.rb +0 -153
  2814. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/platform.rb +0 -223
  2815. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/port_prober.rb +0 -61
  2816. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/profile_helper.rb +0 -83
  2817. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/proxy.rb +0 -156
  2818. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/search_context.rb +0 -112
  2819. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/service.rb +0 -163
  2820. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/socket_lock.rb +0 -77
  2821. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/socket_poller.rb +0 -119
  2822. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/target_locator.rb +0 -111
  2823. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/timeouts.rb +0 -55
  2824. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/touch_action_builder.rb +0 -81
  2825. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/touch_screen.rb +0 -122
  2826. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/w3c_action_builder.rb +0 -211
  2827. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/w3c_error.rb +0 -204
  2828. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/w3c_options.rb +0 -45
  2829. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/wait.rb +0 -77
  2830. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/window.rb +0 -163
  2831. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/common/zipper.rb +0 -99
  2832. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/edge.rb +0 -39
  2833. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/edge/bridge.rb +0 -76
  2834. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/edge/driver.rb +0 -80
  2835. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/edge/service.rb +0 -57
  2836. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox.rb +0 -62
  2837. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/binary.rb +0 -188
  2838. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/driver.rb +0 -50
  2839. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/extension.rb +0 -83
  2840. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  2841. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/launcher.rb +0 -110
  2842. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/legacy/driver.rb +0 -81
  2843. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/marionette/bridge.rb +0 -49
  2844. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/marionette/driver.rb +0 -103
  2845. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/options.rb +0 -139
  2846. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/profile.rb +0 -286
  2847. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/profiles_ini.rb +0 -73
  2848. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/service.rb +0 -65
  2849. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/firefox/util.rb +0 -46
  2850. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/ie.rb +0 -37
  2851. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/ie/driver.rb +0 -103
  2852. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/ie/options.rb +0 -138
  2853. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/ie/service.rb +0 -60
  2854. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/phantomjs.rb +0 -42
  2855. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/phantomjs/driver.rb +0 -70
  2856. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/phantomjs/service.rb +0 -45
  2857. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote.rb +0 -35
  2858. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/bridge.rb +0 -196
  2859. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/capabilities.rb +0 -261
  2860. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/driver.rb +0 -51
  2861. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/http/common.rb +0 -97
  2862. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/http/curb.rb +0 -97
  2863. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/http/default.rb +0 -179
  2864. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/http/persistent.rb +0 -60
  2865. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/oss/bridge.rb +0 -588
  2866. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/oss/commands.rb +0 -223
  2867. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/response.rb +0 -130
  2868. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/server_error.rb +0 -34
  2869. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -575
  2870. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/w3c/capabilities.rb +0 -298
  2871. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/remote/w3c/commands.rb +0 -150
  2872. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/safari.rb +0 -58
  2873. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/safari/driver.rb +0 -64
  2874. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/safari/service.rb +0 -59
  2875. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support.rb +0 -25
  2876. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support/abstract_event_listener.rb +0 -87
  2877. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support/block_event_listener.rb +0 -34
  2878. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support/color.rb +0 -146
  2879. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support/escaper.rb +0 -43
  2880. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support/event_firing_bridge.rb +0 -129
  2881. data/vendor/bundle/gems/selenium-webdriver-3.5.2/lib/selenium/webdriver/support/select.rb +0 -271
  2882. data/vendor/bundle/gems/selenium-webdriver-3.5.2/selenium-webdriver.gemspec +0 -32
  2883. data/vendor/bundle/gems/sequel-5.0.0/CHANGELOG +0 -7092
  2884. data/vendor/bundle/gems/sequel-5.0.0/bin/sequel +0 -251
  2885. data/vendor/bundle/gems/sequel-5.0.0/doc/advanced_associations.rdoc +0 -764
  2886. data/vendor/bundle/gems/sequel-5.0.0/doc/association_basics.rdoc +0 -1759
  2887. data/vendor/bundle/gems/sequel-5.0.0/doc/schema_modification.rdoc +0 -668
  2888. data/vendor/bundle/gems/sequel-5.0.0/doc/security.rdoc +0 -433
  2889. data/vendor/bundle/gems/sequel-5.0.0/doc/testing.rdoc +0 -166
  2890. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/jdbc.rb +0 -781
  2891. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/jdbc/h2.rb +0 -236
  2892. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/jdbc/hsqldb.rb +0 -220
  2893. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/jdbc/mysql.rb +0 -79
  2894. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/jdbc/postgresql.rb +0 -228
  2895. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/oracle.rb +0 -409
  2896. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/postgres.rb +0 -831
  2897. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/shared/mysql.rb +0 -938
  2898. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/shared/postgres.rb +0 -1761
  2899. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/shared/sqlite.rb +0 -779
  2900. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/adapters/utils/mysql_mysql2.rb +0 -81
  2901. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/connection_pool.rb +0 -135
  2902. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/database/misc.rb +0 -524
  2903. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/database/schema_generator.rb +0 -628
  2904. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/dataset/actions.rb +0 -1219
  2905. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/dataset/dataset_module.rb +0 -46
  2906. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/dataset/features.rb +0 -211
  2907. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/dataset/query.rb +0 -1306
  2908. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/dataset/sql.rb +0 -1534
  2909. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/extensions/migration.rb +0 -795
  2910. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/extensions/pg_inet.rb +0 -117
  2911. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/model/associations.rb +0 -3455
  2912. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/model/base.rb +0 -2214
  2913. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/plugins/class_table_inheritance.rb +0 -403
  2914. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/plugins/validation_helpers.rb +0 -316
  2915. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/timezones.rb +0 -211
  2916. data/vendor/bundle/gems/sequel-5.0.0/lib/sequel/version.rb +0 -20
  2917. data/vendor/bundle/gems/sequel-5.0.0/spec/adapters/mysql_spec.rb +0 -1030
  2918. data/vendor/bundle/gems/sequel-5.0.0/spec/adapters/postgres_spec.rb +0 -3625
  2919. data/vendor/bundle/gems/sequel-5.0.0/spec/core/database_spec.rb +0 -2641
  2920. data/vendor/bundle/gems/sequel-5.0.0/spec/core/dataset_spec.rb +0 -5374
  2921. data/vendor/bundle/gems/sequel-5.0.0/spec/core/mock_adapter_spec.rb +0 -657
  2922. data/vendor/bundle/gems/sequel-5.0.0/spec/core/schema_spec.rb +0 -1787
  2923. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/association_pks_spec.rb +0 -430
  2924. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/class_table_inheritance_spec.rb +0 -532
  2925. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/composition_spec.rb +0 -264
  2926. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/list_spec.rb +0 -276
  2927. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/many_through_many_spec.rb +0 -2185
  2928. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/migration_spec.rb +0 -794
  2929. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/optimistic_locking_spec.rb +0 -127
  2930. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/pg_array_associations_spec.rb +0 -797
  2931. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/pg_hstore_spec.rb +0 -208
  2932. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/prepared_statements_safe_spec.rb +0 -66
  2933. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/pretty_table_spec.rb +0 -92
  2934. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/rcte_tree_spec.rb +0 -392
  2935. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/schema_dumper_spec.rb +0 -857
  2936. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/serialization_spec.rb +0 -365
  2937. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/timestamps_spec.rb +0 -211
  2938. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/update_or_create_spec.rb +0 -87
  2939. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/uuid_spec.rb +0 -102
  2940. data/vendor/bundle/gems/sequel-5.0.0/spec/extensions/xml_serializer_spec.rb +0 -211
  2941. data/vendor/bundle/gems/sequel-5.0.0/spec/integration/database_test.rb +0 -113
  2942. data/vendor/bundle/gems/sequel-5.0.0/spec/integration/dataset_test.rb +0 -1841
  2943. data/vendor/bundle/gems/sequel-5.0.0/spec/integration/plugin_test.rb +0 -2302
  2944. data/vendor/bundle/gems/sequel-5.0.0/spec/integration/prepared_statement_test.rb +0 -398
  2945. data/vendor/bundle/gems/sequel-5.0.0/spec/integration/schema_test.rb +0 -867
  2946. data/vendor/bundle/gems/sequel-5.0.0/spec/integration/spec_helper.rb +0 -62
  2947. data/vendor/bundle/gems/sequel-5.0.0/spec/model/base_spec.rb +0 -792
  2948. data/vendor/bundle/gems/sequel-5.0.0/spec/model/eager_loading_spec.rb +0 -2237
  2949. data/vendor/bundle/gems/sequel-5.0.0/spec/model/model_spec.rb +0 -958
  2950. data/vendor/bundle/gems/sequel-5.0.0/spec/model/record_spec.rb +0 -2083
  2951. data/vendor/bundle/gems/test-unit-3.2.5/README.md +0 -101
  2952. data/vendor/bundle/gems/test-unit-3.2.5/doc/text/news.md +0 -1256
  2953. data/vendor/bundle/gems/test-unit-3.2.5/lib/test/unit/autorunner.rb +0 -533
  2954. data/vendor/bundle/gems/test-unit-3.2.5/lib/test/unit/collector/load.rb +0 -202
  2955. data/vendor/bundle/gems/test-unit-3.2.5/lib/test/unit/runner/console.rb +0 -59
  2956. data/vendor/bundle/gems/test-unit-3.2.5/lib/test/unit/ui/console/testrunner.rb +0 -699
  2957. data/vendor/bundle/gems/test-unit-3.2.5/lib/test/unit/version.rb +0 -5
  2958. data/vendor/bundle/gems/tins-1.15.0/README.md +0 -86
  2959. data/vendor/bundle/gems/tins-1.15.0/VERSION +0 -1
  2960. data/vendor/bundle/gems/tins-1.15.0/lib/tins.rb +0 -59
  2961. data/vendor/bundle/gems/tins-1.15.0/lib/tins/hash_symbolize_keys_recursive.rb +0 -28
  2962. data/vendor/bundle/gems/tins-1.15.0/lib/tins/version.rb +0 -8
  2963. data/vendor/bundle/gems/tins-1.15.0/lib/tins/xt.rb +0 -44
  2964. data/vendor/bundle/gems/tins-1.15.0/tins.gemspec +0 -41
  2965. data/vendor/bundle/specifications/byebug-9.1.0.gemspec +0 -38
  2966. data/vendor/bundle/specifications/capybara-2.15.1.gemspec +0 -85
  2967. data/vendor/bundle/specifications/childprocess-0.7.1.gemspec +0 -45
  2968. data/vendor/bundle/specifications/coderay-1.1.2.gemspec +0 -26
  2969. data/vendor/bundle/specifications/fastimage-2.1.0.gemspec +0 -45
  2970. data/vendor/bundle/specifications/mail-2.6.6.gemspec +0 -47
  2971. data/vendor/bundle/specifications/method_source-0.8.2.gemspec +0 -34
  2972. data/vendor/bundle/specifications/mini_mime-0.1.4.gemspec +0 -39
  2973. data/vendor/bundle/specifications/octokit-4.7.0.gemspec +0 -36
  2974. data/vendor/bundle/specifications/power_assert-1.1.0.gemspec +0 -51
  2975. data/vendor/bundle/specifications/pry-0.11.0.gemspec +0 -41
  2976. data/vendor/bundle/specifications/pry-byebug-3.5.0.gemspec +0 -38
  2977. data/vendor/bundle/specifications/public_suffix-3.0.0.gemspec +0 -41
  2978. data/vendor/bundle/specifications/rack-test-0.7.0.gemspec +0 -53
  2979. data/vendor/bundle/specifications/rake-12.1.0.gemspec +0 -49
  2980. data/vendor/bundle/specifications/rspec-3.6.0.gemspec +0 -42
  2981. data/vendor/bundle/specifications/rspec-core-3.6.0.gemspec +0 -62
  2982. data/vendor/bundle/specifications/rspec-expectations-3.6.0.gemspec +0 -50
  2983. data/vendor/bundle/specifications/rspec-mocks-3.6.0.gemspec +0 -50
  2984. data/vendor/bundle/specifications/rspec-support-3.6.0.gemspec +0 -41
  2985. data/vendor/bundle/specifications/selenium-webdriver-3.5.2.gemspec +0 -48
  2986. data/vendor/bundle/specifications/sequel-5.0.0.gemspec +0 -52
  2987. data/vendor/bundle/specifications/test-unit-3.2.5.gemspec +0 -47
  2988. data/vendor/bundle/specifications/tins-1.15.0.gemspec +0 -42
@@ -0,0 +1,2262 @@
1
+ require_relative "spec_helper"
2
+
3
+ describe Sequel::Model, "#eager" do
4
+ before do
5
+ class ::EagerAlbum < Sequel::Model(:albums)
6
+ columns :id, :band_id
7
+ many_to_one :band, :class=>'EagerBand', :key=>:band_id
8
+ one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id
9
+ many_to_many :genres, :class=>'EagerGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag
10
+ one_through_one :genre, :clone=>:genres
11
+ one_to_many :good_tracks, :class=>'EagerTrack', :reciprocal=>nil, :key=>:album_id do |ds|
12
+ ds.filter(:name=>'Good')
13
+ end
14
+ many_to_one :band_name, :class=>'EagerBand', :key=>:band_id, :select=>[:id, :name]
15
+ one_to_many :track_names, :class=>'EagerTrack', :key=>:album_id, :select=>[:id, :name]
16
+ many_to_many :genre_names, :class=>'EagerGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :select=>[:id]
17
+
18
+ def band_id3
19
+ band_id*3
20
+ end
21
+ end
22
+
23
+ class ::EagerBand < Sequel::Model(:bands)
24
+ columns :id, :p_k
25
+ one_to_many :albums, :class=>'EagerAlbum', :key=>:band_id, :eager=>:tracks, :reciprocal=>:band
26
+ one_to_many :graph_albums, :class=>'EagerAlbum', :key=>:band_id, :eager_graph=>:tracks, :reciprocal=>nil
27
+ many_to_many :members, :class=>'EagerBandMember', :left_key=>:band_id, :right_key=>:member_id, :join_table=>:bm
28
+ many_to_many :graph_members, :clone=>:members, :eager_graph=>:bands
29
+ one_to_many :good_albums, :class=>'EagerAlbum', :key=>:band_id, :reciprocal=>nil, :eager_block=>proc{|ds| ds.filter(:name=>'good')} do |ds|
30
+ ds.filter(:name=>'Good')
31
+ end
32
+ one_to_many :self_titled_albums, :class=>'EagerAlbum', :key=>:band_id, :allow_eager=>false do |ds|
33
+ ds.filter(:name=>name)
34
+ end
35
+ one_to_many :albums_by_name, :class=>'EagerAlbum', :key=>:band_id, :order=>:name, :allow_eager=>false
36
+ one_to_many :top_10_albums, :class=>'EagerAlbum', :key=>:band_id, :limit=>10
37
+
38
+ def id3
39
+ id/3
40
+ end
41
+ end
42
+
43
+ class ::EagerTrack < Sequel::Model(:tracks)
44
+ columns :id, :album_id
45
+ many_to_one :album, :class=>'EagerAlbum', :key=>:album_id
46
+ end
47
+
48
+ class ::EagerGenre < Sequel::Model(:genres)
49
+ columns :id, :xxx
50
+ many_to_many :albums, :class=>'EagerAlbum', :left_key=>:genre_id, :right_key=>:album_id, :join_table=>:ag
51
+ end
52
+
53
+ class ::EagerBandMember < Sequel::Model(:members)
54
+ columns :id
55
+ many_to_many :bands, :class=>'EagerBand', :left_key=>:member_id, :right_key=>:band_id, :join_table=>:bm, :order =>:id
56
+ end
57
+
58
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch(proc do |sql|
59
+ h = if sql =~ /101/
60
+ {:id => 101, :band_id=> 101}
61
+ else
62
+ {:id => 1, :band_id=> 2}
63
+ end
64
+ h[:x_foreign_key_x] = 4 if sql =~ /ag\.genre_id/
65
+ h
66
+ end)
67
+ EagerAlbum.dataset.columns(:id, :band_id)
68
+
69
+ EagerBand.dataset = EagerBand.dataset.with_fetch(proc do |sql|
70
+ case sql
71
+ when /id IN (101)/
72
+ # nothing
73
+ when /id > 100/
74
+ [{:id => 101}, {:id => 102}]
75
+ else
76
+ h = {:id => 2}
77
+ h[:x_foreign_key_x] = 5 if sql =~ /bm\.member_id/
78
+ h
79
+ end
80
+ end)
81
+
82
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch(:id => 3, :album_id => 1)
83
+
84
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch(proc do |sql|
85
+ h = {:id => 4}
86
+ h[:x_foreign_key_x] = 1 if sql =~ /ag\.album_id/
87
+ h
88
+ end)
89
+
90
+ EagerBandMember.dataset = EagerBandMember.dataset.with_fetch(proc do |sql|
91
+ h = {:id => 5}
92
+ h[:x_foreign_key_x] = 2 if sql =~ /bm\.band_id/
93
+ h
94
+ end)
95
+
96
+ DB.reset
97
+ end
98
+ after do
99
+ [:EagerAlbum, :EagerBand, :EagerTrack, :EagerGenre, :EagerBandMember].each{|x| Object.send(:remove_const, x)}
100
+ end
101
+
102
+ it "should populate :key_hash and :id_map option correctly for custom eager loaders" do
103
+ khs = {}
104
+ pr = proc{|a, m| proc{|h| khs[a] = h[:key_hash][m]; h[:id_map].must_equal h[:key_hash][m]}}
105
+ EagerAlbum.many_to_one :sband, :clone=>:band, :eager_loader=>pr.call(:sband, :band_id)
106
+ EagerAlbum.one_to_many :stracks, :clone=>:tracks, :eager_loader=>pr.call(:stracks, :id)
107
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :eager_loader=>pr.call(:sgenres, :id)
108
+ EagerAlbum.eager(:sband, :stracks, :sgenres).all
109
+ khs.must_equal(:sband=>{2=>[EagerAlbum.load(:band_id=>2, :id=>1)]}, :stracks=>{1=>[EagerAlbum.load(:band_id=>2, :id=>1)]}, :sgenres=>{1=>[EagerAlbum.load(:band_id=>2, :id=>1)]})
110
+ end
111
+
112
+ it "should populate :key_hash using the method symbol" do
113
+ khs = {}
114
+ pr = proc{|a, m| proc{|h| khs[a] = h[:key_hash][m]}}
115
+ EagerAlbum.many_to_one :sband, :clone=>:band, :eager_loader=>pr.call(:sband, :band_id), :key=>:band_id, :key_column=>:b_id
116
+ EagerAlbum.one_to_many :stracks, :clone=>:tracks, :eager_loader=>pr.call(:stracks, :id), :primary_key=>:id, :primary_key_column=>:i
117
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :eager_loader=>pr.call(:sgenres, :id), :left_primary_key=>:id, :left_primary_key_column=>:i
118
+ EagerAlbum.eager(:sband, :stracks, :sgenres).all
119
+ khs.must_equal(:sband=>{2=>[EagerAlbum.load(:band_id=>2, :id=>1)]}, :stracks=>{1=>[EagerAlbum.load(:band_id=>2, :id=>1)]}, :sgenres=>{1=>[EagerAlbum.load(:band_id=>2, :id=>1)]})
120
+ end
121
+
122
+ it "should raise an error if called without a symbol or hash" do
123
+ proc{EagerAlbum.eager(Object.new)}.must_raise(Sequel::Error)
124
+ end
125
+
126
+ it "should eagerly load a single many_to_one association" do
127
+ a = EagerAlbum.eager(:band).all
128
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM bands WHERE (bands.id IN (2))']
129
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
130
+ a.first.band.must_equal EagerBand.load(:id=>2)
131
+ DB.sqls.must_equal []
132
+ end
133
+
134
+ it "should eagerly load when using to_hash" do
135
+ h = EagerAlbum.eager(:band).to_hash
136
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM bands WHERE (bands.id IN (2))']
137
+ h.must_equal(1=>EagerAlbum.load(:id => 1, :band_id => 2))
138
+ h[1].band.must_equal EagerBand.load(:id=>2)
139
+ DB.sqls.must_equal []
140
+ end
141
+
142
+ it "should eagerly load when using to_hash_groups" do
143
+ h = EagerAlbum.eager(:band).to_hash_groups(:id)
144
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM bands WHERE (bands.id IN (2))']
145
+ h.must_equal(1=>[EagerAlbum.load(:id => 1, :band_id => 2)])
146
+ h[1].first.band.must_equal EagerBand.load(:id=>2)
147
+ DB.sqls.must_equal []
148
+ end
149
+
150
+ it "should skip eager loading for a many_to_one association with no matching keys" do
151
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch([{:id=>1, :band_id=>nil}])
152
+ a = EagerAlbum.eager(:band).all
153
+ DB.sqls.must_equal ['SELECT * FROM albums']
154
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => nil)]
155
+ a.first.associations.fetch(:band).must_be_nil
156
+ a.first.band.must_be_nil
157
+ DB.sqls.must_equal []
158
+ end
159
+
160
+ it "should eagerly load a single many_to_one association with the same name as the column" do
161
+ EagerAlbum.def_column_alias(:band_id_id, :band_id)
162
+ EagerAlbum.many_to_one :band_id, :key_column=>:band_id, :class=>EagerBand
163
+ a = EagerAlbum.eager(:band_id).all
164
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM bands WHERE (bands.id IN (2))']
165
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
166
+ a.first.band_id.must_equal EagerBand.load(:id=>2)
167
+ DB.sqls.must_equal []
168
+ end
169
+
170
+ it "should eagerly load a single one_to_one association" do
171
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id
172
+ a = EagerAlbum.eager(:track).all
173
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
174
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
175
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
176
+ DB.sqls.must_equal []
177
+ end
178
+
179
+ it "should not break if the dataset does not have a row proc" do
180
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id
181
+ a = EagerAlbum.eager(:track).naked.all
182
+ a.must_equal [{:id => 1, :band_id => 2}]
183
+ DB.sqls.must_equal ['SELECT * FROM albums']
184
+ end
185
+
186
+ it "should eagerly load a single one_to_one association without an order" do
187
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id
188
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:id => 3, :album_id=>1}, {:id => 4, :album_id=>1}])
189
+ a = EagerAlbum.eager(:track).all
190
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
191
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
192
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
193
+ DB.sqls.must_equal []
194
+ end
195
+
196
+ it "should eagerly load a single one_to_one association with an order" do
197
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:a
198
+ a = EagerAlbum.eager(:track).all
199
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
200
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY a LIMIT 1) AS t1']
201
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
202
+ DB.sqls.must_equal []
203
+ end
204
+
205
+ it "should eagerly load a single one_to_one association using the :distinct_on strategy" do
206
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_distinct_on?; true end}
207
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:a, :eager_limit_strategy=>:distinct_on
208
+ a = EagerAlbum.eager(:track).all
209
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
210
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT DISTINCT ON (tracks.album_id) * FROM tracks WHERE (tracks.album_id IN (1)) ORDER BY tracks.album_id, a']
211
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
212
+ DB.sqls.must_equal []
213
+ end
214
+
215
+ it "should eagerly load a single one_to_one association using the :window_function strategy" do
216
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
217
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :eager_limit_strategy=>:window_function
218
+ a = EagerAlbum.eager(:track).all
219
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
220
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x = 1)']
221
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
222
+ DB.sqls.must_equal []
223
+ end
224
+
225
+ it "should eagerly load a single one_to_one association using the :window_function strategy on MySQL" do
226
+ odb = DB
227
+ db = Class.new do
228
+ def database_type; :mysql; end
229
+ define_method(:method_missing) do |*args, &block|
230
+ odb.send(*args, &block)
231
+ end
232
+ end.new
233
+
234
+ begin
235
+ EagerTrack.dataset = EagerTrack.dataset.with_extend do
236
+ def supports_window_functions?; true end
237
+ define_method(:db){db}
238
+ end
239
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :eager_limit_strategy=>:window_function
240
+ a = EagerAlbum.eager(:track).all
241
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
242
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x = 1) ORDER BY x_sequel_row_number_x']
243
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
244
+ DB.sqls.must_equal []
245
+ ensure
246
+ db = DB
247
+ end
248
+ end
249
+
250
+ it "should automatically use an eager limit stategy if the association has an offset" do
251
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :limit=>[1,1]
252
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:id => 4, :album_id=>1}])
253
+ a = EagerAlbum.eager(:track).all
254
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
255
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1']
256
+ a.first.track.must_equal EagerTrack.load(:id => 4, :album_id=>1)
257
+ DB.sqls.must_equal []
258
+ end
259
+
260
+ it "should handle offsets when using the :ruby eager limit stategy" do
261
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :limit=>[1,1], :eager_limit_strategy=>:ruby
262
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:id => 3, :album_id=>1}, {:id => 4, :album_id=>1}])
263
+ a = EagerAlbum.eager(:track).all
264
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
265
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
266
+ a.first.track.must_equal EagerTrack.load(:id => 4, :album_id=>1)
267
+ DB.sqls.must_equal []
268
+ end
269
+
270
+ it "should support a :subqueries_per_union option for the number of subqueries in a union" do
271
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :limit=>[1,1], :subqueries_per_union=>1
272
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch([{:id => 1, :band_id => 2}, {:id => 2, :band_id => 3}, {:id => 3, :band_id => 4}])
273
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([[{:id => 4, :album_id=>1}], [{:id=>5, :album_id=>2}], [{:id=>6, :album_id=>3}]])
274
+ a = EagerAlbum.eager(:track).all
275
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2), EagerAlbum.load(:id => 2, :band_id => 3), EagerAlbum.load(:id => 3, :band_id => 4)]
276
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1', 'SELECT * FROM (SELECT * FROM tracks WHERE (2 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1', 'SELECT * FROM (SELECT * FROM tracks WHERE (3 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1']
277
+ a.first.track.must_equal EagerTrack.load(:id => 4, :album_id=>1)
278
+ DB.sqls.must_equal []
279
+
280
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :limit=>[1,1], :subqueries_per_union=>2
281
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([[{:id => 4, :album_id=>1}, {:id=>5, :album_id=>2}], [{:id=>6, :album_id=>3}]])
282
+ a = EagerAlbum.eager(:track).all
283
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2), EagerAlbum.load(:id => 2, :band_id => 3), EagerAlbum.load(:id => 3, :band_id => 4)]
284
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1 UNION ALL SELECT * FROM (SELECT * FROM tracks WHERE (2 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1', 'SELECT * FROM (SELECT * FROM tracks WHERE (3 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1']
285
+ a.first.track.must_equal EagerTrack.load(:id => 4, :album_id=>1)
286
+ DB.sqls.must_equal []
287
+
288
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :limit=>[1,1], :subqueries_per_union=>3
289
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([[{:id => 4, :album_id=>1}, {:id=>5, :album_id=>2}, {:id=>6, :album_id=>3}]])
290
+ a = EagerAlbum.eager(:track).all
291
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2), EagerAlbum.load(:id => 2, :band_id => 3), EagerAlbum.load(:id => 3, :band_id => 4)]
292
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1 UNION ALL SELECT * FROM (SELECT * FROM tracks WHERE (2 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1 UNION ALL SELECT * FROM (SELECT * FROM tracks WHERE (3 = tracks.album_id) LIMIT 1 OFFSET 1) AS t1']
293
+ a.first.track.must_equal EagerTrack.load(:id => 4, :album_id=>1)
294
+ DB.sqls.must_equal []
295
+ end
296
+
297
+ it "should eagerly load a single one_to_many association" do
298
+ a = EagerAlbum.eager(:tracks).all
299
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
300
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
301
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
302
+ DB.sqls.must_equal []
303
+ end
304
+
305
+ it "should eagerly load a single one_through_one association" do
306
+ a = EagerAlbum.eager(:genre).all
307
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
308
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
309
+ a.first.genre.must_equal EagerGenre.load(:id=>4)
310
+ DB.sqls.must_equal []
311
+ end
312
+
313
+ it "should use first matching entry when eager loading one_through_one association" do
314
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:id => 3, :x_foreign_key_x=>1}, {:id => 4, :x_foreign_key_x=>1}])
315
+ a = EagerAlbum.eager(:genre).all
316
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
317
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
318
+ a.first.genre.must_equal EagerGenre.load(:id=>3)
319
+ DB.sqls.must_equal []
320
+ end
321
+
322
+ it "should eagerly load a single one_through_one association" do
323
+ EagerAlbum.one_through_one :genre, :clone=>:genre, :order=>:a
324
+ a = EagerAlbum.eager(:genre).all
325
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
326
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (1 = ag.album_id) ORDER BY a LIMIT 1) AS t1"]
327
+ a.first.genre.must_equal EagerGenre.load(:id=>4)
328
+ DB.sqls.must_equal []
329
+ end
330
+
331
+ it "should eagerly load a single one_through_one association using the :distinct_on strategy" do
332
+ EagerGenre.dataset = EagerGenre.dataset.with_extend{def supports_distinct_on?; true end}
333
+ EagerAlbum.one_through_one :genre, :clone=>:genre, :order=>:a, :eager_limit_strategy=>:distinct_on
334
+ a = EagerAlbum.eager(:genre).all
335
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
336
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT DISTINCT ON (ag.album_id) genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1)) ORDER BY ag.album_id, a"]
337
+ a.first.genre.must_equal EagerGenre.load(:id=>4)
338
+ DB.sqls.must_equal []
339
+ end
340
+
341
+ it "should eagerly load a single one_through_one association using the :window_function strategy" do
342
+ EagerGenre.dataset = EagerGenre.dataset.with_extend{def supports_window_functions?; true end}
343
+ EagerAlbum.one_through_one :genre, :clone=>:genre, :eager_limit_strategy=>:window_function
344
+ a = EagerAlbum.eager(:genre).all
345
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
346
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x = 1)"]
347
+ a.first.genre.must_equal EagerGenre.load(:id=>4)
348
+ DB.sqls.must_equal []
349
+ end
350
+
351
+ it "should automatically use an eager limit stategy if the association has an offset" do
352
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:id => 3, :x_foreign_key_x=>1}, {:id => 4, :x_foreign_key_x=>1}])
353
+ a = EagerAlbum.eager(:genre).all
354
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
355
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
356
+ a.first.genre.must_equal EagerGenre.load(:id=>3)
357
+ DB.sqls.must_equal []
358
+ end
359
+
360
+ it "should eagerly load a single many_to_many association" do
361
+ a = EagerAlbum.eager(:genres).all
362
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
363
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
364
+ a.first.genres.must_equal [EagerGenre.load(:id=>4)]
365
+ DB.sqls.must_equal []
366
+ end
367
+
368
+ it "should support using a custom :key option when eager loading many_to_one associations" do
369
+ EagerAlbum.many_to_one :sband, :clone=>:band, :key=>:band_id3
370
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:id=>6)
371
+ a = EagerAlbum.eager(:sband).all
372
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM bands WHERE (bands.id IN (6))']
373
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
374
+ a.first.sband.must_equal EagerBand.load(:id=>6)
375
+ DB.sqls.must_equal []
376
+ end
377
+
378
+ it "should support using a custom :primary_key option when eager loading one_to_many associations" do
379
+ EagerBand.one_to_many :salbums, :clone=>:albums, :primary_key=>:id3, :eager=>nil, :reciprocal=>nil
380
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:id=>6)
381
+ a = EagerBand.eager(:salbums).all
382
+ DB.sqls.must_equal ['SELECT * FROM bands', 'SELECT * FROM albums WHERE (albums.band_id IN (2))']
383
+ a.must_equal [EagerBand.load(:id => 6)]
384
+ a.first.salbums.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
385
+ DB.sqls.must_equal []
386
+ end
387
+
388
+ it "should support using a custom :left_primary_key option when eager loading many_to_many associations" do
389
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :left_primary_key=>:band_id3
390
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch(:id=>4, :x_foreign_key_x=>6)
391
+ a = EagerAlbum.eager(:sgenres).all
392
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
393
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (6))"]
394
+ a.first.sgenres.must_equal [EagerGenre.load(:id=>4)]
395
+ DB.sqls.must_equal []
396
+ end
397
+
398
+ it "should support using a custom :left_primary_key option when eager loading one_through_one associations" do
399
+ EagerAlbum.one_through_one :sgenre, :clone=>:genre, :left_primary_key=>:band_id3
400
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch(:id=>4, :x_foreign_key_x=>6)
401
+ a = EagerAlbum.eager(:sgenre).all
402
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
403
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (6))"]
404
+ a.first.sgenre.must_equal EagerGenre.load(:id=>4)
405
+ DB.sqls.must_equal []
406
+ end
407
+
408
+ it "should handle a :predicate_key option to change the SQL used in the lookup, for many_to_one associations" do
409
+ EagerAlbum.many_to_one :sband, :clone=>:band, :predicate_key=>(Sequel[:bands][:id] / 3), :primary_key_method=>:id3
410
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:id=>6)
411
+ a = EagerAlbum.eager(:sband).all
412
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM bands WHERE ((bands.id / 3) IN (2))']
413
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
414
+ a.first.sband.must_equal EagerBand.load(:id=>6)
415
+ DB.sqls.must_equal []
416
+ end
417
+
418
+ it "should handle a :predicate_key option to change the SQL used in the lookup, for one_to_many associations" do
419
+ EagerBand.one_to_many :salbums, :clone=>:albums, :predicate_key=>(Sequel[:albums][:band_id] * 3), :key_method=>:band_id3, :eager=>nil, :reciprocal=>nil
420
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:id=>6)
421
+ a = EagerBand.eager(:salbums).all
422
+ DB.sqls.must_equal ['SELECT * FROM bands', 'SELECT * FROM albums WHERE ((albums.band_id * 3) IN (6))']
423
+ a.must_equal [EagerBand.load(:id => 6)]
424
+ a.first.salbums.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
425
+ DB.sqls.must_equal []
426
+ end
427
+
428
+ it "should handle a :predicate_key option to change the SQL used in the lookup, for many_to_many associations" do
429
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :predicate_key=>(Sequel[:ag][:album_id] * 1)
430
+ a = EagerAlbum.eager(:sgenres).all
431
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
432
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, (ag.album_id * 1) AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE ((ag.album_id * 1) IN (1))"]
433
+ a.first.sgenres.must_equal [EagerGenre.load(:id=>4)]
434
+ DB.sqls.must_equal []
435
+ end
436
+
437
+ it "should handle a :predicate_key option to change the SQL used in the lookup, for one_through_one associations" do
438
+ EagerAlbum.one_through_one :sgenre, :clone=>:genre, :predicate_key=>(Sequel[:ag][:album_id] * 1)
439
+ a = EagerAlbum.eager(:sgenre).all
440
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
441
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, (ag.album_id * 1) AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE ((ag.album_id * 1) IN (1))"]
442
+ a.first.sgenre.must_equal EagerGenre.load(:id=>4)
443
+ DB.sqls.must_equal []
444
+ end
445
+
446
+ it "should raise an error for an unhandled :eager_loader_key option" do
447
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :eager_loader_key=>1
448
+ ds = EagerAlbum.eager(:sgenres)
449
+ proc{ds.all}.must_raise(Sequel::Error)
450
+ end
451
+
452
+ it "should not add entry to key_hash for :eager_loader_key=>nil option" do
453
+ eo = nil
454
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :eager_loader_key=>nil, :eager_loader=>proc{|o| eo = o}
455
+ ds = EagerAlbum.eager(:sgenres)
456
+ ds.all
457
+ eo[:key_hash].must_equal({})
458
+ eo[:id_map].must_be_nil
459
+ end
460
+
461
+ it "should correctly handle a :select=>[] option to many_to_many" do
462
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :select=>[]
463
+ EagerAlbum.eager(:sgenres).all
464
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT *, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
465
+ end
466
+
467
+ it "should correctly handle a :select=>[] option to one_through_one" do
468
+ EagerAlbum.one_through_one :sgenre, :clone=>:genre, :select=>[]
469
+ EagerAlbum.eager(:sgenre).all
470
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT *, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
471
+ end
472
+
473
+ with_symbol_splitting "should correctly handle an aliased join table symbol in many_to_many" do
474
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :join_table=>:ag___ga
475
+ EagerAlbum.eager(:sgenres).all
476
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ga.album_id AS x_foreign_key_x FROM genres INNER JOIN ag AS ga ON (ga.genre_id = genres.id) WHERE (ga.album_id IN (1))"]
477
+ end
478
+
479
+ with_symbol_splitting "should correctly handle an aliased join table symbol in one_through_one" do
480
+ EagerAlbum.one_through_one :sgenre, :clone=>:genre, :join_table=>:ag___ga
481
+ EagerAlbum.eager(:sgenre).all
482
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ga.album_id AS x_foreign_key_x FROM genres INNER JOIN ag AS ga ON (ga.genre_id = genres.id) WHERE (ga.album_id IN (1))"]
483
+ end
484
+
485
+ it "should correctly handle an aliased join table in many_to_many" do
486
+ EagerAlbum.many_to_many :sgenres, :clone=>:genres, :join_table=>Sequel[:ag].as(:ga)
487
+ EagerAlbum.eager(:sgenres).all
488
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ga.album_id AS x_foreign_key_x FROM genres INNER JOIN ag AS ga ON (ga.genre_id = genres.id) WHERE (ga.album_id IN (1))"]
489
+ end
490
+
491
+ it "should correctly handle an aliased join table in one_through_one" do
492
+ EagerAlbum.one_through_one :sgenre, :clone=>:genre, :join_table=>Sequel[:ag].as(:ga)
493
+ EagerAlbum.eager(:sgenre).all
494
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ga.album_id AS x_foreign_key_x FROM genres INNER JOIN ag AS ga ON (ga.genre_id = genres.id) WHERE (ga.album_id IN (1))"]
495
+ end
496
+
497
+ it "should eagerly load multiple associations in a single call" do
498
+ a = EagerAlbum.eager(:genres, :tracks, :band).all
499
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
500
+ sqls = DB.sqls
501
+ sqls.shift.must_equal 'SELECT * FROM albums'
502
+ sqls.sort.must_equal ['SELECT * FROM bands WHERE (bands.id IN (2))',
503
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))',
504
+ 'SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))']
505
+ a = a.first
506
+ a.band.must_equal EagerBand.load(:id=>2)
507
+ a.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
508
+ a.genres.must_equal [EagerGenre.load(:id => 4)]
509
+ DB.sqls.must_equal []
510
+ end
511
+
512
+ it "should eagerly load multiple associations in separate calls" do
513
+ a = EagerAlbum.eager(:genres).eager(:tracks).eager(:band).all
514
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
515
+ sqls = DB.sqls
516
+ sqls.shift.must_equal 'SELECT * FROM albums'
517
+ sqls.sort.must_equal ['SELECT * FROM bands WHERE (bands.id IN (2))',
518
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))',
519
+ 'SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))']
520
+ a = a.first
521
+ a.band.must_equal EagerBand.load(:id=>2)
522
+ a.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
523
+ a.genres.must_equal [EagerGenre.load(:id => 4)]
524
+ DB.sqls.must_equal []
525
+ end
526
+
527
+ it "should allow cascading of eager loading for associations of associated models" do
528
+ a = EagerTrack.eager(:album=>{:band=>:members}).all
529
+ a.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
530
+ DB.sqls.must_equal ['SELECT * FROM tracks',
531
+ 'SELECT * FROM albums WHERE (albums.id IN (1))',
532
+ 'SELECT * FROM bands WHERE (bands.id IN (2))',
533
+ "SELECT members.*, bm.band_id AS x_foreign_key_x FROM members INNER JOIN bm ON (bm.member_id = members.id) WHERE (bm.band_id IN (2))"]
534
+ a = a.first
535
+ a.album.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
536
+ a.album.band.must_equal EagerBand.load(:id => 2)
537
+ a.album.band.members.must_equal [EagerBandMember.load(:id => 5)]
538
+ DB.sqls.must_equal []
539
+ end
540
+
541
+ it "should cascade eager loading when using a UNION strategy for eager loading limited associations" do
542
+ EagerTrack.many_to_one :album2, :clone=>:album
543
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:a
544
+ a = EagerAlbum.eager(:track=>:album2).all
545
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
546
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY a LIMIT 1) AS t1', 'SELECT * FROM albums WHERE (albums.id IN (1))']
547
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
548
+ a.first.track.album2.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
549
+ DB.sqls.must_equal []
550
+
551
+ a = EagerAlbum.eager(:track=>[:album2]).all
552
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
553
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY a LIMIT 1) AS t1', 'SELECT * FROM albums WHERE (albums.id IN (1))']
554
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
555
+ a.first.track.album2.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
556
+ DB.sqls.must_equal []
557
+
558
+ a = EagerAlbum.eager(:track=>{:album2=>:track}).all
559
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
560
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY a LIMIT 1) AS t1', 'SELECT * FROM albums WHERE (albums.id IN (1))', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY a LIMIT 1) AS t1']
561
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
562
+ a.first.track.album2.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
563
+ a.first.track.album2.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
564
+ DB.sqls.must_equal []
565
+ end
566
+
567
+ it "should call post_load when eager loading limited associations" do
568
+ EagerTrack.many_to_one :album2, :clone=>:album
569
+ a = []
570
+ m = Module.new do
571
+ define_method(:post_load) do |objs|
572
+ a << 1
573
+ super(objs)
574
+ end
575
+ end
576
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:a, :extend=>m
577
+ EagerAlbum.eager(:track).all
578
+ a.must_equal [1]
579
+ end
580
+
581
+ it "should cascade eagerly loading when the :eager association option is used" do
582
+ a = EagerBand.eager(:albums).all
583
+ a.must_equal [EagerBand.load(:id=>2)]
584
+ DB.sqls.must_equal ['SELECT * FROM bands',
585
+ 'SELECT * FROM albums WHERE (albums.band_id IN (2))',
586
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
587
+ a.first.albums.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
588
+ a.first.albums.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
589
+ DB.sqls.must_equal []
590
+ end
591
+
592
+ it "should respect :eager when lazily loading an association" do
593
+ a = EagerBand.all
594
+ a.must_equal [EagerBand.load(:id=>2)]
595
+ DB.sqls.must_equal ['SELECT * FROM bands']
596
+ a = a.first.albums
597
+ DB.sqls.must_equal ['SELECT * FROM albums WHERE (albums.band_id = 2)',
598
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
599
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
600
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
601
+ DB.sqls.must_equal []
602
+ end
603
+
604
+ it "should respect :eager with cascaded hash when lazily loading an association" do
605
+ EagerBand.one_to_many :albums, :eager=>{:tracks=>:album}, :clone=>:albums
606
+ a = EagerBand.all
607
+ a.must_equal [EagerBand.load(:id=>2)]
608
+ DB.sqls.must_equal ['SELECT * FROM bands']
609
+ a = a.first.albums
610
+ DB.sqls.must_equal ['SELECT * FROM albums WHERE (albums.band_id = 2)',
611
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))',
612
+ 'SELECT * FROM albums WHERE (albums.id IN (1))']
613
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
614
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
615
+ a.first.tracks.first.album.must_equal a.first
616
+ DB.sqls.must_equal []
617
+ end
618
+
619
+ it "should cascade eagerly loading when the :eager_graph association option is used" do
620
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch(:id=>1, :band_id=>2, :tracks_id=>3, :album_id=>1)
621
+ EagerAlbum.dataset.columns(:id, :band_id)
622
+ EagerTrack.dataset.columns(:id, :album_id)
623
+ a = EagerBand.eager(:graph_albums).all
624
+ a.must_equal [EagerBand.load(:id=>2)]
625
+ DB.sqls.must_equal ['SELECT * FROM bands',
626
+ 'SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id) WHERE (albums.band_id IN (2))']
627
+ a.first.graph_albums.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
628
+ a.first.graph_albums.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
629
+ DB.sqls.must_equal []
630
+ end
631
+
632
+ it "should raise an Error when eager loading a many_to_many association with the :eager_graph option" do
633
+ proc{EagerBand.eager(:graph_members).all}.must_raise(Sequel::Error)
634
+ end
635
+
636
+ it "should respect :eager_graph when lazily loading an association" do
637
+ a = EagerBand.all
638
+ a.must_equal [EagerBand.load(:id=>2)]
639
+ DB.sqls.must_equal ['SELECT * FROM bands']
640
+ a = a.first
641
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch(:id=>1, :band_id=>2, :tracks_id=>3, :album_id=>1)
642
+ EagerAlbum.dataset.columns(:id, :band_id)
643
+ EagerTrack.dataset.columns(:id, :album_id)
644
+ a.graph_albums
645
+ DB.sqls.must_equal ['SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id) WHERE (albums.band_id = 2)']
646
+ a.graph_albums.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
647
+ a.graph_albums.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
648
+ DB.sqls.must_equal []
649
+ end
650
+
651
+ it "should respect :eager_graph when lazily loading a many_to_many association" do
652
+ EagerBandMember.dataset = EagerBandMember.dataset.with_fetch([{:id=>5, :bands_id=>2, :p_k=>6}, {:id=>5, :bands_id=>3, :p_k=>6}]).with_extend{def columns; [:id] end}
653
+ a = EagerBand.load(:id=>2)
654
+ EagerBand.dataset.columns(:id, :p_k)
655
+ a.graph_members.must_equal [EagerBandMember.load(:id=>5)]
656
+ DB.sqls.must_equal ['SELECT members.id, bands.id AS bands_id, bands.p_k FROM (SELECT members.* FROM members INNER JOIN bm ON (bm.member_id = members.id) WHERE (bm.band_id = 2)) AS members LEFT OUTER JOIN bm AS bm_0 ON (bm_0.member_id = members.id) LEFT OUTER JOIN bands ON (bands.id = bm_0.band_id) ORDER BY bands.id']
657
+ a.graph_members.first.bands.must_equal [EagerBand.load(:id=>2, :p_k=>6), EagerBand.load(:id=>3, :p_k=>6)]
658
+ DB.sqls.must_equal []
659
+ end
660
+
661
+ it "should respect :conditions when eagerly loading" do
662
+ EagerBandMember.many_to_many :good_bands, :clone=>:bands, :conditions=>{:a=>32}
663
+ a = EagerBandMember.eager(:good_bands).all
664
+ a.must_equal [EagerBandMember.load(:id => 5)]
665
+ DB.sqls.must_equal ['SELECT * FROM members', 'SELECT bands.*, bm.member_id AS x_foreign_key_x FROM bands INNER JOIN bm ON (bm.band_id = bands.id) WHERE ((a = 32) AND (bm.member_id IN (5))) ORDER BY id']
666
+ a.first.good_bands.must_equal [EagerBand.load(:id => 2)]
667
+ DB.sqls.must_equal []
668
+
669
+ EagerBandMember.many_to_many :good_bands, :clone=>:bands, :conditions=>Sequel.lit("x = 1")
670
+ a = EagerBandMember.eager(:good_bands).all
671
+ DB.sqls.must_equal ['SELECT * FROM members', 'SELECT bands.*, bm.member_id AS x_foreign_key_x FROM bands INNER JOIN bm ON (bm.band_id = bands.id) WHERE ((x = 1) AND (bm.member_id IN (5))) ORDER BY id']
672
+ end
673
+
674
+ it "should respect :order when eagerly loading" do
675
+ a = EagerBandMember.eager(:bands).all
676
+ a.must_equal [EagerBandMember.load(:id => 5)]
677
+ DB.sqls.must_equal ['SELECT * FROM members', 'SELECT bands.*, bm.member_id AS x_foreign_key_x FROM bands INNER JOIN bm ON (bm.band_id = bands.id) WHERE (bm.member_id IN (5)) ORDER BY id']
678
+ a.first.bands.must_equal [EagerBand.load(:id => 2)]
679
+ DB.sqls.must_equal []
680
+ end
681
+
682
+ it "should populate the reciprocal many_to_one association when eagerly loading the one_to_many association" do
683
+ a = EagerAlbum.eager(:tracks).all
684
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
685
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
686
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
687
+ a.first.tracks.first.album.must_equal a.first
688
+ DB.sqls.must_equal []
689
+ end
690
+
691
+ it "should cache the negative lookup when eagerly loading a many_to_one association" do
692
+ a = EagerAlbum.eager(:band).filter(:id=>101).all
693
+ a.must_equal [EagerAlbum.load(:id => 101, :band_id => 101)]
694
+ DB.sqls.must_equal ['SELECT * FROM albums WHERE (id = 101)', 'SELECT * FROM bands WHERE (bands.id IN (101))']
695
+ a.first.associations.fetch(:band, 2).must_be_nil
696
+ a.first.band.must_be_nil
697
+ DB.sqls.must_equal []
698
+ end
699
+
700
+ it "should cache the negative lookup when eagerly loading a *_to_many associations" do
701
+ a = EagerBand.eager(:albums).where{id > 100}.all
702
+ a.must_equal [EagerBand.load(:id => 101), EagerBand.load(:id =>102)]
703
+ DB.sqls.must_equal ['SELECT * FROM bands WHERE (id > 100)',
704
+ 'SELECT * FROM albums WHERE (albums.band_id IN (101, 102))',
705
+ "SELECT * FROM tracks WHERE (tracks.album_id IN (101))"]
706
+ a.map{|b| b.associations[:albums]}.must_equal [[EagerAlbum.load({:band_id=>101, :id=>101})], []]
707
+ DB.sqls.must_equal []
708
+ end
709
+
710
+ it "should use the association's block when eager loading by default" do
711
+ EagerAlbum.eager(:good_tracks).all
712
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM tracks WHERE ((name = 'Good') AND (tracks.album_id IN (1)))"]
713
+ end
714
+
715
+ it "should use the eager_block option when eager loading if given" do
716
+ EagerBand.eager(:good_albums).all
717
+ DB.sqls.must_equal ['SELECT * FROM bands', "SELECT * FROM albums WHERE ((name = 'good') AND (albums.band_id IN (2)))"]
718
+ EagerBand.eager(:good_albums=>:good_tracks).all
719
+ DB.sqls.must_equal ['SELECT * FROM bands', "SELECT * FROM albums WHERE ((name = 'good') AND (albums.band_id IN (2)))", "SELECT * FROM tracks WHERE ((name = 'Good') AND (tracks.album_id IN (1)))"]
720
+ end
721
+
722
+ it "should raise an error when attempting to eagerly load an association with the :allow_eager option set to false" do
723
+ proc{EagerBand.eager(:self_titled_albums).all}.must_raise(Sequel::Error)
724
+ proc{EagerBand.eager(:albums_by_name).all}.must_raise(Sequel::Error)
725
+ end
726
+
727
+ it "should respect the association's :select option" do
728
+ EagerAlbum.eager(:band_name).all
729
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT id, name FROM bands WHERE (bands.id IN (2))"]
730
+ EagerAlbum.eager(:track_names).all
731
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT id, name FROM tracks WHERE (tracks.album_id IN (1))"]
732
+ EagerAlbum.eager(:genre_names).all
733
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT id, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
734
+ end
735
+
736
+ it "should respect many_to_one association's :qualify option" do
737
+ EagerAlbum.many_to_one :special_band, :class=>:EagerBand, :qualify=>false, :key=>:band_id
738
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:id=>2)
739
+ as = EagerAlbum.eager(:special_band).all
740
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM bands WHERE (id IN (2))"]
741
+ as.map{|a| a.special_band}.must_equal [EagerBand.load(:id=>2)]
742
+ DB.sqls.must_equal []
743
+ end
744
+
745
+ it "should respect the association's :primary_key option" do
746
+ EagerAlbum.many_to_one :special_band, :class=>:EagerBand, :primary_key=>:p_k, :key=>:band_id
747
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:p_k=>2, :id=>1)
748
+ as = EagerAlbum.eager(:special_band).all
749
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM bands WHERE (bands.p_k IN (2))"]
750
+ as.length.must_equal 1
751
+ as.first.special_band.must_equal EagerBand.load(:p_k=>2, :id=>1)
752
+
753
+ EagerAlbum.one_to_many :special_tracks, :class=>:EagerTrack, :primary_key=>:band_id, :key=>:album_id, :reciprocal=>nil
754
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch(:album_id=>2, :id=>1)
755
+ as = EagerAlbum.eager(:special_tracks).all
756
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM tracks WHERE (tracks.album_id IN (2))"]
757
+ as.length.must_equal 1
758
+ as.first.special_tracks.must_equal [EagerTrack.load(:album_id=>2, :id=>1)]
759
+ end
760
+
761
+ it "should respect the many_to_one association's composite keys" do
762
+ EagerAlbum.many_to_one :special_band, :class=>:EagerBand, :primary_key=>[:id, :p_k], :key=>[:band_id, :id]
763
+ EagerBand.dataset = EagerBand.dataset.with_fetch(:p_k=>1, :id=>2)
764
+ as = EagerAlbum.eager(:special_band).all
765
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM bands WHERE ((bands.id, bands.p_k) IN ((2, 1)))"]
766
+ as.length.must_equal 1
767
+ as.first.special_band.must_equal EagerBand.load(:p_k=>1, :id=>2)
768
+ end
769
+
770
+ it "should respect the one_to_many association's composite keys" do
771
+ EagerAlbum.one_to_many :special_tracks, :class=>:EagerTrack, :primary_key=>[:band_id, :id], :key=>[:id, :album_id]
772
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch(:album_id=>1, :id=>2)
773
+ as = EagerAlbum.eager(:special_tracks).all
774
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM tracks WHERE ((tracks.id, tracks.album_id) IN ((2, 1)))"]
775
+ as.length.must_equal 1
776
+ as.first.special_tracks.must_equal [EagerTrack.load(:album_id=>1, :id=>2)]
777
+ end
778
+
779
+ it "should respect many_to_many association's composite keys" do
780
+ EagerAlbum.many_to_many :special_genres, :class=>:EagerGenre, :left_primary_key=>[:band_id, :id], :left_key=>[:l1, :l2], :right_primary_key=>[:xxx, :id], :right_key=>[:r1, :r2], :join_table=>:ag
781
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_0_x=>2, :x_foreign_key_1_x=>1, :id=>5}, {:x_foreign_key_0_x=>2, :x_foreign_key_1_x=>1, :id=>6}])
782
+ as = EagerAlbum.eager(:special_genres).all
783
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.l1 AS x_foreign_key_0_x, ag.l2 AS x_foreign_key_1_x FROM genres INNER JOIN ag ON ((ag.r1 = genres.xxx) AND (ag.r2 = genres.id)) WHERE ((ag.l1, ag.l2) IN ((2, 1)))"]
784
+ as.length.must_equal 1
785
+ as.first.special_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
786
+ end
787
+
788
+ it "should respect one_through_one association's composite keys" do
789
+ EagerAlbum.one_through_one :special_genre, :class=>:EagerGenre, :left_primary_key=>[:band_id, :id], :left_key=>[:l1, :l2], :right_primary_key=>[:xxx, :id], :right_key=>[:r1, :r2], :join_table=>:ag
790
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_0_x=>2, :x_foreign_key_1_x=>1, :id=>5}])
791
+ as = EagerAlbum.eager(:special_genre).all
792
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.l1 AS x_foreign_key_0_x, ag.l2 AS x_foreign_key_1_x FROM genres INNER JOIN ag ON ((ag.r1 = genres.xxx) AND (ag.r2 = genres.id)) WHERE ((ag.l1, ag.l2) IN ((2, 1)))"]
793
+ as.length.must_equal 1
794
+ as.first.special_genre.must_equal EagerGenre.load(:id=>5)
795
+ end
796
+
797
+ it "should respect many_to_many association's :left_primary_key and :right_primary_key options" do
798
+ EagerAlbum.many_to_many :special_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_primary_key=>:xxx, :right_key=>:genre_id, :join_table=>:ag
799
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}])
800
+ as = EagerAlbum.eager(:special_genres).all
801
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.xxx) WHERE (ag.album_id IN (2))"]
802
+ as.length.must_equal 1
803
+ as.first.special_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
804
+ end
805
+
806
+ it "should respect one_through_one association's :left_primary_key and :right_primary_key options" do
807
+ EagerAlbum.one_through_one :special_genre, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_primary_key=>:xxx, :right_key=>:genre_id, :join_table=>:ag
808
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}])
809
+ as = EagerAlbum.eager(:special_genre).all
810
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.xxx) WHERE (ag.album_id IN (2))"]
811
+ as.length.must_equal 1
812
+ as.first.special_genre.must_equal EagerGenre.load(:id=>5)
813
+ end
814
+
815
+ it "should respect the :limit option on a one_to_many association using the :ruby strategy" do
816
+ EagerAlbum.one_to_many :first_two_tracks, :class=>:EagerTrack, :key=>:album_id, :limit=>2, :eager_limit_strategy=>:ruby
817
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:album_id=>1, :id=>2}, {:album_id=>1, :id=>3}, {:album_id=>1, :id=>4}])
818
+ as = EagerAlbum.eager(:first_two_tracks).all
819
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM tracks WHERE (tracks.album_id IN (1))"]
820
+ as.length.must_equal 1
821
+ as.first.first_two_tracks.must_equal [EagerTrack.load(:album_id=>1, :id=>2), EagerTrack.load(:album_id=>1, :id=>3)]
822
+
823
+ DB.reset
824
+ EagerAlbum.one_to_many :first_two_tracks, :class=>:EagerTrack, :key=>:album_id, :limit=>[1,1], :eager_limit_strategy=>:ruby
825
+ as = EagerAlbum.eager(:first_two_tracks).all
826
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM tracks WHERE (tracks.album_id IN (1))"]
827
+ as.length.must_equal 1
828
+ as.first.first_two_tracks.must_equal [EagerTrack.load(:album_id=>1, :id=>3)]
829
+
830
+ DB.reset
831
+ EagerAlbum.one_to_many :first_two_tracks, :class=>:EagerTrack, :key=>:album_id, :limit=>[nil,1], :eager_limit_strategy=>:ruby
832
+ as = EagerAlbum.eager(:first_two_tracks).all
833
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM tracks WHERE (tracks.album_id IN (1))"]
834
+ as.length.must_equal 1
835
+ as.first.first_two_tracks.must_equal [EagerTrack.load(:album_id=>1, :id=>3), EagerTrack.load(:album_id=>1, :id=>4)]
836
+ end
837
+
838
+ it "should respect the :limit option on a one_to_many association" do
839
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>2
840
+ a = EagerAlbum.eager(:tracks).all
841
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
842
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY name LIMIT 2) AS t1']
843
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
844
+ DB.sqls.must_equal []
845
+
846
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>[2, 1]
847
+ a = EagerAlbum.eager(:tracks).all
848
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
849
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY name LIMIT 2 OFFSET 1) AS t1']
850
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
851
+ DB.sqls.must_equal []
852
+
853
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>[nil, 1]
854
+ a = EagerAlbum.eager(:tracks).all
855
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
856
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE (1 = tracks.album_id) ORDER BY name OFFSET 1) AS t1']
857
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
858
+ DB.sqls.must_equal []
859
+ end
860
+
861
+ it "should respect the :limit option on a one_to_many association with an association block" do
862
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>2 do |ds| ds.where(:a=>1) end
863
+ a = EagerAlbum.eager(:tracks).all
864
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
865
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT * FROM tracks WHERE ((a = 1) AND (1 = tracks.album_id)) ORDER BY name LIMIT 2) AS t1']
866
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
867
+ DB.sqls.must_equal []
868
+ end
869
+
870
+ it "should respect the :limit option on a one_to_many association using the :window_function strategy" do
871
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
872
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>2, :eager_limit_strategy=>:window_function
873
+ a = EagerAlbum.eager(:tracks).all
874
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
875
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x <= 2)']
876
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
877
+ DB.sqls.must_equal []
878
+
879
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>[2, 1], :eager_limit_strategy=>:window_function
880
+ a = EagerAlbum.eager(:tracks).all
881
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
882
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE ((x_sequel_row_number_x >= 2) AND (x_sequel_row_number_x < 4))']
883
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
884
+ DB.sqls.must_equal []
885
+
886
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>[nil, 1], :eager_limit_strategy=>:window_function
887
+ a = EagerAlbum.eager(:tracks).all
888
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
889
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x >= 2)']
890
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
891
+ DB.sqls.must_equal []
892
+ end
893
+
894
+ it "should use a ruby strategy for limit if :eager_graph option is used" do
895
+ EagerTrack.many_to_one :album2, :clone=>:album
896
+ EagerAlbum.one_to_many :first_two_tracks, :class=>:EagerTrack, :key=>:album_id, :limit=>2, :eager_graph=>:album2
897
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:album_id=>1, :id=>2, :album2_id=>1, :band_id=>5}, {:album_id=>1, :id=>3, :album2_id=>1, :band_id=>5}, {:album_id=>1, :id=>4, :album2_id=>1, :band_id=>5}])
898
+ EagerTrack.dataset.columns(:id, :album_id)
899
+ as = EagerAlbum.eager(:first_two_tracks).all
900
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT tracks.id, tracks.album_id, album2.id AS album2_id, album2.band_id FROM tracks LEFT OUTER JOIN albums AS album2 ON (album2.id = tracks.album_id) WHERE (tracks.album_id IN (1))"]
901
+ as.length.must_equal 1
902
+ tracks = as.first.first_two_tracks
903
+ tracks.must_equal [EagerTrack.load(:album_id=>1, :id=>2), EagerTrack.load(:album_id=>1, :id=>3)]
904
+ tracks.first.album2.must_equal EagerAlbum.load(:id=>1, :band_id=>5)
905
+ tracks.last.album2.must_equal EagerAlbum.load(:id=>1, :band_id=>5)
906
+ end
907
+
908
+ it "should not use a union strategy for limit by default if providing a per-eager load callback" do
909
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
910
+ EagerAlbum.one_to_many :tracks, :class=>'EagerTrack', :key=>:album_id, :order=>:name, :limit=>2
911
+ a = EagerAlbum.eager(:tracks=>proc{|ds| ds.where(:id=>3)}).all
912
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
913
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id ORDER BY name) AS x_sequel_row_number_x FROM tracks WHERE ((tracks.album_id IN (1)) AND (id = 3))) AS t1 WHERE (x_sequel_row_number_x <= 2)']
914
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
915
+ DB.sqls.must_equal []
916
+ end
917
+
918
+ it "should respect the limit option on a many_to_many association using the :ruby strategy" do
919
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>2, :eager_limit_strategy=>:ruby
920
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}, {:x_foreign_key_x=>2, :id=>7}])
921
+ as = EagerAlbum.eager(:first_two_genres).all
922
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (2))"]
923
+ as.length.must_equal 1
924
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
925
+
926
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}, {:x_foreign_key_x=>2, :id=>7}])
927
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[1, 1], :eager_limit_strategy=>:ruby
928
+ as = EagerAlbum.eager(:first_two_genres).all
929
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (2))"]
930
+ as.length.must_equal 1
931
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>6)]
932
+
933
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}, {:x_foreign_key_x=>2, :id=>7}])
934
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[nil, 1], :eager_limit_strategy=>:ruby
935
+ as = EagerAlbum.eager(:first_two_genres).all
936
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (2))"]
937
+ as.length.must_equal 1
938
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>6), EagerGenre.load(:id=>7)]
939
+ end
940
+
941
+ it "should respect the limit option on a many_to_many association" do
942
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}]).with_extend{def supports_window_functions?; true end}
943
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>2, :order=>:name
944
+ as = EagerAlbum.eager(:first_two_genres).all
945
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (2 = ag.album_id) ORDER BY name LIMIT 2) AS t1"]
946
+ as.length.must_equal 1
947
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
948
+
949
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}])
950
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[1, 1], :order=>:name
951
+ as = EagerAlbum.eager(:first_two_genres).all
952
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (2 = ag.album_id) ORDER BY name LIMIT 1 OFFSET 1) AS t1"]
953
+ as.length.must_equal 1
954
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5)]
955
+
956
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}])
957
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[nil, 1], :order=>:name
958
+ as = EagerAlbum.eager(:first_two_genres).all
959
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (2 = ag.album_id) ORDER BY name OFFSET 1) AS t1"]
960
+ as.length.must_equal 1
961
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
962
+ end
963
+
964
+ it "should respect the limit option on a many_to_many association using the :window_function strategy" do
965
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}]).with_extend{def supports_window_functions?; true end}
966
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>2, :order=>:name, :eager_limit_strategy=>:window_function
967
+ as = EagerAlbum.eager(:first_two_genres).all
968
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id ORDER BY name) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (2))) AS t1 WHERE (x_sequel_row_number_x <= 2)"]
969
+ as.length.must_equal 1
970
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
971
+
972
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}])
973
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[1, 1], :order=>:name, :eager_limit_strategy=>:window_function
974
+ as = EagerAlbum.eager(:first_two_genres).all
975
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id ORDER BY name) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (2))) AS t1 WHERE ((x_sequel_row_number_x >= 2) AND (x_sequel_row_number_x < 3))"]
976
+ as.length.must_equal 1
977
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5)]
978
+
979
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>2, :id=>5}, {:x_foreign_key_x=>2, :id=>6}])
980
+ EagerAlbum.many_to_many :first_two_genres, :class=>:EagerGenre, :left_primary_key=>:band_id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[nil, 1], :order=>:name, :eager_limit_strategy=>:window_function
981
+ as = EagerAlbum.eager(:first_two_genres).all
982
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT * FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id ORDER BY name) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (2))) AS t1 WHERE (x_sequel_row_number_x >= 2)"]
983
+ as.length.must_equal 1
984
+ as.first.first_two_genres.must_equal [EagerGenre.load(:id=>5), EagerGenre.load(:id=>6)]
985
+ end
986
+
987
+ it "should use the :eager_loader association option when eager loading" do
988
+ EagerAlbum.many_to_one :special_band, :key=>:band_id, :eager_loader=>(proc do |eo|
989
+ item = EagerBand.filter(:album_id=>eo[:rows].collect{|r| [r.pk, r.pk*2]}.flatten).order(:name).first
990
+ eo[:rows].each{|r| r.associations[:special_band] = item}
991
+ end)
992
+ EagerAlbum.one_to_many :special_tracks, :eager_loader=>(proc do |eo|
993
+ items = EagerTrack.filter(:album_id=>eo[:rows].collect{|r| [r.pk, r.pk*2]}.flatten).all
994
+ eo[:rows].each{|r| r.associations[:special_tracks] = items}
995
+ end)
996
+ EagerAlbum.many_to_many :special_genres, :class=>:EagerGenre, :eager_loader=>(proc do |eo|
997
+ items = EagerGenre.inner_join(:ag, [:genre_id]).filter(:album_id=>eo[:rows].collect{|r| r.pk}).all
998
+ eo[:rows].each{|r| r.associations[:special_genres] = items}
999
+ end)
1000
+ a = EagerAlbum.eager(:special_genres, :special_tracks, :special_band).all
1001
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
1002
+ sqls = DB.sqls
1003
+ sqls.shift.must_equal 'SELECT * FROM albums'
1004
+ sqls.sort.must_equal ['SELECT * FROM bands WHERE (album_id IN (1, 2)) ORDER BY name LIMIT 1',
1005
+ 'SELECT * FROM genres INNER JOIN ag USING (genre_id) WHERE (album_id IN (1))',
1006
+ 'SELECT * FROM tracks WHERE (album_id IN (1, 2))']
1007
+ a = a.first
1008
+ a.special_band.must_equal EagerBand.load(:id => 2)
1009
+ a.special_tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
1010
+ a.special_genres.must_equal [EagerGenre.load(:id => 4)]
1011
+ DB.sqls.must_equal []
1012
+ end
1013
+
1014
+ it "should respect :after_load callbacks on associations when eager loading" do
1015
+ EagerAlbum.many_to_one :al_band, :class=>'EagerBand', :key=>:band_id, :after_load=>proc{|o, a| a.id *=2}
1016
+ EagerAlbum.one_to_many :al_tracks, :class=>'EagerTrack', :key=>:album_id, :after_load=>proc{|o, os| os.each{|a| a.id *=2}}
1017
+ EagerAlbum.many_to_many :al_genres, :class=>'EagerGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :after_load=>proc{|o, os| os.each{|a| a.id *=2}}
1018
+ a = EagerAlbum.eager(:al_band, :al_tracks, :al_genres).all.first
1019
+ a.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1020
+ a.al_band.must_equal EagerBand.load(:id=>4)
1021
+ a.al_tracks.must_equal [EagerTrack.load(:id=>6, :album_id=>1)]
1022
+ a.al_genres.must_equal [EagerGenre.load(:id=>8)]
1023
+ end
1024
+
1025
+ it "should respect :uniq option when eagerly loading many_to_many associations" do
1026
+ EagerAlbum.many_to_many :al_genres, :class=>'EagerGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :uniq=>true
1027
+ EagerGenre.dataset = EagerGenre.dataset.with_fetch([{:x_foreign_key_x=>1, :id=>8}, {:x_foreign_key_x=>1, :id=>8}])
1028
+ a = EagerAlbum.eager(:al_genres).all.first
1029
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
1030
+ a.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1031
+ a.al_genres.must_equal [EagerGenre.load(:id=>8)]
1032
+ end
1033
+
1034
+ it "should respect :distinct option when eagerly loading many_to_many associations" do
1035
+ EagerAlbum.many_to_many :al_genres, :class=>'EagerGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :distinct=>true
1036
+ a = EagerAlbum.eager(:al_genres).all.first
1037
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT DISTINCT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
1038
+ a.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1039
+ a.al_genres.must_equal [EagerGenre.load(:id=>4)]
1040
+ end
1041
+
1042
+ it "should eagerly load a many_to_one association with custom eager block" do
1043
+ a = EagerAlbum.eager(:band => proc {|ds| ds.select(:id, :name)}).all
1044
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
1045
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT id, name FROM bands WHERE (bands.id IN (2))']
1046
+ a.first.band.must_equal EagerBand.load(:id => 2)
1047
+ DB.sqls.must_equal []
1048
+ end
1049
+
1050
+ it "should eagerly load a one_to_one association with custom eager block" do
1051
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id
1052
+ a = EagerAlbum.eager(:track => proc {|ds| ds.select(:id)}).all
1053
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
1054
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT id FROM tracks WHERE (tracks.album_id IN (1))']
1055
+ a.first.track.must_equal EagerTrack.load(:id => 3, :album_id=>1)
1056
+ DB.sqls.must_equal []
1057
+ end
1058
+
1059
+ it "should eagerly load a one_to_many association with custom eager block" do
1060
+ a = EagerAlbum.eager(:tracks => proc {|ds| ds.select(:id)}).all
1061
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
1062
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT id FROM tracks WHERE (tracks.album_id IN (1))']
1063
+ a.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
1064
+ DB.sqls.must_equal []
1065
+ end
1066
+
1067
+ it "should eagerly load a many_to_many association with custom eager block" do
1068
+ a = EagerAlbum.eager(:genres => proc {|ds| ds.select(:name)}).all
1069
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
1070
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT name, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
1071
+ a.first.genres.must_equal [EagerGenre.load(:id => 4)]
1072
+ DB.sqls.must_equal []
1073
+ end
1074
+
1075
+ it "should eagerly load a one_through_one association with custom eager block" do
1076
+ a = EagerAlbum.eager(:genre => proc {|ds| ds.select(:name)}).all
1077
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id => 2)]
1078
+ DB.sqls.must_equal ['SELECT * FROM albums', "SELECT name, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
1079
+ a.first.genre.must_equal EagerGenre.load(:id => 4)
1080
+ DB.sqls.must_equal []
1081
+ end
1082
+
1083
+ it "should allow cascading of eager loading within a custom eager block" do
1084
+ a = EagerTrack.eager(:album => proc {|ds| ds.eager(:band => :members)}).all
1085
+ a.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
1086
+ DB.sqls.must_equal ['SELECT * FROM tracks',
1087
+ 'SELECT * FROM albums WHERE (albums.id IN (1))',
1088
+ 'SELECT * FROM bands WHERE (bands.id IN (2))',
1089
+ "SELECT members.*, bm.band_id AS x_foreign_key_x FROM members INNER JOIN bm ON (bm.member_id = members.id) WHERE (bm.band_id IN (2))"]
1090
+ a = a.first
1091
+ a.album.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1092
+ a.album.band.must_equal EagerBand.load(:id => 2)
1093
+ a.album.band.members.must_equal [EagerBandMember.load(:id => 5)]
1094
+ DB.sqls.must_equal []
1095
+ end
1096
+
1097
+ it "should allow cascading of eager loading with custom callback with hash value" do
1098
+ a = EagerTrack.eager(:album=>{proc{|ds| ds.select(:id, :band_id)}=>{:band => :members}}).all
1099
+ a.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
1100
+ DB.sqls.must_equal ['SELECT * FROM tracks',
1101
+ 'SELECT id, band_id FROM albums WHERE (albums.id IN (1))',
1102
+ 'SELECT * FROM bands WHERE (bands.id IN (2))',
1103
+ "SELECT members.*, bm.band_id AS x_foreign_key_x FROM members INNER JOIN bm ON (bm.member_id = members.id) WHERE (bm.band_id IN (2))"]
1104
+ a = a.first
1105
+ a.album.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1106
+ a.album.band.must_equal EagerBand.load(:id => 2)
1107
+ a.album.band.members.must_equal [EagerBandMember.load(:id => 5)]
1108
+ DB.sqls.must_equal []
1109
+ end
1110
+
1111
+ it "should allow cascading of eager loading with custom callback with symbol value" do
1112
+ a = EagerTrack.eager(:album=>{proc{|ds| ds.select(:id, :band_id)}=>:band}).all
1113
+ a.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
1114
+ DB.sqls.must_equal ['SELECT * FROM tracks',
1115
+ 'SELECT id, band_id FROM albums WHERE (albums.id IN (1))',
1116
+ 'SELECT * FROM bands WHERE (bands.id IN (2))']
1117
+ a = a.first
1118
+ a.album.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1119
+ a.album.band.must_equal EagerBand.load(:id => 2)
1120
+ DB.sqls.must_equal []
1121
+ end
1122
+
1123
+ it "should allow cascading of eager loading with custom callback with symbol value when association has a limit" do
1124
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch((1..11).map{|i| {:band_id=>2, :id=>i}})
1125
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:id=>3, :album_id=>1}])
1126
+ a = EagerBand.eager(:top_10_albums=>{proc{|ds| ds.select(:id, :name)}=>:tracks}).all
1127
+ a.must_equal [EagerBand.load(:id => 2)]
1128
+ DB.sqls.must_equal ['SELECT * FROM bands',
1129
+ 'SELECT id, name FROM albums WHERE (albums.band_id IN (2))',
1130
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11))']
1131
+ a = a.first
1132
+ a.top_10_albums.must_equal((1..10).map{|i| EagerAlbum.load(:band_id=>2, :id=>i)})
1133
+ a.top_10_albums.map{|x| x.tracks}.must_equal [[EagerTrack.load(:id => 3, :album_id=>1)]] + ([[]] * 9)
1134
+ DB.sqls.must_equal []
1135
+ end
1136
+
1137
+ it "should allow cascading of eager loading with custom callback with symbol value when association has a limit when using window function eager limit strategy" do
1138
+ EagerAlbum.dataset = EagerAlbum.dataset.with_fetch(:band_id=>2, :id=>1).with_extend{def supports_window_functions?; true end}
1139
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch([{:id=>3, :album_id=>1}])
1140
+ a = EagerBand.eager(:top_10_albums=>{proc{|ds| ds.select(:id, :name)}=>:tracks}).all
1141
+ a.must_equal [EagerBand.load(:id => 2)]
1142
+ DB.sqls.must_equal ['SELECT * FROM bands',
1143
+ 'SELECT * FROM (SELECT id, name, row_number() OVER (PARTITION BY albums.band_id) AS x_sequel_row_number_x FROM albums WHERE (albums.band_id IN (2))) AS t1 WHERE (x_sequel_row_number_x <= 10)',
1144
+ 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
1145
+ a = a.first
1146
+ a.top_10_albums.must_equal [EagerAlbum.load(:band_id=>2, :id=>1)]
1147
+ a.top_10_albums.first.tracks.must_equal [EagerTrack.load(:id => 3, :album_id=>1)]
1148
+ DB.sqls.must_equal []
1149
+ end
1150
+
1151
+ it "should allow cascading of eager loading with custom callback with array value" do
1152
+ a = EagerTrack.eager(:album=>{proc{|ds| ds.select(:id, :band_id)}=>[:band, :band_name]}).all
1153
+ a.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
1154
+ sqls = DB.sqls
1155
+ sqls.slice!(0..1).must_equal ['SELECT * FROM tracks',
1156
+ 'SELECT id, band_id FROM albums WHERE (albums.id IN (1))']
1157
+ sqls.sort.must_equal ['SELECT * FROM bands WHERE (bands.id IN (2))',
1158
+ 'SELECT id, name FROM bands WHERE (bands.id IN (2))']
1159
+ a = a.first
1160
+ a.album.must_equal EagerAlbum.load(:id => 1, :band_id => 2)
1161
+ a.album.band.must_equal EagerBand.load(:id => 2)
1162
+ a.album.band_name.must_equal EagerBand.load(:id => 2)
1163
+ DB.sqls.must_equal []
1164
+ end
1165
+
1166
+ it "should call both association and custom eager blocks" do
1167
+ EagerBand.eager(:good_albums => proc {|ds| ds.select(:name)}).all
1168
+ DB.sqls.must_equal ['SELECT * FROM bands', "SELECT name FROM albums WHERE ((name = 'good') AND (albums.band_id IN (2)))"]
1169
+ end
1170
+
1171
+ it "should respect an :eager_limit option passed in a custom callback" do
1172
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
1173
+ a = EagerAlbum.eager(:tracks=> proc{|ds| ds.clone(:eager_limit=>5)}).all
1174
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id=> 2)]
1175
+ sqls = DB.sqls
1176
+ sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x <= 5)']
1177
+ a = a.first
1178
+ a.tracks.must_equal [EagerTrack.load(:id => 3, :album_id => 1)]
1179
+ DB.sqls.must_equal []
1180
+ end
1181
+
1182
+ it "should respect an :eager_limit option that includes an offset" do
1183
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
1184
+ EagerAlbum.eager(:tracks=> proc{|ds| ds.clone(:eager_limit=>[5, 5])}).all
1185
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE ((x_sequel_row_number_x >= 6) AND (x_sequel_row_number_x < 11))']
1186
+ end
1187
+
1188
+ it "should have an :eager_limit option passed in a custom callback override a :limit defined in the association" do
1189
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
1190
+ EagerAlbum.one_to_many :first_two_tracks, :class=>:EagerTrack, :key=>:album_id, :limit=>2
1191
+ EagerAlbum.eager(:first_two_tracks=> proc{|ds| ds.clone(:eager_limit=>5)}).all
1192
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x <= 5)']
1193
+ end
1194
+
1195
+ it "should respect an :eager_limit_strategy option passed in a custom callback" do
1196
+ EagerTrack.dataset = EagerTrack.dataset.with_fetch((1..4).map{|i| {:album_id=>1, :id=>i}}).with_extend{def supports_window_functions?; true end}
1197
+ a = EagerAlbum.eager(:tracks=> proc{|ds| ds.clone(:eager_limit=>2, :eager_limit_strategy=>:ruby)}).all
1198
+ a.must_equal [EagerAlbum.load(:id => 1, :band_id=> 2)]
1199
+ sqls = DB.sqls
1200
+ sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1))']
1201
+ a = a.first
1202
+ a.tracks.must_equal [EagerTrack.load(:id => 1, :album_id => 1), EagerTrack.load(:id => 2, :album_id => 1)]
1203
+ DB.sqls.must_equal []
1204
+ end
1205
+
1206
+ it "should have an :eager_limit_strategy option passed in a custom callback override a :eager_limit_strategy defined in the association" do
1207
+ EagerTrack.dataset = EagerTrack.dataset.with_extend{def supports_window_functions?; true end}
1208
+ EagerAlbum.one_to_many :first_two_tracks, :class=>:EagerTrack, :key=>:album_id, :limit=>2, :eager_limit_strategy=>:ruby
1209
+ EagerAlbum.eager(:first_two_tracks=> proc{|ds| ds.clone(:eager_limit_strategy=>:window_function)}).all
1210
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks WHERE (tracks.album_id IN (1))) AS t1 WHERE (x_sequel_row_number_x <= 2)']
1211
+ end
1212
+
1213
+ it "should raise error if using :eager_limit for a singular association" do
1214
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id
1215
+ proc{EagerAlbum.eager(:track=> proc{|ds| ds.clone(:eager_limit=>1)}).all}.must_raise Sequel::Error
1216
+ DB.sqls.must_equal ['SELECT * FROM albums']
1217
+ end
1218
+
1219
+ it "should raise error if using :eager_limit for a singular association" do
1220
+ EagerAlbum.one_to_one :track, :class=>'EagerTrack', :key=>:album_id, :order=>:name
1221
+ a = EagerAlbum.eager(:track=> proc{|ds| ds.order(:foo)}).all
1222
+ DB.sqls.must_equal ['SELECT * FROM albums', 'SELECT * FROM tracks WHERE (tracks.album_id IN (1)) ORDER BY foo']
1223
+ a = a.first
1224
+ a.track.must_equal EagerTrack.load(:id => 3, :album_id => 1)
1225
+ DB.sqls.must_equal []
1226
+ end
1227
+
1228
+ end
1229
+
1230
+ describe Sequel::Model, "#eager_graph" do
1231
+ before(:all) do
1232
+ class ::GraphAlbum < Sequel::Model(:albums)
1233
+ columns :id, :band_id
1234
+ many_to_one :band, :class=>'GraphBand', :key=>:band_id
1235
+ one_to_many :tracks, :class=>'GraphTrack', :key=>:album_id
1236
+ one_to_one :track, :class=>'GraphTrack', :key=>:album_id
1237
+ many_to_many :genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag
1238
+ one_through_one :genre, :clone=>:genres
1239
+ many_to_one :previous_album, :class=>'GraphAlbum'
1240
+ end
1241
+
1242
+ class ::GraphBand < Sequel::Model(:bands)
1243
+ columns :id, :vocalist_id
1244
+ many_to_one :vocalist, :class=>'GraphBandMember', :key=>:vocalist_id
1245
+ one_to_many :albums, :class=>'GraphAlbum', :key=>:band_id
1246
+ many_to_many :members, :class=>'GraphBandMember', :left_key=>:band_id, :right_key=>:member_id, :join_table=>:bm
1247
+ many_to_many :genres, :class=>'GraphGenre', :left_key=>:band_id, :right_key=>:genre_id, :join_table=>:bg
1248
+ end
1249
+
1250
+ class ::GraphTrack < Sequel::Model(:tracks)
1251
+ columns :id, :album_id
1252
+ many_to_one :album, :class=>'GraphAlbum', :key=>:album_id
1253
+ end
1254
+
1255
+ class ::GraphGenre < Sequel::Model(:genres)
1256
+ columns :id
1257
+ many_to_many :albums, :class=>'GraphAlbum', :left_key=>:genre_id, :right_key=>:album_id, :join_table=>:ag
1258
+ end
1259
+
1260
+ class ::GraphBandMember < Sequel::Model(:members)
1261
+ columns :id
1262
+ many_to_many :bands, :class=>'GraphBand', :left_key=>:member_id, :right_key=>:band_id, :join_table=>:bm
1263
+ end
1264
+ end
1265
+ before do
1266
+ DB.sqls
1267
+ end
1268
+ after(:all) do
1269
+ [:GraphAlbum, :GraphBand, :GraphTrack, :GraphGenre, :GraphBandMember].each{|x| Object.send(:remove_const, x)}
1270
+ end
1271
+
1272
+ it "should raise an error if called without a symbol or hash" do
1273
+ proc{GraphAlbum.eager_graph(Object.new)}.must_raise(Sequel::Error)
1274
+ end
1275
+
1276
+ it "should work correctly with select_map" do
1277
+ ds = GraphAlbum.eager_graph(:band)
1278
+ ds.with_fetch([{:id=>1}, {:id=>2}]).select_map(Sequel[:albums][:id]).must_equal [1, 2]
1279
+ DB.sqls.must_equal ['SELECT albums.id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)']
1280
+ ds.with_fetch([{:id=>1}, {:id=>2}]).select_map([Sequel[:albums][:id], Sequel[:albums][:id]]).must_equal [[1, 1], [2, 2]]
1281
+ DB.sqls.must_equal ['SELECT albums.id, albums.id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)']
1282
+ end
1283
+
1284
+ it "should work correctly with single_value" do
1285
+ ds = GraphAlbum.eager_graph(:band).select(Sequel[:albums][:id])
1286
+ ds.with_fetch([{:id=>1}]).single_value.must_equal 1
1287
+ DB.sqls.must_equal ['SELECT albums.id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) LIMIT 1']
1288
+ end
1289
+
1290
+ it "should not split results and assign associations if ungraphed is called" do
1291
+ ds = GraphAlbum.eager_graph(:band).ungraphed
1292
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1293
+ ds.with_fetch(:id=>1, :band_id=>2, :band_id_0=>2, :vocalist_id=>3).all.must_equal [GraphAlbum.load(:id=>1, :band_id=>2, :band_id_0=>2, :vocalist_id=>3)]
1294
+ end
1295
+
1296
+ it "should not modify existing dataset" do
1297
+ ds1 = GraphAlbum.dataset
1298
+ ds2 = ds1.eager_graph(:band)
1299
+ ds1.eager_graph(:band)
1300
+ ds2.eager_graph(:tracks)
1301
+ ds2.eager_graph(:tracks)
1302
+ end
1303
+
1304
+ it "should allow manually selecting the alias base per call via an AliasedExpression" do
1305
+ ds = GraphAlbum.eager_graph(Sequel.as(:band, :b))
1306
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, b.id AS b_id, b.vocalist_id FROM albums LEFT OUTER JOIN bands AS b ON (b.id = albums.band_id)'
1307
+ a = ds.with_fetch(:id=>1, :band_id=>2, :b_id=>2, :vocalist_id=>3).all
1308
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1309
+ a.first.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>3)
1310
+ end
1311
+
1312
+ it "should handle multiple associations using the same alias base" do
1313
+ ds = GraphAlbum.eager_graph(Sequel.as(:genres, :b), Sequel.as(:tracks, :b), Sequel.as(:band, :b))
1314
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, b.id AS b_id, b_0.id AS b_0_id, b_0.album_id, b_1.id AS b_1_id, b_1.vocalist_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS b ON (b.id = ag.genre_id) LEFT OUTER JOIN tracks AS b_0 ON (b_0.album_id = albums.id) LEFT OUTER JOIN bands AS b_1 ON (b_1.id = albums.band_id)'
1315
+ a = ds.with_fetch(:id=>1, :band_id=>2, :b_id=>4, :b_0_id=>3, :album_id=>1, :b_1_id=>2, :vocalist_id=>6).all
1316
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1317
+ a = a.first
1318
+ a.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
1319
+ a.tracks.must_equal [GraphTrack.load({:id => 3, :album_id=>1})]
1320
+ a.genres.must_equal [GraphGenre.load(:id => 4)]
1321
+
1322
+ ds = GraphTrack.eager_graph(Sequel.as(:album, :b)=>{Sequel.as(:band, :b)=>Sequel.as(:members, :b)})
1323
+ ds.sql.must_equal 'SELECT tracks.id, tracks.album_id, b.id AS b_id, b.band_id, b_0.id AS b_0_id, b_0.vocalist_id, b_1.id AS b_1_id FROM tracks LEFT OUTER JOIN albums AS b ON (b.id = tracks.album_id) LEFT OUTER JOIN bands AS b_0 ON (b_0.id = b.band_id) LEFT OUTER JOIN bm ON (bm.band_id = b_0.id) LEFT OUTER JOIN members AS b_1 ON (b_1.id = bm.member_id)'
1324
+ a = ds.with_fetch(:id=>3, :album_id=>1, :b_id=>1, :band_id=>2, :b_1_id=>5, :b_0_id=>2, :vocalist_id=>6).all
1325
+ a.must_equal [GraphTrack.load(:id => 3, :album_id => 1)]
1326
+ a = a.first
1327
+ a.album.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
1328
+ a.album.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
1329
+ a.album.band.members.must_equal [GraphBandMember.load(:id => 5)]
1330
+ end
1331
+
1332
+ it "should set up correct inner joins when using association_join" do
1333
+ GraphAlbum.association_join(:band).sql.must_equal 'SELECT * FROM albums INNER JOIN bands AS band ON (band.id = albums.band_id)'
1334
+ GraphAlbum.association_join(:track).sql.must_equal 'SELECT * FROM albums INNER JOIN tracks AS track ON (track.album_id = albums.id)'
1335
+ GraphAlbum.association_join(:tracks).sql.must_equal 'SELECT * FROM albums INNER JOIN tracks ON (tracks.album_id = albums.id)'
1336
+ GraphAlbum.association_join(:genres).sql.must_equal 'SELECT * FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres ON (genres.id = ag.genre_id)'
1337
+ GraphAlbum.association_join(:genre).sql.must_equal 'SELECT * FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres AS genre ON (genre.id = ag.genre_id)'
1338
+ end
1339
+
1340
+ it "should handle custom selects when using association_join" do
1341
+ GraphAlbum.select{a(b)}.association_join(:band).sql.must_equal 'SELECT a(b) FROM albums INNER JOIN bands AS band ON (band.id = albums.band_id)'
1342
+ GraphAlbum.select{a(b)}.association_join(:track).sql.must_equal 'SELECT a(b) FROM albums INNER JOIN tracks AS track ON (track.album_id = albums.id)'
1343
+ GraphAlbum.select{a(b)}.association_join(:tracks).sql.must_equal 'SELECT a(b) FROM albums INNER JOIN tracks ON (tracks.album_id = albums.id)'
1344
+ GraphAlbum.select{a(b)}.association_join(:genres).sql.must_equal 'SELECT a(b) FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres ON (genres.id = ag.genre_id)'
1345
+ GraphAlbum.select{a(b)}.association_join(:genre).sql.must_equal 'SELECT a(b) FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres AS genre ON (genre.id = ag.genre_id)'
1346
+ end
1347
+
1348
+ it "should set up correct join types when using association_*_join" do
1349
+ GraphAlbum.association_inner_join(:band).sql.must_equal 'SELECT * FROM albums INNER JOIN bands AS band ON (band.id = albums.band_id)'
1350
+ GraphAlbum.association_left_join(:track).sql.must_equal 'SELECT * FROM albums LEFT JOIN tracks AS track ON (track.album_id = albums.id)'
1351
+ GraphAlbum.association_right_join(:tracks).sql.must_equal 'SELECT * FROM albums RIGHT JOIN tracks ON (tracks.album_id = albums.id)'
1352
+ GraphAlbum.association_full_join(:genres).sql.must_equal 'SELECT * FROM albums FULL JOIN ag ON (ag.album_id = albums.id) FULL JOIN genres ON (genres.id = ag.genre_id)'
1353
+ end
1354
+
1355
+ it "should eagerly load a single many_to_one association" do
1356
+ ds = GraphAlbum.eager_graph(:band)
1357
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1358
+ a = ds.with_fetch(:id=>1, :band_id=>2, :band_id_0=>2, :vocalist_id=>3).all
1359
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1360
+ a.first.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>3)
1361
+ end
1362
+
1363
+ it "should eagerly load a single many_to_one association with the same name as a column" do
1364
+ GraphAlbum.def_column_alias(:band_id_id, :band_id)
1365
+ GraphAlbum.many_to_one :band_id, :key_column=>:band_id, :class=>GraphBand
1366
+ ds = GraphAlbum.eager_graph(:band_id)
1367
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, band_id.id AS band_id_id, band_id.vocalist_id FROM albums LEFT OUTER JOIN bands AS band_id ON (band_id.id = albums.band_id)'
1368
+ a = ds.with_fetch(:id=>1, :band_id=>2, :band_id_id=>2, :vocalist_id=>3).all
1369
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1370
+ a.first.band_id.must_equal GraphBand.load(:id => 2, :vocalist_id=>3)
1371
+ end
1372
+
1373
+ it "should support :join_type eager_graph option one_to_one association" do
1374
+ ds = GraphAlbum.eager_graph_with_options(:track, :join_type=>:inner)
1375
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, track.id AS track_id, track.album_id FROM albums INNER JOIN tracks AS track ON (track.album_id = albums.id)'
1376
+ a = ds.with_fetch(:id=>1, :band_id=>2, :track_id=>3, :album_id=>1).all
1377
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1378
+ a.first.track.must_equal GraphTrack.load(:id => 3, :album_id=>1)
1379
+ end
1380
+
1381
+ it "should eagerly load a single one_to_one association" do
1382
+ ds = GraphAlbum.eager_graph(:track)
1383
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, track.id AS track_id, track.album_id FROM albums LEFT OUTER JOIN tracks AS track ON (track.album_id = albums.id)'
1384
+ a = ds.with_fetch(:id=>1, :band_id=>2, :track_id=>3, :album_id=>1).all
1385
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1386
+ a.first.track.must_equal GraphTrack.load(:id => 3, :album_id=>1)
1387
+ end
1388
+
1389
+ it "should eagerly graph a single one_to_one association using the :distinct_on strategy" do
1390
+ sub = Class.new(GraphTrack)
1391
+ sub.dataset = sub.dataset.with_extend do
1392
+ def supports_distinct_on?; true end
1393
+ def columns; [:id, :album_id] end
1394
+ end
1395
+ GraphAlbum.one_to_one :ltrack, :clone=>:track, :class=>sub
1396
+ ds = GraphAlbum.eager_graph_with_options(:ltrack, :limit_strategy=>true)
1397
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, ltrack.id AS ltrack_id, ltrack.album_id FROM albums LEFT OUTER JOIN (SELECT DISTINCT ON (tracks.album_id) * FROM tracks ORDER BY tracks.album_id) AS ltrack ON (ltrack.album_id = albums.id)'
1398
+ a = ds.with_fetch(:id=>1, :band_id=>2, :ltrack_id=>3, :album_id=>1).all
1399
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1400
+ a.first.ltrack.must_equal sub.load(:id => 3, :album_id=>1)
1401
+ end
1402
+
1403
+ it "should eagerly graph a single one_to_one association using the :window_function strategy" do
1404
+ sub = Class.new(GraphTrack)
1405
+ sub.dataset = sub.dataset.with_extend do
1406
+ def supports_window_functions?; true end
1407
+ def columns; [:id, :album_id] end
1408
+ end
1409
+ GraphAlbum.one_to_one :ltrack, :clone=>:track, :class=>sub
1410
+ ds = GraphAlbum.eager_graph_with_options(:ltrack, :limit_strategy=>true)
1411
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, ltrack.id AS ltrack_id, ltrack.album_id FROM albums LEFT OUTER JOIN (SELECT id, album_id FROM (SELECT *, 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)) AS ltrack ON (ltrack.album_id = albums.id)'
1412
+ a = ds.with_fetch(:id=>1, :band_id=>2, :ltrack_id=>3, :album_id=>1).all
1413
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1414
+ a.first.ltrack.must_equal sub.load(:id => 3, :album_id=>1)
1415
+ end
1416
+
1417
+ it "should eagerly graph a single one_to_one association using the :correlated_subquery strategy" do
1418
+ sub = Class.new(GraphTrack)
1419
+ sub.dataset = sub.dataset.with_extend do
1420
+ def supports_window_functions?; true end
1421
+ def columns; [:id, :album_id] end
1422
+ end
1423
+ GraphAlbum.one_to_one :ltrack, :clone=>:track, :class=>sub
1424
+ ds = GraphAlbum.eager_graph_with_options(:ltrack, :limit_strategy=>:correlated_subquery)
1425
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, ltrack.id AS ltrack_id, ltrack.album_id FROM albums LEFT OUTER JOIN (SELECT * FROM tracks WHERE (tracks.id IN (SELECT t1.id FROM tracks AS t1 WHERE (t1.album_id = tracks.album_id) LIMIT 1))) AS ltrack ON (ltrack.album_id = albums.id)'
1426
+ a = ds.with_fetch(:id=>1, :band_id=>2, :ltrack_id=>3, :album_id=>1).all
1427
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1428
+ a.first.ltrack.must_equal sub.load(:id => 3, :album_id=>1)
1429
+ end
1430
+
1431
+ it "should eagerly load a single one_to_many association" do
1432
+ ds = GraphAlbum.eager_graph(:tracks)
1433
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)'
1434
+ a = ds.with_fetch(:id=>1, :band_id=>2, :tracks_id=>3, :album_id=>1).all
1435
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1436
+ a.first.tracks.must_equal [GraphTrack.load(:id => 3, :album_id=>1)]
1437
+ end
1438
+
1439
+ it "should eagerly graph a single one_to_many association using the :window_function strategy" do
1440
+ sub = Class.new(GraphTrack)
1441
+ sub.dataset = sub.dataset.with_extend do
1442
+ def supports_window_functions?; true end
1443
+ def columns; [:id, :album_id] end
1444
+ end
1445
+ GraphAlbum.one_to_many :ltracks, :clone=>:tracks, :limit=>2, :class=>sub
1446
+ ds = GraphAlbum.eager_graph_with_options(:ltracks, :limit_strategy=>true)
1447
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, ltracks.id AS ltracks_id, ltracks.album_id FROM albums LEFT OUTER JOIN (SELECT id, album_id FROM (SELECT *, row_number() OVER (PARTITION BY tracks.album_id) AS x_sequel_row_number_x FROM tracks) AS t1 WHERE (x_sequel_row_number_x <= 2)) AS ltracks ON (ltracks.album_id = albums.id)'
1448
+ a = ds.with_fetch(:id=>1, :band_id=>2, :ltracks_id=>3, :album_id=>1).all
1449
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1450
+ a.first.ltracks.must_equal [sub.load(:id => 3, :album_id=>1)]
1451
+ end
1452
+
1453
+ it "should eagerly load a single many_to_many association" do
1454
+ ds = GraphAlbum.eager_graph(:genres)
1455
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ag.genre_id)'
1456
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genres_id=>4).all
1457
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1458
+ a.first.genres.must_equal [GraphGenre.load(:id => 4)]
1459
+ end
1460
+
1461
+ it "should eagerly graph a single many_to_many association using the :window_function strategy" do
1462
+ sub = Class.new(GraphGenre)
1463
+ sub.dataset = sub.dataset.with_extend do
1464
+ def supports_window_functions?; true end
1465
+ def columns; literal(opts[:select]) =~ /x_foreign_key_x/ ? [:id, :x_foreign_key_x] : [:id] end
1466
+ end
1467
+ GraphAlbum.many_to_many :lgenres, :clone=>:genres, :class=>sub, :limit=>2
1468
+ ds = GraphAlbum.eager_graph_with_options(:lgenres, :limit_strategy=>true)
1469
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, lgenres.id AS lgenres_id FROM albums LEFT OUTER JOIN (SELECT id, x_foreign_key_x FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id)) AS t1 WHERE (x_sequel_row_number_x <= 2)) AS lgenres ON (lgenres.x_foreign_key_x = albums.id)'
1470
+ a = ds.with_fetch(:id=>1, :band_id=>2, :lgenres_id=>4).all
1471
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1472
+ a.first.lgenres.must_equal [sub.load(:id => 4)]
1473
+ end
1474
+
1475
+ it "should eagerly load a single one_through_one association" do
1476
+ ds = GraphAlbum.eager_graph(:genre)
1477
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genre.id AS genre_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genre ON (genre.id = ag.genre_id)'
1478
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genre_id=>4).all
1479
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1480
+ a.first.genre.must_equal GraphGenre.load(:id => 4)
1481
+ end
1482
+
1483
+ it "should eagerly graph a single one_through_one association using the :distinct_on strategy" do
1484
+ sub = Class.new(GraphGenre)
1485
+ sub.dataset = sub.dataset.with_extend do
1486
+ def supports_distinct_on?; true end
1487
+ def columns; [:id] end
1488
+ end
1489
+ GraphAlbum.one_through_one :lgenre, :clone=>:genre, :class=>sub
1490
+ ds = GraphAlbum.eager_graph_with_options(:lgenre, :limit_strategy=>true)
1491
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, lgenre.id AS lgenre_id FROM albums LEFT OUTER JOIN (SELECT DISTINCT ON (ag.album_id) genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) ORDER BY ag.album_id) AS lgenre ON (lgenre.x_foreign_key_x = albums.id)'
1492
+ a = ds.with_fetch(:id=>1, :band_id=>2, :lgenre_id=>4).all
1493
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1494
+ a.first.lgenre.must_equal sub.load(:id => 4)
1495
+ end
1496
+
1497
+ it "should eagerly graph a single one_through_one association using the :window_function strategy" do
1498
+ sub = Class.new(GraphGenre)
1499
+ sub.dataset = sub.dataset.with_extend do
1500
+ def supports_window_functions?; true end
1501
+ def columns; literal(opts[:select]) =~ /x_foreign_key_x/ ? [:id, :x_foreign_key_x] : [:id] end
1502
+ end
1503
+ GraphAlbum.one_through_one :lgenre, :clone=>:genre, :class=>sub
1504
+ ds = GraphAlbum.eager_graph_with_options(:lgenre, :limit_strategy=>true)
1505
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, lgenre.id AS lgenre_id FROM albums LEFT OUTER JOIN (SELECT id, x_foreign_key_x FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id)) AS t1 WHERE (x_sequel_row_number_x = 1)) AS lgenre ON (lgenre.x_foreign_key_x = albums.id)'
1506
+ a = ds.with_fetch(:id=>1, :band_id=>2, :lgenre_id=>4).all
1507
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1508
+ a.first.lgenre.must_equal sub.load(:id => 4)
1509
+ end
1510
+
1511
+ it "should correctly handle an aliased join table in many_to_many and one_through_one with graph_conditions or graph_block" do
1512
+ c = Class.new(GraphAlbum)
1513
+ c.many_to_many :genres, :clone=>:genres, :join_table=>Sequel[:ag].as(:ga), :graph_conditions=>{:a=>:b}
1514
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres ON ((genres.id = ga.genre_id) AND (genres.a = ga.b))'
1515
+ c.many_to_many :genres, :clone=>:genres, :join_table=>Sequel[:ag].as(:ga), :graph_block => proc{true}
1516
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres ON ((genres.id = ga.genre_id) AND (genres.a = ga.b) AND \'t\')'
1517
+ end
1518
+
1519
+ with_symbol_splitting "should correctly handle an aliased join table symbol in many_to_many and one_through_one with graph_conditions or graph_block" do
1520
+ c = Class.new(GraphAlbum)
1521
+ c.many_to_many :genres, :clone=>:genres, :join_table=>:ag___ga, :graph_conditions=>{:a=>:b}
1522
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres ON ((genres.id = ga.genre_id) AND (genres.a = ga.b))'
1523
+ c.many_to_many :genres, :clone=>:genres, :join_table=>:ag___ga, :graph_block => proc{true}
1524
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres ON ((genres.id = ga.genre_id) AND (genres.a = ga.b) AND \'t\')'
1525
+ end
1526
+
1527
+ it "should raise Error when using eager_graph with :conditions option that isn't a conditions specifier" do
1528
+ c = Class.new(GraphAlbum)
1529
+ c.many_to_many :genres, :clone=>:genres, :join_table=>Sequel[:ag].as(:ga), :conditions=>'true'
1530
+ proc{c.eager_graph(:genres)}.must_raise Sequel::Error
1531
+ end
1532
+
1533
+ with_symbol_splitting "should correctly handle an aliased join table symbol in many_to_many and one_through_one" do
1534
+ c = Class.new(GraphAlbum)
1535
+ c.many_to_many :genres, :clone=>:genres, :join_table=>:ag___ga
1536
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ga.genre_id)'
1537
+
1538
+ c.many_to_many :genre, :clone=>:genre, :join_table=>:ag___ga
1539
+ c.eager_graph(:genre).sql.must_equal 'SELECT albums.id, albums.band_id, genre.id AS genre_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres AS genre ON (genre.id = ga.genre_id)'
1540
+
1541
+ c.many_to_many :genres, :clone=>:genres, :join_table=>:ag___albums
1542
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS albums_0 ON (albums_0.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = albums_0.genre_id)'
1543
+
1544
+ c.many_to_many :genres, :clone=>:genres, :join_table=>:ag___genres
1545
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS genres_0 ON (genres_0.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = genres_0.genre_id)'
1546
+ end
1547
+
1548
+ it "should correctly handle an aliased join table in many_to_many and one_through_one" do
1549
+ c = Class.new(GraphAlbum)
1550
+ c.many_to_many :genres, :clone=>:genres, :join_table=>Sequel[:ag].as(:ga)
1551
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ga.genre_id)'
1552
+
1553
+ c.many_to_many :genre, :clone=>:genre, :join_table=>Sequel[:ag].as(:ga)
1554
+ c.eager_graph(:genre).sql.must_equal 'SELECT albums.id, albums.band_id, genre.id AS genre_id FROM albums LEFT OUTER JOIN ag AS ga ON (ga.album_id = albums.id) LEFT OUTER JOIN genres AS genre ON (genre.id = ga.genre_id)'
1555
+
1556
+ c.many_to_many :genres, :clone=>:genres, :join_table=>Sequel[:ag].as(:albums)
1557
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS albums_0 ON (albums_0.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = albums_0.genre_id)'
1558
+
1559
+ c.many_to_many :genres, :clone=>:genres, :join_table=>Sequel[:ag].as(:genres)
1560
+ c.eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag AS genres_0 ON (genres_0.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = genres_0.genre_id)'
1561
+ end
1562
+
1563
+ it "should handle multiple associations in a single call to association_join" do
1564
+ GraphAlbum.association_join(:genres, :tracks, :band).sql.must_equal 'SELECT * FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres ON (genres.id = ag.genre_id) INNER JOIN tracks ON (tracks.album_id = albums.id) INNER JOIN bands AS band ON (band.id = albums.band_id)'
1565
+ end
1566
+
1567
+ it "should eagerly load multiple associations in a single call" do
1568
+ ds = GraphAlbum.eager_graph(:genres, :tracks, :band)
1569
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id, tracks.id AS tracks_id, tracks.album_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ag.genre_id) LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id) LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1570
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genres_id=>4, :tracks_id=>3, :album_id=>1, :band_id_0=>2, :vocalist_id=>6).all
1571
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1572
+ a = a.first
1573
+ a.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
1574
+ a.tracks.must_equal [GraphTrack.load({:id => 3, :album_id=>1})]
1575
+ a.genres.must_equal [GraphGenre.load(:id => 4)]
1576
+ end
1577
+
1578
+ it "should eagerly load multiple associations with different limit strategies in a single call" do
1579
+ subg = Class.new(GraphGenre)
1580
+ subg.dataset = subg.dataset.with_extend do
1581
+ def supports_distinct_on?; true end
1582
+ def supports_window_functions?; true end
1583
+ def columns; literal(opts[:select]) =~ /x_foreign_key_x/ ? [:id, :x_foreign_key_x] : [:id] end
1584
+ end
1585
+ GraphAlbum.one_through_one :lgenre, :clone=>:genre, :class=>subg
1586
+ GraphAlbum.many_to_many :lgenres, :clone=>:genres, :class=>subg, :limit=>2
1587
+
1588
+ ds = GraphAlbum.eager_graph_with_options([:lgenre, :lgenres], :limit_strategy=>{:lgenre=>:distinct_on, :lgenres=>:window_function})
1589
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, lgenre.id AS lgenre_id, lgenres.id AS lgenres_id FROM albums LEFT OUTER JOIN (SELECT DISTINCT ON (ag.album_id) genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) ORDER BY ag.album_id) AS lgenre ON (lgenre.x_foreign_key_x = albums.id) LEFT OUTER JOIN (SELECT id, x_foreign_key_x FROM (SELECT genres.*, ag.album_id AS x_foreign_key_x, row_number() OVER (PARTITION BY ag.album_id) AS x_sequel_row_number_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id)) AS t1 WHERE (x_sequel_row_number_x <= 2)) AS lgenres ON (lgenres.x_foreign_key_x = albums.id)'
1590
+ a = ds.with_fetch(:id=>1, :band_id=>2, :lgenres_id=>4, :lgenre_id=>3).all
1591
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1592
+ a = a.first
1593
+ a.lgenre.must_equal subg.load(:id => 3)
1594
+ a.lgenres.must_equal [subg.load(:id => 4)]
1595
+ end
1596
+
1597
+ it "should handle multiple associations in separate calls to association_join" do
1598
+ GraphAlbum.association_join(:genres).association_join(:tracks).association_join(:band).sql.must_equal 'SELECT * FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres ON (genres.id = ag.genre_id) INNER JOIN tracks ON (tracks.album_id = albums.id) INNER JOIN bands AS band ON (band.id = albums.band_id)'
1599
+ end
1600
+
1601
+ it "should eagerly load multiple associations in separate calls" do
1602
+ ds = GraphAlbum.eager_graph(:genres).eager_graph(:tracks).eager_graph(:band)
1603
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id, tracks.id AS tracks_id, tracks.album_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ag.genre_id) LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id) LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1604
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genres_id=>4, :tracks_id=>3, :album_id=>1, :band_id_0=>2, :vocalist_id=>6).all
1605
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1606
+ a = a.first
1607
+ a.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
1608
+ a.tracks.must_equal [GraphTrack.load({:id => 3, :album_id=>1})]
1609
+ a.genres.must_equal [GraphGenre.load(:id => 4)]
1610
+ end
1611
+
1612
+ it "should handle cascading associations in a single call to association_join" do
1613
+ GraphTrack.association_join(:album=>{:band=>:members}).sql.must_equal 'SELECT * FROM tracks INNER JOIN albums AS album ON (album.id = tracks.album_id) INNER JOIN bands AS band ON (band.id = album.band_id) INNER JOIN bm ON (bm.band_id = band.id) INNER JOIN members ON (members.id = bm.member_id)'
1614
+ GraphBand.association_join({:albums=>:tracks}, :members).sql.must_equal 'SELECT * FROM bands INNER JOIN albums ON (albums.band_id = bands.id) INNER JOIN tracks ON (tracks.album_id = albums.id) INNER JOIN bm ON (bm.band_id = bands.id) INNER JOIN members ON (members.id = bm.member_id)'
1615
+ end
1616
+
1617
+ it "should handle matching association names for different models when using association_join" do
1618
+ GraphAlbum.association_join(:genres).association_join(:band=>:genres).sql.must_equal 'SELECT * FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres ON (genres.id = ag.genre_id) INNER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN bg ON (bg.band_id = band.id) INNER JOIN genres AS genres_0 ON (genres_0.id = bg.genre_id)'
1619
+ end
1620
+
1621
+ it "should allow cascading of eager loading for associations of associated models" do
1622
+ ds = GraphTrack.eager_graph(:album=>{:band=>:members})
1623
+ ds.sql.must_equal 'SELECT tracks.id, tracks.album_id, album.id AS album_id_0, album.band_id, band.id AS band_id_0, band.vocalist_id, members.id AS members_id FROM tracks LEFT OUTER JOIN albums AS album ON (album.id = tracks.album_id) LEFT OUTER JOIN bands AS band ON (band.id = album.band_id) LEFT OUTER JOIN bm ON (bm.band_id = band.id) LEFT OUTER JOIN members ON (members.id = bm.member_id)'
1624
+ a = ds.with_fetch(:id=>3, :album_id=>1, :album_id_0=>1, :band_id=>2, :members_id=>5, :band_id_0=>2, :vocalist_id=>6).all
1625
+ a.must_equal [GraphTrack.load(:id => 3, :album_id => 1)]
1626
+ a = a.first
1627
+ a.album.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
1628
+ a.album.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
1629
+ a.album.band.members.must_equal [GraphBandMember.load(:id => 5)]
1630
+ end
1631
+
1632
+ it "should allow cascading of eager loading for multiple *_to_many associations, eliminating duplicates caused by cartesian products" do
1633
+ ds = GraphBand.eager_graph({:albums=>:tracks}, :members)
1634
+ ds.sql.must_equal 'SELECT bands.id, bands.vocalist_id, albums.id AS albums_id, albums.band_id, tracks.id AS tracks_id, tracks.album_id, members.id AS members_id FROM bands LEFT OUTER JOIN albums ON (albums.band_id = bands.id) LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id) LEFT OUTER JOIN bm ON (bm.band_id = bands.id) LEFT OUTER JOIN members ON (members.id = bm.member_id)'
1635
+ a = ds.with_fetch([{:id=>1, :vocalist_id=>2, :albums_id=>3, :band_id=>1, :tracks_id=>4, :album_id=>3, :members_id=>5},
1636
+ {:id=>1, :vocalist_id=>2, :albums_id=>3, :band_id=>1, :tracks_id=>4, :album_id=>3, :members_id=>6},
1637
+ {:id=>1, :vocalist_id=>2, :albums_id=>3, :band_id=>1, :tracks_id=>5, :album_id=>3, :members_id=>5},
1638
+ {:id=>1, :vocalist_id=>2, :albums_id=>3, :band_id=>1, :tracks_id=>5, :album_id=>3, :members_id=>6},
1639
+ {:id=>1, :vocalist_id=>2, :albums_id=>4, :band_id=>1, :tracks_id=>6, :album_id=>4, :members_id=>5},
1640
+ {:id=>1, :vocalist_id=>2, :albums_id=>4, :band_id=>1, :tracks_id=>6, :album_id=>4, :members_id=>6},
1641
+ {:id=>1, :vocalist_id=>2, :albums_id=>4, :band_id=>1, :tracks_id=>7, :album_id=>4, :members_id=>5},
1642
+ {:id=>1, :vocalist_id=>2, :albums_id=>4, :band_id=>1, :tracks_id=>7, :album_id=>4, :members_id=>6},
1643
+ {:id=>2, :vocalist_id=>2, :albums_id=>5, :band_id=>2, :tracks_id=>8, :album_id=>5, :members_id=>5},
1644
+ {:id=>2, :vocalist_id=>2, :albums_id=>5, :band_id=>2, :tracks_id=>8, :album_id=>5, :members_id=>6},
1645
+ {:id=>2, :vocalist_id=>2, :albums_id=>5, :band_id=>2, :tracks_id=>9, :album_id=>5, :members_id=>5},
1646
+ {:id=>2, :vocalist_id=>2, :albums_id=>5, :band_id=>2, :tracks_id=>9, :album_id=>5, :members_id=>6},
1647
+ {:id=>2, :vocalist_id=>2, :albums_id=>6, :band_id=>2, :tracks_id=>1, :album_id=>6, :members_id=>5},
1648
+ {:id=>2, :vocalist_id=>2, :albums_id=>6, :band_id=>2, :tracks_id=>1, :album_id=>6, :members_id=>6},
1649
+ {:id=>2, :vocalist_id=>2, :albums_id=>6, :band_id=>2, :tracks_id=>2, :album_id=>6, :members_id=>5},
1650
+ {:id=>2, :vocalist_id=>2, :albums_id=>6, :band_id=>2, :tracks_id=>2, :album_id=>6, :members_id=>6}]).all
1651
+ a.must_equal [GraphBand.load(:id=>1, :vocalist_id=>2), GraphBand.load(:id=>2, :vocalist_id=>2)]
1652
+ members = a.map{|x| x.members}
1653
+ members.must_equal [[GraphBandMember.load(:id=>5), GraphBandMember.load(:id=>6)], [GraphBandMember.load(:id=>5), GraphBandMember.load(:id=>6)]]
1654
+ albums = a.map{|x| x.albums}
1655
+ albums.must_equal [[GraphAlbum.load(:id=>3, :band_id=>1), GraphAlbum.load(:id=>4, :band_id=>1)], [GraphAlbum.load(:id=>5, :band_id=>2), GraphAlbum.load(:id=>6, :band_id=>2)]]
1656
+ tracks = albums.map{|x| x.map{|y| y.tracks}}
1657
+ tracks.must_equal [[[GraphTrack.load(:id=>4, :album_id=>3), GraphTrack.load(:id=>5, :album_id=>3)], [GraphTrack.load(:id=>6, :album_id=>4), GraphTrack.load(:id=>7, :album_id=>4)]], [[GraphTrack.load(:id=>8, :album_id=>5), GraphTrack.load(:id=>9, :album_id=>5)], [GraphTrack.load(:id=>1, :album_id=>6), GraphTrack.load(:id=>2, :album_id=>6)]]]
1658
+ end
1659
+
1660
+ it "should populate the reciprocal many_to_one association when eagerly loading the one_to_many association" do
1661
+ DB.reset
1662
+ ds = GraphAlbum.eager_graph(:tracks)
1663
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)'
1664
+ a = ds.with_fetch(:id=>1, :band_id=>2, :tracks_id=>3, :album_id=>1).all
1665
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1666
+ a = a.first
1667
+ a.tracks.must_equal [GraphTrack.load(:id => 3, :album_id=>1)]
1668
+ a.tracks.first.album.must_equal a
1669
+ DB.sqls.must_equal ['SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)']
1670
+ end
1671
+
1672
+ it "should eager load multiple associations from the same table" do
1673
+ ds = GraphBand.eager_graph(:vocalist, :members)
1674
+ ds.sql.must_equal 'SELECT bands.id, bands.vocalist_id, vocalist.id AS vocalist_id_0, members.id AS members_id FROM bands LEFT OUTER JOIN members AS vocalist ON (vocalist.id = bands.vocalist_id) LEFT OUTER JOIN bm ON (bm.band_id = bands.id) LEFT OUTER JOIN members ON (members.id = bm.member_id)'
1675
+ a = ds.with_fetch(:id=>2, :vocalist_id=>6, :vocalist_id_0=>6, :members_id=>5).all
1676
+ a.must_equal [GraphBand.load(:id => 2, :vocalist_id => 6)]
1677
+ a = a.first
1678
+ a.vocalist.must_equal GraphBandMember.load(:id => 6)
1679
+ a.members.must_equal [GraphBandMember.load(:id => 5)]
1680
+ end
1681
+
1682
+ it "should give you a plain hash when called without .all" do
1683
+ ds = GraphAlbum.eager_graph(:band)
1684
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1685
+ ds.with_fetch(:id=>1, :band_id=>2, :band_id_0=>2, :vocalist_id=>3).first.must_equal(:id=>1, :band_id=>2, :band_id_0=>2, :vocalist_id=>3)
1686
+ end
1687
+
1688
+ it "should not drop any associated objects if the graph could not be a cartesian product" do
1689
+ ds = GraphBand.eager_graph(:members, :vocalist)
1690
+ ds.sql.must_equal 'SELECT bands.id, bands.vocalist_id, members.id AS members_id, vocalist.id AS vocalist_id_0 FROM bands LEFT OUTER JOIN bm ON (bm.band_id = bands.id) LEFT OUTER JOIN members ON (members.id = bm.member_id) LEFT OUTER JOIN members AS vocalist ON (vocalist.id = bands.vocalist_id)'
1691
+ a = ds.with_fetch([{:id=>2, :vocalist_id=>6, :members_id=>5, :vocalist_id_0=>6}, {:id=>2, :vocalist_id=>6, :members_id=>5, :vocalist_id_0=>6}]).all
1692
+ a.must_equal [GraphBand.load(:id => 2, :vocalist_id => 6)]
1693
+ a = a.first
1694
+ a.vocalist.must_equal GraphBandMember.load(:id => 6)
1695
+ a.members.must_equal [GraphBandMember.load(:id => 5), GraphBandMember.load(:id => 5)]
1696
+ end
1697
+
1698
+ it "should respect the :cartesian_product_number option" do
1699
+ GraphBand.many_to_one :other_vocalist, :class=>'GraphBandMember', :key=>:vocalist_id, :cartesian_product_number=>1
1700
+ ds = GraphBand.eager_graph(:members, :other_vocalist)
1701
+ ds.sql.must_equal 'SELECT bands.id, bands.vocalist_id, members.id AS members_id, other_vocalist.id AS other_vocalist_id FROM bands LEFT OUTER JOIN bm ON (bm.band_id = bands.id) LEFT OUTER JOIN members ON (members.id = bm.member_id) LEFT OUTER JOIN members AS other_vocalist ON (other_vocalist.id = bands.vocalist_id)'
1702
+ a = ds.with_fetch([{:id=>2, :vocalist_id=>6, :members_id=>5, :other_vocalist_id=>6}, {:id=>2, :vocalist_id=>6, :members_id=>5, :other_vocalist_id=>6}]).all
1703
+ a.must_equal [GraphBand.load(:id=>2, :vocalist_id => 6)]
1704
+ a.first.other_vocalist.must_equal GraphBandMember.load(:id=>6)
1705
+ a.first.members.must_equal [GraphBandMember.load(:id=>5)]
1706
+ end
1707
+
1708
+ it "should drop duplicate items that occur in sequence if the graph could be a cartesian product" do
1709
+ ds = GraphBand.eager_graph(:members, :genres)
1710
+ ds.sql.must_equal 'SELECT bands.id, bands.vocalist_id, members.id AS members_id, genres.id AS genres_id FROM bands LEFT OUTER JOIN bm ON (bm.band_id = bands.id) LEFT OUTER JOIN members ON (members.id = bm.member_id) LEFT OUTER JOIN bg ON (bg.band_id = bands.id) LEFT OUTER JOIN genres ON (genres.id = bg.genre_id)'
1711
+ a = ds.with_fetch([{:id=>2, :vocalist_id=>6, :members_id=>5, :genres_id=>7},
1712
+ {:id=>2, :vocalist_id=>6, :members_id=>5, :genres_id=>8},
1713
+ {:id=>2, :vocalist_id=>6, :members_id=>6, :genres_id=>7},
1714
+ {:id=>2, :vocalist_id=>6, :members_id=>6, :genres_id=>8}]).all
1715
+ a.must_equal [GraphBand.load(:id => 2, :vocalist_id => 6)]
1716
+ a = a.first
1717
+ a.members.must_equal [GraphBandMember.load(:id => 5), GraphBandMember.load(:id => 6)]
1718
+ a.genres.must_equal [GraphGenre.load(:id => 7), GraphGenre.load(:id => 8)]
1719
+ end
1720
+
1721
+ it "should be able to be used in combination with #eager" do
1722
+ DB.reset
1723
+ ds = GraphAlbum.eager_graph(:tracks).eager(:genres)
1724
+ GraphGenre.dataset = GraphGenre.dataset.with_fetch(:id=>6, :x_foreign_key_x=>1)
1725
+ a = ds.with_fetch(:id=>1, :band_id=>2, :tracks_id=>3, :album_id=>1).all
1726
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1727
+ a = a.first
1728
+ a.tracks.must_equal [GraphTrack.load(:id=>3, :album_id=>1)]
1729
+ a.genres.must_equal [GraphGenre.load(:id => 6)]
1730
+ DB.sqls.must_equal ['SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)',
1731
+ "SELECT genres.*, ag.album_id AS x_foreign_key_x FROM genres INNER JOIN ag ON (ag.genre_id = genres.id) WHERE (ag.album_id IN (1))"]
1732
+ end
1733
+
1734
+ it "should handle no associated records for a single many_to_one association" do
1735
+ ds = GraphAlbum.eager_graph(:band)
1736
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1737
+ a = ds.with_fetch(:id=>1, :band_id=>2, :band_id_0=>nil, :vocalist_id=>nil).all
1738
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1739
+ a.first.band.must_be_nil
1740
+ end
1741
+
1742
+ it "should handle no associated records for a single one_to_one association" do
1743
+ ds = GraphAlbum.eager_graph(:track)
1744
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, track.id AS track_id, track.album_id FROM albums LEFT OUTER JOIN tracks AS track ON (track.album_id = albums.id)'
1745
+ a = ds.with_fetch(:id=>1, :band_id=>2, :track_id=>nil, :album_id=>nil).all
1746
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1747
+ a.first.track.must_be_nil
1748
+ end
1749
+
1750
+ it "should handle no associated records for a single one_to_many association" do
1751
+ ds = GraphAlbum.eager_graph(:tracks)
1752
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, tracks.id AS tracks_id, tracks.album_id FROM albums LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id)'
1753
+ a = ds.with_fetch(:id=>1, :band_id=>2, :tracks_id=>nil, :album_id=>nil).all
1754
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1755
+ a.first.tracks.must_equal []
1756
+ end
1757
+
1758
+ it "should handle no associated records for a single one_through_one association" do
1759
+ ds = GraphAlbum.eager_graph(:genre)
1760
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genre.id AS genre_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genre ON (genre.id = ag.genre_id)'
1761
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genres_id=>nil).all
1762
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1763
+ a.first.genre.must_be_nil
1764
+ end
1765
+
1766
+ it "should handle no associated records for a single many_to_many association" do
1767
+ ds = GraphAlbum.eager_graph(:genres)
1768
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ag.genre_id)'
1769
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genres_id=>nil).all
1770
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1771
+ a.first.genres.must_equal []
1772
+ end
1773
+
1774
+ it "should handle missing associated records when loading multiple associations" do
1775
+ ds = GraphAlbum.eager_graph(:genres, :tracks, :band)
1776
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id, tracks.id AS tracks_id, tracks.album_id, band.id AS band_id_0, band.vocalist_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres ON (genres.id = ag.genre_id) LEFT OUTER JOIN tracks ON (tracks.album_id = albums.id) LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id)'
1777
+ a = ds.with_fetch([{:id=>1, :band_id=>2, :genres_id=>nil, :tracks_id=>3, :album_id=>1, :band_id_0=>nil, :vocalist_id=>nil},
1778
+ {:id=>1, :band_id=>2, :genres_id=>nil, :tracks_id=>4, :album_id=>1, :band_id_0=>nil, :vocalist_id=>nil},
1779
+ {:id=>1, :band_id=>2, :genres_id=>nil, :tracks_id=>5, :album_id=>1, :band_id_0=>nil, :vocalist_id=>nil},
1780
+ {:id=>1, :band_id=>2, :genres_id=>nil, :tracks_id=>6, :album_id=>1, :band_id_0=>nil, :vocalist_id=>nil}]).all
1781
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
1782
+ a = a.first
1783
+ a.tracks.must_equal [GraphTrack.load(:id => 3, :album_id => 1), GraphTrack.load(:id => 4, :album_id => 1), GraphTrack.load(:id => 5, :album_id => 1), GraphTrack.load(:id => 6, :album_id => 1)]
1784
+ a.band.must_be_nil
1785
+ a.genres.must_equal []
1786
+ end
1787
+
1788
+ it "should handle missing associated records when cascading eager loading for associations of associated models" do
1789
+ ds = GraphTrack.eager_graph(:album=>{:band=>:members})
1790
+ ds.sql.must_equal 'SELECT tracks.id, tracks.album_id, album.id AS album_id_0, album.band_id, band.id AS band_id_0, band.vocalist_id, members.id AS members_id FROM tracks LEFT OUTER JOIN albums AS album ON (album.id = tracks.album_id) LEFT OUTER JOIN bands AS band ON (band.id = album.band_id) LEFT OUTER JOIN bm ON (bm.band_id = band.id) LEFT OUTER JOIN members ON (members.id = bm.member_id)'
1791
+ a = ds.with_fetch([{:id=>2, :album_id=>2, :album_id_0=>nil, :band_id=>nil, :members_id=>nil, :band_id_0=>nil, :vocalist_id=>nil},
1792
+ {:id=>3, :album_id=>3, :album_id_0=>3, :band_id=>3, :members_id=>nil, :band_id_0=>nil, :vocalist_id=>nil},
1793
+ {:id=>4, :album_id=>4, :album_id_0=>4, :band_id=>2, :members_id=>nil, :band_id_0=>2, :vocalist_id=>6},
1794
+ {:id=>5, :album_id=>1, :album_id_0=>1, :band_id=>4, :members_id=>5, :band_id_0=>4, :vocalist_id=>8},
1795
+ {:id=>5, :album_id=>1, :album_id_0=>1, :band_id=>4, :members_id=>6, :band_id_0=>4, :vocalist_id=>8}]).all
1796
+ a.must_equal [GraphTrack.load(:id => 2, :album_id => 2), GraphTrack.load(:id => 3, :album_id => 3), GraphTrack.load(:id => 4, :album_id => 4), GraphTrack.load(:id => 5, :album_id => 1)]
1797
+ a.map{|x| x.album}.must_equal [nil, GraphAlbum.load(:id => 3, :band_id => 3), GraphAlbum.load(:id => 4, :band_id => 2), GraphAlbum.load(:id => 1, :band_id => 4)]
1798
+ a.map{|x| x.album.band if x.album}.must_equal [nil, nil, GraphBand.load(:id => 2, :vocalist_id=>6), GraphBand.load(:id => 4, :vocalist_id=>8)]
1799
+ a.map{|x| x.album.band.members if x.album && x.album.band}.must_equal [nil, nil, [], [GraphBandMember.load(:id => 5), GraphBandMember.load(:id => 6)]]
1800
+ end
1801
+
1802
+ it "should respect the association's :primary_key option" do
1803
+ GraphAlbum.many_to_one :inner_band, :class=>'GraphBand', :key=>:band_id, :primary_key=>:vocalist_id
1804
+ ds = GraphAlbum.eager_graph(:inner_band)
1805
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, inner_band.id AS inner_band_id, inner_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS inner_band ON (inner_band.vocalist_id = albums.band_id)'
1806
+ as = ds.with_fetch(:id=>3, :band_id=>2, :inner_band_id=>5, :vocalist_id=>2).all
1807
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
1808
+ as.first.inner_band.must_equal GraphBand.load(:id=>5, :vocalist_id=>2)
1809
+
1810
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :primary_key=>:band_id, :reciprocal=>nil
1811
+ ds = GraphAlbum.eager_graph(:right_tracks)
1812
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.band_id)'
1813
+ as = ds.with_fetch([{:id=>3, :band_id=>2, :right_tracks_id=>5, :album_id=>2}, {:id=>3, :band_id=>2, :right_tracks_id=>6, :album_id=>2}]).all
1814
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
1815
+ as.first.right_tracks.must_equal [GraphTrack.load(:id=>5, :album_id=>2), GraphTrack.load(:id=>6, :album_id=>2)]
1816
+ end
1817
+
1818
+ it "should respect many_to_one association's composite keys" do
1819
+ GraphAlbum.many_to_one :inner_band, :class=>'GraphBand', :key=>[:band_id, :id], :primary_key=>[:vocalist_id, :id]
1820
+ ds = GraphAlbum.eager_graph(:inner_band)
1821
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, inner_band.id AS inner_band_id, inner_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS inner_band ON ((inner_band.vocalist_id = albums.band_id) AND (inner_band.id = albums.id))'
1822
+ as = ds.with_fetch(:id=>3, :band_id=>2, :inner_band_id=>3, :vocalist_id=>2).all
1823
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
1824
+ as.first.inner_band.must_equal GraphBand.load(:id=>3, :vocalist_id=>2)
1825
+ end
1826
+
1827
+ it "should respect one_to_many association's composite keys" do
1828
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>[:album_id, :id], :primary_key=>[:band_id, :id]
1829
+ ds = GraphAlbum.eager_graph(:right_tracks)
1830
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON ((right_tracks.album_id = albums.band_id) AND (right_tracks.id = albums.id))'
1831
+ as = ds.with_fetch(:id=>3, :band_id=>2, :right_tracks_id=>3, :album_id=>2).all
1832
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
1833
+ as.first.right_tracks.must_equal [GraphTrack.load(:id=>3, :album_id=>2)]
1834
+ end
1835
+
1836
+ it "should respect many_to_many association's composite keys" do
1837
+ GraphAlbum.many_to_many :sbands, :class=>'GraphBand', :left_key=>[:l1, :l2], :left_primary_key=>[:band_id, :id], :right_key=>[:r1, :r2], :right_primary_key=>[:vocalist_id, :id], :join_table=>:b
1838
+ ds = GraphAlbum.eager_graph(:sbands)
1839
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, sbands.id AS sbands_id, sbands.vocalist_id FROM albums LEFT OUTER JOIN b ON ((b.l1 = albums.band_id) AND (b.l2 = albums.id)) LEFT OUTER JOIN bands AS sbands ON ((sbands.vocalist_id = b.r1) AND (sbands.id = b.r2))'
1840
+ as = ds.with_fetch([{:id=>3, :band_id=>2, :sbands_id=>5, :vocalist_id=>6}, {:id=>3, :band_id=>2, :sbands_id=>6, :vocalist_id=>22}]).all
1841
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
1842
+ as.first.sbands.must_equal [GraphBand.load(:id=>5, :vocalist_id=>6), GraphBand.load(:id=>6, :vocalist_id=>22)]
1843
+ end
1844
+
1845
+ it "should respect many_to_many association's :left_primary_key and :right_primary_key options" do
1846
+ GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :left_primary_key=>:band_id, :right_key=>:genre_id, :right_primary_key=>:xxx, :join_table=>:ag
1847
+ ds = GraphAlbum.eager_graph(:inner_genres)
1848
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, inner_genres.id AS inner_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.band_id) LEFT OUTER JOIN genres AS inner_genres ON (inner_genres.xxx = ag.genre_id)'
1849
+ as = ds.with_fetch([{:id=>3, :band_id=>2, :inner_genres_id=>5, :xxx=>12}, {:id=>3, :band_id=>2, :inner_genres_id=>6, :xxx=>22}]).all
1850
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
1851
+ as.first.inner_genres.must_equal [GraphGenre.load(:id=>5), GraphGenre.load(:id=>6)]
1852
+ end
1853
+
1854
+ it "should respect composite primary keys for classes when eager loading" do
1855
+ c1 = Class.new(GraphAlbum)
1856
+ c2 = Class.new(GraphBand)
1857
+ c1.set_primary_key [:band_id, :id]
1858
+ c2.set_primary_key [:vocalist_id, :id]
1859
+ c1.many_to_many :sbands, :class=>c2, :left_key=>[:l1, :l2], :right_key=>[:r1, :r2], :join_table=>:b
1860
+ c2.one_to_many :salbums, :class=>c1, :key=>[:band_id, :id]
1861
+ ds = c1.eager_graph(:sbands=>:salbums)
1862
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, sbands.id AS sbands_id, sbands.vocalist_id, salbums.id AS salbums_id, salbums.band_id AS salbums_band_id FROM albums LEFT OUTER JOIN b ON ((b.l1 = albums.band_id) AND (b.l2 = albums.id)) LEFT OUTER JOIN bands AS sbands ON ((sbands.vocalist_id = b.r1) AND (sbands.id = b.r2)) LEFT OUTER JOIN albums AS salbums ON ((salbums.band_id = sbands.vocalist_id) AND (salbums.id = sbands.id))'
1863
+ as = ds.with_fetch([{:id=>3, :band_id=>2, :sbands_id=>5, :vocalist_id=>6, :salbums_id=>7, :salbums_band_id=>8},
1864
+ {:id=>3, :band_id=>2, :sbands_id=>5, :vocalist_id=>6, :salbums_id=>9, :salbums_band_id=>10},
1865
+ {:id=>3, :band_id=>2, :sbands_id=>6, :vocalist_id=>22, :salbums_id=>nil, :salbums_band_id=>nil},
1866
+ {:id=>7, :band_id=>8, :sbands_id=>nil, :vocalist_id=>nil, :salbums_id=>nil, :salbums_band_id=>nil}]).all
1867
+ as.must_equal [c1.load(:id=>3, :band_id=>2), c1.load(:id=>7, :band_id=>8)]
1868
+ as.map{|x| x.sbands}.must_equal [[c2.load(:id=>5, :vocalist_id=>6), c2.load(:id=>6, :vocalist_id=>22)], []]
1869
+ as.map{|x| x.sbands.map{|y| y.salbums}}.must_equal [[[c1.load(:id=>7, :band_id=>8), c1.load(:id=>9, :band_id=>10)], []], []]
1870
+ end
1871
+
1872
+ it "should respect the association's :graph_select option" do
1873
+ GraphAlbum.many_to_one :inner_band, :class=>'GraphBand', :key=>:band_id, :graph_select=>:vocalist_id
1874
+ GraphAlbum.eager_graph(:inner_band).sql.must_equal 'SELECT albums.id, albums.band_id, inner_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS inner_band ON (inner_band.id = albums.band_id)'
1875
+
1876
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_select=>[:album_id]
1877
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id)'
1878
+
1879
+ GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_select=>[]
1880
+ GraphAlbum.eager_graph(:inner_genres).sql.must_equal 'SELECT albums.id, albums.band_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS inner_genres ON (inner_genres.id = ag.genre_id)'
1881
+ end
1882
+
1883
+ it "should respect the association's :graph_alias_base option" do
1884
+ GraphAlbum.many_to_one :inner_band, :class=>'GraphBand', :key=>:band_id, :graph_alias_base=>:foo
1885
+ ds = GraphAlbum.eager_graph(:inner_band)
1886
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, foo.id AS foo_id, foo.vocalist_id FROM albums LEFT OUTER JOIN bands AS foo ON (foo.id = albums.band_id)'
1887
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_alias_base=>:foo
1888
+ ds.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, foo.id AS foo_id, foo.vocalist_id, foo_0.id AS foo_0_id, foo_0.album_id FROM albums LEFT OUTER JOIN bands AS foo ON (foo.id = albums.band_id) LEFT OUTER JOIN tracks AS foo_0 ON (foo_0.album_id = albums.id)'
1889
+ end
1890
+
1891
+ it "should respect the association's :graph_join_type option" do
1892
+ GraphAlbum.many_to_one :inner_band, :class=>'GraphBand', :key=>:band_id, :graph_join_type=>:inner
1893
+ GraphAlbum.eager_graph(:inner_band).sql.must_equal 'SELECT albums.id, albums.band_id, inner_band.id AS inner_band_id, inner_band.vocalist_id FROM albums INNER JOIN bands AS inner_band ON (inner_band.id = albums.band_id)'
1894
+
1895
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_join_type=>:right_outer
1896
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums RIGHT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id)'
1897
+
1898
+ GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_join_type=>:inner
1899
+ GraphAlbum.eager_graph(:inner_genres).sql.must_equal 'SELECT albums.id, albums.band_id, inner_genres.id AS inner_genres_id FROM albums INNER JOIN ag ON (ag.album_id = albums.id) INNER JOIN genres AS inner_genres ON (inner_genres.id = ag.genre_id)'
1900
+ end
1901
+
1902
+ it "should respect the association's :graph_join_table_join_type option" do
1903
+ GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_join_table_join_type=>:inner
1904
+ GraphAlbum.eager_graph(:inner_genres).sql.must_equal 'SELECT albums.id, albums.band_id, inner_genres.id AS inner_genres_id FROM albums INNER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS inner_genres ON (inner_genres.id = ag.genre_id)'
1905
+
1906
+ GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_join_table_join_type=>:inner, :graph_join_type=>:right_outer
1907
+ GraphAlbum.eager_graph(:inner_genres).sql.must_equal 'SELECT albums.id, albums.band_id, inner_genres.id AS inner_genres_id FROM albums INNER JOIN ag ON (ag.album_id = albums.id) RIGHT OUTER JOIN genres AS inner_genres ON (inner_genres.id = ag.genre_id)'
1908
+ end
1909
+
1910
+ it "should respect the association's :conditions option" do
1911
+ GraphAlbum.many_to_one :active_band, :class=>'GraphBand', :key=>:band_id, :conditions=>{:active=>true}
1912
+ GraphAlbum.eager_graph(:active_band).sql.must_equal "SELECT albums.id, albums.band_id, active_band.id AS active_band_id, active_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS active_band ON ((active_band.id = albums.band_id) AND (active_band.active IS TRUE))"
1913
+
1914
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :conditions=>{:id=>(0..100)}, :reciprocal=>nil
1915
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON ((right_tracks.album_id = albums.id) AND (right_tracks.id >= 0) AND (right_tracks.id <= 100))'
1916
+
1917
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :conditions=>{true=>:active}
1918
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS active_genres ON ((active_genres.id = ag.genre_id) AND ('t' = ag.active))"
1919
+ end
1920
+
1921
+ it "should respect the association's :graph_conditions option" do
1922
+ GraphAlbum.many_to_one :active_band, :class=>'GraphBand', :key=>:band_id, :graph_conditions=>{:active=>true}
1923
+ GraphAlbum.eager_graph(:active_band).sql.must_equal "SELECT albums.id, albums.band_id, active_band.id AS active_band_id, active_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS active_band ON ((active_band.id = albums.band_id) AND (active_band.active IS TRUE))"
1924
+
1925
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_conditions=>{:id=>(0..100)}
1926
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON ((right_tracks.album_id = albums.id) AND (right_tracks.id >= 0) AND (right_tracks.id <= 100))'
1927
+
1928
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_conditions=>{true=>:active}
1929
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS active_genres ON ((active_genres.id = ag.genre_id) AND ('t' = ag.active))"
1930
+ end
1931
+
1932
+ it "should respect the association's :graph_join_table_conditions option" do
1933
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_join_table_conditions=>{:active=>true}
1934
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON ((ag.album_id = albums.id) AND (ag.active IS TRUE)) LEFT OUTER JOIN genres AS active_genres ON (active_genres.id = ag.genre_id)"
1935
+
1936
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_conditions=>{true=>:active}, :graph_join_table_conditions=>{true=>:active}
1937
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON ((ag.album_id = albums.id) AND ('t' = albums.active)) LEFT OUTER JOIN genres AS active_genres ON ((active_genres.id = ag.genre_id) AND ('t' = ag.active))"
1938
+ end
1939
+
1940
+ it "should respect the association's :graph_block option" do
1941
+ GraphAlbum.many_to_one :active_band, :class=>'GraphBand', :key=>:band_id, :graph_block=>proc{|ja,lja,js| {Sequel.qualify(ja, :active)=>true}}
1942
+ GraphAlbum.eager_graph(:active_band).sql.must_equal "SELECT albums.id, albums.band_id, active_band.id AS active_band_id, active_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS active_band ON ((active_band.id = albums.band_id) AND (active_band.active IS TRUE))"
1943
+
1944
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_block=>proc{|ja,lja,js| {Sequel.qualify(ja, :id)=>(0..100)}}
1945
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON ((right_tracks.album_id = albums.id) AND (right_tracks.id >= 0) AND (right_tracks.id <= 100))'
1946
+
1947
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_block=>proc{|ja,lja,js| {true=>Sequel.qualify(lja, :active)}}
1948
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS active_genres ON ((active_genres.id = ag.genre_id) AND ('t' = ag.active))"
1949
+ end
1950
+
1951
+ it "should respect the association's :graph_join_table_block option" do
1952
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_join_table_block=>proc{|ja,lja,js| {Sequel.qualify(ja, :active)=>true}}
1953
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON ((ag.album_id = albums.id) AND (ag.active IS TRUE)) LEFT OUTER JOIN genres AS active_genres ON (active_genres.id = ag.genre_id)"
1954
+
1955
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_block=>proc{|ja,lja,js| {true=>Sequel.qualify(lja, :active)}}, :graph_join_table_block=>proc{|ja,lja,js| {true=>Sequel.qualify(lja, :active)}}
1956
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON ((ag.album_id = albums.id) AND ('t' = albums.active)) LEFT OUTER JOIN genres AS active_genres ON ((active_genres.id = ag.genre_id) AND ('t' = ag.active))"
1957
+ end
1958
+
1959
+ it "should respect the association's :eager_grapher option" do
1960
+ GraphAlbum.many_to_one :active_band, :class=>'GraphBand', :key=>:band_id, :eager_grapher=>proc{|eo| eo[:self].graph(GraphBand.dataset, {:active=>true}, :table_alias=>eo[:table_alias], :join_type=>:inner)}
1961
+ GraphAlbum.eager_graph(:active_band).sql.must_equal "SELECT albums.id, albums.band_id, active_band.id AS active_band_id, active_band.vocalist_id FROM albums INNER JOIN bands AS active_band ON (active_band.active IS TRUE)"
1962
+
1963
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :eager_grapher=>proc{|eo| eo[:self].graph(GraphTrack.dataset, nil, :join_type=>:natural, :table_alias=>eo[:table_alias])}
1964
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums NATURAL JOIN tracks AS right_tracks'
1965
+
1966
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :eager_grapher=>proc{|eo| eo[:self].graph(:ag, {:album_id=>:id}, :table_alias=>:a123, :implicit_qualifier=>eo[:implicit_qualifier]).graph(GraphGenre.dataset, [:album_id], :table_alias=>eo[:table_alias])}
1967
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag AS a123 ON (a123.album_id = albums.id) LEFT OUTER JOIN genres AS active_genres USING (album_id)"
1968
+ end
1969
+
1970
+ it "should respect the association's :graph_only_conditions option" do
1971
+ GraphAlbum.many_to_one :active_band, :class=>'GraphBand', :key=>:band_id, :graph_only_conditions=>{:active=>true}
1972
+ GraphAlbum.eager_graph(:active_band).sql.must_equal "SELECT albums.id, albums.band_id, active_band.id AS active_band_id, active_band.vocalist_id FROM albums LEFT OUTER JOIN bands AS active_band ON (active_band.active IS TRUE)"
1973
+
1974
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_only_conditions=>nil, :graph_join_type=>:natural
1975
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums NATURAL JOIN tracks AS right_tracks'
1976
+
1977
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_only_conditions=>[:album_id]
1978
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS active_genres USING (album_id)"
1979
+ end
1980
+
1981
+ it "should respect the association's :graph_join_table_only_conditions option" do
1982
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_join_table_only_conditions=>{:active=>true}
1983
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.active IS TRUE) LEFT OUTER JOIN genres AS active_genres ON (active_genres.id = ag.genre_id)"
1984
+
1985
+ GraphAlbum.many_to_many :active_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :graph_only_conditions=>(Sequel.expr(:price) + 2 > 100), :graph_join_table_only_conditions=>Sequel.identifier("active")
1986
+ GraphAlbum.eager_graph(:active_genres).sql.must_equal "SELECT albums.id, albums.band_id, active_genres.id AS active_genres_id FROM albums LEFT OUTER JOIN ag ON active LEFT OUTER JOIN genres AS active_genres ON ((price + 2) > 100)"
1987
+ end
1988
+
1989
+ it "should create unique table aliases for all associations" do
1990
+ GraphAlbum.eager_graph(:previous_album=>{:previous_album=>:previous_album}).sql.must_equal "SELECT albums.id, albums.band_id, previous_album.id AS previous_album_id, previous_album.band_id AS previous_album_band_id, previous_album_0.id AS previous_album_0_id, previous_album_0.band_id AS previous_album_0_band_id, previous_album_1.id AS previous_album_1_id, previous_album_1.band_id AS previous_album_1_band_id FROM albums LEFT OUTER JOIN albums AS previous_album ON (previous_album.id = albums.previous_album_id) LEFT OUTER JOIN albums AS previous_album_0 ON (previous_album_0.id = previous_album.previous_album_id) LEFT OUTER JOIN albums AS previous_album_1 ON (previous_album_1.id = previous_album_0.previous_album_id)"
1991
+ end
1992
+
1993
+ it "should respect the association's :order" do
1994
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[:id, :album_id]
1995
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id) ORDER BY right_tracks.id, right_tracks.album_id'
1996
+ end
1997
+
1998
+ with_symbol_splitting "should not qualify qualified symbols in association's :order" do
1999
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[Sequel.desc(:blah__id), :blah__id]
2000
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id) ORDER BY blah.id DESC, blah.id'
2001
+ end
2002
+
2003
+ it "should only qualify unqualified symbols, identifiers, or ordered versions in association's :order" do
2004
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[Sequel.identifier(:blah__id), Sequel.identifier(:blah__id).desc, Sequel[:blah][:id].desc, Sequel[:blah][:id], :album_id, Sequel.desc(:album_id), 1, Sequel.lit('RANDOM()'), Sequel.qualify(:b, :a)]
2005
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id) ORDER BY right_tracks.blah__id, right_tracks.blah__id DESC, blah.id DESC, blah.id, right_tracks.album_id, right_tracks.album_id DESC, 1, RANDOM(), b.a'
2006
+ end
2007
+
2008
+ it "should not respect the association's :order if :order_eager_graph is false" do
2009
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[:id, :album_id], :order_eager_graph=>false
2010
+ GraphAlbum.eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id)'
2011
+ end
2012
+
2013
+ it "should add the association's :order to the existing order" do
2014
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[:id, :album_id]
2015
+ GraphAlbum.order(:band_id).eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id) ORDER BY band_id, right_tracks.id, right_tracks.album_id'
2016
+ end
2017
+
2018
+ it "should use the association's :graph_order in preference or order" do
2019
+ GraphAlbum.one_to_many :right_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[:tracks__id, :tracks__album_id], :graph_order=>[:id, :album_id]
2020
+ GraphAlbum.order(:band_id).eager_graph(:right_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, right_tracks.id AS right_tracks_id, right_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS right_tracks ON (right_tracks.album_id = albums.id) ORDER BY band_id, right_tracks.id, right_tracks.album_id'
2021
+ end
2022
+
2023
+ it "should add the association's :order for cascading associations" do
2024
+ GraphBand.one_to_many :a_albums, :class=>'GraphAlbum', :key=>:band_id, :order=>:name, :reciprocal=>nil
2025
+ GraphAlbum.one_to_many :b_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[:id, :album_id]
2026
+ GraphBand.eager_graph(:a_albums=>:b_tracks).sql.must_equal 'SELECT bands.id, bands.vocalist_id, a_albums.id AS a_albums_id, a_albums.band_id, b_tracks.id AS b_tracks_id, b_tracks.album_id FROM bands LEFT OUTER JOIN albums AS a_albums ON (a_albums.band_id = bands.id) LEFT OUTER JOIN tracks AS b_tracks ON (b_tracks.album_id = a_albums.id) ORDER BY a_albums.name, b_tracks.id, b_tracks.album_id'
2027
+ GraphAlbum.one_to_many :albums, :class=>'GraphAlbum', :key=>:band_id, :order=>[:band_id, :id]
2028
+ GraphAlbum.eager_graph(:albums=>{:albums=>:albums}).sql.must_equal 'SELECT albums.id, albums.band_id, albums_0.id AS albums_0_id, albums_0.band_id AS albums_0_band_id, albums_1.id AS albums_1_id, albums_1.band_id AS albums_1_band_id, albums_2.id AS albums_2_id, albums_2.band_id AS albums_2_band_id FROM albums LEFT OUTER JOIN albums AS albums_0 ON (albums_0.band_id = albums.id) LEFT OUTER JOIN albums AS albums_1 ON (albums_1.band_id = albums_0.id) LEFT OUTER JOIN albums AS albums_2 ON (albums_2.band_id = albums_1.id) ORDER BY albums_0.band_id, albums_0.id, albums_1.band_id, albums_1.id, albums_2.band_id, albums_2.id'
2029
+ end
2030
+
2031
+ it "should add the associations :order for multiple associations" do
2032
+ GraphAlbum.many_to_many :a_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :order=>:id
2033
+ GraphAlbum.one_to_many :b_tracks, :class=>'GraphTrack', :key=>:album_id, :order=>[:id, :album_id]
2034
+ GraphAlbum.eager_graph(:a_genres, :b_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, a_genres.id AS a_genres_id, b_tracks.id AS b_tracks_id, b_tracks.album_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS a_genres ON (a_genres.id = ag.genre_id) LEFT OUTER JOIN tracks AS b_tracks ON (b_tracks.album_id = albums.id) ORDER BY a_genres.id, b_tracks.id, b_tracks.album_id'
2035
+ end
2036
+
2037
+ it "should use the correct qualifier when graphing multiple tables with extra conditions" do
2038
+ GraphAlbum.many_to_many :a_genres, :class=>'GraphGenre', :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag
2039
+ GraphAlbum.one_to_many :b_tracks, :class=>'GraphTrack', :key=>:album_id, :graph_conditions=>{:a=>:b}
2040
+ GraphAlbum.eager_graph(:a_genres, :b_tracks).sql.must_equal 'SELECT albums.id, albums.band_id, a_genres.id AS a_genres_id, b_tracks.id AS b_tracks_id, b_tracks.album_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS a_genres ON (a_genres.id = ag.genre_id) LEFT OUTER JOIN tracks AS b_tracks ON ((b_tracks.album_id = albums.id) AND (b_tracks.a = albums.b))'
2041
+ end
2042
+
2043
+ it "should eagerly load associated records for classes that do not have a primary key" do
2044
+ GraphAlbum.no_primary_key
2045
+ GraphGenre.no_primary_key
2046
+ GraphAlbum.many_to_many :inner_genres, :class=>'GraphGenre', :left_key=>:album_id, :left_primary_key=>:band_id, :right_key=>:genre_id, :right_primary_key=>:xxx, :join_table=>:ag
2047
+ ds = GraphAlbum.eager_graph(:inner_genres)
2048
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, inner_genres.id AS inner_genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.band_id) LEFT OUTER JOIN genres AS inner_genres ON (inner_genres.xxx = ag.genre_id)'
2049
+ as = ds.with_fetch([{:id=>3, :band_id=>2, :inner_genres_id=>5, :xxx=>12}, {:id=>3, :band_id=>2, :inner_genres_id=>6, :xxx=>22}]).all
2050
+ as.must_equal [GraphAlbum.load(:id=>3, :band_id=>2)]
2051
+ as.first.inner_genres.must_equal [GraphGenre.load(:id=>5), GraphGenre.load(:id=>6)]
2052
+ GraphAlbum.set_primary_key :id
2053
+ GraphGenre.set_primary_key :id
2054
+ end
2055
+
2056
+ it "should handle eager loading with schemas and aliases of different types" do
2057
+ GraphAlbum.eager_graph(:band).join(Sequel[:s][:genres], [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2058
+ GraphAlbum.eager_graph(:band).join(Sequel.qualify(:s, :genres), [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2059
+ GraphAlbum.eager_graph(:band).join(Sequel[:s][:b].as('genres'), [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.b AS genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2060
+ GraphAlbum.eager_graph(:band).join(Sequel[:s][:b], [:b_id], :table_alias=>Sequel.identifier(:genres)).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.b AS genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2061
+ GraphAlbum.eager_graph(:band).join(Sequel.identifier(:genres), [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2062
+ GraphAlbum.eager_graph(:band).join('genres', [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2063
+ end
2064
+
2065
+ with_symbol_splitting "should handle eager loading with splittable symbols" do
2066
+ GraphAlbum.eager_graph(:band).join(:s__genres, [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2067
+ GraphAlbum.eager_graph(:band).join(Sequel.expr(:s__b).as('genres'), [:b_id]).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.b AS genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2068
+ GraphAlbum.eager_graph(:band).join(:s__b, [:b_id], :table_alias=>Sequel.identifier(:genres)).eager_graph(:genres).sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0, band.vocalist_id, genres_0.id AS genres_0_id FROM albums LEFT OUTER JOIN bands AS band ON (band.id = albums.band_id) INNER JOIN s.b AS genres USING (b_id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS genres_0 ON (genres_0.id = ag.genre_id)'
2069
+ end
2070
+
2071
+ it "should raise errors if invalid aliases or table styles are used" do
2072
+ proc{GraphAlbum.from_self(:alias=>Sequel.qualify(:s, :bands)).eager_graph(:band)}.must_raise(Sequel::Error)
2073
+ proc{GraphAlbum.from(Sequel.lit('?', :bands)).eager_graph(:band)}.must_raise(Sequel::Error)
2074
+ end
2075
+
2076
+ it "should eagerly load schema qualified tables correctly with joins" do
2077
+ c1 = Class.new(GraphAlbum)
2078
+ c2 = Class.new(GraphGenre)
2079
+ ds = c1.dataset.from(Sequel[:s][:a]).with_extend{def columns; [:id] end}
2080
+ c1.dataset = ds
2081
+ ds = c1.dataset
2082
+ c2.dataset = c2.dataset.from(Sequel[:s][:g])
2083
+ c1.many_to_many :a_genres, :class=>c2, :left_primary_key=>:id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>Sequel[:s][:ag]
2084
+ ds = c1.join(Sequel[:s][:t], [:b_id]).eager_graph(:a_genres)
2085
+ ds.sql.must_equal 'SELECT a.id, a_genres.id AS a_genres_id FROM (SELECT * FROM s.a INNER JOIN s.t USING (b_id)) AS a LEFT OUTER JOIN s.ag AS ag ON (ag.album_id = a.id) LEFT OUTER JOIN s.g AS a_genres ON (a_genres.id = ag.genre_id)'
2086
+ ds = c1.eager_graph(:a_genres)
2087
+ ds.sql.must_equal 'SELECT s.a.id, a_genres.id AS a_genres_id FROM s.a LEFT OUTER JOIN s.ag AS ag ON (ag.album_id = s.a.id) LEFT OUTER JOIN s.g AS a_genres ON (a_genres.id = ag.genre_id)'
2088
+ end
2089
+
2090
+ with_symbol_splitting "should eagerly load schema qualified table symbols correctly with joins" do
2091
+ c1 = Class.new(GraphAlbum)
2092
+ c2 = Class.new(GraphGenre)
2093
+ ds = c1.dataset.from(:s__a).with_extend{def columns; [:id] end}
2094
+ c1.dataset = ds
2095
+ ds = c1.dataset
2096
+ c2.dataset = c2.dataset.from(:s__g)
2097
+ c1.many_to_many :a_genres, :class=>c2, :left_primary_key=>:id, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:s__ag
2098
+ ds = c1.join(:s__t, [:b_id]).eager_graph(:a_genres)
2099
+ ds.sql.must_equal 'SELECT a.id, a_genres.id AS a_genres_id FROM (SELECT * FROM s.a INNER JOIN s.t USING (b_id)) AS a LEFT OUTER JOIN s.ag AS ag ON (ag.album_id = a.id) LEFT OUTER JOIN s.g AS a_genres ON (a_genres.id = ag.genre_id)'
2100
+ ds = c1.eager_graph(:a_genres)
2101
+ ds.sql.must_equal 'SELECT s.a.id, a_genres.id AS a_genres_id FROM s.a LEFT OUTER JOIN s.ag AS ag ON (ag.album_id = s.a.id) LEFT OUTER JOIN s.g AS a_genres ON (a_genres.id = ag.genre_id)'
2102
+ end
2103
+
2104
+ it "should respect :after_load callbacks on associations when eager graphing" do
2105
+ GraphAlbum.many_to_one :al_band, :class=>GraphBand, :key=>:band_id, :after_load=>proc{|o, a| a.id *=2}
2106
+ GraphAlbum.one_to_many :al_tracks, :class=>GraphTrack, :key=>:album_id, :after_load=>proc{|o, os| os.each{|a| a.id *=2}}
2107
+ GraphAlbum.many_to_many :al_genres, :class=>GraphGenre, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :after_load=>proc{|o, os| os.each{|a| a.id *=2}}
2108
+ ds = GraphAlbum.eager_graph(:al_band, :al_tracks, :al_genres)
2109
+ ds.sql.must_equal "SELECT albums.id, albums.band_id, al_band.id AS al_band_id, al_band.vocalist_id, al_tracks.id AS al_tracks_id, al_tracks.album_id, al_genres.id AS al_genres_id FROM albums LEFT OUTER JOIN bands AS al_band ON (al_band.id = albums.band_id) LEFT OUTER JOIN tracks AS al_tracks ON (al_tracks.album_id = albums.id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS al_genres ON (al_genres.id = ag.genre_id)"
2110
+ a = ds.with_fetch(:id=>1, :band_id=>2, :al_band_id=>3, :vocalist_id=>4, :al_tracks_id=>5, :album_id=>6, :al_genres_id=>7).all.first
2111
+ a.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2112
+ a.al_band.must_equal GraphBand.load(:id=>6, :vocalist_id=>4)
2113
+ a.al_tracks.must_equal [GraphTrack.load(:id=>10, :album_id=>6)]
2114
+ a.al_genres.must_equal [GraphGenre.load(:id=>14)]
2115
+ end
2116
+
2117
+ it "should respect limits on associations when eager graphing" do
2118
+ GraphAlbum.many_to_one :al_band, :class=>GraphBand, :key=>:band_id
2119
+ GraphAlbum.one_to_many :al_tracks, :class=>GraphTrack, :key=>:album_id, :limit=>2
2120
+ GraphAlbum.many_to_many :al_genres, :class=>GraphGenre, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>2
2121
+ ds = GraphAlbum.eager_graph(:al_band, :al_tracks, :al_genres)
2122
+ ds.sql.must_equal "SELECT albums.id, albums.band_id, al_band.id AS al_band_id, al_band.vocalist_id, al_tracks.id AS al_tracks_id, al_tracks.album_id, al_genres.id AS al_genres_id FROM albums LEFT OUTER JOIN bands AS al_band ON (al_band.id = albums.band_id) LEFT OUTER JOIN tracks AS al_tracks ON (al_tracks.album_id = albums.id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS al_genres ON (al_genres.id = ag.genre_id)"
2123
+ a = ds.with_fetch([{:id=>1, :band_id=>2, :al_band_id=>3, :vocalist_id=>4, :al_tracks_id=>5, :album_id=>6, :al_genres_id=>7},
2124
+ {:id=>1, :band_id=>2, :al_band_id=>8, :vocalist_id=>9, :al_tracks_id=>10, :album_id=>11, :al_genres_id=>12},
2125
+ {:id=>1, :band_id=>2, :al_band_id=>13, :vocalist_id=>14, :al_tracks_id=>15, :album_id=>16, :al_genres_id=>17}]).all.first
2126
+ a.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2127
+ a.al_band.must_equal GraphBand.load(:id=>3, :vocalist_id=>4)
2128
+ a.al_tracks.must_equal [GraphTrack.load(:id=>5, :album_id=>6), GraphTrack.load(:id=>10, :album_id=>11)]
2129
+ a.al_genres.must_equal [GraphGenre.load(:id=>7), GraphGenre.load(:id=>12)]
2130
+ end
2131
+
2132
+ it "should handle offsets on associations with no results when eager graphing" do
2133
+ GraphAlbum.one_to_many :al_tracks, :class=>GraphTrack, :key=>:album_id, :limit=>[2, 1]
2134
+ ds = GraphAlbum.eager_graph(:al_tracks)
2135
+ ds.sql.must_equal "SELECT albums.id, albums.band_id, al_tracks.id AS al_tracks_id, al_tracks.album_id FROM albums LEFT OUTER JOIN tracks AS al_tracks ON (al_tracks.album_id = albums.id)"
2136
+ a = ds.with_fetch([{:id=>1, :band_id=>2, :al_tracks_id=>nil, :album_id=>nil}]).all.first
2137
+ a.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2138
+ a.al_tracks.must_equal []
2139
+ end
2140
+
2141
+ it "should respect offsets on associations when eager graphing" do
2142
+ GraphAlbum.many_to_one :al_band, :class=>GraphBand, :key=>:band_id
2143
+ GraphAlbum.one_to_many :al_tracks, :class=>GraphTrack, :key=>:album_id, :limit=>[1, 1]
2144
+ GraphAlbum.many_to_many :al_genres, :class=>GraphGenre, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[1,1]
2145
+ ds = GraphAlbum.eager_graph(:al_band, :al_tracks, :al_genres)
2146
+ ds.sql.must_equal "SELECT albums.id, albums.band_id, al_band.id AS al_band_id, al_band.vocalist_id, al_tracks.id AS al_tracks_id, al_tracks.album_id, al_genres.id AS al_genres_id FROM albums LEFT OUTER JOIN bands AS al_band ON (al_band.id = albums.band_id) LEFT OUTER JOIN tracks AS al_tracks ON (al_tracks.album_id = albums.id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS al_genres ON (al_genres.id = ag.genre_id)"
2147
+ a = ds.with_fetch([{:id=>1, :band_id=>2, :al_band_id=>3, :vocalist_id=>4, :al_tracks_id=>5, :album_id=>6, :al_genres_id=>7},
2148
+ {:id=>1, :band_id=>2, :al_band_id=>8, :vocalist_id=>9, :al_tracks_id=>10, :album_id=>11, :al_genres_id=>12},
2149
+ {:id=>1, :band_id=>2, :al_band_id=>13, :vocalist_id=>14, :al_tracks_id=>15, :album_id=>16, :al_genres_id=>17}]).all.first
2150
+ a.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2151
+ a.al_band.must_equal GraphBand.load(:id=>3, :vocalist_id=>4)
2152
+ a.al_tracks.must_equal [GraphTrack.load(:id=>10, :album_id=>11)]
2153
+ a.al_genres.must_equal [GraphGenre.load(:id=>12)]
2154
+ end
2155
+
2156
+ it "should respect offsets on associations when eager graphing one_to_one and one_through_one associations" do
2157
+ GraphAlbum.many_to_one :al_band, :class=>GraphBand, :key=>:band_id
2158
+ GraphAlbum.one_to_one :al_track, :class=>GraphTrack, :key=>:album_id, :limit=>[nil, 1]
2159
+ GraphAlbum.one_through_one :al_genre, :class=>GraphGenre, :left_key=>:album_id, :right_key=>:genre_id, :join_table=>:ag, :limit=>[nil,1]
2160
+ ds = GraphAlbum.eager_graph(:al_band, :al_track, :al_genre)
2161
+ ds.sql.must_equal "SELECT albums.id, albums.band_id, al_band.id AS al_band_id, al_band.vocalist_id, al_track.id AS al_track_id, al_track.album_id, al_genre.id AS al_genre_id FROM albums LEFT OUTER JOIN bands AS al_band ON (al_band.id = albums.band_id) LEFT OUTER JOIN tracks AS al_track ON (al_track.album_id = albums.id) LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN genres AS al_genre ON (al_genre.id = ag.genre_id)"
2162
+ a = ds.with_fetch([{:id=>1, :band_id=>2, :al_band_id=>3, :vocalist_id=>4, :al_track_id=>5, :album_id=>6, :al_genre_id=>7},
2163
+ {:id=>1, :band_id=>2, :al_band_id=>8, :vocalist_id=>9, :al_track_id=>10, :album_id=>11, :al_genre_id=>12},
2164
+ {:id=>1, :band_id=>2, :al_band_id=>13, :vocalist_id=>14, :al_track_id=>15, :album_id=>16, :al_genre_id=>17}]).all.first
2165
+ a.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2166
+ a.al_band.must_equal GraphBand.load(:id=>3, :vocalist_id=>4)
2167
+ a.al_track.must_equal GraphTrack.load(:id=>10, :album_id=>11)
2168
+ a.al_genre.must_equal GraphGenre.load(:id=>12)
2169
+ end
2170
+
2171
+ it "should eagerly load a many_to_one association with a custom callback" do
2172
+ ds = GraphAlbum.eager_graph(:band => proc {|ds1| ds1.select(:id).columns(:id)})
2173
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, band.id AS band_id_0 FROM albums LEFT OUTER JOIN (SELECT id FROM bands) AS band ON (band.id = albums.band_id)'
2174
+ a = ds.with_fetch(:id=>1, :band_id=>2, :band_id_0=>2).all
2175
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
2176
+ a.first.band.must_equal GraphBand.load(:id => 2)
2177
+ end
2178
+
2179
+ it "should eagerly load a one_to_one association with a custom callback" do
2180
+ ds = GraphAlbum.eager_graph(:track => proc {|ds1| ds1.select(:album_id).columns(:album_id)})
2181
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, track.album_id FROM albums LEFT OUTER JOIN (SELECT album_id FROM tracks) AS track ON (track.album_id = albums.id)'
2182
+ a = ds.with_fetch(:id=>1, :band_id=>2, :album_id=>1).all
2183
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
2184
+ a.first.track.must_equal GraphTrack.load(:album_id=>1)
2185
+ end
2186
+
2187
+ it "should eagerly load a one_to_many association with a custom callback" do
2188
+ ds = GraphAlbum.eager_graph(:tracks => proc {|ds1| ds1.select(:album_id).columns(:album_id)})
2189
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, tracks.album_id FROM albums LEFT OUTER JOIN (SELECT album_id FROM tracks) AS tracks ON (tracks.album_id = albums.id)'
2190
+ a = ds.with_fetch(:id=>1, :band_id=>2, :album_id=>1).all
2191
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
2192
+ a.first.tracks.must_equal [GraphTrack.load(:album_id=>1)]
2193
+ end
2194
+
2195
+ it "should eagerly load a one_through_one association with a custom callback" do
2196
+ ds = GraphAlbum.eager_graph(:genre => proc {|ds1| ds1.select(:id).columns(:id)})
2197
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genre.id AS genre_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN (SELECT id FROM genres) AS genre ON (genre.id = ag.genre_id)'
2198
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genre_id=>4).all
2199
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
2200
+ a.first.genre.must_equal GraphGenre.load(:id => 4)
2201
+ end
2202
+
2203
+ it "should eagerly load a many_to_many association with a custom callback" do
2204
+ ds = GraphAlbum.eager_graph(:genres => proc {|ds1| ds1.select(:id).columns(:id)})
2205
+ ds.sql.must_equal 'SELECT albums.id, albums.band_id, genres.id AS genres_id FROM albums LEFT OUTER JOIN ag ON (ag.album_id = albums.id) LEFT OUTER JOIN (SELECT id FROM genres) AS genres ON (genres.id = ag.genre_id)'
2206
+ a = ds.with_fetch(:id=>1, :band_id=>2, :genres_id=>4).all
2207
+ a.must_equal [GraphAlbum.load(:id => 1, :band_id => 2)]
2208
+ a.first.genres.must_equal [GraphGenre.load(:id => 4)]
2209
+ end
2210
+
2211
+ it "should allow cascading of eager loading with a custom callback with hash value" do
2212
+ ds = GraphTrack.eager_graph(:album=>{proc{|ds1| ds1.select(:id, :band_id).columns(:id, :band_id)}=>{:band=>:members}})
2213
+ ds.sql.must_equal 'SELECT tracks.id, tracks.album_id, album.id AS album_id_0, album.band_id, band.id AS band_id_0, band.vocalist_id, members.id AS members_id FROM tracks LEFT OUTER JOIN (SELECT id, band_id FROM albums) AS album ON (album.id = tracks.album_id) LEFT OUTER JOIN bands AS band ON (band.id = album.band_id) LEFT OUTER JOIN bm ON (bm.band_id = band.id) LEFT OUTER JOIN members ON (members.id = bm.member_id)'
2214
+ a = ds.with_fetch(:id=>3, :album_id=>1, :album_id_0=>1, :band_id=>2, :members_id=>5, :band_id_0=>2, :vocalist_id=>6).all
2215
+ a.must_equal [GraphTrack.load(:id => 3, :album_id => 1)]
2216
+ a = a.first
2217
+ a.album.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2218
+ a.album.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
2219
+ a.album.band.members.must_equal [GraphBandMember.load(:id => 5)]
2220
+ end
2221
+
2222
+ it "should allow cascading of eager loading with a custom callback with array value" do
2223
+ ds = GraphTrack.eager_graph(:album=>{proc{|ds1| ds1.select(:id, :band_id).columns(:id, :band_id)}=>[:band, :tracks]})
2224
+ ds.sql.must_equal 'SELECT tracks.id, tracks.album_id, album.id AS album_id_0, album.band_id, band.id AS band_id_0, band.vocalist_id, tracks_0.id AS tracks_0_id, tracks_0.album_id AS tracks_0_album_id FROM tracks LEFT OUTER JOIN (SELECT id, band_id FROM albums) AS album ON (album.id = tracks.album_id) LEFT OUTER JOIN bands AS band ON (band.id = album.band_id) LEFT OUTER JOIN tracks AS tracks_0 ON (tracks_0.album_id = album.id)'
2225
+ a = ds.with_fetch(:id=>3, :album_id=>1, :album_id_0=>1, :band_id=>2, :band_id_0=>2, :vocalist_id=>6, :tracks_0_id=>3, :tracks_0_album_id=>1).all
2226
+ a.must_equal [GraphTrack.load(:id => 3, :album_id => 1)]
2227
+ a = a.first
2228
+ a.album.must_equal GraphAlbum.load(:id => 1, :band_id => 2)
2229
+ a.album.band.must_equal GraphBand.load(:id => 2, :vocalist_id=>6)
2230
+ a.album.tracks.must_equal [GraphTrack.load(:id => 3, :album_id => 1)]
2231
+ end
2232
+ end
2233
+
2234
+ describe "Sequel::Models with double underscores in table names" do
2235
+ before do
2236
+ @db = Sequel.mock(:fetch=>{:id=>1, :foo_id=>2})
2237
+ @Foo = Class.new(Sequel::Model(@db[Sequel.identifier(:fo__os)]))
2238
+ @Foo.columns :id, :foo_id
2239
+ @Foo.one_to_many :foos, :class=>@Foo
2240
+ @db.sqls
2241
+ end
2242
+
2243
+ it "should have working eager_graph implementations" do
2244
+ @db.fetch = {:id=>1, :foo_id=>1, :foos_id=>1, :foos_foo_id=>1}
2245
+ foos = @Foo.eager_graph(:foos).all
2246
+ @db.sqls.must_equal ["SELECT fo__os.id, fo__os.foo_id, foos.id AS foos_id, foos.foo_id AS foos_foo_id FROM fo__os LEFT OUTER JOIN fo__os AS foos ON (foos._id = fo__os.id)"]
2247
+ foos.must_equal [@Foo.load(:id=>1, :foo_id=>1)]
2248
+ foos.first.foos.must_equal [@Foo.load(:id=>1, :foo_id=>1)]
2249
+ end
2250
+
2251
+ it "should have working eager_graph implementations when qualified" do
2252
+ @Foo.dataset = Sequel.identifier(:fo__os).qualify(:s)
2253
+ @Foo.columns :id, :foo_id
2254
+ @db.sqls
2255
+ @db.fetch = {:id=>1, :foo_id=>1, :foos_id=>1, :foos_foo_id=>1}
2256
+ foos = @Foo.eager_graph(:foos).all
2257
+ @db.sqls.must_equal ["SELECT s.fo__os.id, s.fo__os.foo_id, foos.id AS foos_id, foos.foo_id AS foos_foo_id FROM s.fo__os LEFT OUTER JOIN s.fo__os AS foos ON (foos._id = s.fo__os.id)"]
2258
+ foos.must_equal [@Foo.load(:id=>1, :foo_id=>1)]
2259
+ foos.first.foos.must_equal [@Foo.load(:id=>1, :foo_id=>1)]
2260
+ end
2261
+ end
2262
+