tdiary 5.0.6 → 5.0.7

Sign up to get free protection for your applications and to get access to all the features.
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,3456 @@
1
+ # frozen-string-literal: true
2
+
3
+ module Sequel
4
+ class Model
5
+ # Associations are used in order to specify relationships between model classes
6
+ # that reflect relations between tables in the database using foreign keys.
7
+ module Associations
8
+ # Map of association type symbols to association reflection classes.
9
+ ASSOCIATION_TYPES = {}
10
+
11
+ # Set an empty association reflection hash in the model
12
+ def self.apply(model)
13
+ model.instance_exec do
14
+ @association_reflections = {}
15
+ @autoreloading_associations = {}
16
+ @cache_associations = true
17
+ @default_eager_limit_strategy = true
18
+ @default_association_options = {}
19
+ @default_association_type_options = {}
20
+ @dataset_module_class = DatasetModule
21
+ end
22
+ end
23
+
24
+ # The dataset module to use for classes using the associations plugin.
25
+ class DatasetModule < Model::DatasetModule
26
+ def_dataset_caching_method(self, :eager)
27
+ end
28
+
29
+ # AssociationReflection is a Hash subclass that keeps information on Sequel::Model associations. It
30
+ # provides methods to reduce internal code duplication. It should not
31
+ # be instantiated by the user.
32
+ class AssociationReflection < Hash
33
+ include Sequel::Inflections
34
+
35
+ # Name symbol for the _add internal association method
36
+ def _add_method
37
+ self[:_add_method]
38
+ end
39
+
40
+ # Name symbol for the _remove_all internal association method
41
+ def _remove_all_method
42
+ self[:_remove_all_method]
43
+ end
44
+
45
+ # Name symbol for the _remove internal association method
46
+ def _remove_method
47
+ self[:_remove_method]
48
+ end
49
+
50
+ # Name symbol for the _setter association method
51
+ def _setter_method
52
+ self[:_setter_method]
53
+ end
54
+
55
+ # Name symbol for the add association method
56
+ def add_method
57
+ self[:add_method]
58
+ end
59
+
60
+ # Name symbol for association method, the same as the name of the association.
61
+ def association_method
62
+ self[:name]
63
+ end
64
+
65
+ # The class associated to the current model class via this association
66
+ def associated_class
67
+ cached_fetch(:class) do
68
+ begin
69
+ constantize(self[:class_name])
70
+ rescue NameError => e
71
+ raise NameError, "#{e.message} (this happened when attempting to find the associated class for #{inspect})", e.backtrace
72
+ end
73
+ end
74
+ end
75
+
76
+ # The dataset associated via this association, with the non-instance specific
77
+ # changes already applied. This will be a joined dataset if the association
78
+ # requires joining tables.
79
+ def associated_dataset
80
+ cached_fetch(:_dataset){apply_dataset_changes(_associated_dataset)}
81
+ end
82
+
83
+ # Apply all non-instance specific changes to the given dataset and return it.
84
+ def apply_dataset_changes(ds)
85
+ ds = ds.with_extend(AssociationDatasetMethods).clone(:association_reflection => self)
86
+ if exts = self[:reverse_extend]
87
+ ds = ds.with_extend(*exts)
88
+ end
89
+ ds = ds.select(*select) if select
90
+ if c = self[:conditions]
91
+ ds = (c.is_a?(Array) && !Sequel.condition_specifier?(c)) ? ds.where(*c) : ds.where(c)
92
+ end
93
+ ds = ds.order(*self[:order]) if self[:order]
94
+ ds = ds.limit(*self[:limit]) if self[:limit]
95
+ ds = ds.limit(1).skip_limit_check if limit_to_single_row?
96
+ ds = ds.eager(self[:eager]) if self[:eager]
97
+ ds = ds.distinct if self[:distinct]
98
+ ds
99
+ end
100
+
101
+ # Apply all non-instance specific changes and the eager_block option to the given
102
+ # dataset and return it.
103
+ def apply_eager_dataset_changes(ds)
104
+ ds = apply_dataset_changes(ds)
105
+ if block = self[:eager_block]
106
+ ds = block.call(ds)
107
+ end
108
+ ds
109
+ end
110
+
111
+ # Apply the eager graph limit strategy to the dataset to graph into the current dataset, or return
112
+ # the dataset unmodified if no SQL limit strategy is needed.
113
+ def apply_eager_graph_limit_strategy(strategy, ds)
114
+ case strategy
115
+ when :distinct_on
116
+ apply_distinct_on_eager_limit_strategy(ds.order_prepend(*self[:order]))
117
+ when :window_function
118
+ apply_window_function_eager_limit_strategy(ds.order_prepend(*self[:order])).select(*ds.columns)
119
+ else
120
+ ds
121
+ end
122
+ end
123
+
124
+ # Apply an eager limit strategy to the dataset, or return the dataset
125
+ # unmodified if it doesn't need an eager limit strategy.
126
+ def apply_eager_limit_strategy(ds, strategy=eager_limit_strategy, limit_and_offset=limit_and_offset())
127
+ case strategy
128
+ when :distinct_on
129
+ apply_distinct_on_eager_limit_strategy(ds)
130
+ when :window_function
131
+ apply_window_function_eager_limit_strategy(ds, limit_and_offset)
132
+ else
133
+ ds
134
+ end
135
+ end
136
+
137
+ # Use DISTINCT ON and ORDER BY clauses to limit the results to the first record with matching keys.
138
+ def apply_distinct_on_eager_limit_strategy(ds)
139
+ keys = predicate_key
140
+ ds.distinct(*keys).order_prepend(*keys)
141
+ end
142
+
143
+ # Use a window function to limit the results of the eager loading dataset.
144
+ def apply_window_function_eager_limit_strategy(ds, limit_and_offset=limit_and_offset())
145
+ rn = ds.row_number_column
146
+ limit, offset = limit_and_offset
147
+ ds = ds.unordered.select_append{|o| o.row_number.function.over(:partition=>predicate_key, :order=>ds.opts[:order]).as(rn)}.from_self
148
+ ds = ds.order(rn) if ds.db.database_type == :mysql
149
+ ds = if !returns_array?
150
+ ds.where(rn => offset ? offset+1 : 1)
151
+ elsif offset
152
+ offset += 1
153
+ if limit
154
+ ds.where(rn => (offset...(offset+limit)))
155
+ else
156
+ ds.where{SQL::Identifier.new(rn) >= offset}
157
+ end
158
+ else
159
+ ds.where{SQL::Identifier.new(rn) <= limit}
160
+ end
161
+ end
162
+
163
+ # If the ruby eager limit strategy is being used, slice the array using the slice
164
+ # range to return the object(s) at the correct offset/limit.
165
+ def apply_ruby_eager_limit_strategy(rows, limit_and_offset = limit_and_offset())
166
+ name = self[:name]
167
+ if returns_array?
168
+ range = slice_range(limit_and_offset)
169
+ rows.each{|o| o.associations[name] = o.associations[name][range] || []}
170
+ elsif sr = slice_range(limit_and_offset)
171
+ offset = sr.begin
172
+ rows.each{|o| o.associations[name] = o.associations[name][offset]}
173
+ end
174
+ end
175
+
176
+ # Whether the associations cache should use an array when storing the
177
+ # associated records during eager loading.
178
+ def assign_singular?
179
+ !returns_array?
180
+ end
181
+
182
+ # Whether this association can have associated objects, given the current
183
+ # object. Should be false if obj cannot have associated objects because
184
+ # the necessary key columns are NULL.
185
+ def can_have_associated_objects?(obj)
186
+ true
187
+ end
188
+
189
+ # Whether you are able to clone from the given association type to the current
190
+ # association type, true by default only if the types match.
191
+ def cloneable?(ref)
192
+ ref[:type] == self[:type]
193
+ end
194
+
195
+ # Name symbol for the dataset association method
196
+ def dataset_method
197
+ self[:dataset_method]
198
+ end
199
+
200
+ # Whether the dataset needs a primary key to function, true by default.
201
+ def dataset_need_primary_key?
202
+ true
203
+ end
204
+
205
+ # Return the symbol used for the row number column if the window function
206
+ # eager limit strategy is being used, or nil otherwise.
207
+ def delete_row_number_column(ds=associated_dataset)
208
+ if eager_limit_strategy == :window_function
209
+ ds.row_number_column
210
+ end
211
+ end
212
+
213
+ # Return an dataset that will load the appropriate associated objects for
214
+ # the given object using this association.
215
+ def association_dataset_for(object)
216
+ condition = if can_have_associated_objects?(object)
217
+ predicate_keys.zip(predicate_key_values(object))
218
+ else
219
+ false
220
+ end
221
+
222
+ associated_dataset.where(condition)
223
+ end
224
+
225
+ ASSOCIATION_DATASET_PROC = proc{|r| r.association_dataset_for(self)}
226
+ # Proc used to create the association dataset method.
227
+ def association_dataset_proc
228
+ ASSOCIATION_DATASET_PROC
229
+ end
230
+
231
+ # The eager_graph limit strategy to use for this dataset
232
+ def eager_graph_limit_strategy(strategy)
233
+ if self[:limit] || !returns_array?
234
+ strategy = strategy[self[:name]] if strategy.is_a?(Hash)
235
+ case strategy
236
+ when true
237
+ true_eager_graph_limit_strategy
238
+ when Symbol
239
+ strategy
240
+ else
241
+ if returns_array? || offset
242
+ :ruby
243
+ end
244
+ end
245
+ end
246
+ end
247
+
248
+ # The eager limit strategy to use for this dataset.
249
+ def eager_limit_strategy
250
+ cached_fetch(:_eager_limit_strategy) do
251
+ if self[:limit] || !returns_array?
252
+ case s = cached_fetch(:eager_limit_strategy){default_eager_limit_strategy}
253
+ when true
254
+ true_eager_limit_strategy
255
+ else
256
+ s
257
+ end
258
+ end
259
+ end
260
+ end
261
+
262
+ # Eager load the associated objects using the hash of eager options,
263
+ # yielding each row to the block.
264
+ def eager_load_results(eo, &block)
265
+ rows = eo[:rows]
266
+ initialize_association_cache(rows) unless eo[:initialize_rows] == false
267
+ if eo[:id_map]
268
+ ids = eo[:id_map].keys
269
+ return ids if ids.empty?
270
+ end
271
+ strategy = eager_limit_strategy
272
+ cascade = eo[:associations]
273
+ eager_limit = nil
274
+
275
+ if eo[:eager_block] || eo[:loader] == false
276
+ ds = eager_loading_dataset(eo)
277
+
278
+ strategy = ds.opts[:eager_limit_strategy] || strategy
279
+
280
+ eager_limit =
281
+ if el = ds.opts[:eager_limit]
282
+ raise Error, "The :eager_limit dataset option is not supported for associations returning a single record" unless returns_array?
283
+ strategy ||= true_eager_graph_limit_strategy
284
+ if el.is_a?(Array)
285
+ el
286
+ else
287
+ [el, nil]
288
+ end
289
+ else
290
+ limit_and_offset
291
+ end
292
+
293
+ strategy = true_eager_graph_limit_strategy if strategy == :union
294
+ # Correlated subqueries are not supported for regular eager loading
295
+ strategy = :ruby if strategy == :correlated_subquery
296
+ strategy = nil if strategy == :ruby && assign_singular?
297
+ objects = apply_eager_limit_strategy(ds, strategy, eager_limit).all
298
+ elsif strategy == :union
299
+ objects = []
300
+ ds = associated_dataset
301
+ loader = union_eager_loader
302
+ joiner = " UNION ALL "
303
+ ids.each_slice(subqueries_per_union).each do |slice|
304
+ objects.concat(ds.with_sql(slice.map{|k| loader.sql(*k)}.join(joiner)).to_a)
305
+ end
306
+ ds = ds.eager(cascade) if cascade
307
+ ds.send(:post_load, objects)
308
+ else
309
+ loader = placeholder_eager_loader
310
+ loader = loader.with_dataset{|dataset| dataset.eager(cascade)} if cascade
311
+ objects = loader.all(ids)
312
+ end
313
+
314
+ objects.each(&block)
315
+ if strategy == :ruby
316
+ apply_ruby_eager_limit_strategy(rows, eager_limit || limit_and_offset)
317
+ end
318
+ end
319
+
320
+ # The key to use for the key hash when eager loading
321
+ def eager_loader_key
322
+ self[:eager_loader_key]
323
+ end
324
+
325
+ # By default associations do not need to select a key in an associated table
326
+ # to eagerly load.
327
+ def eager_loading_use_associated_key?
328
+ false
329
+ end
330
+
331
+ # Whether to eagerly graph a lazy dataset, true by default. If this
332
+ # is false, the association won't respect the :eager_graph option
333
+ # when loading the association for a single record.
334
+ def eager_graph_lazy_dataset?
335
+ true
336
+ end
337
+
338
+ # Whether additional conditions should be added when using the filter
339
+ # by associations support.
340
+ def filter_by_associations_add_conditions?
341
+ self[:conditions] || self[:eager_block] || self[:limit]
342
+ end
343
+
344
+ # The expression to use for the additional conditions to be added for
345
+ # the filter by association support, when the association itself is
346
+ # filtered. Works by using a subquery to test that the objects passed
347
+ # also meet the association filter criteria.
348
+ def filter_by_associations_conditions_expression(obj)
349
+ ds = filter_by_associations_conditions_dataset.where(filter_by_associations_conditions_subquery_conditions(obj))
350
+ {filter_by_associations_conditions_key=>ds}
351
+ end
352
+
353
+ # Finalize the association by first attempting to populate the thread-safe cache,
354
+ # and then transfering the thread-safe cache value to the association itself,
355
+ # so that a mutex is not needed to get the value.
356
+ def finalize
357
+ return unless cache = self[:cache]
358
+
359
+ finalize_settings.each do |meth, key|
360
+ next if has_key?(key)
361
+
362
+ # Allow calling private methods to make sure caching is done appropriately
363
+ send(meth)
364
+ self[key] = cache.delete(key) if cache.has_key?(key)
365
+ end
366
+
367
+ nil
368
+ end
369
+
370
+ # Map of methods to cache keys used for finalizing associations.
371
+ FINALIZE_SETTINGS = {
372
+ :associated_class=>:class,
373
+ :associated_dataset=>:_dataset,
374
+ :associated_eager_dataset=>:associated_eager_dataset,
375
+ :eager_limit_strategy=>:_eager_limit_strategy,
376
+ :filter_by_associations_conditions_dataset=>:filter_by_associations_conditions_dataset,
377
+ :placeholder_loader=>:placeholder_loader,
378
+ :predicate_key=>:predicate_key,
379
+ :predicate_keys=>:predicate_keys,
380
+ :reciprocal=>:reciprocal,
381
+ }.freeze
382
+ def finalize_settings
383
+ FINALIZE_SETTINGS
384
+ end
385
+
386
+ # Whether to handle silent modification failure when adding/removing
387
+ # associated records, false by default.
388
+ def handle_silent_modification_failure?
389
+ false
390
+ end
391
+
392
+ # Initialize the associations cache for the current association for the given objects.
393
+ def initialize_association_cache(objects)
394
+ name = self[:name]
395
+ if assign_singular?
396
+ objects.each{|object| object.associations[name] = nil}
397
+ else
398
+ objects.each{|object| object.associations[name] = []}
399
+ end
400
+ end
401
+
402
+ # Show which type of reflection this is, and a guess at what code was used to create the
403
+ # association.
404
+ def inspect
405
+ o = self[:orig_opts].dup
406
+ o.delete(:class)
407
+ o.delete(:class_name)
408
+ o.delete(:block) unless o[:block]
409
+ o[:class] = self[:orig_class] if self[:orig_class]
410
+
411
+ "#<#{self.class} #{self[:model]}.#{self[:type]} #{self[:name].inspect}#{", #{o.inspect[1...-1]}" unless o.empty?}>"
412
+ end
413
+
414
+ # The limit and offset for this association (returned as a two element array).
415
+ def limit_and_offset
416
+ if (v = self[:limit]).is_a?(Array)
417
+ v
418
+ else
419
+ [v, nil]
420
+ end
421
+ end
422
+
423
+ # Whether the associated object needs a primary key to be added/removed,
424
+ # false by default.
425
+ def need_associated_primary_key?
426
+ false
427
+ end
428
+
429
+ # A placeholder literalizer that can be used to lazily load the association. If
430
+ # one can't be used, returns nil.
431
+ def placeholder_loader
432
+ if use_placeholder_loader?
433
+ cached_fetch(:placeholder_loader) do
434
+ Sequel::Dataset::PlaceholderLiteralizer.loader(associated_dataset) do |pl, ds|
435
+ ds.where(Sequel.&(*predicate_keys.map{|k| SQL::BooleanExpression.new(:'=', k, pl.arg)}))
436
+ end
437
+ end
438
+ end
439
+ end
440
+
441
+ # The keys to use for loading of the regular dataset, as an array.
442
+ def predicate_keys
443
+ cached_fetch(:predicate_keys){Array(predicate_key)}
444
+ end
445
+
446
+ # The values that predicate_keys should match for objects to be associated.
447
+ def predicate_key_values(object)
448
+ predicate_key_methods.map{|k| object.get_column_value(k)}
449
+ end
450
+
451
+ # Qualify +col+ with the given table name.
452
+ def qualify(table, col)
453
+ transform(col) do |k|
454
+ case k
455
+ when Symbol, SQL::Identifier
456
+ SQL::QualifiedIdentifier.new(table, k)
457
+ else
458
+ Sequel::Qualifier.new(table).transform(k)
459
+ end
460
+ end
461
+ end
462
+
463
+ # Qualify col with the associated model's table name.
464
+ def qualify_assoc(col)
465
+ qualify(associated_class.table_name, col)
466
+ end
467
+
468
+ # Qualify col with the current model's table name.
469
+ def qualify_cur(col)
470
+ qualify(self[:model].table_name, col)
471
+ end
472
+
473
+ # Returns the reciprocal association variable, if one exists. The reciprocal
474
+ # association is the association in the associated class that is the opposite
475
+ # of the current association. For example, Album.many_to_one :artist and
476
+ # Artist.one_to_many :albums are reciprocal associations. This information is
477
+ # to populate reciprocal associations. For example, when you do this_artist.add_album(album)
478
+ # it sets album.artist to this_artist.
479
+ def reciprocal
480
+ cached_fetch(:reciprocal) do
481
+ possible_recips = []
482
+
483
+ associated_class.all_association_reflections.each do |assoc_reflect|
484
+ if reciprocal_association?(assoc_reflect)
485
+ possible_recips << assoc_reflect
486
+ end
487
+ end
488
+
489
+ if possible_recips.length == 1
490
+ cached_set(:reciprocal_type, possible_recips.first[:type]) if ambiguous_reciprocal_type?
491
+ possible_recips.first[:name]
492
+ end
493
+ end
494
+ end
495
+
496
+ # Whether the reciprocal of this association returns an array of objects instead of a single object,
497
+ # true by default.
498
+ def reciprocal_array?
499
+ true
500
+ end
501
+
502
+ # Name symbol for the remove_all_ association method
503
+ def remove_all_method
504
+ self[:remove_all_method]
505
+ end
506
+
507
+ # Whether associated objects need to be removed from the association before
508
+ # being destroyed in order to preserve referential integrity.
509
+ def remove_before_destroy?
510
+ true
511
+ end
512
+
513
+ # Name symbol for the remove_ association method
514
+ def remove_method
515
+ self[:remove_method]
516
+ end
517
+
518
+ # Whether to check that an object to be disassociated is already associated to this object, false by default.
519
+ def remove_should_check_existing?
520
+ false
521
+ end
522
+
523
+ # Whether this association returns an array of objects instead of a single object,
524
+ # true by default.
525
+ def returns_array?
526
+ true
527
+ end
528
+
529
+ # The columns to select when loading the association.
530
+ def select
531
+ self[:select]
532
+ end
533
+
534
+ # Whether to set the reciprocal association to self when loading associated
535
+ # records, false by default.
536
+ def set_reciprocal_to_self?
537
+ false
538
+ end
539
+
540
+ # Name symbol for the setter association method
541
+ def setter_method
542
+ self[:setter_method]
543
+ end
544
+
545
+ # The range used for slicing when using the :ruby eager limit strategy.
546
+ def slice_range(limit_and_offset = limit_and_offset())
547
+ limit, offset = limit_and_offset
548
+ if limit || offset
549
+ (offset||0)..(limit ? (offset||0)+limit-1 : -1)
550
+ end
551
+ end
552
+
553
+ private
554
+
555
+ # If the key exists in the reflection hash, return it.
556
+ # If the key doesn't exist and association reflections are uncached, then yield to get the value.
557
+ # If the key doesn't exist and association reflection are cached, check the cache and return
558
+ # the value if present, or yield to get the value, cache the value, and return it.
559
+ def cached_fetch(key)
560
+ fetch(key) do
561
+ return yield unless h = self[:cache]
562
+ Sequel.synchronize{return h[key] if h.has_key?(key)}
563
+ value = yield
564
+ Sequel.synchronize{h[key] = value}
565
+ end
566
+ end
567
+
568
+ # Cache the value at the given key if caching.
569
+ def cached_set(key, value)
570
+ return unless h = self[:cache]
571
+ Sequel.synchronize{h[key] = value}
572
+ end
573
+
574
+ # The base dataset used for the association, before any order/conditions
575
+ # options have been applied.
576
+ def _associated_dataset
577
+ associated_class.dataset
578
+ end
579
+
580
+ # Whether for the reciprocal type for the given association cannot be
581
+ # known in advantage, false by default.
582
+ def ambiguous_reciprocal_type?
583
+ false
584
+ end
585
+
586
+ # Apply a limit strategy to the given dataset so that filter by
587
+ # associations works with a limited dataset.
588
+ def apply_filter_by_associations_limit_strategy(ds)
589
+ case filter_by_associations_limit_strategy
590
+ when :distinct_on
591
+ apply_filter_by_associations_distinct_on_limit_strategy(ds)
592
+ when :window_function
593
+ apply_filter_by_associations_window_function_limit_strategy(ds)
594
+ else
595
+ ds
596
+ end
597
+ end
598
+
599
+ # Apply a distinct on eager limit strategy using IN with a subquery
600
+ # that uses DISTINCT ON to ensure only the first matching record for
601
+ # each key is included.
602
+ def apply_filter_by_associations_distinct_on_limit_strategy(ds)
603
+ k = filter_by_associations_limit_key
604
+ ds.where(k=>apply_distinct_on_eager_limit_strategy(associated_eager_dataset.select(*k)))
605
+ end
606
+
607
+ # Apply a distinct on eager limit strategy using IN with a subquery
608
+ # that uses a filter on the row_number window function to ensure
609
+ # that only rows inside the limit are returned.
610
+ def apply_filter_by_associations_window_function_limit_strategy(ds)
611
+ ds.where(filter_by_associations_limit_key=>apply_window_function_eager_limit_strategy(associated_eager_dataset.select(*filter_by_associations_limit_alias_key)).select(*filter_by_associations_limit_aliases))
612
+ end
613
+
614
+ # The associated_dataset with the eager_block callback already applied.
615
+ def associated_eager_dataset
616
+ cached_fetch(:associated_eager_dataset) do
617
+ ds = associated_dataset.unlimited
618
+ if block = self[:eager_block]
619
+ ds = block.call(ds)
620
+ end
621
+ ds
622
+ end
623
+ end
624
+
625
+ # The dataset to use for eager loading associated objects for multiple current objects,
626
+ # given the hash passed to the eager loader.
627
+ def eager_loading_dataset(eo=OPTS)
628
+ ds = eo[:dataset] || associated_eager_dataset
629
+ if id_map = eo[:id_map]
630
+ ds = ds.where(eager_loading_predicate_condition(id_map.keys))
631
+ end
632
+ if associations = eo[:associations]
633
+ ds = ds.eager(associations)
634
+ end
635
+ if block = eo[:eager_block]
636
+ ds = block.call(ds)
637
+ end
638
+ if eager_loading_use_associated_key?
639
+ ds = ds.select_append(*associated_key_array)
640
+ end
641
+ if self[:eager_graph]
642
+ raise(Error, "cannot eagerly load a #{self[:type]} association that uses :eager_graph") if eager_loading_use_associated_key?
643
+ ds = ds.eager_graph(self[:eager_graph])
644
+ end
645
+ ds
646
+ end
647
+
648
+ # The default eager limit strategy to use for this association
649
+ def default_eager_limit_strategy
650
+ self[:model].default_eager_limit_strategy || :ruby
651
+ end
652
+
653
+ # The predicate condition to use for the eager_loader.
654
+ def eager_loading_predicate_condition(keys)
655
+ {predicate_key=>keys}
656
+ end
657
+
658
+ # Add conditions to the dataset to not include NULL values for
659
+ # the associated keys, and select those keys.
660
+ def filter_by_associations_add_conditions_dataset_filter(ds)
661
+ k = filter_by_associations_conditions_associated_keys
662
+ ds.select(*k).where(Sequel.negate(k.zip([])))
663
+ end
664
+
665
+ # The conditions to add to the filter by associations conditions
666
+ # subquery to restrict it to to the object(s) that was used as the
667
+ # filter value.
668
+ def filter_by_associations_conditions_subquery_conditions(obj)
669
+ key = qualify(associated_class.table_name, associated_class.primary_key)
670
+ case obj
671
+ when Array
672
+ {key=>obj.map(&:pk)}
673
+ when Sequel::Dataset
674
+ {key=>obj.select(*Array(qualify(associated_class.table_name, associated_class.primary_key)))}
675
+ else
676
+ Array(key).zip(Array(obj.pk))
677
+ end
678
+ end
679
+
680
+ # The base dataset to use for the filter by associations conditions
681
+ # subquery, regardless of the objects that are passed in as filter
682
+ # values.
683
+ def filter_by_associations_conditions_dataset
684
+ cached_fetch(:filter_by_associations_conditions_dataset) do
685
+ ds = associated_eager_dataset.unordered
686
+ ds = filter_by_associations_add_conditions_dataset_filter(ds)
687
+ ds = apply_filter_by_associations_limit_strategy(ds)
688
+ ds
689
+ end
690
+ end
691
+
692
+ # The strategy to use to filter by a limited association
693
+ def filter_by_associations_limit_strategy
694
+ v = fetch(:filter_limit_strategy, self[:eager_limit_strategy])
695
+ if v || self[:limit] || !returns_array?
696
+ case v ||= self[:model].default_eager_limit_strategy
697
+ when true, :union, :ruby
698
+ # Can't use a union or ruby-based strategy for filtering by associations, switch to default eager graph limit
699
+ # strategy.
700
+ true_eager_graph_limit_strategy
701
+ when Symbol
702
+ v
703
+ end
704
+ end
705
+ end
706
+
707
+ # Whether to limit the associated dataset to a single row.
708
+ def limit_to_single_row?
709
+ !returns_array?
710
+ end
711
+
712
+ # Any offset to use for this association (or nil if there is no offset).
713
+ def offset
714
+ limit_and_offset.last
715
+ end
716
+
717
+ # A placeholder literalizer used to speed up eager loading.
718
+ def placeholder_eager_loader
719
+ cached_fetch(:placeholder_eager_loader) do
720
+ Sequel::Dataset::PlaceholderLiteralizer.loader(associated_dataset) do |pl, ds|
721
+ apply_eager_limit_strategy(eager_loading_dataset.where(predicate_key=>pl.arg), eager_limit_strategy)
722
+ end
723
+ end
724
+ end
725
+
726
+ # The reciprocal type as an array, should be overridden in reflection subclasses that
727
+ # have ambiguous reciprocal types.
728
+ def possible_reciprocal_types
729
+ [reciprocal_type]
730
+ end
731
+
732
+ # Whether the given association reflection is possible reciprocal
733
+ # association for the current association reflection.
734
+ def reciprocal_association?(assoc_reflect)
735
+ possible_reciprocal_types.include?(assoc_reflect[:type]) &&
736
+ (begin; assoc_reflect.associated_class; rescue NameError; end) == self[:model] &&
737
+ assoc_reflect[:conditions].nil? &&
738
+ assoc_reflect[:block].nil?
739
+ end
740
+
741
+ # The number of subqueries to use in each union query, used to eagerly load
742
+ # limited associations. Defaults to 40, the optimal number depends on the
743
+ # latency between the database and the application.
744
+ def subqueries_per_union
745
+ self[:subqueries_per_union] || 40
746
+ end
747
+
748
+ # If +s+ is an array, map +s+ over the block. Otherwise, just call the
749
+ # block with +s+.
750
+ def transform(s)
751
+ s.is_a?(Array) ? s.map(&Proc.new) : (yield s)
752
+ end
753
+
754
+ # What eager limit strategy should be used when true is given as the value,
755
+ # defaults to UNION as that is the fastest strategy if the appropriate keys are indexed.
756
+ def true_eager_limit_strategy
757
+ if self[:eager_graph] || (offset && !associated_dataset.supports_offsets_in_correlated_subqueries?)
758
+ # An SQL-based approach won't work if you are also eager graphing,
759
+ # so use a ruby based approach in that case.
760
+ :ruby
761
+ else
762
+ :union
763
+ end
764
+ end
765
+
766
+ # The eager_graph limit strategy used when true is given as the value, choosing the
767
+ # best strategy based on what the database supports.
768
+ def true_eager_graph_limit_strategy
769
+ if associated_class.dataset.supports_window_functions?
770
+ :window_function
771
+ else
772
+ :ruby
773
+ end
774
+ end
775
+
776
+ # A placeholder literalizer used to speed up the creation of union queries when eager
777
+ # loading a limited association.
778
+ def union_eager_loader
779
+ cached_fetch(:union_eager_loader) do
780
+ Sequel::Dataset::PlaceholderLiteralizer.loader(associated_dataset) do |pl, ds|
781
+ ds = self[:eager_block].call(ds) if self[:eager_block]
782
+ keys = predicate_keys
783
+ ds = ds.where(keys.map{pl.arg}.zip(keys))
784
+ if eager_loading_use_associated_key?
785
+ ds = ds.select_append(*associated_key_array)
786
+ end
787
+ ds.from_self
788
+ end
789
+ end
790
+ end
791
+
792
+ # Whether the placeholder loader can be used to load the association.
793
+ def use_placeholder_loader?
794
+ !self[:instance_specific] && !self[:eager_graph]
795
+ end
796
+ end
797
+
798
+ class ManyToOneAssociationReflection < AssociationReflection
799
+ ASSOCIATION_TYPES[:many_to_one] = self
800
+
801
+ # many_to_one associations can only have associated objects if none of
802
+ # the :keys options have a nil value.
803
+ def can_have_associated_objects?(obj)
804
+ !self[:keys].any?{|k| obj.get_column_value(k).nil?}
805
+ end
806
+
807
+ # Whether the dataset needs a primary key to function, false for many_to_one associations.
808
+ def dataset_need_primary_key?
809
+ false
810
+ end
811
+
812
+ # Default foreign key name symbol for foreign key in current model's table that points to
813
+ # the given association's table's primary key.
814
+ def default_key
815
+ :"#{self[:name]}_id"
816
+ end
817
+
818
+ # Whether to eagerly graph a lazy dataset, true for many_to_one associations
819
+ # only if the key is nil.
820
+ def eager_graph_lazy_dataset?
821
+ self[:key].nil?
822
+ end
823
+
824
+ # many_to_one associations don't need an eager_graph limit strategy
825
+ def eager_graph_limit_strategy(_)
826
+ nil
827
+ end
828
+
829
+ # many_to_one associations don't need an eager limit strategy
830
+ def eager_limit_strategy
831
+ nil
832
+ end
833
+
834
+ # many_to_one associations don't need a filter by associations limit strategy
835
+ def filter_by_associations_limit_strategy
836
+ nil
837
+ end
838
+
839
+ FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge(
840
+ :primary_key=>:primary_key,
841
+ :primary_keys=>:primary_keys,
842
+ :primary_key_method=>:primary_key_method,
843
+ :primary_key_methods=>:primary_key_methods,
844
+ :qualified_primary_key=>:qualified_primary_key,
845
+ :reciprocal_type=>:reciprocal_type
846
+ ).freeze
847
+ def finalize_settings
848
+ FINALIZE_SETTINGS
849
+ end
850
+
851
+ # The expression to use on the left hand side of the IN lookup when eager loading
852
+ def predicate_key
853
+ cached_fetch(:predicate_key){qualified_primary_key}
854
+ end
855
+
856
+ # The column(s) in the associated table that the key in the current table references (either a symbol or an array).
857
+ def primary_key
858
+ cached_fetch(:primary_key){associated_class.primary_key || raise(Error, "no primary key specified for #{associated_class.inspect}")}
859
+ end
860
+
861
+ # The columns in the associated table that the key in the current table references (always an array).
862
+ def primary_keys
863
+ cached_fetch(:primary_keys){Array(primary_key)}
864
+ end
865
+ alias associated_object_keys primary_keys
866
+
867
+ # The method symbol or array of method symbols to call on the associated object
868
+ # to get the value to use for the foreign keys.
869
+ def primary_key_method
870
+ cached_fetch(:primary_key_method){primary_key}
871
+ end
872
+
873
+ # The array of method symbols to call on the associated object
874
+ # to get the value to use for the foreign keys.
875
+ def primary_key_methods
876
+ cached_fetch(:primary_key_methods){Array(primary_key_method)}
877
+ end
878
+
879
+ # #primary_key qualified by the associated table
880
+ def qualified_primary_key
881
+ cached_fetch(:qualified_primary_key){self[:qualify] == false ? primary_key : qualify_assoc(primary_key)}
882
+ end
883
+
884
+ # True only if the reciprocal is a one_to_many association.
885
+ def reciprocal_array?
886
+ !set_reciprocal_to_self?
887
+ end
888
+
889
+ # Whether this association returns an array of objects instead of a single object,
890
+ # false for a many_to_one association.
891
+ def returns_array?
892
+ false
893
+ end
894
+
895
+ # True only if the reciprocal is a one_to_one association.
896
+ def set_reciprocal_to_self?
897
+ reciprocal
898
+ reciprocal_type == :one_to_one
899
+ end
900
+
901
+ private
902
+
903
+ # Reciprocals of many_to_one associations could be either one_to_many or one_to_one,
904
+ # and which is not known in advance.
905
+ def ambiguous_reciprocal_type?
906
+ true
907
+ end
908
+
909
+ def filter_by_associations_conditions_associated_keys
910
+ qualify(associated_class.table_name, primary_keys)
911
+ end
912
+
913
+ def filter_by_associations_conditions_key
914
+ qualify(self[:model].table_name, self[:key_column])
915
+ end
916
+
917
+ # many_to_one associations do not need to be limited to a single row if they
918
+ # explicitly do not have a key.
919
+ def limit_to_single_row?
920
+ super && self[:key]
921
+ end
922
+
923
+ def predicate_key_methods
924
+ self[:keys]
925
+ end
926
+
927
+ # The reciprocal type of a many_to_one association is either
928
+ # a one_to_many or a one_to_one association.
929
+ def possible_reciprocal_types
930
+ [:one_to_many, :one_to_one]
931
+ end
932
+
933
+ # Whether the given association reflection is possible reciprocal
934
+ def reciprocal_association?(assoc_reflect)
935
+ super && self[:keys] == assoc_reflect[:keys] && primary_key == assoc_reflect.primary_key
936
+ end
937
+
938
+ # The reciprocal type of a many_to_one association is either
939
+ # a one_to_many or a one_to_one association, look in the associated class
940
+ # to try to figure out which.
941
+ def reciprocal_type
942
+ cached_fetch(:reciprocal_type) do
943
+ possible_recips = []
944
+
945
+ associated_class.all_association_reflections.each do |assoc_reflect|
946
+ if reciprocal_association?(assoc_reflect)
947
+ possible_recips << assoc_reflect
948
+ end
949
+ end
950
+
951
+ if possible_recips.length == 1
952
+ possible_recips.first[:type]
953
+ else
954
+ possible_reciprocal_types
955
+ end
956
+ end
957
+ end
958
+ end
959
+
960
+ class OneToManyAssociationReflection < AssociationReflection
961
+ ASSOCIATION_TYPES[:one_to_many] = self
962
+
963
+ # Support a correlated subquery limit strategy when using eager_graph.
964
+ def apply_eager_graph_limit_strategy(strategy, ds)
965
+ case strategy
966
+ when :correlated_subquery
967
+ apply_correlated_subquery_limit_strategy(ds)
968
+ else
969
+ super
970
+ end
971
+ end
972
+
973
+ # The keys in the associated model's table related to this association
974
+ def associated_object_keys
975
+ self[:keys]
976
+ end
977
+
978
+ # one_to_many associations can only have associated objects if none of
979
+ # the :keys options have a nil value.
980
+ def can_have_associated_objects?(obj)
981
+ !self[:primary_keys].any?{|k| obj.get_column_value(k).nil?}
982
+ end
983
+
984
+ # one_to_many and one_to_one associations can be clones
985
+ def cloneable?(ref)
986
+ ref[:type] == :one_to_many || ref[:type] == :one_to_one
987
+ end
988
+
989
+ # Default foreign key name symbol for key in associated table that points to
990
+ # current table's primary key.
991
+ def default_key
992
+ :"#{underscore(demodulize(self[:model].name))}_id"
993
+ end
994
+
995
+ FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge(
996
+ :qualified_primary_key=>:qualified_primary_key
997
+ ).freeze
998
+ def finalize_settings
999
+ FINALIZE_SETTINGS
1000
+ end
1001
+
1002
+ # Handle silent failure of add/remove methods if raise_on_save_failure is false.
1003
+ def handle_silent_modification_failure?
1004
+ self[:raise_on_save_failure] == false
1005
+ end
1006
+
1007
+ # The hash key to use for the eager loading predicate (left side of IN (1, 2, 3))
1008
+ def predicate_key
1009
+ cached_fetch(:predicate_key){qualify_assoc(self[:key])}
1010
+ end
1011
+ alias qualified_key predicate_key
1012
+
1013
+ # The column in the current table that the key in the associated table references.
1014
+ def primary_key
1015
+ self[:primary_key]
1016
+ end
1017
+
1018
+ # #primary_key qualified by the current table
1019
+ def qualified_primary_key
1020
+ cached_fetch(:qualified_primary_key){qualify_cur(primary_key)}
1021
+ end
1022
+
1023
+ # Whether the reciprocal of this association returns an array of objects instead of a single object,
1024
+ # false for a one_to_many association.
1025
+ def reciprocal_array?
1026
+ false
1027
+ end
1028
+
1029
+ # Destroying one_to_many associated objects automatically deletes the foreign key.
1030
+ def remove_before_destroy?
1031
+ false
1032
+ end
1033
+
1034
+ # The one_to_many association needs to check that an object to be removed already is associated.
1035
+ def remove_should_check_existing?
1036
+ true
1037
+ end
1038
+
1039
+ # One to many associations set the reciprocal to self when loading associated records.
1040
+ def set_reciprocal_to_self?
1041
+ true
1042
+ end
1043
+
1044
+ private
1045
+
1046
+ # Use a correlated subquery to limit the dataset. Note that this will not
1047
+ # work correctly if the associated dataset uses qualified identifers in the WHERE clause,
1048
+ # as they would reference the containing query instead of the subquery.
1049
+ def apply_correlated_subquery_limit_strategy(ds)
1050
+ table = ds.first_source_table
1051
+ table_alias = ds.first_source_alias
1052
+ primary_key = associated_class.primary_key
1053
+ key = self[:key]
1054
+ cs_alias = :t1
1055
+ cs = associated_dataset.
1056
+ from(Sequel.as(table, :t1)).
1057
+ select(*qualify(cs_alias, primary_key)).
1058
+ where(Array(qualify(cs_alias, key)).zip(Array(qualify(table_alias, key)))).
1059
+ limit(*limit_and_offset)
1060
+ ds.where(qualify(table_alias, primary_key)=>cs)
1061
+ end
1062
+
1063
+ # Support correlated subquery strategy when filtering by limited associations.
1064
+ def apply_filter_by_associations_limit_strategy(ds)
1065
+ case filter_by_associations_limit_strategy
1066
+ when :correlated_subquery
1067
+ apply_correlated_subquery_limit_strategy(ds)
1068
+ else
1069
+ super
1070
+ end
1071
+ end
1072
+
1073
+ def filter_by_associations_conditions_associated_keys
1074
+ qualify(associated_class.table_name, self[:keys])
1075
+ end
1076
+
1077
+ def filter_by_associations_conditions_key
1078
+ qualify(self[:model].table_name, self[:primary_key_column])
1079
+ end
1080
+
1081
+ def filter_by_associations_limit_alias_key
1082
+ Array(filter_by_associations_limit_key)
1083
+ end
1084
+
1085
+ def filter_by_associations_limit_aliases
1086
+ filter_by_associations_limit_alias_key.map(&:column)
1087
+ end
1088
+
1089
+ def filter_by_associations_limit_key
1090
+ qualify(associated_class.table_name, associated_class.primary_key)
1091
+ end
1092
+
1093
+ def predicate_key_methods
1094
+ self[:primary_keys]
1095
+ end
1096
+
1097
+ def reciprocal_association?(assoc_reflect)
1098
+ super && self[:keys] == assoc_reflect[:keys] && primary_key == assoc_reflect.primary_key
1099
+ end
1100
+
1101
+ # The reciprocal type of a one_to_many association is a many_to_one association.
1102
+ def reciprocal_type
1103
+ :many_to_one
1104
+ end
1105
+
1106
+ # Support automatic use of correlated subqueries if :ruby option is best available option,
1107
+ # the database supports them, and either the associated class has a non-composite primary key
1108
+ # or the database supports multiple columns in IN.
1109
+ def true_eager_graph_limit_strategy
1110
+ r = super
1111
+ ds = associated_dataset
1112
+ if r == :ruby && ds.supports_limits_in_correlated_subqueries? && (Array(associated_class.primary_key).length == 1 || ds.supports_multiple_column_in?) && (!offset || ds.supports_offsets_in_correlated_subqueries?)
1113
+ :correlated_subquery
1114
+ else
1115
+ r
1116
+ end
1117
+ end
1118
+ end
1119
+
1120
+ # Methods that turn an association that returns multiple objects into an association that
1121
+ # returns a single object.
1122
+ module SingularAssociationReflection
1123
+ # Singular associations do not assign singular if they are using the ruby eager limit strategy
1124
+ # and have a slice range, since they need to store the array of associated objects in order to
1125
+ # pick the correct one with an offset.
1126
+ def assign_singular?
1127
+ super && (eager_limit_strategy != :ruby || !slice_range)
1128
+ end
1129
+
1130
+ # Add conditions when filtering by singular associations with orders, since the
1131
+ # underlying relationship is probably not one-to-one.
1132
+ def filter_by_associations_add_conditions?
1133
+ super || self[:order] || self[:eager_limit_strategy] || self[:filter_limit_strategy]
1134
+ end
1135
+
1136
+ # Make sure singular associations always have 1 as the limit
1137
+ def limit_and_offset
1138
+ r = super
1139
+ if r.first == 1
1140
+ r
1141
+ else
1142
+ [1, r[1]]
1143
+ end
1144
+ end
1145
+
1146
+ # Singular associations always return a single object, not an array.
1147
+ def returns_array?
1148
+ false
1149
+ end
1150
+
1151
+ private
1152
+
1153
+ # Only use a eager limit strategy by default if there is an offset or an order.
1154
+ def default_eager_limit_strategy
1155
+ super if self[:order] || offset
1156
+ end
1157
+
1158
+ # Use a strategy for filtering by associations if there is an order or an offset,
1159
+ # or a specific limiting strategy has been specified.
1160
+ def filter_by_associations_limit_strategy
1161
+ super if self[:order] || offset || self[:eager_limit_strategy] || self[:filter_limit_strategy]
1162
+ end
1163
+
1164
+ # Use the DISTINCT ON eager limit strategy for true if the database supports it.
1165
+ def true_eager_graph_limit_strategy
1166
+ if associated_class.dataset.supports_ordered_distinct_on? && !offset
1167
+ :distinct_on
1168
+ else
1169
+ super
1170
+ end
1171
+ end
1172
+ end
1173
+
1174
+ class OneToOneAssociationReflection < OneToManyAssociationReflection
1175
+ ASSOCIATION_TYPES[:one_to_one] = self
1176
+ include SingularAssociationReflection
1177
+ end
1178
+
1179
+ class ManyToManyAssociationReflection < AssociationReflection
1180
+ ASSOCIATION_TYPES[:many_to_many] = self
1181
+
1182
+ # The alias to use for the associated key when eagerly loading
1183
+ def associated_key_alias
1184
+ self[:left_key_alias]
1185
+ end
1186
+
1187
+ # Array of associated keys used when eagerly loading.
1188
+ def associated_key_array
1189
+ cached_fetch(:associated_key_array) do
1190
+ if self[:uses_left_composite_keys]
1191
+ associated_key_alias.zip(predicate_keys).map{|a, k| SQL::AliasedExpression.new(k, a)}
1192
+ else
1193
+ [SQL::AliasedExpression.new(predicate_key, associated_key_alias)]
1194
+ end
1195
+ end
1196
+ end
1197
+
1198
+ # The column to use for the associated key when eagerly loading
1199
+ def associated_key_column
1200
+ self[:left_key]
1201
+ end
1202
+
1203
+ # Alias of right_primary_keys
1204
+ def associated_object_keys
1205
+ right_primary_keys
1206
+ end
1207
+
1208
+ # many_to_many associations can only have associated objects if none of
1209
+ # the :left_primary_keys options have a nil value.
1210
+ def can_have_associated_objects?(obj)
1211
+ !self[:left_primary_keys].any?{|k| obj.get_column_value(k).nil?}
1212
+ end
1213
+
1214
+ # one_through_one and many_to_many associations can be clones
1215
+ def cloneable?(ref)
1216
+ ref[:type] == :many_to_many || ref[:type] == :one_through_one
1217
+ end
1218
+
1219
+ # The default associated key alias(es) to use when eager loading
1220
+ # associations via eager.
1221
+ def default_associated_key_alias
1222
+ self[:uses_left_composite_keys] ? (0...self[:left_keys].length).map{|i| :"x_foreign_key_#{i}_x"} : :x_foreign_key_x
1223
+ end
1224
+
1225
+ # The default eager loader used if the user doesn't override it. Extracted
1226
+ # to a method so the code can be shared with the many_through_many plugin.
1227
+ def default_eager_loader(eo)
1228
+ h = eo[:id_map]
1229
+ assign_singular = assign_singular?
1230
+ delete_rn = delete_row_number_column
1231
+ uses_lcks = self[:uses_left_composite_keys]
1232
+ left_key_alias = self[:left_key_alias]
1233
+ name = self[:name]
1234
+
1235
+ self[:model].eager_load_results(self, eo) do |assoc_record|
1236
+ assoc_record.values.delete(delete_rn) if delete_rn
1237
+ hash_key = if uses_lcks
1238
+ left_key_alias.map{|k| assoc_record.values.delete(k)}
1239
+ else
1240
+ assoc_record.values.delete(left_key_alias)
1241
+ end
1242
+ next unless objects = h[hash_key]
1243
+ if assign_singular
1244
+ objects.each do |object|
1245
+ object.associations[name] ||= assoc_record
1246
+ end
1247
+ else
1248
+ objects.each do |object|
1249
+ object.associations[name].push(assoc_record)
1250
+ end
1251
+ end
1252
+ end
1253
+ end
1254
+
1255
+ # Default name symbol for the join table.
1256
+ def default_join_table
1257
+ [self[:class_name], self[:model].name].map{|i| underscore(pluralize(demodulize(i)))}.sort.join('_').to_sym
1258
+ end
1259
+
1260
+ # Default foreign key name symbol for key in join table that points to
1261
+ # current table's primary key (or :left_primary_key column).
1262
+ def default_left_key
1263
+ :"#{underscore(demodulize(self[:model].name))}_id"
1264
+ end
1265
+
1266
+ # Default foreign key name symbol for foreign key in join table that points to
1267
+ # the association's table's primary key (or :right_primary_key column).
1268
+ def default_right_key
1269
+ :"#{singularize(self[:name])}_id"
1270
+ end
1271
+
1272
+ FINALIZE_SETTINGS = superclass::FINALIZE_SETTINGS.merge(
1273
+ :associated_key_array=>:associated_key_array,
1274
+ :qualified_right_key=>:qualified_right_key,
1275
+ :join_table_source=>:join_table_source,
1276
+ :join_table_alias=>:join_table_alias,
1277
+ :qualified_right_primary_key=>:qualified_right_primary_key,
1278
+ :right_primary_key=>:right_primary_key,
1279
+ :right_primary_keys=>:right_primary_keys,
1280
+ :right_primary_key_method=>:right_primary_key_method,
1281
+ :right_primary_key_methods=>:right_primary_key_methods,
1282
+ :select=>:select
1283
+ ).freeze
1284
+ def finalize_settings
1285
+ FINALIZE_SETTINGS
1286
+ end
1287
+
1288
+ # The hash key to use for the eager loading predicate (left side of IN (1, 2, 3)).
1289
+ # The left key qualified by the join table.
1290
+ def predicate_key
1291
+ cached_fetch(:predicate_key){qualify(join_table_alias, self[:left_key])}
1292
+ end
1293
+ alias qualified_left_key predicate_key
1294
+
1295
+ # The right key qualified by the join table.
1296
+ def qualified_right_key
1297
+ cached_fetch(:qualified_right_key){qualify(join_table_alias, self[:right_key])}
1298
+ end
1299
+
1300
+ # many_to_many associations need to select a key in an associated table to eagerly load
1301
+ def eager_loading_use_associated_key?
1302
+ true
1303
+ end
1304
+
1305
+ # The source of the join table. This is the join table itself, unless it
1306
+ # is aliased, in which case it is the unaliased part.
1307
+ def join_table_source
1308
+ cached_fetch(:join_table_source){split_join_table_alias[0]}
1309
+ end
1310
+
1311
+ # The join table itself, unless it is aliased, in which case this
1312
+ # is the alias.
1313
+ def join_table_alias
1314
+ cached_fetch(:join_table_alias) do
1315
+ s, a = split_join_table_alias
1316
+ a || s
1317
+ end
1318
+ end
1319
+ alias associated_key_table join_table_alias
1320
+
1321
+ # Whether the associated object needs a primary key to be added/removed,
1322
+ # true for many_to_many associations.
1323
+ def need_associated_primary_key?
1324
+ true
1325
+ end
1326
+
1327
+ # #right_primary_key qualified by the associated table
1328
+ def qualified_right_primary_key
1329
+ cached_fetch(:qualified_right_primary_key){qualify_assoc(right_primary_key)}
1330
+ end
1331
+
1332
+ # The primary key column(s) to use in the associated table (can be symbol or array).
1333
+ def right_primary_key
1334
+ cached_fetch(:right_primary_key){associated_class.primary_key || raise(Error, "no primary key specified for #{associated_class.inspect}")}
1335
+ end
1336
+
1337
+ # The primary key columns to use in the associated table (always array).
1338
+ def right_primary_keys
1339
+ cached_fetch(:right_primary_keys){Array(right_primary_key)}
1340
+ end
1341
+
1342
+ # The method symbol or array of method symbols to call on the associated objects
1343
+ # to get the foreign key values for the join table.
1344
+ def right_primary_key_method
1345
+ cached_fetch(:right_primary_key_method){right_primary_key}
1346
+ end
1347
+
1348
+ # The array of method symbols to call on the associated objects
1349
+ # to get the foreign key values for the join table.
1350
+ def right_primary_key_methods
1351
+ cached_fetch(:right_primary_key_methods){Array(right_primary_key_method)}
1352
+ end
1353
+
1354
+ # The columns to select when loading the association, associated_class.table_name.* by default.
1355
+ def select
1356
+ cached_fetch(:select){default_select}
1357
+ end
1358
+
1359
+ private
1360
+
1361
+ def _associated_dataset
1362
+ super.inner_join(self[:join_table], self[:right_keys].zip(right_primary_keys), :qualify=>:deep)
1363
+ end
1364
+
1365
+ # The default selection for associations that require joins. These do not use the default
1366
+ # model selection unless all entries in the select are explicitly qualified identifiers, as
1367
+ # other it can include unqualified columns which would be made ambiguous by joining.
1368
+ def default_select
1369
+ if (sel = associated_class.dataset.opts[:select]) && sel.all?{|c| selection_is_qualified?(c)}
1370
+ sel
1371
+ else
1372
+ Sequel::SQL::ColumnAll.new(associated_class.table_name)
1373
+ end
1374
+ end
1375
+
1376
+ def filter_by_associations_conditions_associated_keys
1377
+ qualify(join_table_alias, self[:left_keys])
1378
+ end
1379
+
1380
+ def filter_by_associations_conditions_key
1381
+ qualify(self[:model].table_name, self[:left_primary_key_column])
1382
+ end
1383
+
1384
+ def filter_by_associations_limit_alias_key
1385
+ aliaz = 'a'
1386
+ filter_by_associations_limit_key.map{|c| c.as(Sequel.identifier(aliaz = aliaz.next))}
1387
+ end
1388
+
1389
+ def filter_by_associations_limit_aliases
1390
+ filter_by_associations_limit_alias_key.map(&:alias)
1391
+ end
1392
+
1393
+ def filter_by_associations_limit_key
1394
+ qualify(join_table_alias, self[:left_keys]) + Array(qualify(associated_class.table_name, associated_class.primary_key))
1395
+ end
1396
+
1397
+ def predicate_key_methods
1398
+ self[:left_primary_keys]
1399
+ end
1400
+
1401
+ def reciprocal_association?(assoc_reflect)
1402
+ super && assoc_reflect[:left_keys] == self[:right_keys] &&
1403
+ assoc_reflect[:right_keys] == self[:left_keys] &&
1404
+ assoc_reflect[:join_table] == self[:join_table] &&
1405
+ right_primary_keys == assoc_reflect[:left_primary_key_columns] &&
1406
+ self[:left_primary_key_columns] == assoc_reflect.right_primary_keys
1407
+ end
1408
+
1409
+ def reciprocal_type
1410
+ :many_to_many
1411
+ end
1412
+
1413
+ # Whether the given expression represents a qualified identifier. Used to determine if it is
1414
+ # OK to use directly when joining.
1415
+ def selection_is_qualified?(c)
1416
+ case c
1417
+ when Symbol
1418
+ Sequel.split_symbol(c)[0]
1419
+ when Sequel::SQL::QualifiedIdentifier
1420
+ true
1421
+ when Sequel::SQL::AliasedExpression
1422
+ selection_is_qualified?(c.expression)
1423
+ else
1424
+ false
1425
+ end
1426
+ end
1427
+
1428
+ # Split the join table into source and alias parts.
1429
+ def split_join_table_alias
1430
+ associated_class.dataset.split_alias(self[:join_table])
1431
+ end
1432
+ end
1433
+
1434
+ class OneThroughOneAssociationReflection < ManyToManyAssociationReflection
1435
+ ASSOCIATION_TYPES[:one_through_one] = self
1436
+ include SingularAssociationReflection
1437
+
1438
+ # one_through_one associations should not singularize the association name when
1439
+ # creating the foreign key.
1440
+ def default_right_key
1441
+ :"#{self[:name]}_id"
1442
+ end
1443
+
1444
+ # one_through_one associations have no reciprocals
1445
+ def reciprocal
1446
+ nil
1447
+ end
1448
+ end
1449
+
1450
+ # This module contains methods added to all association datasets
1451
+ module AssociationDatasetMethods
1452
+ # The model object that created the association dataset
1453
+ def model_object
1454
+ @opts[:model_object]
1455
+ end
1456
+
1457
+ # The association reflection related to the association dataset
1458
+ def association_reflection
1459
+ @opts[:association_reflection]
1460
+ end
1461
+
1462
+ private
1463
+
1464
+ def non_sql_option?(key)
1465
+ super || key == :model_object || key == :association_reflection
1466
+ end
1467
+ end
1468
+
1469
+ # Each kind of association adds a number of instance methods to the model class which
1470
+ # are specialized according to the association type and optional parameters
1471
+ # given in the definition. Example:
1472
+ #
1473
+ # class Project < Sequel::Model
1474
+ # many_to_one :portfolio
1475
+ # # or: one_to_one :portfolio
1476
+ # one_to_many :milestones
1477
+ # # or: many_to_many :milestones
1478
+ # end
1479
+ #
1480
+ # The project class now has the following instance methods:
1481
+ # portfolio :: Returns the associated portfolio.
1482
+ # portfolio=(obj) :: Sets the associated portfolio to the object,
1483
+ # but the change is not persisted until you save the record (for many_to_one associations).
1484
+ # portfolio_dataset :: Returns a dataset that would return the associated
1485
+ # portfolio, only useful in fairly specific circumstances.
1486
+ # milestones :: Returns an array of associated milestones
1487
+ # add_milestone(obj) :: Associates the passed milestone with this object.
1488
+ # remove_milestone(obj) :: Removes the association with the passed milestone.
1489
+ # remove_all_milestones :: Removes associations with all associated milestones.
1490
+ # milestones_dataset :: Returns a dataset that would return the associated
1491
+ # milestones, allowing for further filtering/limiting/etc.
1492
+ #
1493
+ # If you want to override the behavior of the add_/remove_/remove_all_/ methods
1494
+ # or the association setter method, use the :adder, :remover, :clearer, and/or :setter
1495
+ # options. These options override the default behavior.
1496
+ #
1497
+ # By default the classes for the associations are inferred from the association
1498
+ # name, so for example the Project#portfolio will return an instance of
1499
+ # Portfolio, and Project#milestones will return an array of Milestone
1500
+ # instances. You can use the :class option to change which class is used.
1501
+ #
1502
+ # Association definitions are also reflected by the class, e.g.:
1503
+ #
1504
+ # Project.associations
1505
+ # => [:portfolio, :milestones]
1506
+ # Project.association_reflection(:portfolio)
1507
+ # => #<Sequel::Model::Associations::ManyToOneAssociationReflection Project.many_to_one :portfolio>
1508
+ #
1509
+ # Associations should not have the same names as any of the columns in the
1510
+ # model's current table they reference. If you are dealing with an existing schema that
1511
+ # has a column named status, you can't name the association status, you'd
1512
+ # have to name it foo_status or something else. If you give an association the same name
1513
+ # as a column, you will probably end up with an association that doesn't work, or a SystemStackError.
1514
+ #
1515
+ # For a more in depth general overview, as well as a reference guide,
1516
+ # see the {Association Basics guide}[rdoc-ref:doc/association_basics.rdoc].
1517
+ # For examples of advanced usage, see the {Advanced Associations guide}[rdoc-ref:doc/advanced_associations.rdoc].
1518
+ module ClassMethods
1519
+ # All association reflections defined for this model (default: {}).
1520
+ attr_reader :association_reflections
1521
+
1522
+ # Hash with column symbol keys and arrays of many_to_one
1523
+ # association symbols that should be cleared when the column
1524
+ # value changes.
1525
+ attr_reader :autoreloading_associations
1526
+
1527
+ # Whether association metadata should be cached in the association reflection. If not cached, it will be computed
1528
+ # on demand. In general you only want to set this to false when using code reloading. When using code reloading,
1529
+ # setting this will make sure that if an associated class is removed or modified, this class will not have a reference to
1530
+ # the previous class.
1531
+ attr_accessor :cache_associations
1532
+
1533
+ # The default options to use for all associations. This hash is merged into the association reflection hash for
1534
+ # all association reflections.
1535
+ attr_accessor :default_association_options
1536
+
1537
+ # The default options to use for all associations of a given type. This is a hash keyed by association type
1538
+ # symbol. If there is a value for the association type symbol key, the resulting hash will be merged into the
1539
+ # association reflection hash for all association reflections of that type.
1540
+ attr_accessor :default_association_type_options
1541
+
1542
+ # The default :eager_limit_strategy option to use for limited or offset associations (default: true, causing Sequel
1543
+ # to use what it considers the most appropriate strategy).
1544
+ attr_accessor :default_eager_limit_strategy
1545
+
1546
+ # Array of all association reflections for this model class
1547
+ def all_association_reflections
1548
+ association_reflections.values
1549
+ end
1550
+
1551
+ # Associates a related model with the current model. The following types are
1552
+ # supported:
1553
+ #
1554
+ # :many_to_one :: Foreign key in current model's table points to
1555
+ # associated model's primary key. Each associated model object can
1556
+ # be associated with more than one current model objects. Each current
1557
+ # model object can be associated with only one associated model object.
1558
+ # :one_to_many :: Foreign key in associated model's table points to this
1559
+ # model's primary key. Each current model object can be associated with
1560
+ # more than one associated model objects. Each associated model object
1561
+ # can be associated with only one current model object.
1562
+ # :one_through_one :: Similar to many_to_many in terms of foreign keys, but only one object
1563
+ # is associated to the current object through the association.
1564
+ # Provides only getter methods, no setter or modification methods.
1565
+ # :one_to_one :: Similar to one_to_many in terms of foreign keys, but
1566
+ # only one object is associated to the current object through the
1567
+ # association. The methods created are similar to many_to_one, except
1568
+ # that the one_to_one setter method saves the passed object.
1569
+ # :many_to_many :: A join table is used that has a foreign key that points
1570
+ # to this model's primary key and a foreign key that points to the
1571
+ # associated model's primary key. Each current model object can be
1572
+ # associated with many associated model objects, and each associated
1573
+ # model object can be associated with many current model objects.
1574
+ #
1575
+ # The following options can be supplied:
1576
+ # === Multiple Types
1577
+ # :adder :: Proc used to define the private _add_* method for doing the database work
1578
+ # to associate the given object to the current object (*_to_many assocations).
1579
+ # :after_add :: Symbol, Proc, or array of both/either specifying a callback to call
1580
+ # after a new item is added to the association.
1581
+ # :after_load :: Symbol, Proc, or array of both/either specifying a callback to call
1582
+ # after the associated record(s) have been retrieved from the database.
1583
+ # :after_remove :: Symbol, Proc, or array of both/either specifying a callback to call
1584
+ # after an item is removed from the association.
1585
+ # :after_set :: Symbol, Proc, or array of both/either specifying a callback to call
1586
+ # after an item is set using the association setter method.
1587
+ # :allow_eager :: If set to false, you cannot load the association eagerly
1588
+ # via eager or eager_graph
1589
+ # :before_add :: Symbol, Proc, or array of both/either specifying a callback to call
1590
+ # before a new item is added to the association.
1591
+ # :before_remove :: Symbol, Proc, or array of both/either specifying a callback to call
1592
+ # before an item is removed from the association.
1593
+ # :before_set :: Symbol, Proc, or array of both/either specifying a callback to call
1594
+ # before an item is set using the association setter method.
1595
+ # :cartesian_product_number :: the number of joins completed by this association that could cause more
1596
+ # than one row for each row in the current table (default: 0 for
1597
+ # many_to_one, one_to_one, and one_through_one associations, 1
1598
+ # for one_to_many and many_to_many associations).
1599
+ # :class :: The associated class or its name as a string or symbol. If not
1600
+ # given, uses the association's name, which is camelized (and
1601
+ # singularized unless the type is :many_to_one, :one_to_one, or one_through_one). If this is specified
1602
+ # as a string or symbol, you must specify the full class name (e.g. "::SomeModule::MyModel").
1603
+ # :class_namespace :: If :class is given as a string or symbol, sets the default namespace in which to look for
1604
+ # the class. <tt>class: 'Foo', class_namespace: 'Bar'</tt> looks for <tt>::Bar::Foo</tt>.)
1605
+ # :clearer :: Proc used to define the private _remove_all_* method for doing the database work
1606
+ # to remove all objects associated to the current object (*_to_many assocations).
1607
+ # :clone :: Merge the current options and block into the options and block used in defining
1608
+ # the given association. Can be used to DRY up a bunch of similar associations that
1609
+ # all share the same options such as :class and :key, while changing the order and block used.
1610
+ # :conditions :: The conditions to use to filter the association, can be any argument passed to where.
1611
+ # This option is not respected when using eager_graph or association_join, unless it
1612
+ # is hash or array of two element arrays. Consider also specifying the :graph_block
1613
+ # option if the value for this option is not a hash or array of two element arrays
1614
+ # and you plan to use this association in eager_graph or association_join.
1615
+ # :dataset :: A proc that is instance_execed to get the base dataset to use (before the other
1616
+ # options are applied). If the proc accepts an argument, it is passed the related
1617
+ # association reflection.
1618
+ # :distinct :: Use the DISTINCT clause when selecting associating object, both when
1619
+ # lazy loading and eager loading via .eager (but not when using .eager_graph).
1620
+ # :eager :: The associations to eagerly load via +eager+ when loading the associated object(s).
1621
+ # :eager_block :: If given, use the block instead of the default block when
1622
+ # eagerly loading. To not use a block when eager loading (when one is used normally),
1623
+ # set to nil.
1624
+ # :eager_graph :: The associations to eagerly load via +eager_graph+ when loading the associated object(s).
1625
+ # many_to_many associations with this option cannot be eagerly loaded via +eager+.
1626
+ # :eager_grapher :: A proc to use to implement eager loading via +eager_graph+, overriding the default.
1627
+ # Takes an options hash with at least the entries :self (the receiver of the eager_graph call),
1628
+ # :table_alias (the alias to use for table to graph into the association), and :implicit_qualifier
1629
+ # (the alias that was used for the current table).
1630
+ # Should return a copy of the dataset with the association graphed into it.
1631
+ # :eager_limit_strategy :: Determines the strategy used for enforcing limits and offsets when eager loading
1632
+ # associations via the +eager+ method.
1633
+ # :eager_loader :: A proc to use to implement eager loading, overriding the default. Takes a single hash argument,
1634
+ # with at least the keys: :rows, which is an array of current model instances, :associations,
1635
+ # which is a hash of dependent associations, :self, which is the dataset doing the eager loading,
1636
+ # :eager_block, which is a dynamic callback that should be called with the dataset, and :id_map,
1637
+ # which is a mapping of key values to arrays of current model instances. In the proc, the
1638
+ # associated records should be queried from the database and the associations cache for each
1639
+ # record should be populated.
1640
+ # :eager_loader_key :: A symbol for the key column to use to populate the key_hash
1641
+ # for the eager loader. Can be set to nil to not populate the key_hash.
1642
+ # :extend :: A module or array of modules to extend the dataset with.
1643
+ # :filter_limit_strategy :: Determines the strategy used for enforcing limits and offsets when filtering by
1644
+ # limited associations. Possible options are :window_function, :distinct_on, or
1645
+ # :correlated_subquery depending on association type and database type.
1646
+ # :graph_alias_base :: The base name to use for the table alias when eager graphing. Defaults to the name
1647
+ # of the association. If the alias name has already been used in the query, Sequel will create
1648
+ # a unique alias by appending a numeric suffix (e.g. alias_0, alias_1, ...) until the alias is
1649
+ # unique.
1650
+ # :graph_block :: The block to pass to join_table when eagerly loading
1651
+ # the association via +eager_graph+.
1652
+ # :graph_conditions :: The additional conditions to use on the SQL join when eagerly loading
1653
+ # the association via +eager_graph+. Should be a hash or an array of two element arrays. If not
1654
+ # specified, the :conditions option is used if it is a hash or array of two element arrays.
1655
+ # :graph_join_type :: The type of SQL join to use when eagerly loading the association via
1656
+ # eager_graph. Defaults to :left_outer.
1657
+ # :graph_only_conditions :: The conditions to use on the SQL join when eagerly loading
1658
+ # the association via +eager_graph+, instead of the default conditions specified by the
1659
+ # foreign/primary keys. This option causes the :graph_conditions option to be ignored.
1660
+ # :graph_order :: Over the order to use when using eager_graph, instead of the default order. This should be used
1661
+ # in the case where :order contains an identifier qualified by the table's name, which may not match
1662
+ # the alias used when eager graphing. By setting this to the unqualified identifier, it will be
1663
+ # automatically qualified when using eager_graph.
1664
+ # :graph_select :: A column or array of columns to select from the associated table
1665
+ # when eagerly loading the association via +eager_graph+. Defaults to all
1666
+ # columns in the associated table.
1667
+ # :limit :: Limit the number of records to the provided value. Use
1668
+ # an array with two elements for the value to specify a
1669
+ # limit (first element) and an offset (second element).
1670
+ # :methods_module :: The module that methods the association creates will be placed into. Defaults
1671
+ # to the module containing the model's columns.
1672
+ # :order :: the column(s) by which to order the association dataset. Can be a
1673
+ # singular column symbol or an array of column symbols.
1674
+ # :order_eager_graph :: Whether to add the association's order to the graphed dataset's order when graphing
1675
+ # via +eager_graph+. Defaults to true, so set to false to disable.
1676
+ # :read_only :: Do not add a setter method (for many_to_one or one_to_one associations),
1677
+ # or add_/remove_/remove_all_ methods (for one_to_many and many_to_many associations).
1678
+ # :reciprocal :: the symbol name of the reciprocal association,
1679
+ # if it exists. By default, Sequel will try to determine it by looking at the
1680
+ # associated model's assocations for a association that matches
1681
+ # the current association's key(s). Set to nil to not use a reciprocal.
1682
+ # :remover :: Proc used to define the private _remove_* method for doing the database work
1683
+ # to remove the association between the given object and the current object (*_to_many assocations).
1684
+ # :select :: the columns to select. Defaults to the associated class's table_name.* in an association
1685
+ # that uses joins, which means it doesn't include the attributes from the
1686
+ # join table. If you want to include the join table attributes, you can
1687
+ # use this option, but beware that the join table attributes can clash with
1688
+ # attributes from the model table, so you should alias any attributes that have
1689
+ # the same name in both the join table and the associated table.
1690
+ # :setter :: Proc used to define the private _*= method for doing the work to setup the assocation
1691
+ # between the given object and the current object (*_to_one associations).
1692
+ # :subqueries_per_union :: The number of subqueries to use in each UNION query, for eager
1693
+ # loading limited associations using the default :union strategy.
1694
+ # :validate :: Set to false to not validate when implicitly saving any associated object.
1695
+ # === :many_to_one
1696
+ # :key :: foreign key in current model's table that references
1697
+ # associated model's primary key, as a symbol. Defaults to :"#{name}_id". Can use an
1698
+ # array of symbols for a composite key association.
1699
+ # :key_column :: Similar to, and usually identical to, :key, but :key refers to the model method
1700
+ # to call, where :key_column refers to the underlying column. Should only be
1701
+ # used if the model method differs from the foreign key column, in conjunction
1702
+ # with defining a model alias method for the key column.
1703
+ # :primary_key :: column in the associated table that :key option references, as a symbol.
1704
+ # Defaults to the primary key of the associated table. Can use an
1705
+ # array of symbols for a composite key association.
1706
+ # :primary_key_method :: the method symbol or array of method symbols to call on the associated
1707
+ # object to get the foreign key values. Defaults to :primary_key option.
1708
+ # :qualify :: Whether to use qualified primary keys when loading the association. The default
1709
+ # is true, so you must set to false to not qualify. Qualification rarely causes
1710
+ # problems, but it's necessary to disable in some cases, such as when you are doing
1711
+ # a JOIN USING operation on the column on Oracle.
1712
+ # === :one_to_many and :one_to_one
1713
+ # :key :: foreign key in associated model's table that references
1714
+ # current model's primary key, as a symbol. Defaults to
1715
+ # :"#{self.name.underscore}_id". Can use an
1716
+ # array of symbols for a composite key association.
1717
+ # :key_method :: the method symbol or array of method symbols to call on the associated
1718
+ # object to get the foreign key values. Defaults to :key option.
1719
+ # :primary_key :: column in the current table that :key option references, as a symbol.
1720
+ # Defaults to primary key of the current table. Can use an
1721
+ # array of symbols for a composite key association.
1722
+ # :primary_key_column :: Similar to, and usually identical to, :primary_key, but :primary_key refers
1723
+ # to the model method call, where :primary_key_column refers to the underlying column.
1724
+ # Should only be used if the model method differs from the primary key column, in
1725
+ # conjunction with defining a model alias method for the primary key column.
1726
+ # :raise_on_save_failure :: Do not raise exceptions for hook or validation failures when saving associated
1727
+ # objects in the add/remove methods (return nil instead) [one_to_many only].
1728
+ # === :many_to_many and :one_through_one
1729
+ # :graph_join_table_block :: The block to pass to +join_table+ for
1730
+ # the join table when eagerly loading the association via +eager_graph+.
1731
+ # :graph_join_table_conditions :: The additional conditions to use on the SQL join for
1732
+ # the join table when eagerly loading the association via +eager_graph+.
1733
+ # Should be a hash or an array of two element arrays.
1734
+ # :graph_join_table_join_type :: The type of SQL join to use for the join table when eagerly
1735
+ # loading the association via +eager_graph+. Defaults to the
1736
+ # :graph_join_type option or :left_outer.
1737
+ # :graph_join_table_only_conditions :: The conditions to use on the SQL join for the join
1738
+ # table when eagerly loading the association via +eager_graph+,
1739
+ # instead of the default conditions specified by the
1740
+ # foreign/primary keys. This option causes the
1741
+ # :graph_join_table_conditions option to be ignored.
1742
+ # :join_table :: name of table that includes the foreign keys to both
1743
+ # the current model and the associated model, as a symbol. Defaults to the name
1744
+ # of current model and name of associated model, pluralized,
1745
+ # underscored, sorted, and joined with '_'.
1746
+ # :join_table_block :: proc that can be used to modify the dataset used in the add/remove/remove_all
1747
+ # methods. Should accept a dataset argument and return a modified dataset if present.
1748
+ # :left_key :: foreign key in join table that points to current model's
1749
+ # primary key, as a symbol. Defaults to :"#{self.name.underscore}_id".
1750
+ # Can use an array of symbols for a composite key association.
1751
+ # :left_primary_key :: column in current table that :left_key points to, as a symbol.
1752
+ # Defaults to primary key of current table. Can use an
1753
+ # array of symbols for a composite key association.
1754
+ # :left_primary_key_column :: Similar to, and usually identical to, :left_primary_key, but :left_primary_key refers to
1755
+ # the model method to call, where :left_primary_key_column refers to the underlying column. Should only
1756
+ # be used if the model method differs from the left primary key column, in conjunction
1757
+ # with defining a model alias method for the left primary key column.
1758
+ # :right_key :: foreign key in join table that points to associated
1759
+ # model's primary key, as a symbol. Defaults to :"#{name.to_s.singularize}_id".
1760
+ # Can use an array of symbols for a composite key association.
1761
+ # :right_primary_key :: column in associated table that :right_key points to, as a symbol.
1762
+ # Defaults to primary key of the associated table. Can use an
1763
+ # array of symbols for a composite key association.
1764
+ # :right_primary_key_method :: the method symbol or array of method symbols to call on the associated
1765
+ # object to get the foreign key values for the join table.
1766
+ # Defaults to :right_primary_key option.
1767
+ # :uniq :: Adds a after_load callback that makes the array of objects unique.
1768
+ def associate(type, name, opts = OPTS, &block)
1769
+ raise(Error, 'invalid association type') unless assoc_class = Sequel.synchronize{ASSOCIATION_TYPES[type]}
1770
+ raise(Error, 'Model.associate name argument must be a symbol') unless name.is_a?(Symbol)
1771
+
1772
+ # dup early so we don't modify opts
1773
+ orig_opts = opts.dup
1774
+
1775
+ if opts[:clone]
1776
+ cloned_assoc = association_reflection(opts[:clone])
1777
+ orig_opts = cloned_assoc[:orig_opts].merge(orig_opts)
1778
+ end
1779
+
1780
+ opts = Hash[default_association_options]
1781
+ if type_options = default_association_type_options[type]
1782
+ opts.merge!(type_options)
1783
+ end
1784
+ opts.merge!(orig_opts)
1785
+ opts.merge!(:type => type, :name => name, :cache=>({} if cache_associations), :model => self)
1786
+
1787
+ opts[:block] = block if block
1788
+ if !opts.has_key?(:instance_specific) && (block || orig_opts[:block] || orig_opts[:dataset])
1789
+ # It's possible the association is instance specific, in that it depends on
1790
+ # values other than the foreign key value. This needs to be checked for
1791
+ # in certain places to disable optimizations.
1792
+ opts[:instance_specific] = true
1793
+ end
1794
+ opts = assoc_class.new.merge!(opts)
1795
+
1796
+ if opts[:clone] && !opts.cloneable?(cloned_assoc)
1797
+ raise(Error, "cannot clone an association to an association of different type (association #{name} with type #{type} cloning #{opts[:clone]} with type #{cloned_assoc[:type]})")
1798
+ end
1799
+
1800
+ opts[:eager_block] = opts[:block] unless opts.include?(:eager_block)
1801
+ opts[:graph_join_type] ||= :left_outer
1802
+ opts[:order_eager_graph] = true unless opts.include?(:order_eager_graph)
1803
+ conds = opts[:conditions]
1804
+ opts[:graph_alias_base] ||= name
1805
+ opts[:graph_conditions] = conds if !opts.include?(:graph_conditions) and Sequel.condition_specifier?(conds)
1806
+ opts[:graph_conditions] = opts.fetch(:graph_conditions, []).to_a
1807
+ opts[:graph_select] = Array(opts[:graph_select]) if opts[:graph_select]
1808
+ [:before_add, :before_remove, :after_add, :after_remove, :after_load, :before_set, :after_set].each do |cb_type|
1809
+ opts[cb_type] = Array(opts[cb_type]) if opts[cb_type]
1810
+ end
1811
+
1812
+ if opts[:extend]
1813
+ opts[:extend] = Array(opts[:extend])
1814
+ opts[:reverse_extend] = opts[:extend].reverse
1815
+ end
1816
+
1817
+ late_binding_class_option(opts, opts.returns_array? ? singularize(name) : name)
1818
+
1819
+ # Remove :class entry if it exists and is nil, to work with cached_fetch
1820
+ opts.delete(:class) unless opts[:class]
1821
+
1822
+ send(:"def_#{type}", opts)
1823
+ def_association_instance_methods(opts)
1824
+
1825
+ orig_opts.delete(:clone)
1826
+ opts[:orig_class] = orig_opts[:class] || orig_opts[:class_name]
1827
+ orig_opts.merge!(:class_name=>opts[:class_name], :class=>opts[:class], :block=>opts[:block])
1828
+ opts[:orig_opts] = orig_opts
1829
+ # don't add to association_reflections until we are sure there are no errors
1830
+ association_reflections[name] = opts
1831
+ end
1832
+
1833
+ # The association reflection hash for the association of the given name.
1834
+ def association_reflection(name)
1835
+ association_reflections[name]
1836
+ end
1837
+
1838
+ # Array of association name symbols
1839
+ def associations
1840
+ association_reflections.keys
1841
+ end
1842
+
1843
+ # Eager load the association with the given eager loader options.
1844
+ def eager_load_results(opts, eo, &block)
1845
+ opts.eager_load_results(eo, &block)
1846
+ end
1847
+
1848
+ # Freeze association related metadata when freezing model class.
1849
+ def freeze
1850
+ @association_reflections.freeze.each_value(&:freeze)
1851
+ @autoreloading_associations.freeze.each_value(&:freeze)
1852
+ @default_association_options.freeze
1853
+ @default_association_type_options.freeze
1854
+ @default_association_type_options.each_value(&:freeze)
1855
+
1856
+ super
1857
+ end
1858
+
1859
+ # Finalize all associations such that values that are looked up
1860
+ # dynamically in associated classes are set statically.
1861
+ # As this modifies the associations, it must be done before
1862
+ # calling freeze.
1863
+ def finalize_associations
1864
+ @association_reflections.each_value(&:finalize)
1865
+ end
1866
+
1867
+ # Shortcut for adding a many_to_many association, see #associate
1868
+ def many_to_many(name, opts=OPTS, &block)
1869
+ associate(:many_to_many, name, opts, &block)
1870
+ end
1871
+
1872
+ # Shortcut for adding a many_to_one association, see #associate
1873
+ def many_to_one(name, opts=OPTS, &block)
1874
+ associate(:many_to_one, name, opts, &block)
1875
+ end
1876
+
1877
+ # Shortcut for adding a one_through_one association, see #associate
1878
+ def one_through_one(name, opts=OPTS, &block)
1879
+ associate(:one_through_one, name, opts, &block)
1880
+ end
1881
+
1882
+ # Shortcut for adding a one_to_many association, see #associate
1883
+ def one_to_many(name, opts=OPTS, &block)
1884
+ associate(:one_to_many, name, opts, &block)
1885
+ end
1886
+
1887
+ # Shortcut for adding a one_to_one association, see #associate
1888
+ def one_to_one(name, opts=OPTS, &block)
1889
+ associate(:one_to_one, name, opts, &block)
1890
+ end
1891
+
1892
+ Plugins.inherited_instance_variables(self, :@association_reflections=>:dup, :@autoreloading_associations=>:hash_dup, :@default_association_options=>:dup, :@default_association_type_options=>:hash_dup, :@cache_associations=>nil, :@default_eager_limit_strategy=>nil)
1893
+ Plugins.def_dataset_methods(self, [:eager, :eager_graph, :eager_graph_with_options, :association_join, :association_full_join, :association_inner_join, :association_left_join, :association_right_join])
1894
+
1895
+ private
1896
+
1897
+ # The module to use for the association's methods. Defaults to
1898
+ # the overridable_methods_module.
1899
+ def association_module(opts=OPTS)
1900
+ opts.fetch(:methods_module, overridable_methods_module)
1901
+ end
1902
+
1903
+ # Add a method to the module included in the class, so the method
1904
+ # can be easily overridden in the class itself while allowing for
1905
+ # super to be called.
1906
+ def association_module_def(name, opts=OPTS, &block)
1907
+ association_module(opts).module_eval{define_method(name, &block)}
1908
+ end
1909
+
1910
+ # Add a private method to the module included in the class.
1911
+ def association_module_private_def(name, opts=OPTS, &block)
1912
+ association_module_def(name, opts, &block)
1913
+ association_module(opts).send(:private, name)
1914
+ end
1915
+
1916
+ # Adds the association method to the association methods module.
1917
+ def def_association_method(opts)
1918
+ association_module_def(opts.association_method, opts) do |dynamic_opts=OPTS, &block|
1919
+ load_associated_objects(opts, dynamic_opts, &block)
1920
+ end
1921
+ end
1922
+
1923
+ # Define all of the association instance methods for this association.
1924
+ def def_association_instance_methods(opts)
1925
+ # Always set the method names in the association reflection, even if they
1926
+ # are not used, for backwards compatibility.
1927
+ opts[:dataset_method] = :"#{opts[:name]}_dataset"
1928
+ if opts.returns_array?
1929
+ sname = singularize(opts[:name])
1930
+ opts[:_add_method] = :"_add_#{sname}"
1931
+ opts[:add_method] = :"add_#{sname}"
1932
+ opts[:_remove_method] = :"_remove_#{sname}"
1933
+ opts[:remove_method] = :"remove_#{sname}"
1934
+ opts[:_remove_all_method] = :"_remove_all_#{opts[:name]}"
1935
+ opts[:remove_all_method] = :"remove_all_#{opts[:name]}"
1936
+ else
1937
+ opts[:_setter_method] = :"_#{opts[:name]}="
1938
+ opts[:setter_method] = :"#{opts[:name]}="
1939
+ end
1940
+
1941
+ association_module_def(opts.dataset_method, opts){_dataset(opts)}
1942
+ def_association_method(opts)
1943
+
1944
+ return if opts[:read_only]
1945
+
1946
+ if opts[:setter] && opts[:_setter]
1947
+ # This is backwards due to backwards compatibility
1948
+ association_module_private_def(opts[:_setter_method], opts, &opts[:setter])
1949
+ association_module_def(opts[:setter_method], opts, &opts[:_setter])
1950
+ end
1951
+
1952
+ if adder = opts[:adder]
1953
+ association_module_private_def(opts[:_add_method], opts, &adder)
1954
+ association_module_def(opts[:add_method], opts){|o,*args| add_associated_object(opts, o, *args)}
1955
+ end
1956
+
1957
+ if remover = opts[:remover]
1958
+ association_module_private_def(opts[:_remove_method], opts, &remover)
1959
+ association_module_def(opts[:remove_method], opts){|o,*args| remove_associated_object(opts, o, *args)}
1960
+ end
1961
+
1962
+ if clearer = opts[:clearer]
1963
+ association_module_private_def(opts[:_remove_all_method], opts, &clearer)
1964
+ association_module_def(opts[:remove_all_method], opts){|*args| remove_all_associated_objects(opts, *args)}
1965
+ end
1966
+ end
1967
+
1968
+ # Configures many_to_many and one_through_one association reflection and adds the related association methods
1969
+ def def_many_to_many(opts)
1970
+ one_through_one = opts[:type] == :one_through_one
1971
+ left = (opts[:left_key] ||= opts.default_left_key)
1972
+ lcks = opts[:left_keys] = Array(left)
1973
+ right = (opts[:right_key] ||= opts.default_right_key)
1974
+ rcks = opts[:right_keys] = Array(right)
1975
+ left_pk = (opts[:left_primary_key] ||= self.primary_key)
1976
+ opts[:eager_loader_key] = left_pk unless opts.has_key?(:eager_loader_key)
1977
+ lcpks = opts[:left_primary_keys] = Array(left_pk)
1978
+ lpkc = opts[:left_primary_key_column] ||= left_pk
1979
+ lpkcs = opts[:left_primary_key_columns] ||= Array(lpkc)
1980
+ raise(Error, "mismatched number of left keys: #{lcks.inspect} vs #{lcpks.inspect}") unless lcks.length == lcpks.length
1981
+ if opts[:right_primary_key]
1982
+ rcpks = Array(opts[:right_primary_key])
1983
+ raise(Error, "mismatched number of right keys: #{rcks.inspect} vs #{rcpks.inspect}") unless rcks.length == rcpks.length
1984
+ end
1985
+ opts[:uses_left_composite_keys] = lcks.length > 1
1986
+ opts[:uses_right_composite_keys] = rcks.length > 1
1987
+ opts[:cartesian_product_number] ||= one_through_one ? 0 : 1
1988
+ join_table = (opts[:join_table] ||= opts.default_join_table)
1989
+ opts[:left_key_alias] ||= opts.default_associated_key_alias
1990
+ opts[:graph_join_table_join_type] ||= opts[:graph_join_type]
1991
+ if opts[:uniq]
1992
+ opts[:after_load] ||= []
1993
+ opts[:after_load].unshift(:array_uniq!)
1994
+ end
1995
+ opts[:dataset] ||= opts.association_dataset_proc
1996
+ opts[:eager_loader] ||= opts.method(:default_eager_loader)
1997
+
1998
+ join_type = opts[:graph_join_type]
1999
+ select = opts[:graph_select]
2000
+ use_only_conditions = opts.include?(:graph_only_conditions)
2001
+ only_conditions = opts[:graph_only_conditions]
2002
+ conditions = opts[:graph_conditions]
2003
+ graph_block = opts[:graph_block]
2004
+ graph_jt_conds = opts[:graph_join_table_conditions] = opts.fetch(:graph_join_table_conditions, []).to_a
2005
+ use_jt_only_conditions = opts.include?(:graph_join_table_only_conditions)
2006
+ jt_only_conditions = opts[:graph_join_table_only_conditions]
2007
+ jt_join_type = opts[:graph_join_table_join_type]
2008
+ jt_graph_block = opts[:graph_join_table_block]
2009
+ opts[:eager_grapher] ||= proc do |eo|
2010
+ ds = eo[:self]
2011
+ egls = eo[:limit_strategy]
2012
+ if egls && egls != :ruby
2013
+ associated_key_array = opts.associated_key_array
2014
+ orig_egds = egds = eager_graph_dataset(opts, eo)
2015
+ egds = egds.
2016
+ inner_join(join_table, rcks.zip(opts.right_primary_keys) + graph_jt_conds, :qualify=>:deep).
2017
+ select_all(egds.first_source).
2018
+ select_append(*associated_key_array)
2019
+ egds = opts.apply_eager_graph_limit_strategy(egls, egds)
2020
+ ds.graph(egds, associated_key_array.map(&:alias).zip(lpkcs) + conditions, :qualify=>:deep, :table_alias=>eo[:table_alias], :implicit_qualifier=>eo[:implicit_qualifier], :join_type=>eo[:join_type]||join_type, :from_self_alias=>eo[:from_self_alias], :join_only=>eo[:join_only], :select=>select||orig_egds.columns, &graph_block)
2021
+ else
2022
+ ds = ds.graph(join_table, use_jt_only_conditions ? jt_only_conditions : lcks.zip(lpkcs) + graph_jt_conds, :select=>false, :table_alias=>ds.unused_table_alias(join_table, [eo[:table_alias]]), :join_type=>eo[:join_type]||jt_join_type, :join_only=>eo[:join_only], :implicit_qualifier=>eo[:implicit_qualifier], :qualify=>:deep, :from_self_alias=>eo[:from_self_alias], &jt_graph_block)
2023
+ ds.graph(eager_graph_dataset(opts, eo), use_only_conditions ? only_conditions : opts.right_primary_keys.zip(rcks) + conditions, :select=>select, :table_alias=>eo[:table_alias], :qualify=>:deep, :join_type=>eo[:join_type]||join_type, :join_only=>eo[:join_only], &graph_block)
2024
+ end
2025
+ end
2026
+
2027
+ return if opts[:read_only]
2028
+
2029
+ if one_through_one
2030
+ opts[:setter] ||= proc do |o|
2031
+ h = {}
2032
+ lh = lcks.zip(lcpks.map{|k| get_column_value(k)})
2033
+ jtds = _join_table_dataset(opts).where(lh)
2034
+
2035
+ checked_transaction do
2036
+ current = jtds.first
2037
+
2038
+ if o
2039
+ new_values = []
2040
+ rcks.zip(opts.right_primary_key_methods).each{|k, pk| new_values << (h[k] = o.get_column_value(pk))}
2041
+ end
2042
+
2043
+ if current
2044
+ current_values = rcks.map{|k| current[k]}
2045
+ jtds = jtds.where(rcks.zip(current_values))
2046
+ if o
2047
+ if current_values != new_values
2048
+ jtds.update(h)
2049
+ end
2050
+ else
2051
+ jtds.delete
2052
+ end
2053
+ elsif o
2054
+ lh.each{|k,v| h[k] = v}
2055
+ jtds.insert(h)
2056
+ end
2057
+ end
2058
+ end
2059
+ opts[:_setter] = proc{|o| set_one_through_one_associated_object(opts, o)}
2060
+ else
2061
+ opts[:adder] ||= proc do |o|
2062
+ h = {}
2063
+ lcks.zip(lcpks).each{|k, pk| h[k] = get_column_value(pk)}
2064
+ rcks.zip(opts.right_primary_key_methods).each{|k, pk| h[k] = o.get_column_value(pk)}
2065
+ _join_table_dataset(opts).insert(h)
2066
+ end
2067
+
2068
+ opts[:remover] ||= proc do |o|
2069
+ _join_table_dataset(opts).where(lcks.zip(lcpks.map{|k| get_column_value(k)}) + rcks.zip(opts.right_primary_key_methods.map{|k| o.get_column_value(k)})).delete
2070
+ end
2071
+
2072
+ opts[:clearer] ||= proc do
2073
+ _join_table_dataset(opts).where(lcks.zip(lcpks.map{|k| get_column_value(k)})).delete
2074
+ end
2075
+ end
2076
+ end
2077
+
2078
+ # Configures many_to_one association reflection and adds the related association methods
2079
+ def def_many_to_one(opts)
2080
+ name = opts[:name]
2081
+ opts[:key] = opts.default_key unless opts.has_key?(:key)
2082
+ key = opts[:key]
2083
+ opts[:eager_loader_key] = key unless opts.has_key?(:eager_loader_key)
2084
+ cks = opts[:graph_keys] = opts[:keys] = Array(key)
2085
+ opts[:key_column] ||= key
2086
+ opts[:graph_keys] = opts[:key_columns] = Array(opts[:key_column])
2087
+ opts[:qualified_key] = opts.qualify_cur(key)
2088
+ if opts[:primary_key]
2089
+ cpks = Array(opts[:primary_key])
2090
+ raise(Error, "mismatched number of keys: #{cks.inspect} vs #{cpks.inspect}") unless cks.length == cpks.length
2091
+ end
2092
+ uses_cks = opts[:uses_composite_keys] = cks.length > 1
2093
+ opts[:cartesian_product_number] ||= 0
2094
+
2095
+ if !opts.has_key?(:many_to_one_pk_lookup) &&
2096
+ (opts[:dataset] || opts[:conditions] || opts[:block] || opts[:select] ||
2097
+ (opts.has_key?(:key) && opts[:key] == nil))
2098
+ opts[:many_to_one_pk_lookup] = false
2099
+ end
2100
+ auto_assocs = @autoreloading_associations
2101
+ cks.each do |k|
2102
+ (auto_assocs[k] ||= []) << name
2103
+ end
2104
+
2105
+ opts[:dataset] ||= opts.association_dataset_proc
2106
+ opts[:eager_loader] ||= proc do |eo|
2107
+ h = eo[:id_map]
2108
+ pk_meths = opts.primary_key_methods
2109
+
2110
+ eager_load_results(opts, eo) do |assoc_record|
2111
+ hash_key = uses_cks ? pk_meths.map{|k| assoc_record.get_column_value(k)} : assoc_record.get_column_value(opts.primary_key_method)
2112
+ if objects = h[hash_key]
2113
+ objects.each{|object| object.associations[name] = assoc_record}
2114
+ end
2115
+ end
2116
+ end
2117
+
2118
+ join_type = opts[:graph_join_type]
2119
+ select = opts[:graph_select]
2120
+ use_only_conditions = opts.include?(:graph_only_conditions)
2121
+ only_conditions = opts[:graph_only_conditions]
2122
+ conditions = opts[:graph_conditions]
2123
+ graph_block = opts[:graph_block]
2124
+ graph_cks = opts[:graph_keys]
2125
+ opts[:eager_grapher] ||= proc do |eo|
2126
+ ds = eo[:self]
2127
+ ds.graph(eager_graph_dataset(opts, eo), use_only_conditions ? only_conditions : opts.primary_keys.zip(graph_cks) + conditions, Hash[eo].merge!(:select=>select, :join_type=>eo[:join_type]||join_type, :qualify=>:deep, :from_self_alias=>eo[:from_self_alias]), &graph_block)
2128
+ end
2129
+
2130
+ return if opts[:read_only]
2131
+
2132
+ opts[:setter] ||= proc{|o| cks.zip(opts.primary_key_methods).each{|k, pk| set_column_value(:"#{k}=", (o.get_column_value(pk) if o))}}
2133
+ opts[:_setter] = proc{|o| set_associated_object(opts, o)}
2134
+ end
2135
+
2136
+ # Configures one_to_many and one_to_one association reflections and adds the related association methods
2137
+ def def_one_to_many(opts)
2138
+ one_to_one = opts[:type] == :one_to_one
2139
+ name = opts[:name]
2140
+ key = (opts[:key] ||= opts.default_key)
2141
+ km = opts[:key_method] ||= opts[:key]
2142
+ cks = opts[:keys] = Array(key)
2143
+ opts[:key_methods] = Array(opts[:key_method])
2144
+ primary_key = (opts[:primary_key] ||= self.primary_key)
2145
+ opts[:eager_loader_key] = primary_key unless opts.has_key?(:eager_loader_key)
2146
+ cpks = opts[:primary_keys] = Array(primary_key)
2147
+ pkc = opts[:primary_key_column] ||= primary_key
2148
+ pkcs = opts[:primary_key_columns] ||= Array(pkc)
2149
+ raise(Error, "mismatched number of keys: #{cks.inspect} vs #{cpks.inspect}") unless cks.length == cpks.length
2150
+ uses_cks = opts[:uses_composite_keys] = cks.length > 1
2151
+ opts[:dataset] ||= opts.association_dataset_proc
2152
+ opts[:eager_loader] ||= proc do |eo|
2153
+ h = eo[:id_map]
2154
+ reciprocal = opts.reciprocal
2155
+ assign_singular = opts.assign_singular?
2156
+ delete_rn = opts.delete_row_number_column
2157
+
2158
+ eager_load_results(opts, eo) do |assoc_record|
2159
+ assoc_record.values.delete(delete_rn) if delete_rn
2160
+ hash_key = uses_cks ? km.map{|k| assoc_record.get_column_value(k)} : assoc_record.get_column_value(km)
2161
+ next unless objects = h[hash_key]
2162
+ if assign_singular
2163
+ objects.each do |object|
2164
+ unless object.associations[name]
2165
+ object.associations[name] = assoc_record
2166
+ assoc_record.associations[reciprocal] = object if reciprocal
2167
+ end
2168
+ end
2169
+ else
2170
+ objects.each do |object|
2171
+ object.associations[name].push(assoc_record)
2172
+ assoc_record.associations[reciprocal] = object if reciprocal
2173
+ end
2174
+ end
2175
+ end
2176
+ end
2177
+
2178
+ join_type = opts[:graph_join_type]
2179
+ select = opts[:graph_select]
2180
+ use_only_conditions = opts.include?(:graph_only_conditions)
2181
+ only_conditions = opts[:graph_only_conditions]
2182
+ conditions = opts[:graph_conditions]
2183
+ opts[:cartesian_product_number] ||= one_to_one ? 0 : 1
2184
+ graph_block = opts[:graph_block]
2185
+ opts[:eager_grapher] ||= proc do |eo|
2186
+ ds = eo[:self]
2187
+ ds = ds.graph(opts.apply_eager_graph_limit_strategy(eo[:limit_strategy], eager_graph_dataset(opts, eo)), use_only_conditions ? only_conditions : cks.zip(pkcs) + conditions, Hash[eo].merge!(:select=>select, :join_type=>eo[:join_type]||join_type, :qualify=>:deep, :from_self_alias=>eo[:from_self_alias]), &graph_block)
2188
+ # We only load reciprocals for one_to_many associations, as other reciprocals don't make sense
2189
+ ds.opts[:eager_graph][:reciprocals][eo[:table_alias]] = opts.reciprocal
2190
+ ds
2191
+ end
2192
+
2193
+ return if opts[:read_only]
2194
+
2195
+ save_opts = {:validate=>opts[:validate]}
2196
+ ck_nil_hash ={}
2197
+ cks.each{|k| ck_nil_hash[k] = nil}
2198
+
2199
+ if one_to_one
2200
+ opts[:setter] ||= proc do |o|
2201
+ up_ds = _apply_association_options(opts, opts.associated_dataset.where(cks.zip(cpks.map{|k| get_column_value(k)})))
2202
+ if o
2203
+ up_ds = up_ds.exclude(o.pk_hash) unless o.new?
2204
+ cks.zip(cpks).each{|k, pk| o.set_column_value(:"#{k}=", get_column_value(pk))}
2205
+ end
2206
+ checked_transaction do
2207
+ up_ds.skip_limit_check.update(ck_nil_hash)
2208
+ o.save(save_opts) || raise(Sequel::Error, "invalid associated object, cannot save") if o
2209
+ end
2210
+ end
2211
+ opts[:_setter] = proc{|o| set_one_to_one_associated_object(opts, o)}
2212
+ else
2213
+ save_opts[:raise_on_failure] = opts[:raise_on_save_failure] != false
2214
+
2215
+ opts[:adder] ||= proc do |o|
2216
+ cks.zip(cpks).each{|k, pk| o.set_column_value(:"#{k}=", get_column_value(pk))}
2217
+ o.save(save_opts)
2218
+ end
2219
+
2220
+ opts[:remover] ||= proc do |o|
2221
+ cks.each{|k| o.set_column_value(:"#{k}=", nil)}
2222
+ o.save(save_opts)
2223
+ end
2224
+
2225
+ opts[:clearer] ||= proc do
2226
+ _apply_association_options(opts, opts.associated_dataset.where(cks.zip(cpks.map{|k| get_column_value(k)}))).update(ck_nil_hash)
2227
+ end
2228
+ end
2229
+ end
2230
+
2231
+ # Alias of def_many_to_many, since they share pretty much the same code.
2232
+ def def_one_through_one(opts)
2233
+ def_many_to_many(opts)
2234
+ end
2235
+
2236
+ # Alias of def_one_to_many, since they share pretty much the same code.
2237
+ def def_one_to_one(opts)
2238
+ def_one_to_many(opts)
2239
+ end
2240
+
2241
+ # Return dataset to graph into given the association reflection, applying the :callback option if set.
2242
+ def eager_graph_dataset(opts, eager_options)
2243
+ ds = opts.associated_class.dataset
2244
+ if cb = eager_options[:callback]
2245
+ ds = cb.call(ds)
2246
+ end
2247
+ ds
2248
+ end
2249
+
2250
+ # If not caching associations, reload the database schema by default,
2251
+ # ignoring any cached values.
2252
+ def reload_db_schema?
2253
+ !@cache_associations
2254
+ end
2255
+ end
2256
+
2257
+ # Instance methods used to implement the associations support.
2258
+ module InstanceMethods
2259
+ # The currently cached associations. A hash with the keys being the
2260
+ # association name symbols and the values being the associated object
2261
+ # or nil (many_to_one), or the array of associated objects (*_to_many).
2262
+ def associations
2263
+ @associations ||= {}
2264
+ end
2265
+
2266
+ # Freeze the associations cache when freezing the object. Note that
2267
+ # retrieving associations after freezing will still work in most cases,
2268
+ # but the associations will not be cached in the association cache.
2269
+ def freeze
2270
+ associations
2271
+ super
2272
+ associations.freeze
2273
+ self
2274
+ end
2275
+
2276
+ private
2277
+
2278
+ # Apply the association options such as :order and :limit to the given dataset, returning a modified dataset.
2279
+ def _apply_association_options(opts, ds)
2280
+ unless ds.kind_of?(AssociationDatasetMethods)
2281
+ ds = opts.apply_dataset_changes(ds)
2282
+ end
2283
+ ds = ds.clone(:model_object => self)
2284
+ ds = ds.eager_graph(opts[:eager_graph]) if opts[:eager_graph] && opts.eager_graph_lazy_dataset?
2285
+ ds = instance_exec(ds, &opts[:block]) if opts[:block]
2286
+ ds
2287
+ end
2288
+
2289
+ # Return a dataset for the association after applying any dynamic callback.
2290
+ def _associated_dataset(opts, dynamic_opts)
2291
+ ds = public_send(opts.dataset_method)
2292
+ if callback = dynamic_opts[:callback]
2293
+ ds = callback.call(ds)
2294
+ end
2295
+ ds
2296
+ end
2297
+
2298
+ # A placeholder literalizer that can be used to load the association, or nil to not use one.
2299
+ def _associated_object_loader(opts, dynamic_opts)
2300
+ if !dynamic_opts[:callback] && (loader = opts.placeholder_loader)
2301
+ loader
2302
+ end
2303
+ end
2304
+
2305
+ # Return an association dataset for the given association reflection
2306
+ def _dataset(opts)
2307
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2308
+ ds = if opts[:dataset].arity == 1
2309
+ instance_exec(opts, &opts[:dataset])
2310
+ else
2311
+ instance_exec(&opts[:dataset])
2312
+ end
2313
+ _apply_association_options(opts, ds)
2314
+ end
2315
+
2316
+ # Dataset for the join table of the given many to many association reflection
2317
+ def _join_table_dataset(opts)
2318
+ ds = model.db.from(opts.join_table_source)
2319
+ opts[:join_table_block] ? opts[:join_table_block].call(ds) : ds
2320
+ end
2321
+
2322
+ # Return the associated single object for the given association reflection and dynamic options
2323
+ # (or nil if no associated object).
2324
+ def _load_associated_object(opts, dynamic_opts)
2325
+ _load_associated_object_array(opts, dynamic_opts).first
2326
+ end
2327
+
2328
+ # Return the associated single object using a primary key lookup on the associated class.
2329
+ def _load_associated_object_via_primary_key(opts)
2330
+ opts.associated_class.send(:primary_key_lookup, ((fk = opts[:key]).is_a?(Array) ? fk.map{|c| get_column_value(c)} : get_column_value(fk)))
2331
+ end
2332
+
2333
+ # Load the associated objects for the given association reflection and dynamic options
2334
+ # as an array.
2335
+ def _load_associated_object_array(opts, dynamic_opts)
2336
+ if loader = _associated_object_loader(opts, dynamic_opts)
2337
+ loader.all(*opts.predicate_key_values(self))
2338
+ else
2339
+ _associated_dataset(opts, dynamic_opts).all
2340
+ end
2341
+ end
2342
+
2343
+ # Return the associated objects from the dataset, without association callbacks, reciprocals, and caching.
2344
+ # Still apply the dynamic callback if present.
2345
+ def _load_associated_objects(opts, dynamic_opts=OPTS)
2346
+ if opts.can_have_associated_objects?(self)
2347
+ if opts.returns_array?
2348
+ _load_associated_object_array(opts, dynamic_opts)
2349
+ elsif load_with_primary_key_lookup?(opts, dynamic_opts)
2350
+ _load_associated_object_via_primary_key(opts)
2351
+ else
2352
+ _load_associated_object(opts, dynamic_opts)
2353
+ end
2354
+ elsif opts.returns_array?
2355
+ []
2356
+ end
2357
+ end
2358
+
2359
+ # Clear the associations cache when refreshing
2360
+ def _refresh_set_values(hash)
2361
+ @associations.clear if @associations
2362
+ super
2363
+ end
2364
+
2365
+ # Add the given associated object to the given association
2366
+ def add_associated_object(opts, o, *args)
2367
+ o = make_add_associated_object(opts, o)
2368
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2369
+ ensure_associated_primary_key(opts, o, *args)
2370
+ return if run_association_callbacks(opts, :before_add, o) == false
2371
+ # Allow calling private _add method
2372
+ return if !send(opts[:_add_method], o, *args) && opts.handle_silent_modification_failure?
2373
+ if array = associations[opts[:name]] and !array.include?(o)
2374
+ array.push(o)
2375
+ end
2376
+ add_reciprocal_object(opts, o)
2377
+ run_association_callbacks(opts, :after_add, o)
2378
+ o
2379
+ end
2380
+
2381
+ # Add/Set the current object to/as the given object's reciprocal association.
2382
+ def add_reciprocal_object(opts, o)
2383
+ return if o.frozen?
2384
+ return unless reciprocal = opts.reciprocal
2385
+ if opts.reciprocal_array?
2386
+ if array = o.associations[reciprocal] and !array.include?(self)
2387
+ array.push(self)
2388
+ end
2389
+ else
2390
+ o.associations[reciprocal] = self
2391
+ end
2392
+ end
2393
+
2394
+ # Call uniq! on the given array. This is used by the :uniq option,
2395
+ # and is an actual method for memory reasons.
2396
+ def array_uniq!(a)
2397
+ a.uniq!
2398
+ end
2399
+
2400
+ # If a foreign key column value changes, clear the related
2401
+ # cached associations.
2402
+ def change_column_value(column, value)
2403
+ if assocs = model.autoreloading_associations[column]
2404
+ assocs.each{|a| associations.delete(a)}
2405
+ end
2406
+ super
2407
+ end
2408
+
2409
+ # Save the associated object if the associated object needs a primary key
2410
+ # and the associated object is new and does not have one. Raise an error if
2411
+ # the object still does not have a primary key
2412
+ def ensure_associated_primary_key(opts, o, *args)
2413
+ if opts.need_associated_primary_key?
2414
+ o.save(:validate=>opts[:validate]) if o.new?
2415
+ raise(Sequel::Error, "associated object #{o.inspect} does not have a primary key") unless o.pk
2416
+ end
2417
+ end
2418
+
2419
+ # Duplicate the associations hash when duplicating the object.
2420
+ def initialize_copy(other)
2421
+ super
2422
+ @associations = Hash[@associations] if @associations
2423
+ self
2424
+ end
2425
+
2426
+ # If a block is given, assign it as the :callback option in the hash, and return the hash.
2427
+ def load_association_objects_options(dynamic_opts, &block)
2428
+ if block
2429
+ dynamic_opts = Hash[dynamic_opts]
2430
+ dynamic_opts[:callback] = block
2431
+ end
2432
+
2433
+ dynamic_opts
2434
+ end
2435
+
2436
+ # Load the associated objects using the dataset, handling callbacks, reciprocals, and caching.
2437
+ def load_associated_objects(opts, dynamic_opts, &block)
2438
+ dynamic_opts = load_association_objects_options(dynamic_opts, &block)
2439
+ name = opts[:name]
2440
+ if associations.include?(name) && !dynamic_opts[:callback] && !dynamic_opts[:reload]
2441
+ associations[name]
2442
+ else
2443
+ objs = _load_associated_objects(opts, dynamic_opts)
2444
+ if opts.set_reciprocal_to_self?
2445
+ if opts.returns_array?
2446
+ objs.each{|o| add_reciprocal_object(opts, o)}
2447
+ elsif objs
2448
+ add_reciprocal_object(opts, objs)
2449
+ end
2450
+ end
2451
+
2452
+ # If the current object is frozen, you can't update the associations
2453
+ # cache. This can cause issues for after_load procs that expect
2454
+ # the objects to be already cached in the associations, but
2455
+ # unfortunately that case cannot be handled.
2456
+ associations[name] = objs unless frozen?
2457
+ run_association_callbacks(opts, :after_load, objs)
2458
+ frozen? ? objs : associations[name]
2459
+ end
2460
+ end
2461
+
2462
+ # Whether to use a simple primary key lookup on the associated class when loading.
2463
+ def load_with_primary_key_lookup?(opts, dynamic_opts)
2464
+ opts[:type] == :many_to_one &&
2465
+ !dynamic_opts[:callback] &&
2466
+ opts.send(:cached_fetch, :many_to_one_pk_lookup){opts.primary_key == opts.associated_class.primary_key}
2467
+ end
2468
+
2469
+ # Convert the input of the add_* association method into an associated object. For
2470
+ # hashes, this creates a new object using the hash. For integers, strings, and arrays,
2471
+ # assume the value specifies a primary key, and lookup an existing object with that primary key.
2472
+ # Otherwise, if the object is not already an instance of the class, raise an exception.
2473
+ def make_add_associated_object(opts, o)
2474
+ klass = opts.associated_class
2475
+
2476
+ case o
2477
+ when Hash
2478
+ klass.new(o)
2479
+ when Integer, String, Array
2480
+ klass.with_pk!(o)
2481
+ when klass
2482
+ o
2483
+ else
2484
+ raise(Sequel::Error, "associated object #{o.inspect} not of correct type #{klass}")
2485
+ end
2486
+ end
2487
+
2488
+ # Remove all associated objects from the given association
2489
+ def remove_all_associated_objects(opts, *args)
2490
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2491
+ # Allow calling private _remove_all method
2492
+ send(opts[:_remove_all_method], *args)
2493
+ ret = associations[opts[:name]].each{|o| remove_reciprocal_object(opts, o)} if associations.include?(opts[:name])
2494
+ associations[opts[:name]] = []
2495
+ ret
2496
+ end
2497
+
2498
+ # Remove the given associated object from the given association
2499
+ def remove_associated_object(opts, o, *args)
2500
+ klass = opts.associated_class
2501
+ if o.is_a?(Integer) || o.is_a?(String) || o.is_a?(Array)
2502
+ o = remove_check_existing_object_from_pk(opts, o, *args)
2503
+ elsif !o.is_a?(klass)
2504
+ raise(Sequel::Error, "associated object #{o.inspect} not of correct type #{klass}")
2505
+ elsif opts.remove_should_check_existing? && public_send(opts.dataset_method).where(o.pk_hash).empty?
2506
+ raise(Sequel::Error, "associated object #{o.inspect} is not currently associated to #{inspect}")
2507
+ end
2508
+ raise(Sequel::Error, "model object #{inspect} does not have a primary key") if opts.dataset_need_primary_key? && !pk
2509
+ raise(Sequel::Error, "associated object #{o.inspect} does not have a primary key") if opts.need_associated_primary_key? && !o.pk
2510
+ return if run_association_callbacks(opts, :before_remove, o) == false
2511
+ # Allow calling private _remove method
2512
+ return if !send(opts[:_remove_method], o, *args) && opts.handle_silent_modification_failure?
2513
+ associations[opts[:name]].delete_if{|x| o === x} if associations.include?(opts[:name])
2514
+ remove_reciprocal_object(opts, o)
2515
+ run_association_callbacks(opts, :after_remove, o)
2516
+ o
2517
+ end
2518
+
2519
+ # Check that the object from the associated table specified by the primary key
2520
+ # is currently associated to the receiver. If it is associated, return the object, otherwise
2521
+ # raise an error.
2522
+ def remove_check_existing_object_from_pk(opts, o, *args)
2523
+ key = o
2524
+ pkh = opts.associated_class.qualified_primary_key_hash(key)
2525
+ raise(Sequel::Error, "no object with key(s) #{key.inspect} is currently associated to #{inspect}") unless o = public_send(opts.dataset_method).first(pkh)
2526
+ o
2527
+ end
2528
+
2529
+ # Remove/unset the current object from/as the given object's reciprocal association.
2530
+ def remove_reciprocal_object(opts, o)
2531
+ return unless reciprocal = opts.reciprocal
2532
+ if opts.reciprocal_array?
2533
+ if array = o.associations[reciprocal]
2534
+ array.delete_if{|x| self === x}
2535
+ end
2536
+ else
2537
+ o.associations[reciprocal] = nil
2538
+ end
2539
+ end
2540
+
2541
+ # Run the callback for the association with the object.
2542
+ def run_association_callbacks(reflection, callback_type, object)
2543
+ return unless cbs = reflection[callback_type]
2544
+
2545
+ begin
2546
+ cbs.each do |cb|
2547
+ case cb
2548
+ when Symbol
2549
+ # Allow calling private methods in association callbacks
2550
+ send(cb, object)
2551
+ when Proc
2552
+ cb.call(self, object)
2553
+ else
2554
+ raise Error, "callbacks should either be Procs or Symbols"
2555
+ end
2556
+ end
2557
+ rescue HookFailed
2558
+ # The reason we automatically set raise_error for singular associations is that
2559
+ # assignment in ruby always returns the argument instead of the result of the
2560
+ # method, so we can't return nil to signal that the association callback prevented
2561
+ # the modification
2562
+ return false unless raise_on_save_failure || !reflection.returns_array?
2563
+ raise
2564
+ end
2565
+ end
2566
+
2567
+ # Set the given object as the associated object for the given *_to_one association reflection
2568
+ def _set_associated_object(opts, o)
2569
+ a = associations[opts[:name]]
2570
+ return if a && a == o && !set_associated_object_if_same?
2571
+ run_association_callbacks(opts, :before_set, o)
2572
+ remove_reciprocal_object(opts, a) if a
2573
+ # Allow calling private _setter method
2574
+ send(opts[:_setter_method], o)
2575
+ associations[opts[:name]] = o
2576
+ add_reciprocal_object(opts, o) if o
2577
+ run_association_callbacks(opts, :after_set, o)
2578
+ o
2579
+ end
2580
+
2581
+ # Whether run the associated object setter code if passed the same object as the one already
2582
+ # cached in the association. Usually not set (so nil), can be set on a per-object basis
2583
+ # if necessary.
2584
+ def set_associated_object_if_same?
2585
+ @set_associated_object_if_same
2586
+ end
2587
+
2588
+ # Set the given object as the associated object for the given many_to_one association reflection
2589
+ def set_associated_object(opts, o)
2590
+ raise(Error, "associated object #{o.inspect} does not have a primary key") if o && !o.pk
2591
+ _set_associated_object(opts, o)
2592
+ end
2593
+
2594
+ # Set the given object as the associated object for the given one_through_one association reflection
2595
+ def set_one_through_one_associated_object(opts, o)
2596
+ raise(Error, "object #{inspect} does not have a primary key") unless pk
2597
+ raise(Error, "associated object #{o.inspect} does not have a primary key") if o && !o.pk
2598
+ _set_associated_object(opts, o)
2599
+ end
2600
+
2601
+ # Set the given object as the associated object for the given one_to_one association reflection
2602
+ def set_one_to_one_associated_object(opts, o)
2603
+ raise(Error, "object #{inspect} does not have a primary key") unless pk
2604
+ _set_associated_object(opts, o)
2605
+ end
2606
+ end
2607
+
2608
+ # Eager loading makes it so that you can load all associated records for a
2609
+ # set of objects in a single query, instead of a separate query for each object.
2610
+ #
2611
+ # Two separate implementations are provided. +eager+ should be used most of the
2612
+ # time, as it loads associated records using one query per association. However,
2613
+ # it does not allow you the ability to filter or order based on columns in associated tables. +eager_graph+ loads
2614
+ # all records in a single query using JOINs, allowing you to filter or order based on columns in associated
2615
+ # tables. However, +eager_graph+ is usually slower than +eager+, especially if multiple
2616
+ # one_to_many or many_to_many associations are joined.
2617
+ #
2618
+ # You can cascade the eager loading (loading associations on associated objects)
2619
+ # with no limit to the depth of the cascades. You do this by passing a hash to +eager+ or +eager_graph+
2620
+ # with the keys being associations of the current model and values being
2621
+ # associations of the model associated with the current model via the key.
2622
+ #
2623
+ # The arguments can be symbols or hashes with symbol keys (for cascaded
2624
+ # eager loading). Examples:
2625
+ #
2626
+ # Album.eager(:artist).all
2627
+ # Album.eager_graph(:artist).all
2628
+ # Album.eager(:artist, :genre).all
2629
+ # Album.eager_graph(:artist, :genre).all
2630
+ # Album.eager(:artist).eager(:genre).all
2631
+ # Album.eager_graph(:artist).eager(:genre).all
2632
+ # Artist.eager(albums: :tracks).all
2633
+ # Artist.eager_graph(albums: :tracks).all
2634
+ # Artist.eager(albums: {tracks: :genre}).all
2635
+ # Artist.eager_graph(albums: {tracks: :genre}).all
2636
+ #
2637
+ # You can also pass a callback as a hash value in order to customize the dataset being
2638
+ # eager loaded at query time, analogous to the way the :eager_block association option
2639
+ # allows you to customize it at association definition time. For example,
2640
+ # if you wanted artists with their albums since 1990:
2641
+ #
2642
+ # Artist.eager(albums: proc{|ds| ds.where{year > 1990}})
2643
+ #
2644
+ # Or if you needed albums and their artist's name only, using a single query:
2645
+ #
2646
+ # Albums.eager_graph(artist: proc{|ds| ds.select(:name)})
2647
+ #
2648
+ # To cascade eager loading while using a callback, you substitute the cascaded
2649
+ # associations with a single entry hash that has the proc callback as the key and
2650
+ # the cascaded associations as the value. This will load artists with their albums
2651
+ # since 1990, and also the tracks on those albums and the genre for those tracks:
2652
+ #
2653
+ # Artist.eager(albums: {proc{|ds| ds.where{year > 1990}}=>{tracks: :genre}})
2654
+ module DatasetMethods
2655
+ %w'inner left right full'.each do |type|
2656
+ class_eval(<<-END, __FILE__, __LINE__+1)
2657
+ def association_#{type}_join(*associations)
2658
+ _association_join(:#{type}, associations)
2659
+ end
2660
+ END
2661
+ end
2662
+
2663
+ # Adds one or more INNER JOINs to the existing dataset using the keys and conditions
2664
+ # specified by the given association. The following methods also exist for specifying
2665
+ # a different type of JOIN:
2666
+ #
2667
+ # association_full_join :: FULL JOIN
2668
+ # association_inner_join :: INNER JOIN
2669
+ # association_left_join :: LEFT JOIN
2670
+ # association_right_join :: RIGHT JOIN
2671
+ def association_join(*associations)
2672
+ association_inner_join(*associations)
2673
+ end
2674
+
2675
+ # If the expression is in the form <tt>x = y</tt> where +y+ is a <tt>Sequel::Model</tt>
2676
+ # instance, array of <tt>Sequel::Model</tt> instances, or a <tt>Sequel::Model</tt> dataset,
2677
+ # assume +x+ is an association symbol and look up the association reflection
2678
+ # via the dataset's model. From there, return the appropriate SQL based on the type of
2679
+ # association and the values of the foreign/primary keys of +y+. For most association
2680
+ # types, this is a simple transformation, but for +many_to_many+ associations this
2681
+ # creates a subquery to the join table.
2682
+ def complex_expression_sql_append(sql, op, args)
2683
+ r = args[1]
2684
+ if (((op == :'=' || op == :'!=') and r.is_a?(Sequel::Model)) ||
2685
+ (multiple = ((op == :IN || op == :'NOT IN') and ((is_ds = r.is_a?(Sequel::Dataset)) or r.all?{|x| x.is_a?(Sequel::Model)}))))
2686
+ l = args[0]
2687
+ if ar = model.association_reflections[l]
2688
+ if multiple
2689
+ klass = ar.associated_class
2690
+ if is_ds
2691
+ if r.respond_to?(:model)
2692
+ unless r.model <= klass
2693
+ # A dataset for a different model class, could be a valid regular query
2694
+ return super
2695
+ end
2696
+ else
2697
+ # Not a model dataset, could be a valid regular query
2698
+ return super
2699
+ end
2700
+ else
2701
+ unless r.all?{|x| x.is_a?(klass)}
2702
+ raise Sequel::Error, "invalid association class for one object for association #{l.inspect} used in dataset filter for model #{model.inspect}, expected class #{klass.inspect}"
2703
+ end
2704
+ end
2705
+ elsif !r.is_a?(ar.associated_class)
2706
+ raise Sequel::Error, "invalid association class #{r.class.inspect} for association #{l.inspect} used in dataset filter for model #{model.inspect}, expected class #{ar.associated_class.inspect}"
2707
+ end
2708
+
2709
+ if exp = association_filter_expression(op, ar, r)
2710
+ literal_append(sql, exp)
2711
+ else
2712
+ raise Sequel::Error, "invalid association type #{ar[:type].inspect} for association #{l.inspect} used in dataset filter for model #{model.inspect}"
2713
+ end
2714
+ elsif multiple && (is_ds || r.empty?)
2715
+ # Not a query designed for this support, could be a valid regular query
2716
+ super
2717
+ else
2718
+ raise Sequel::Error, "invalid association #{l.inspect} used in dataset filter for model #{model.inspect}"
2719
+ end
2720
+ else
2721
+ super
2722
+ end
2723
+ end
2724
+
2725
+ # The preferred eager loading method. Loads all associated records using one
2726
+ # query for each association.
2727
+ #
2728
+ # The basic idea for how it works is that the dataset is first loaded normally.
2729
+ # Then it goes through all associations that have been specified via +eager+.
2730
+ # It loads each of those associations separately, then associates them back
2731
+ # to the original dataset via primary/foreign keys. Due to the necessity of
2732
+ # all objects being present, you need to use +all+ to use eager loading, as it
2733
+ # can't work with +each+.
2734
+ #
2735
+ # This implementation avoids the complexity of extracting an object graph out
2736
+ # of a single dataset, by building the object graph out of multiple datasets,
2737
+ # one for each association. By using a separate dataset for each association,
2738
+ # it avoids problems such as aliasing conflicts and creating cartesian product
2739
+ # result sets if multiple one_to_many or many_to_many eager associations are requested.
2740
+ #
2741
+ # One limitation of using this method is that you cannot filter the current dataset
2742
+ # based on values of columns in an associated table, since the associations are loaded
2743
+ # in separate queries. To do that you need to load all associations in the
2744
+ # same query, and extract an object graph from the results of that query. If you
2745
+ # need to filter based on columns in associated tables, look at +eager_graph+
2746
+ # or join the tables you need to filter on manually.
2747
+ #
2748
+ # Each association's order, if defined, is respected.
2749
+ # If the association uses a block or has an :eager_block argument, it is used.
2750
+ def eager(*associations)
2751
+ opts = @opts[:eager]
2752
+ association_opts = eager_options_for_associations(associations)
2753
+ opts = opts ? Hash[opts].merge!(association_opts) : association_opts
2754
+ clone(:eager=>opts)
2755
+ end
2756
+
2757
+ # The secondary eager loading method. Loads all associations in a single query. This
2758
+ # method should only be used if you need to filter or order based on columns in associated tables,
2759
+ # or if you have done comparative benchmarking it and determined it is faster.
2760
+ #
2761
+ # This method uses <tt>Dataset#graph</tt> to create appropriate aliases for columns in all the
2762
+ # tables. Then it uses the graph's metadata to build the associations from the single hash, and
2763
+ # finally replaces the array of hashes with an array model objects inside all.
2764
+ #
2765
+ # Be very careful when using this with multiple one_to_many or many_to_many associations, as you can
2766
+ # create large cartesian products. If you must graph multiple one_to_many and many_to_many associations,
2767
+ # make sure your filters are narrow if the datasets are large.
2768
+ #
2769
+ # Each association's order, if defined, is respected. +eager_graph+ probably
2770
+ # won't work correctly on a limited dataset, unless you are
2771
+ # only graphing many_to_one, one_to_one, and one_through_one associations.
2772
+ #
2773
+ # Does not use the block defined for the association, since it does a single query for
2774
+ # all objects. You can use the :graph_* association options to modify the SQL query.
2775
+ #
2776
+ # Like +eager+, you need to call +all+ on the dataset for the eager loading to work. If you just
2777
+ # call +each+, it will yield plain hashes, each containing all columns from all the tables.
2778
+ def eager_graph(*associations)
2779
+ eager_graph_with_options(associations)
2780
+ end
2781
+
2782
+ # Run eager_graph with some options specific to just this call. Unlike eager_graph, this takes
2783
+ # the associations as a single argument instead of multiple arguments.
2784
+ #
2785
+ # Options:
2786
+ #
2787
+ # :join_type :: Override the join type specified in the association
2788
+ # :limit_strategy :: Use a strategy for handling limits on associations.
2789
+ # Appropriate :limit_strategy values are:
2790
+ # true :: Pick the most appropriate based on what the database supports
2791
+ # :distinct_on :: Force use of DISTINCT ON stategy (*_one associations only)
2792
+ # :correlated_subquery :: Force use of correlated subquery strategy (one_to_* associations only)
2793
+ # :window_function :: Force use of window function strategy
2794
+ # :ruby :: Don't modify the SQL, implement limits/offsets with array slicing
2795
+ #
2796
+ # This can also be a hash with association name symbol keys and one of the above values,
2797
+ # to use different strategies per association.
2798
+ #
2799
+ # The default is the :ruby strategy. Choosing a different strategy can make your code
2800
+ # significantly slower in some cases (perhaps even the majority of cases), so you should
2801
+ # only use this if you have benchmarked that it is faster for your use cases.
2802
+ def eager_graph_with_options(associations, opts=OPTS)
2803
+ associations = [associations] unless associations.is_a?(Array)
2804
+ if eg = @opts[:eager_graph]
2805
+ eg = eg.dup
2806
+ [:requirements, :reflections, :reciprocals, :limits].each{|k| eg[k] = eg[k].dup}
2807
+ eg[:local] = opts
2808
+ ds = clone(:eager_graph=>eg)
2809
+ ds.eager_graph_associations(ds, model, ds.opts[:eager_graph][:master], [], *associations)
2810
+ else
2811
+ # Each of the following have a symbol key for the table alias, with the following values:
2812
+ # :reciprocals :: the reciprocal value to use for this association
2813
+ # :reflections :: AssociationReflection instance related to this association
2814
+ # :requirements :: array of requirements for this association
2815
+ # :limits :: Any limit/offset array slicing that need to be handled in ruby land after loading
2816
+ opts = {:requirements=>{}, :master=>alias_symbol(first_source), :reflections=>{}, :reciprocals=>{}, :limits=>{}, :local=>opts, :cartesian_product_number=>0, :row_proc=>row_proc}
2817
+ ds = clone(:eager_graph=>opts)
2818
+ ds.eager_graph_associations(ds, model, ds.opts[:eager_graph][:master], [], *associations).naked
2819
+ end
2820
+ end
2821
+
2822
+ # If the dataset is being eagerly loaded, default to calling all
2823
+ # instead of each.
2824
+ def as_hash(key_column=nil, value_column=nil, opts=OPTS)
2825
+ if (@opts[:eager_graph] || @opts[:eager]) && !opts.has_key?(:all)
2826
+ opts = Hash[opts]
2827
+ opts[:all] = true
2828
+ end
2829
+ super
2830
+ end
2831
+
2832
+ # If the dataset is being eagerly loaded, default to calling all
2833
+ # instead of each.
2834
+ def to_hash_groups(key_column, value_column=nil, opts=OPTS)
2835
+ if (@opts[:eager_graph] || @opts[:eager]) && !opts.has_key?(:all)
2836
+ opts = Hash[opts]
2837
+ opts[:all] = true
2838
+ end
2839
+ super
2840
+ end
2841
+
2842
+ # Do not attempt to split the result set into associations,
2843
+ # just return results as simple objects. This is useful if you
2844
+ # want to use eager_graph as a shortcut to have all of the joins
2845
+ # and aliasing set up, but want to do something else with the dataset.
2846
+ def ungraphed
2847
+ ds = super.clone(:eager_graph=>nil)
2848
+ if (eg = @opts[:eager_graph]) && (rp = eg[:row_proc])
2849
+ ds = ds.with_row_proc(rp)
2850
+ end
2851
+ ds
2852
+ end
2853
+
2854
+ protected
2855
+
2856
+ # Call graph on the association with the correct arguments,
2857
+ # update the eager_graph data structure, and recurse into
2858
+ # eager_graph_associations if there are any passed in associations
2859
+ # (which would be dependencies of the current association)
2860
+ #
2861
+ # Arguments:
2862
+ # ds :: Current dataset
2863
+ # model :: Current Model
2864
+ # ta :: table_alias used for the parent association
2865
+ # requirements :: an array, used as a stack for requirements
2866
+ # r :: association reflection for the current association, or an SQL::AliasedExpression
2867
+ # with the reflection as the expression and the alias base as the aliaz.
2868
+ # *associations :: any associations dependent on this one
2869
+ def eager_graph_association(ds, model, ta, requirements, r, *associations)
2870
+ if r.is_a?(SQL::AliasedExpression)
2871
+ alias_base = r.alias
2872
+ r = r.expression
2873
+ else
2874
+ alias_base = r[:graph_alias_base]
2875
+ end
2876
+ assoc_table_alias = ds.unused_table_alias(alias_base)
2877
+ loader = r[:eager_grapher]
2878
+ if !associations.empty?
2879
+ if associations.first.respond_to?(:call)
2880
+ callback = associations.first
2881
+ associations = {}
2882
+ elsif associations.length == 1 && (assocs = associations.first).is_a?(Hash) && assocs.length == 1 && (pr_assoc = assocs.to_a.first) && pr_assoc.first.respond_to?(:call)
2883
+ callback, assoc = pr_assoc
2884
+ associations = assoc.is_a?(Array) ? assoc : [assoc]
2885
+ end
2886
+ end
2887
+ local_opts = ds.opts[:eager_graph][:local]
2888
+ limit_strategy = r.eager_graph_limit_strategy(local_opts[:limit_strategy])
2889
+
2890
+ if r[:conditions] && !Sequel.condition_specifier?(r[:conditions]) && !r[:orig_opts].has_key?(:graph_conditions) && !r[:orig_opts].has_key?(:graph_only_conditions) && !r.has_key?(:graph_block)
2891
+ raise Error, "Cannot eager_graph association when :conditions specified and not a hash or an array of pairs. Specify :graph_conditions, :graph_only_conditions, or :graph_block for the association. Model: #{r[:model]}, association: #{r[:name]}"
2892
+ end
2893
+
2894
+ ds = loader.call(:self=>ds, :table_alias=>assoc_table_alias, :implicit_qualifier=>(ta == ds.opts[:eager_graph][:master]) ? first_source : qualifier_from_alias_symbol(ta, first_source), :callback=>callback, :join_type=>local_opts[:join_type], :join_only=>local_opts[:join_only], :limit_strategy=>limit_strategy, :from_self_alias=>ds.opts[:eager_graph][:master])
2895
+ if r[:order_eager_graph] && (order = r.fetch(:graph_order, r[:order]))
2896
+ ds = ds.order_append(*qualified_expression(order, assoc_table_alias))
2897
+ end
2898
+ eager_graph = ds.opts[:eager_graph]
2899
+ eager_graph[:requirements][assoc_table_alias] = requirements.dup
2900
+ eager_graph[:reflections][assoc_table_alias] = r
2901
+ if limit_strategy == :ruby
2902
+ eager_graph[:limits][assoc_table_alias] = r.limit_and_offset
2903
+ end
2904
+ eager_graph[:cartesian_product_number] += r[:cartesian_product_number] || 2
2905
+ ds = ds.eager_graph_associations(ds, r.associated_class, assoc_table_alias, requirements + [assoc_table_alias], *associations) unless associations.empty?
2906
+ ds
2907
+ end
2908
+
2909
+ # Check the associations are valid for the given model.
2910
+ # Call eager_graph_association on each association.
2911
+ #
2912
+ # Arguments:
2913
+ # ds :: Current dataset
2914
+ # model :: Current Model
2915
+ # ta :: table_alias used for the parent association
2916
+ # requirements :: an array, used as a stack for requirements
2917
+ # *associations :: the associations to add to the graph
2918
+ def eager_graph_associations(ds, model, ta, requirements, *associations)
2919
+ return ds if associations.empty?
2920
+ associations.flatten.each do |association|
2921
+ ds = case association
2922
+ when Symbol, SQL::AliasedExpression
2923
+ ds.eager_graph_association(ds, model, ta, requirements, eager_graph_check_association(model, association))
2924
+ when Hash
2925
+ association.each do |assoc, assoc_assocs|
2926
+ ds = ds.eager_graph_association(ds, model, ta, requirements, eager_graph_check_association(model, assoc), assoc_assocs)
2927
+ end
2928
+ ds
2929
+ else
2930
+ raise(Sequel::Error, 'Associations must be in the form of a symbol or hash')
2931
+ end
2932
+ end
2933
+ ds
2934
+ end
2935
+
2936
+ # Replace the array of plain hashes with an array of model objects will all eager_graphed
2937
+ # associations set in the associations cache for each object.
2938
+ def eager_graph_build_associations(hashes)
2939
+ hashes.replace(EagerGraphLoader.new(self).load(hashes))
2940
+ end
2941
+
2942
+ private
2943
+
2944
+ # Return a new dataset with JOINs of the given type added, using the tables and
2945
+ # conditions specified by the associations.
2946
+ def _association_join(type, associations)
2947
+ clone(:join=>clone(:graph_from_self=>false).eager_graph_with_options(associations, :join_type=>type, :join_only=>true).opts[:join])
2948
+ end
2949
+
2950
+ # If the association has conditions itself, then it requires additional filters be
2951
+ # added to the current dataset to ensure that the passed in object would also be
2952
+ # included by the association's conditions.
2953
+ def add_association_filter_conditions(ref, obj, expr)
2954
+ if expr != SQL::Constants::FALSE && ref.filter_by_associations_add_conditions?
2955
+ Sequel[ref.filter_by_associations_conditions_expression(obj)]
2956
+ else
2957
+ expr
2958
+ end
2959
+ end
2960
+
2961
+ # Process the array of associations arguments (Symbols, Arrays, and Hashes),
2962
+ # and return a hash of options suitable for cascading.
2963
+ def eager_options_for_associations(associations)
2964
+ opts = {}
2965
+ associations.flatten.each do |association|
2966
+ case association
2967
+ when Symbol
2968
+ check_association(model, association)
2969
+ opts[association] = nil
2970
+ when Hash
2971
+ association.keys.each{|assoc| check_association(model, assoc)}
2972
+ opts.merge!(association)
2973
+ else
2974
+ raise(Sequel::Error, 'Associations must be in the form of a symbol or hash')
2975
+ end
2976
+ end
2977
+ opts
2978
+ end
2979
+
2980
+ # Return an expression for filtering by the given association reflection and associated object.
2981
+ def association_filter_expression(op, ref, obj)
2982
+ meth = :"#{ref[:type]}_association_filter_expression"
2983
+ # Allow calling private association specific method to get filter expression
2984
+ send(meth, op, ref, obj) if respond_to?(meth, true)
2985
+ end
2986
+
2987
+ # Handle inversion for association filters by returning an inverted expression,
2988
+ # plus also handling cases where the referenced columns are NULL.
2989
+ def association_filter_handle_inversion(op, exp, cols)
2990
+ if op == :'!=' || op == :'NOT IN'
2991
+ if exp == SQL::Constants::FALSE
2992
+ ~exp
2993
+ else
2994
+ ~exp | Sequel::SQL::BooleanExpression.from_value_pairs(cols.zip([]), :OR)
2995
+ end
2996
+ else
2997
+ exp
2998
+ end
2999
+ end
3000
+
3001
+ # Return an expression for making sure that the given keys match the value of
3002
+ # the given methods for either the single object given or for any of the objects
3003
+ # given if +obj+ is an array.
3004
+ def association_filter_key_expression(keys, meths, obj)
3005
+ vals = if obj.is_a?(Sequel::Dataset)
3006
+ {(keys.length == 1 ? keys.first : keys)=>obj.select(*meths).exclude(Sequel::SQL::BooleanExpression.from_value_pairs(meths.zip([]), :OR))}
3007
+ else
3008
+ vals = Array(obj).reject{|o| !meths.all?{|m| o.get_column_value(m)}}
3009
+ return SQL::Constants::FALSE if vals.empty?
3010
+ if obj.is_a?(Array)
3011
+ if keys.length == 1
3012
+ meth = meths.first
3013
+ {keys.first=>vals.map{|o| o.get_column_value(meth)}}
3014
+ else
3015
+ {keys=>vals.map{|o| meths.map{|m| o.get_column_value(m)}}}
3016
+ end
3017
+ else
3018
+ keys.zip(meths.map{|k| obj.get_column_value(k)})
3019
+ end
3020
+ end
3021
+ SQL::BooleanExpression.from_value_pairs(vals)
3022
+ end
3023
+
3024
+ # Make sure the association is valid for this model, and return the related AssociationReflection.
3025
+ def check_association(model, association)
3026
+ raise(Sequel::UndefinedAssociation, "Invalid association #{association} for #{model.name}") unless reflection = model.association_reflection(association)
3027
+ raise(Sequel::Error, "Eager loading is not allowed for #{model.name} association #{association}") if reflection[:allow_eager] == false
3028
+ reflection
3029
+ end
3030
+
3031
+ # Allow associations that are eagerly graphed to be specified as an SQL::AliasedExpression, for
3032
+ # per-call determining of the alias base.
3033
+ def eager_graph_check_association(model, association)
3034
+ if association.is_a?(SQL::AliasedExpression)
3035
+ SQL::AliasedExpression.new(check_association(model, association.expression), association.alias)
3036
+ else
3037
+ check_association(model, association)
3038
+ end
3039
+ end
3040
+
3041
+ # Eagerly load all specified associations
3042
+ def eager_load(a, eager_assoc=@opts[:eager])
3043
+ return if a.empty?
3044
+ # Key is foreign/primary key name symbol.
3045
+ # Value is hash with keys being foreign/primary key values (generally integers)
3046
+ # and values being an array of current model objects with that specific foreign/primary key
3047
+ key_hash = {}
3048
+ # Reflections for all associations to eager load
3049
+ reflections = eager_assoc.keys.map{|assoc| model.association_reflection(assoc) || (raise Sequel::UndefinedAssociation, "Model: #{self}, Association: #{assoc}")}
3050
+
3051
+ # Populate the key_hash entry for each association being eagerly loaded
3052
+ reflections.each do |r|
3053
+ if key = r.eager_loader_key
3054
+ # key_hash for this key has already been populated,
3055
+ # skip populating again so that duplicate values
3056
+ # aren't added.
3057
+ unless id_map = key_hash[key]
3058
+ id_map = key_hash[key] = Hash.new{|h,k| h[k] = []}
3059
+
3060
+ # Supporting both single (Symbol) and composite (Array) keys.
3061
+ a.each do |rec|
3062
+ case key
3063
+ when Array
3064
+ if (k = key.map{|k2| rec.get_column_value(k2)}) && k.all?
3065
+ id_map[k] << rec
3066
+ end
3067
+ when Symbol
3068
+ if k = rec.get_column_value(key)
3069
+ id_map[k] << rec
3070
+ end
3071
+ else
3072
+ raise Error, "unhandled eager_loader_key #{key.inspect} for association #{r[:name]}"
3073
+ end
3074
+ end
3075
+ end
3076
+ else
3077
+ id_map = nil
3078
+ end
3079
+
3080
+ loader = r[:eager_loader]
3081
+ associations = eager_assoc[r[:name]]
3082
+ if associations.respond_to?(:call)
3083
+ eager_block = associations
3084
+ associations = {}
3085
+ elsif associations.is_a?(Hash) && associations.length == 1 && (pr_assoc = associations.to_a.first) && pr_assoc.first.respond_to?(:call)
3086
+ eager_block, associations = pr_assoc
3087
+ end
3088
+ loader.call(:key_hash=>key_hash, :rows=>a, :associations=>associations, :self=>self, :eager_block=>eager_block, :id_map=>id_map)
3089
+ a.each{|object| object.send(:run_association_callbacks, r, :after_load, object.associations[r[:name]])} if r[:after_load]
3090
+ end
3091
+ end
3092
+
3093
+ # Return a subquery expression for filering by a many_to_many association
3094
+ def many_to_many_association_filter_expression(op, ref, obj)
3095
+ lpks, lks, rks = ref.values_at(:left_primary_key_columns, :left_keys, :right_keys)
3096
+ jt = ref.join_table_alias
3097
+ lpks = lpks.first if lpks.length == 1
3098
+ lpks = ref.qualify(model.table_name, lpks)
3099
+
3100
+ meths = if obj.is_a?(Sequel::Dataset)
3101
+ ref.qualify(obj.model.table_name, ref.right_primary_keys)
3102
+ else
3103
+ ref.right_primary_key_methods
3104
+ end
3105
+
3106
+ expr = association_filter_key_expression(ref.qualify(jt, rks), meths, obj)
3107
+ unless expr == SQL::Constants::FALSE
3108
+ expr = SQL::BooleanExpression.from_value_pairs(lpks=>model.db.from(ref[:join_table]).select(*ref.qualify(jt, lks)).where(expr).exclude(SQL::BooleanExpression.from_value_pairs(ref.qualify(jt, lks).zip([]), :OR)))
3109
+ expr = add_association_filter_conditions(ref, obj, expr)
3110
+ end
3111
+
3112
+ association_filter_handle_inversion(op, expr, Array(lpks))
3113
+ end
3114
+ alias one_through_one_association_filter_expression many_to_many_association_filter_expression
3115
+
3116
+ # Return a simple equality expression for filering by a many_to_one association
3117
+ def many_to_one_association_filter_expression(op, ref, obj)
3118
+ keys = ref.qualify(model.table_name, ref[:key_columns])
3119
+ meths = if obj.is_a?(Sequel::Dataset)
3120
+ ref.qualify(obj.model.table_name, ref.primary_keys)
3121
+ else
3122
+ ref.primary_key_methods
3123
+ end
3124
+
3125
+ expr = association_filter_key_expression(keys, meths, obj)
3126
+ expr = add_association_filter_conditions(ref, obj, expr)
3127
+ association_filter_handle_inversion(op, expr, keys)
3128
+ end
3129
+
3130
+ # Return a simple equality expression for filering by a one_to_* association
3131
+ def one_to_many_association_filter_expression(op, ref, obj)
3132
+ keys = ref.qualify(model.table_name, ref[:primary_key_columns])
3133
+ meths = if obj.is_a?(Sequel::Dataset)
3134
+ ref.qualify(obj.model.table_name, ref[:keys])
3135
+ else
3136
+ ref[:key_methods]
3137
+ end
3138
+
3139
+ expr = association_filter_key_expression(keys, meths, obj)
3140
+ expr = add_association_filter_conditions(ref, obj, expr)
3141
+ association_filter_handle_inversion(op, expr, keys)
3142
+ end
3143
+ alias one_to_one_association_filter_expression one_to_many_association_filter_expression
3144
+
3145
+ def non_sql_option?(key)
3146
+ super || key == :eager || key == :eager_graph
3147
+ end
3148
+
3149
+ # Build associations from the graph if #eager_graph was used,
3150
+ # and/or load other associations if #eager was used.
3151
+ def post_load(all_records)
3152
+ eager_graph_build_associations(all_records) if @opts[:eager_graph]
3153
+ eager_load(all_records) if @opts[:eager] && (row_proc || @opts[:eager_graph])
3154
+ super
3155
+ end
3156
+ end
3157
+
3158
+ # This class is the internal implementation of eager_graph. It is responsible for taking an array of plain
3159
+ # hashes and returning an array of model objects with all eager_graphed associations already set in the
3160
+ # association cache.
3161
+ class EagerGraphLoader
3162
+ # Hash with table alias symbol keys and after_load hook values
3163
+ attr_reader :after_load_map
3164
+
3165
+ # Hash with table alias symbol keys and association name values
3166
+ attr_reader :alias_map
3167
+
3168
+ # Hash with table alias symbol keys and subhash values mapping column_alias symbols to the
3169
+ # symbol of the real name of the column
3170
+ attr_reader :column_maps
3171
+
3172
+ # Recursive hash with table alias symbol keys mapping to hashes with dependent table alias symbol keys.
3173
+ attr_reader :dependency_map
3174
+
3175
+ # Hash with table alias symbol keys and [limit, offset] values
3176
+ attr_reader :limit_map
3177
+
3178
+ # Hash with table alias symbol keys and callable values used to create model instances
3179
+ # The table alias symbol for the primary model
3180
+ attr_reader :master
3181
+
3182
+ # Hash with table alias symbol keys and primary key symbol values (or arrays of primary key symbols for
3183
+ # composite key tables)
3184
+ attr_reader :primary_keys
3185
+
3186
+ # Hash with table alias symbol keys and reciprocal association symbol values,
3187
+ # used for setting reciprocals for one_to_many associations.
3188
+ attr_reader :reciprocal_map
3189
+
3190
+ # Hash with table alias symbol keys and subhash values mapping primary key symbols (or array of symbols)
3191
+ # to model instances. Used so that only a single model instance is created for each object.
3192
+ attr_reader :records_map
3193
+
3194
+ # Hash with table alias symbol keys and AssociationReflection values
3195
+ attr_reader :reflection_map
3196
+
3197
+ # Hash with table alias symbol keys and callable values used to create model instances
3198
+ attr_reader :row_procs
3199
+
3200
+ # Hash with table alias symbol keys and true/false values, where true means the
3201
+ # association represented by the table alias uses an array of values instead of
3202
+ # a single value (i.e. true => *_many, false => *_to_one).
3203
+ attr_reader :type_map
3204
+
3205
+ # Initialize all of the data structures used during loading.
3206
+ def initialize(dataset)
3207
+ opts = dataset.opts
3208
+ eager_graph = opts[:eager_graph]
3209
+ @master = eager_graph[:master]
3210
+ requirements = eager_graph[:requirements]
3211
+ reflection_map = @reflection_map = eager_graph[:reflections]
3212
+ reciprocal_map = @reciprocal_map = eager_graph[:reciprocals]
3213
+ limit_map = @limit_map = eager_graph[:limits]
3214
+ @unique = eager_graph[:cartesian_product_number] > 1
3215
+
3216
+ alias_map = @alias_map = {}
3217
+ type_map = @type_map = {}
3218
+ after_load_map = @after_load_map = {}
3219
+ reflection_map.each do |k, v|
3220
+ alias_map[k] = v[:name]
3221
+ after_load_map[k] = v[:after_load] if v[:after_load]
3222
+ type_map[k] = if v.returns_array?
3223
+ true
3224
+ elsif (limit_and_offset = limit_map[k]) && !limit_and_offset.last.nil?
3225
+ :offset
3226
+ end
3227
+ end
3228
+
3229
+ # Make dependency map hash out of requirements array for each association.
3230
+ # This builds a tree of dependencies that will be used for recursion
3231
+ # to ensure that all parts of the object graph are loaded into the
3232
+ # appropriate subordinate association.
3233
+ @dependency_map = {}
3234
+ # Sort the associations by requirements length, so that
3235
+ # requirements are added to the dependency hash before their
3236
+ # dependencies.
3237
+ requirements.sort_by{|a| a[1].length}.each do |ta, deps|
3238
+ if deps.empty?
3239
+ dependency_map[ta] = {}
3240
+ else
3241
+ deps = deps.dup
3242
+ hash = dependency_map[deps.shift]
3243
+ deps.each do |dep|
3244
+ hash = hash[dep]
3245
+ end
3246
+ hash[ta] = {}
3247
+ end
3248
+ end
3249
+
3250
+ # This mapping is used to make sure that duplicate entries in the
3251
+ # result set are mapped to a single record. For example, using a
3252
+ # single one_to_many association with 10 associated records,
3253
+ # the main object column values appear in the object graph 10 times.
3254
+ # We map by primary key, if available, or by the object's entire values,
3255
+ # if not. The mapping must be per table, so create sub maps for each table
3256
+ # alias.
3257
+ records_map = {@master=>{}}
3258
+ alias_map.keys.each{|ta| records_map[ta] = {}}
3259
+ @records_map = records_map
3260
+
3261
+ datasets = opts[:graph][:table_aliases].to_a.reject{|ta,ds| ds.nil?}
3262
+ column_aliases = opts[:graph][:column_aliases]
3263
+ primary_keys = {}
3264
+ column_maps = {}
3265
+ models = {}
3266
+ row_procs = {}
3267
+ datasets.each do |ta, ds|
3268
+ models[ta] = ds.model
3269
+ primary_keys[ta] = []
3270
+ column_maps[ta] = {}
3271
+ row_procs[ta] = ds.row_proc
3272
+ end
3273
+ column_aliases.each do |col_alias, tc|
3274
+ ta, column = tc
3275
+ column_maps[ta][col_alias] = column
3276
+ end
3277
+ column_maps.each do |ta, h|
3278
+ pk = models[ta].primary_key
3279
+ if pk.is_a?(Array)
3280
+ primary_keys[ta] = []
3281
+ h.select{|ca, c| primary_keys[ta] << ca if pk.include?(c)}
3282
+ else
3283
+ h.select{|ca, c| primary_keys[ta] = ca if pk == c}
3284
+ end
3285
+ end
3286
+ @column_maps = column_maps
3287
+ @primary_keys = primary_keys
3288
+ @row_procs = row_procs
3289
+
3290
+ # For performance, create two special maps for the master table,
3291
+ # so you can skip a hash lookup.
3292
+ @master_column_map = column_maps[master]
3293
+ @master_primary_keys = primary_keys[master]
3294
+
3295
+ # Add a special hash mapping table alias symbols to 5 element arrays that just
3296
+ # contain the data in other data structures for that table alias. This is
3297
+ # used for performance, to get all values in one hash lookup instead of
3298
+ # separate hash lookups for each data structure.
3299
+ ta_map = {}
3300
+ alias_map.keys.each do |ta|
3301
+ ta_map[ta] = [records_map[ta], row_procs[ta], alias_map[ta], type_map[ta], reciprocal_map[ta]]
3302
+ end
3303
+ @ta_map = ta_map
3304
+ end
3305
+
3306
+ # Return an array of primary model instances with the associations cache prepopulated
3307
+ # for all model objects (both primary and associated).
3308
+ def load(hashes)
3309
+ master = master()
3310
+
3311
+ # Assign to local variables for speed increase
3312
+ rp = row_procs[master]
3313
+ rm = records_map[master]
3314
+ dm = dependency_map
3315
+
3316
+ # This will hold the final record set that we will be replacing the object graph with.
3317
+ records = []
3318
+
3319
+ hashes.each do |h|
3320
+ unless key = master_pk(h)
3321
+ key = hkey(master_hfor(h))
3322
+ end
3323
+ unless primary_record = rm[key]
3324
+ primary_record = rm[key] = rp.call(master_hfor(h))
3325
+ # Only add it to the list of records to return if it is a new record
3326
+ records.push(primary_record)
3327
+ end
3328
+ # Build all associations for the current object and it's dependencies
3329
+ _load(dm, primary_record, h)
3330
+ end
3331
+
3332
+ # Remove duplicate records from all associations if this graph could possibly be a cartesian product
3333
+ # Run after_load procs if there are any
3334
+ post_process(records, dm) if @unique || !after_load_map.empty? || !limit_map.empty?
3335
+
3336
+ records
3337
+ end
3338
+
3339
+ private
3340
+
3341
+ # Recursive method that creates associated model objects and associates them to the current model object.
3342
+ def _load(dependency_map, current, h)
3343
+ dependency_map.each do |ta, deps|
3344
+ unless key = pk(ta, h)
3345
+ ta_h = hfor(ta, h)
3346
+ unless ta_h.values.any?
3347
+ assoc_name = alias_map[ta]
3348
+ unless (assoc = current.associations).has_key?(assoc_name)
3349
+ assoc[assoc_name] = type_map[ta] ? [] : nil
3350
+ end
3351
+ next
3352
+ end
3353
+ key = hkey(ta_h)
3354
+ end
3355
+ rm, rp, assoc_name, tm, rcm = @ta_map[ta]
3356
+ unless rec = rm[key]
3357
+ rec = rm[key] = rp.call(hfor(ta, h))
3358
+ end
3359
+
3360
+ if tm
3361
+ unless (assoc = current.associations).has_key?(assoc_name)
3362
+ assoc[assoc_name] = []
3363
+ end
3364
+ assoc[assoc_name].push(rec)
3365
+ rec.associations[rcm] = current if rcm
3366
+ else
3367
+ current.associations[assoc_name] ||= rec
3368
+ end
3369
+ # Recurse into dependencies of the current object
3370
+ _load(deps, rec, h) unless deps.empty?
3371
+ end
3372
+ end
3373
+
3374
+ # Return the subhash for the specific table alias +ta+ by parsing the values out of the main hash +h+
3375
+ def hfor(ta, h)
3376
+ out = {}
3377
+ @column_maps[ta].each{|ca, c| out[c] = h[ca]}
3378
+ out
3379
+ end
3380
+
3381
+ # Return a suitable hash key for any subhash +h+, which is an array of values by column order.
3382
+ # This is only used if the primary key cannot be used.
3383
+ def hkey(h)
3384
+ h.sort_by{|x| x[0]}
3385
+ end
3386
+
3387
+ # Return the subhash for the master table by parsing the values out of the main hash +h+
3388
+ def master_hfor(h)
3389
+ out = {}
3390
+ @master_column_map.each{|ca, c| out[c] = h[ca]}
3391
+ out
3392
+ end
3393
+
3394
+ # Return a primary key value for the master table by parsing it out of the main hash +h+.
3395
+ def master_pk(h)
3396
+ x = @master_primary_keys
3397
+ if x.is_a?(Array)
3398
+ unless x == []
3399
+ x = x.map{|ca| h[ca]}
3400
+ x if x.all?
3401
+ end
3402
+ else
3403
+ h[x]
3404
+ end
3405
+ end
3406
+
3407
+ # Return a primary key value for the given table alias by parsing it out of the main hash +h+.
3408
+ def pk(ta, h)
3409
+ x = primary_keys[ta]
3410
+ if x.is_a?(Array)
3411
+ unless x == []
3412
+ x = x.map{|ca| h[ca]}
3413
+ x if x.all?
3414
+ end
3415
+ else
3416
+ h[x]
3417
+ end
3418
+ end
3419
+
3420
+ # If the result set is the result of a cartesian product, then it is possible that
3421
+ # there are multiple records for each association when there should only be one.
3422
+ # In that case, for each object in all associations loaded via +eager_graph+, run
3423
+ # uniq! on the association to make sure no duplicate records show up.
3424
+ # Note that this can cause legitimate duplicate records to be removed.
3425
+ def post_process(records, dependency_map)
3426
+ records.each do |record|
3427
+ dependency_map.each do |ta, deps|
3428
+ assoc_name = alias_map[ta]
3429
+ list = record.public_send(assoc_name)
3430
+ rec_list = if type_map[ta]
3431
+ list.uniq!
3432
+ if lo = limit_map[ta]
3433
+ limit, offset = lo
3434
+ offset ||= 0
3435
+ if type_map[ta] == :offset
3436
+ [record.associations[assoc_name] = list[offset]]
3437
+ else
3438
+ list.replace(list[(offset)..(limit ? (offset)+limit-1 : -1)] || [])
3439
+ end
3440
+ else
3441
+ list
3442
+ end
3443
+ elsif list
3444
+ [list]
3445
+ else
3446
+ []
3447
+ end
3448
+ record.send(:run_association_callbacks, reflection_map[ta], :after_load, list) if after_load_map[ta]
3449
+ post_process(rec_list, deps) if !rec_list.empty? && !deps.empty?
3450
+ end
3451
+ end
3452
+ end
3453
+ end
3454
+ end
3455
+ end
3456
+ end