fucknumber 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/README.md +36 -0
  7. data/Rakefile +6 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +8 -0
  10. data/fucknumber.gemspec +29 -0
  11. data/lib/fucknumber.rb +12 -0
  12. data/lib/fucknumber/version.rb +3 -0
  13. data/vendor/bundle/bin/htmldiff +24 -0
  14. data/vendor/bundle/bin/ldiff +24 -0
  15. data/vendor/bundle/bin/rake +22 -0
  16. data/vendor/bundle/bin/rspec +22 -0
  17. data/vendor/bundle/build_info/diff-lcs-1.3.info +1 -0
  18. data/vendor/bundle/build_info/rake-10.5.0.info +1 -0
  19. data/vendor/bundle/build_info/rspec-3.5.0.info +1 -0
  20. data/vendor/bundle/build_info/rspec-core-3.5.4.info +1 -0
  21. data/vendor/bundle/build_info/rspec-expectations-3.5.0.info +1 -0
  22. data/vendor/bundle/build_info/rspec-mocks-3.5.0.info +1 -0
  23. data/vendor/bundle/build_info/rspec-support-3.5.0.info +1 -0
  24. data/vendor/bundle/cache/diff-lcs-1.3.gem +0 -0
  25. data/vendor/bundle/cache/rake-10.5.0.gem +0 -0
  26. data/vendor/bundle/cache/rspec-3.5.0.gem +0 -0
  27. data/vendor/bundle/cache/rspec-core-3.5.4.gem +0 -0
  28. data/vendor/bundle/cache/rspec-expectations-3.5.0.gem +0 -0
  29. data/vendor/bundle/cache/rspec-mocks-3.5.0.gem +0 -0
  30. data/vendor/bundle/cache/rspec-support-3.5.0.gem +0 -0
  31. data/vendor/bundle/gems/diff-lcs-1.3/.rspec +1 -0
  32. data/vendor/bundle/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  33. data/vendor/bundle/gems/diff-lcs-1.3/Contributing.md +83 -0
  34. data/vendor/bundle/gems/diff-lcs-1.3/History.md +220 -0
  35. data/vendor/bundle/gems/diff-lcs-1.3/License.md +39 -0
  36. data/vendor/bundle/gems/diff-lcs-1.3/Manifest.txt +37 -0
  37. data/vendor/bundle/gems/diff-lcs-1.3/README.rdoc +84 -0
  38. data/vendor/bundle/gems/diff-lcs-1.3/Rakefile +57 -0
  39. data/vendor/bundle/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  40. data/vendor/bundle/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  41. data/vendor/bundle/gems/diff-lcs-1.3/bin/ldiff +6 -0
  42. data/vendor/bundle/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  43. data/vendor/bundle/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  44. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  45. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  46. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  47. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  48. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  49. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  50. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  51. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  52. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  53. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  54. data/vendor/bundle/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  55. data/vendor/bundle/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  56. data/vendor/bundle/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  57. data/vendor/bundle/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  58. data/vendor/bundle/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  59. data/vendor/bundle/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  60. data/vendor/bundle/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  61. data/vendor/bundle/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  62. data/vendor/bundle/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  63. data/vendor/bundle/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  64. data/vendor/bundle/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  65. data/vendor/bundle/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  66. data/vendor/bundle/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  67. data/vendor/bundle/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  68. data/vendor/bundle/gems/rake-10.5.0/.autotest +7 -0
  69. data/vendor/bundle/gems/rake-10.5.0/.rubocop.yml +27 -0
  70. data/vendor/bundle/gems/rake-10.5.0/.togglerc +7 -0
  71. data/vendor/bundle/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  72. data/vendor/bundle/gems/rake-10.5.0/History.rdoc +659 -0
  73. data/vendor/bundle/gems/rake-10.5.0/MIT-LICENSE +21 -0
  74. data/vendor/bundle/gems/rake-10.5.0/Manifest.txt +166 -0
  75. data/vendor/bundle/gems/rake-10.5.0/README.rdoc +139 -0
  76. data/vendor/bundle/gems/rake-10.5.0/Rakefile +81 -0
  77. data/vendor/bundle/gems/rake-10.5.0/bin/rake +33 -0
  78. data/vendor/bundle/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  79. data/vendor/bundle/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  80. data/vendor/bundle/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  81. data/vendor/bundle/gems/rake-10.5.0/doc/example/a.c +6 -0
  82. data/vendor/bundle/gems/rake-10.5.0/doc/example/b.c +6 -0
  83. data/vendor/bundle/gems/rake-10.5.0/doc/example/main.c +11 -0
  84. data/vendor/bundle/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  85. data/vendor/bundle/gems/rake-10.5.0/doc/jamis.rb +591 -0
  86. data/vendor/bundle/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  87. data/vendor/bundle/gems/rake-10.5.0/doc/rake.1 +141 -0
  88. data/vendor/bundle/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  89. data/vendor/bundle/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  90. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  91. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  92. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  93. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  94. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  95. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  96. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  97. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  98. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  99. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  100. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  101. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  102. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  103. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  104. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  105. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  106. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  107. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  108. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  109. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  110. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  111. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  112. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  113. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  114. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  115. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  116. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  117. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  118. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  119. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  120. data/vendor/bundle/gems/rake-10.5.0/lib/rake.rb +79 -0
  121. data/vendor/bundle/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  122. data/vendor/bundle/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  123. data/vendor/bundle/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  124. data/vendor/bundle/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  125. data/vendor/bundle/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  126. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  127. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  128. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  129. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  130. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  131. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  132. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  133. data/vendor/bundle/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  134. data/vendor/bundle/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  135. data/vendor/bundle/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  136. data/vendor/bundle/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  137. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  138. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  139. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  140. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  141. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  142. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  143. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  144. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  145. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  146. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  147. data/vendor/bundle/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  148. data/vendor/bundle/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  149. data/vendor/bundle/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  150. data/vendor/bundle/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  151. data/vendor/bundle/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  152. data/vendor/bundle/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  153. data/vendor/bundle/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  154. data/vendor/bundle/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  155. data/vendor/bundle/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  156. data/vendor/bundle/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  157. data/vendor/bundle/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  158. data/vendor/bundle/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  159. data/vendor/bundle/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  160. data/vendor/bundle/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  161. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  162. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  163. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  164. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  165. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  166. data/vendor/bundle/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  167. data/vendor/bundle/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  168. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  169. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  170. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  171. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  172. data/vendor/bundle/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  173. data/vendor/bundle/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  174. data/vendor/bundle/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  175. data/vendor/bundle/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  176. data/vendor/bundle/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  177. data/vendor/bundle/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  178. data/vendor/bundle/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  179. data/vendor/bundle/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  180. data/vendor/bundle/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  181. data/vendor/bundle/gems/rake-10.5.0/test/file_creation.rb +34 -0
  182. data/vendor/bundle/gems/rake-10.5.0/test/helper.rb +129 -0
  183. data/vendor/bundle/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  184. data/vendor/bundle/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  185. data/vendor/bundle/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  186. data/vendor/bundle/gems/rake-10.5.0/test/test_rake.rb +40 -0
  187. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  188. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  189. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  190. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  191. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  192. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  193. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  194. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  195. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  196. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  197. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  198. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  199. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  200. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  201. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  202. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  203. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  204. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  205. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  206. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  207. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  208. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  209. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  210. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  211. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  212. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  213. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  214. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  215. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  216. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  217. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  218. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  219. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  220. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  221. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  222. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  223. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  224. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  225. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  226. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  227. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  228. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  229. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  230. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  231. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  232. data/vendor/bundle/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  233. data/vendor/bundle/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  234. data/vendor/bundle/gems/rspec-3.5.0/LICENSE.md +27 -0
  235. data/vendor/bundle/gems/rspec-3.5.0/README.md +39 -0
  236. data/vendor/bundle/gems/rspec-3.5.0/lib/rspec.rb +3 -0
  237. data/vendor/bundle/gems/rspec-3.5.0/lib/rspec/version.rb +5 -0
  238. data/vendor/bundle/gems/rspec-core-3.5.4/.document +5 -0
  239. data/vendor/bundle/gems/rspec-core-3.5.4/.yardopts +8 -0
  240. data/vendor/bundle/gems/rspec-core-3.5.4/Changelog.md +2102 -0
  241. data/vendor/bundle/gems/rspec-core-3.5.4/LICENSE.md +26 -0
  242. data/vendor/bundle/gems/rspec-core-3.5.4/README.md +384 -0
  243. data/vendor/bundle/gems/rspec-core-3.5.4/exe/rspec +4 -0
  244. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/autorun.rb +3 -0
  245. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core.rb +185 -0
  246. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/backtrace_formatter.rb +65 -0
  247. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/bisect/coordinator.rb +66 -0
  248. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  249. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/bisect/runner.rb +169 -0
  250. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/bisect/server.rb +65 -0
  251. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb +2100 -0
  252. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/configuration_options.rb +194 -0
  253. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/drb.rb +111 -0
  254. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/dsl.rb +98 -0
  255. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/example.rb +649 -0
  256. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb +879 -0
  257. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/example_status_persister.rb +235 -0
  258. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/filter_manager.rb +231 -0
  259. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/flat_map.rb +20 -0
  260. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters.rb +255 -0
  261. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/base_formatter.rb +70 -0
  262. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/base_text_formatter.rb +77 -0
  263. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
  264. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  265. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/console_codes.rb +65 -0
  266. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  267. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/documentation_formatter.rb +69 -0
  268. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/exception_presenter.rb +491 -0
  269. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  270. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/helpers.rb +110 -0
  271. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/html_formatter.rb +151 -0
  272. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/html_printer.rb +414 -0
  273. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/html_snippet_extractor.rb +116 -0
  274. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/json_formatter.rb +96 -0
  275. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  276. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/progress_formatter.rb +28 -0
  277. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/protocol.rb +181 -0
  278. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/formatters/snippet_extractor.rb +136 -0
  279. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/hooks.rb +624 -0
  280. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/invocations.rb +67 -0
  281. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/memoized_helpers.rb +532 -0
  282. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/metadata.rb +499 -0
  283. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/metadata_filter.rb +243 -0
  284. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  285. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  286. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  287. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/mocking_adapters/null.rb +14 -0
  288. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  289. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  290. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/notifications.rb +498 -0
  291. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/option_parser.rb +289 -0
  292. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/ordering.rb +158 -0
  293. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/pending.rb +165 -0
  294. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/profiler.rb +32 -0
  295. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/project_initializer.rb +48 -0
  296. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/project_initializer/.rspec +2 -0
  297. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/project_initializer/spec/spec_helper.rb +103 -0
  298. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/rake_task.rb +168 -0
  299. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/reporter.rb +248 -0
  300. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/ruby_project.rb +53 -0
  301. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb +188 -0
  302. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/sandbox.rb +37 -0
  303. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/set.rb +49 -0
  304. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/shared_context.rb +55 -0
  305. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/shared_example_group.rb +247 -0
  306. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/shell_escape.rb +49 -0
  307. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/source.rb +86 -0
  308. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/source/location.rb +13 -0
  309. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/source/node.rb +93 -0
  310. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/source/syntax_highlighter.rb +71 -0
  311. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/source/token.rb +87 -0
  312. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  313. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/version.rb +9 -0
  314. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/warnings.rb +40 -0
  315. data/vendor/bundle/gems/rspec-core-3.5.4/lib/rspec/core/world.rb +256 -0
  316. data/vendor/bundle/gems/rspec-expectations-3.5.0/.document +5 -0
  317. data/vendor/bundle/gems/rspec-expectations-3.5.0/.yardopts +6 -0
  318. data/vendor/bundle/gems/rspec-expectations-3.5.0/Changelog.md +1034 -0
  319. data/vendor/bundle/gems/rspec-expectations-3.5.0/LICENSE.md +25 -0
  320. data/vendor/bundle/gems/rspec-expectations-3.5.0/README.md +303 -0
  321. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations.rb +81 -0
  322. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/configuration.rb +201 -0
  323. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/expectation_target.rb +127 -0
  324. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/fail_with.rb +31 -0
  325. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  326. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/handler.rb +170 -0
  327. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  328. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/syntax.rb +132 -0
  329. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/expectations/version.rb +8 -0
  330. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers.rb +1038 -0
  331. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  332. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in.rb +52 -0
  333. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/all.rb +85 -0
  334. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/base_matcher.rb +181 -0
  335. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/be.rb +288 -0
  336. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  337. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  338. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  339. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  340. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/change.rb +354 -0
  341. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  342. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/contain_exactly.rb +286 -0
  343. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  344. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  345. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  346. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  347. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/exist.rb +86 -0
  348. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/has.rb +103 -0
  349. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  350. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/include.rb +143 -0
  351. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/match.rb +106 -0
  352. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  353. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/output.rb +200 -0
  354. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  355. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  356. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/satisfy.rb +37 -0
  357. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  358. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  359. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/built_in/yield.rb +419 -0
  360. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/composable.rb +185 -0
  361. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/dsl.rb +466 -0
  362. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  363. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  364. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  365. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  366. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  367. data/vendor/bundle/gems/rspec-expectations-3.5.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  368. data/vendor/bundle/gems/rspec-mocks-3.5.0/.document +5 -0
  369. data/vendor/bundle/gems/rspec-mocks-3.5.0/.yardopts +6 -0
  370. data/vendor/bundle/gems/rspec-mocks-3.5.0/Changelog.md +1043 -0
  371. data/vendor/bundle/gems/rspec-mocks-3.5.0/LICENSE.md +25 -0
  372. data/vendor/bundle/gems/rspec-mocks-3.5.0/README.md +445 -0
  373. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks.rb +130 -0
  374. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance.rb +11 -0
  375. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  376. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  377. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
  378. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
  379. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  380. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  381. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  382. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/stub_chain.rb +47 -0
  383. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +28 -0
  384. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  385. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  386. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/configuration.rb +205 -0
  387. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/error_generator.rb +369 -0
  388. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/example_methods.rb +422 -0
  389. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/instance_method_stasher.rb +135 -0
  390. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  391. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  392. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
  393. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  394. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  395. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  396. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/message_chain.rb +87 -0
  397. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/message_expectation.rb +740 -0
  398. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/method_double.rb +287 -0
  399. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/method_reference.rb +202 -0
  400. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  401. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/mutate_const.rb +335 -0
  402. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/object_reference.rb +149 -0
  403. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/order_group.rb +81 -0
  404. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/proxy.rb +489 -0
  405. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/space.rb +238 -0
  406. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/standalone.rb +3 -0
  407. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/syntax.rb +325 -0
  408. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/targets.rb +124 -0
  409. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/test_double.rb +170 -0
  410. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/verifying_double.rb +129 -0
  411. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  412. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/verifying_proxy.rb +213 -0
  413. data/vendor/bundle/gems/rspec-mocks-3.5.0/lib/rspec/mocks/version.rb +9 -0
  414. data/vendor/bundle/gems/rspec-support-3.5.0/Changelog.md +192 -0
  415. data/vendor/bundle/gems/rspec-support-3.5.0/LICENSE.md +23 -0
  416. data/vendor/bundle/gems/rspec-support-3.5.0/README.md +40 -0
  417. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support.rb +139 -0
  418. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/caller_filter.rb +83 -0
  419. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/comparable_version.rb +46 -0
  420. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/differ.rb +215 -0
  421. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/directory_maker.rb +63 -0
  422. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/encoded_string.rb +165 -0
  423. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  424. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/hunk_generator.rb +47 -0
  425. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/matcher_definition.rb +42 -0
  426. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/method_signature_verifier.rb +392 -0
  427. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/mutex.rb +73 -0
  428. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/object_formatter.rb +249 -0
  429. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  430. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  431. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/ruby_features.rb +149 -0
  432. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec.rb +81 -0
  433. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  434. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  435. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/in_sub_process.rb +52 -0
  436. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  437. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/shell_out.rb +82 -0
  438. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  439. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  440. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  441. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  442. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/version.rb +7 -0
  443. data/vendor/bundle/gems/rspec-support-3.5.0/lib/rspec/support/warnings.rb +39 -0
  444. data/vendor/bundle/specifications/diff-lcs-1.3.gemspec +61 -0
  445. data/vendor/bundle/specifications/rake-10.5.0.gemspec +43 -0
  446. data/vendor/bundle/specifications/rspec-3.5.0.gemspec +42 -0
  447. data/vendor/bundle/specifications/rspec-core-3.5.4.gemspec +62 -0
  448. data/vendor/bundle/specifications/rspec-expectations-3.5.0.gemspec +50 -0
  449. data/vendor/bundle/specifications/rspec-mocks-3.5.0.gemspec +50 -0
  450. data/vendor/bundle/specifications/rspec-support-3.5.0.gemspec +41 -0
  451. metadata +534 -0
@@ -0,0 +1,422 @@
1
+ RSpec::Support.require_rspec_mocks 'object_reference'
2
+
3
+ module RSpec
4
+ module Mocks
5
+ # Contains methods intended to be used from within code examples.
6
+ # Mix this in to your test context (such as a test framework base class)
7
+ # to use rspec-mocks with your test framework. If you're using rspec-core,
8
+ # it'll take care of doing this for you.
9
+ module ExampleMethods
10
+ include RSpec::Mocks::ArgumentMatchers
11
+
12
+ # @overload double()
13
+ # @overload double(name)
14
+ # @param name [String/Symbol] name or description to be used in failure messages
15
+ # @overload double(stubs)
16
+ # @param stubs (Hash) hash of message/return-value pairs
17
+ # @overload double(name, stubs)
18
+ # @param name [String/Symbol] name or description to be used in failure messages
19
+ # @param stubs (Hash) hash of message/return-value pairs
20
+ # @return (Double)
21
+ #
22
+ # Constructs an instance of [RSpec::Mocks::Double](RSpec::Mocks::Double) configured
23
+ # with an optional name, used for reporting in failure messages, and an optional
24
+ # hash of message/return-value pairs.
25
+ #
26
+ # @example
27
+ # book = double("book", :title => "The RSpec Book")
28
+ # book.title #=> "The RSpec Book"
29
+ #
30
+ # card = double("card", :suit => "Spades", :rank => "A")
31
+ # card.suit #=> "Spades"
32
+ # card.rank #=> "A"
33
+ #
34
+ def double(*args)
35
+ ExampleMethods.declare_double(Double, *args)
36
+ end
37
+
38
+ # @overload instance_double(doubled_class)
39
+ # @param doubled_class [String, Class]
40
+ # @overload instance_double(doubled_class, name)
41
+ # @param doubled_class [String, Class]
42
+ # @param name [String/Symbol] name or description to be used in failure messages
43
+ # @overload instance_double(doubled_class, stubs)
44
+ # @param doubled_class [String, Class]
45
+ # @param stubs [Hash] hash of message/return-value pairs
46
+ # @overload instance_double(doubled_class, name, stubs)
47
+ # @param doubled_class [String, Class]
48
+ # @param name [String/Symbol] name or description to be used in failure messages
49
+ # @param stubs [Hash] hash of message/return-value pairs
50
+ # @return InstanceVerifyingDouble
51
+ #
52
+ # Constructs a test double against a specific class. If the given class
53
+ # name has been loaded, only instance methods defined on the class are
54
+ # allowed to be stubbed. In all other ways it behaves like a
55
+ # [double](double).
56
+ def instance_double(doubled_class, *args)
57
+ ref = ObjectReference.for(doubled_class)
58
+ ExampleMethods.declare_verifying_double(InstanceVerifyingDouble, ref, *args)
59
+ end
60
+
61
+ # @overload class_double(doubled_class)
62
+ # @param doubled_class [String, Module]
63
+ # @overload class_double(doubled_class, name)
64
+ # @param doubled_class [String, Module]
65
+ # @param name [String/Symbol] name or description to be used in failure messages
66
+ # @overload class_double(doubled_class, stubs)
67
+ # @param doubled_class [String, Module]
68
+ # @param stubs [Hash] hash of message/return-value pairs
69
+ # @overload class_double(doubled_class, name, stubs)
70
+ # @param doubled_class [String, Module]
71
+ # @param name [String/Symbol] name or description to be used in failure messages
72
+ # @param stubs [Hash] hash of message/return-value pairs
73
+ # @return ClassVerifyingDouble
74
+ #
75
+ # Constructs a test double against a specific class. If the given class
76
+ # name has been loaded, only class methods defined on the class are
77
+ # allowed to be stubbed. In all other ways it behaves like a
78
+ # [double](double).
79
+ def class_double(doubled_class, *args)
80
+ ref = ObjectReference.for(doubled_class)
81
+ ExampleMethods.declare_verifying_double(ClassVerifyingDouble, ref, *args)
82
+ end
83
+
84
+ # @overload object_double(object_or_name)
85
+ # @param object_or_name [String, Object]
86
+ # @overload object_double(object_or_name, name)
87
+ # @param object_or_name [String, Object]
88
+ # @param name [String/Symbol] name or description to be used in failure messages
89
+ # @overload object_double(object_or_name, stubs)
90
+ # @param object_or_name [String, Object]
91
+ # @param stubs [Hash] hash of message/return-value pairs
92
+ # @overload object_double(object_or_name, name, stubs)
93
+ # @param object_or_name [String, Object]
94
+ # @param name [String/Symbol] name or description to be used in failure messages
95
+ # @param stubs [Hash] hash of message/return-value pairs
96
+ # @return ObjectVerifyingDouble
97
+ #
98
+ # Constructs a test double against a specific object. Only the methods
99
+ # the object responds to are allowed to be stubbed. If a String argument
100
+ # is provided, it is assumed to reference a constant object which is used
101
+ # for verification. In all other ways it behaves like a [double](double).
102
+ def object_double(object_or_name, *args)
103
+ ref = ObjectReference.for(object_or_name, :allow_direct_object_refs)
104
+ ExampleMethods.declare_verifying_double(ObjectVerifyingDouble, ref, *args)
105
+ end
106
+
107
+ # @overload spy()
108
+ # @overload spy(name)
109
+ # @param name [String/Symbol] name or description to be used in failure messages
110
+ # @overload spy(stubs)
111
+ # @param stubs (Hash) hash of message/return-value pairs
112
+ # @overload spy(name, stubs)
113
+ # @param name [String/Symbol] name or description to be used in failure messages
114
+ # @param stubs (Hash) hash of message/return-value pairs
115
+ # @return (Double)
116
+ #
117
+ # Constructs a test double that is optimized for use with
118
+ # `have_received`. With a normal double one has to stub methods in order
119
+ # to be able to spy them. A spy automatically spies on all methods.
120
+ def spy(*args)
121
+ double(*args).as_null_object
122
+ end
123
+
124
+ # @overload instance_spy(doubled_class)
125
+ # @param doubled_class [String, Class]
126
+ # @overload instance_spy(doubled_class, name)
127
+ # @param doubled_class [String, Class]
128
+ # @param name [String/Symbol] name or description to be used in failure messages
129
+ # @overload instance_spy(doubled_class, stubs)
130
+ # @param doubled_class [String, Class]
131
+ # @param stubs [Hash] hash of message/return-value pairs
132
+ # @overload instance_spy(doubled_class, name, stubs)
133
+ # @param doubled_class [String, Class]
134
+ # @param name [String/Symbol] name or description to be used in failure messages
135
+ # @param stubs [Hash] hash of message/return-value pairs
136
+ # @return InstanceVerifyingDouble
137
+ #
138
+ # Constructs a test double that is optimized for use with `have_received`
139
+ # against a specific class. If the given class name has been loaded, only
140
+ # instance methods defined on the class are allowed to be stubbed. With
141
+ # a normal double one has to stub methods in order to be able to spy
142
+ # them. An instance_spy automatically spies on all instance methods to
143
+ # which the class responds.
144
+ def instance_spy(*args)
145
+ instance_double(*args).as_null_object
146
+ end
147
+
148
+ # @overload object_spy(object_or_name)
149
+ # @param object_or_name [String, Object]
150
+ # @overload object_spy(object_or_name, name)
151
+ # @param object_or_name [String, Class]
152
+ # @param name [String/Symbol] name or description to be used in failure messages
153
+ # @overload object_spy(object_or_name, stubs)
154
+ # @param object_or_name [String, Object]
155
+ # @param stubs [Hash] hash of message/return-value pairs
156
+ # @overload object_spy(object_or_name, name, stubs)
157
+ # @param object_or_name [String, Class]
158
+ # @param name [String/Symbol] name or description to be used in failure messages
159
+ # @param stubs [Hash] hash of message/return-value pairs
160
+ # @return ObjectVerifyingDouble
161
+ #
162
+ # Constructs a test double that is optimized for use with `have_received`
163
+ # against a specific object. Only instance methods defined on the object
164
+ # are allowed to be stubbed. With a normal double one has to stub
165
+ # methods in order to be able to spy them. An object_spy automatically
166
+ # spies on all methods to which the object responds.
167
+ def object_spy(*args)
168
+ object_double(*args).as_null_object
169
+ end
170
+
171
+ # @overload class_spy(doubled_class)
172
+ # @param doubled_class [String, Module]
173
+ # @overload class_spy(doubled_class, name)
174
+ # @param doubled_class [String, Class]
175
+ # @param name [String/Symbol] name or description to be used in failure messages
176
+ # @overload class_spy(doubled_class, stubs)
177
+ # @param doubled_class [String, Module]
178
+ # @param stubs [Hash] hash of message/return-value pairs
179
+ # @overload class_spy(doubled_class, name, stubs)
180
+ # @param doubled_class [String, Class]
181
+ # @param name [String/Symbol] name or description to be used in failure messages
182
+ # @param stubs [Hash] hash of message/return-value pairs
183
+ # @return ClassVerifyingDouble
184
+ #
185
+ # Constructs a test double that is optimized for use with `have_received`
186
+ # against a specific class. If the given class name has been loaded,
187
+ # only class methods defined on the class are allowed to be stubbed.
188
+ # With a normal double one has to stub methods in order to be able to spy
189
+ # them. An class_spy automatically spies on all class methods to which the
190
+ # class responds.
191
+ def class_spy(*args)
192
+ class_double(*args).as_null_object
193
+ end
194
+
195
+ # Disables warning messages about expectations being set on nil.
196
+ #
197
+ # By default warning messages are issued when expectations are set on
198
+ # nil. This is to prevent false-positives and to catch potential bugs
199
+ # early on.
200
+ # @deprecated Use {RSpec::Mocks::Configuration#allow_message_expectations_on_nil} instead.
201
+ def allow_message_expectations_on_nil
202
+ RSpec::Mocks.space.proxy_for(nil).warn_about_expectations = false
203
+ end
204
+
205
+ # Stubs the named constant with the given value.
206
+ # Like method stubs, the constant will be restored
207
+ # to its original value (or lack of one, if it was
208
+ # undefined) when the example completes.
209
+ #
210
+ # @param constant_name [String] The fully qualified name of the constant. The current
211
+ # constant scoping at the point of call is not considered.
212
+ # @param value [Object] The value to make the constant refer to. When the
213
+ # example completes, the constant will be restored to its prior state.
214
+ # @param options [Hash] Stubbing options.
215
+ # @option options :transfer_nested_constants [Boolean, Array<Symbol>] Determines
216
+ # what nested constants, if any, will be transferred from the original value
217
+ # of the constant to the new value of the constant. This only works if both
218
+ # the original and new values are modules (or classes).
219
+ # @return [Object] the stubbed value of the constant
220
+ #
221
+ # @example
222
+ # stub_const("MyClass", Class.new) # => Replaces (or defines) MyClass with a new class object.
223
+ # stub_const("SomeModel::PER_PAGE", 5) # => Sets SomeModel::PER_PAGE to 5.
224
+ #
225
+ # class CardDeck
226
+ # SUITS = [:Spades, :Diamonds, :Clubs, :Hearts]
227
+ # NUM_CARDS = 52
228
+ # end
229
+ #
230
+ # stub_const("CardDeck", Class.new)
231
+ # CardDeck::SUITS # => uninitialized constant error
232
+ # CardDeck::NUM_CARDS # => uninitialized constant error
233
+ #
234
+ # stub_const("CardDeck", Class.new, :transfer_nested_constants => true)
235
+ # CardDeck::SUITS # => our suits array
236
+ # CardDeck::NUM_CARDS # => 52
237
+ #
238
+ # stub_const("CardDeck", Class.new, :transfer_nested_constants => [:SUITS])
239
+ # CardDeck::SUITS # => our suits array
240
+ # CardDeck::NUM_CARDS # => uninitialized constant error
241
+ def stub_const(constant_name, value, options={})
242
+ ConstantMutator.stub(constant_name, value, options)
243
+ end
244
+
245
+ # Hides the named constant with the given value. The constant will be
246
+ # undefined for the duration of the test.
247
+ #
248
+ # Like method stubs, the constant will be restored to its original value
249
+ # when the example completes.
250
+ #
251
+ # @param constant_name [String] The fully qualified name of the constant.
252
+ # The current constant scoping at the point of call is not considered.
253
+ #
254
+ # @example
255
+ # hide_const("MyClass") # => MyClass is now an undefined constant
256
+ def hide_const(constant_name)
257
+ ConstantMutator.hide(constant_name)
258
+ end
259
+
260
+ # Verifies that the given object received the expected message during the
261
+ # course of the test. On a spy objects or as null object doubles this
262
+ # works for any method, on other objects the method must have
263
+ # been stubbed beforehand in order for messages to be verified.
264
+ #
265
+ # Stubbing and verifying messages received in this way implements the
266
+ # Test Spy pattern.
267
+ #
268
+ # @param method_name [Symbol] name of the method expected to have been
269
+ # called.
270
+ #
271
+ # @example
272
+ # invitation = double('invitation', accept: true)
273
+ # user.accept_invitation(invitation)
274
+ # expect(invitation).to have_received(:accept)
275
+ #
276
+ # # You can also use most message expectations:
277
+ # expect(invitation).to have_received(:accept).with(mailer).once
278
+ #
279
+ # @note `have_received(...).with(...)` is unable to work properly when
280
+ # passed arguments are mutated after the spy records the received message.
281
+ def have_received(method_name, &block)
282
+ Matchers::HaveReceived.new(method_name, &block)
283
+ end
284
+
285
+ # @method expect
286
+ # Used to wrap an object in preparation for setting a mock expectation
287
+ # on it.
288
+ #
289
+ # @example
290
+ # expect(obj).to receive(:foo).with(5).and_return(:return_value)
291
+ #
292
+ # @note This method is usually provided by rspec-expectations. However,
293
+ # if you use rspec-mocks without rspec-expectations, there's a definition
294
+ # of it that is made available here. If you disable the `:expect` syntax
295
+ # this method will be undefined.
296
+
297
+ # @method allow
298
+ # Used to wrap an object in preparation for stubbing a method
299
+ # on it.
300
+ #
301
+ # @example
302
+ # allow(dbl).to receive(:foo).with(5).and_return(:return_value)
303
+ #
304
+ # @note If you disable the `:expect` syntax this method will be undefined.
305
+
306
+ # @method expect_any_instance_of
307
+ # Used to wrap a class in preparation for setting a mock expectation
308
+ # on instances of it.
309
+ #
310
+ # @example
311
+ # expect_any_instance_of(MyClass).to receive(:foo)
312
+ #
313
+ # @note If you disable the `:expect` syntax this method will be undefined.
314
+
315
+ # @method allow_any_instance_of
316
+ # Used to wrap a class in preparation for stubbing a method
317
+ # on instances of it.
318
+ #
319
+ # @example
320
+ # allow_any_instance_of(MyClass).to receive(:foo)
321
+ #
322
+ # @note This is only available when you have enabled the `expect` syntax.
323
+
324
+ # @method receive
325
+ # Used to specify a message that you expect or allow an object
326
+ # to receive. The object returned by `receive` supports the same
327
+ # fluent interface that `should_receive` and `stub` have always
328
+ # supported, allowing you to constrain the arguments or number of
329
+ # times, and configure how the object should respond to the message.
330
+ #
331
+ # @example
332
+ # expect(obj).to receive(:hello).with("world").exactly(3).times
333
+ #
334
+ # @note If you disable the `:expect` syntax this method will be undefined.
335
+
336
+ # @method receive_messages
337
+ # Shorthand syntax used to setup message(s), and their return value(s),
338
+ # that you expect or allow an object to receive. The method takes a hash
339
+ # of messages and their respective return values. Unlike with `receive`,
340
+ # you cannot apply further customizations using a block or the fluent
341
+ # interface.
342
+ #
343
+ # @example
344
+ # allow(obj).to receive_messages(:speak => "Hello World")
345
+ # allow(obj).to receive_messages(:speak => "Hello", :meow => "Meow")
346
+ #
347
+ # @note If you disable the `:expect` syntax this method will be undefined.
348
+
349
+ # @method receive_message_chain
350
+ # @overload receive_message_chain(method1, method2)
351
+ # @overload receive_message_chain("method1.method2")
352
+ # @overload receive_message_chain(method1, method_to_value_hash)
353
+ #
354
+ # stubs/mocks a chain of messages on an object or test double.
355
+ #
356
+ # ## Warning:
357
+ #
358
+ # Chains can be arbitrarily long, which makes it quite painless to
359
+ # violate the Law of Demeter in violent ways, so you should consider any
360
+ # use of `receive_message_chain` a code smell. Even though not all code smells
361
+ # indicate real problems (think fluent interfaces), `receive_message_chain` still
362
+ # results in brittle examples. For example, if you write
363
+ # `allow(foo).to receive_message_chain(:bar, :baz => 37)` in a spec and then the
364
+ # implementation calls `foo.baz.bar`, the stub will not work.
365
+ #
366
+ # @example
367
+ # allow(double).to receive_message_chain("foo.bar") { :baz }
368
+ # allow(double).to receive_message_chain(:foo, :bar => :baz)
369
+ # allow(double).to receive_message_chain(:foo, :bar) { :baz }
370
+ #
371
+ # # Given any of ^^ these three forms ^^:
372
+ # double.foo.bar # => :baz
373
+ #
374
+ # # Common use in Rails/ActiveRecord:
375
+ # allow(Article).to receive_message_chain("recent.published") { [Article.new] }
376
+ #
377
+ # @note If you disable the `:expect` syntax this method will be undefined.
378
+
379
+ # @private
380
+ def self.included(klass)
381
+ klass.class_exec do
382
+ # This gets mixed in so that if `RSpec::Matchers` is included in
383
+ # `klass` later, it's definition of `expect` will take precedence.
384
+ include ExpectHost unless method_defined?(:expect)
385
+ end
386
+ end
387
+
388
+ # @private
389
+ def self.extended(object)
390
+ # This gets extended in so that if `RSpec::Matchers` is included in
391
+ # `klass` later, it's definition of `expect` will take precedence.
392
+ object.extend ExpectHost unless object.respond_to?(:expect)
393
+ end
394
+
395
+ # @private
396
+ def self.declare_verifying_double(type, ref, *args)
397
+ if RSpec::Mocks.configuration.verify_doubled_constant_names? &&
398
+ !ref.defined?
399
+
400
+ RSpec::Mocks.error_generator.raise_verifying_double_not_defined_error(ref)
401
+ end
402
+
403
+ RSpec::Mocks.configuration.verifying_double_callbacks.each do |block|
404
+ block.call(ref)
405
+ end
406
+
407
+ declare_double(type, ref, *args)
408
+ end
409
+
410
+ # @private
411
+ def self.declare_double(type, *args)
412
+ args << {} unless Hash === args.last
413
+ type.new(*args)
414
+ end
415
+
416
+ # This module exists to host the `expect` method for cases where
417
+ # rspec-mocks is used w/o rspec-expectations.
418
+ module ExpectHost
419
+ end
420
+ end
421
+ end
422
+ end
@@ -0,0 +1,135 @@
1
+ module RSpec
2
+ module Mocks
3
+ # @private
4
+ class InstanceMethodStasher
5
+ def initialize(object, method)
6
+ @object = object
7
+ @method = method
8
+ @klass = (class << object; self; end)
9
+
10
+ @original_method = nil
11
+ @method_is_stashed = false
12
+ end
13
+
14
+ attr_reader :original_method
15
+
16
+ if RUBY_VERSION.to_f < 1.9
17
+ # @private
18
+ def method_is_stashed?
19
+ @method_is_stashed
20
+ end
21
+
22
+ # @private
23
+ def stash
24
+ return if !method_defined_directly_on_klass? || @method_is_stashed
25
+
26
+ @klass.__send__(:alias_method, stashed_method_name, @method)
27
+ @method_is_stashed = true
28
+ end
29
+
30
+ # @private
31
+ def stashed_method_name
32
+ "obfuscated_by_rspec_mocks__#{@method}"
33
+ end
34
+
35
+ # @private
36
+ def restore
37
+ return unless @method_is_stashed
38
+
39
+ if @klass.__send__(:method_defined?, @method)
40
+ @klass.__send__(:undef_method, @method)
41
+ end
42
+ @klass.__send__(:alias_method, @method, stashed_method_name)
43
+ @klass.__send__(:remove_method, stashed_method_name)
44
+ @method_is_stashed = false
45
+ end
46
+ else
47
+
48
+ # @private
49
+ def method_is_stashed?
50
+ !!@original_method
51
+ end
52
+
53
+ # @private
54
+ def stash
55
+ return unless method_defined_directly_on_klass?
56
+ @original_method ||= ::RSpec::Support.method_handle_for(@object, @method)
57
+ @klass.__send__(:undef_method, @method)
58
+ end
59
+
60
+ # @private
61
+ def restore
62
+ return unless @original_method
63
+
64
+ if @klass.__send__(:method_defined?, @method)
65
+ @klass.__send__(:undef_method, @method)
66
+ end
67
+
68
+ handle_restoration_failures do
69
+ @klass.__send__(:define_method, @method, @original_method)
70
+ end
71
+
72
+ @original_method = nil
73
+ end
74
+ end
75
+
76
+ if RUBY_DESCRIPTION.include?('2.0.0p247') || RUBY_DESCRIPTION.include?('2.0.0p195')
77
+ # ruby 2.0.0-p247 and 2.0.0-p195 both have a bug that we can't work around :(.
78
+ # https://bugs.ruby-lang.org/issues/8686
79
+ def handle_restoration_failures
80
+ yield
81
+ rescue TypeError
82
+ RSpec.warn_with(
83
+ "RSpec failed to properly restore a partial double (#{@object.inspect}) " \
84
+ "to its original state due to a known bug in MRI 2.0.0-p195 & p247 " \
85
+ "(https://bugs.ruby-lang.org/issues/8686). This object may remain " \
86
+ "screwed up for the rest of this process. Please upgrade to 2.0.0-p353 or above.",
87
+ :call_site => nil, :use_spec_location_as_call_site => true
88
+ )
89
+ end
90
+ else
91
+ def handle_restoration_failures
92
+ # No known reasons for restoration to fail on other rubies.
93
+ yield
94
+ end
95
+ end
96
+
97
+ private
98
+
99
+ # @private
100
+ def method_defined_directly_on_klass?
101
+ method_defined_on_klass? && method_owned_by_klass?
102
+ end
103
+
104
+ # @private
105
+ def method_defined_on_klass?(klass=@klass)
106
+ MethodReference.method_defined_at_any_visibility?(klass, @method)
107
+ end
108
+
109
+ def method_owned_by_klass?
110
+ owner = @klass.instance_method(@method).owner
111
+
112
+ # On Ruby 2.0.0+ the owner of a method on a class which has been
113
+ # `prepend`ed may actually be an instance, e.g.
114
+ # `#<MyClass:0x007fbb94e3cd10>`, rather than the expected `MyClass`.
115
+ owner = owner.class unless Module === owner
116
+
117
+ # On some 1.9s (e.g. rubinius) aliased methods
118
+ # can report the wrong owner. Example:
119
+ # class MyClass
120
+ # class << self
121
+ # alias alternate_new new
122
+ # end
123
+ # end
124
+ #
125
+ # MyClass.owner(:alternate_new) returns `Class` when incorrect,
126
+ # but we need to consider the owner to be `MyClass` because
127
+ # it is not actually available on `Class` but is on `MyClass`.
128
+ # Hence, we verify that the owner actually has the method defined.
129
+ # If the given owner does not have the method defined, we assume
130
+ # that the method is actually owned by @klass.
131
+ owner == @klass || !(method_defined_on_klass?(owner))
132
+ end
133
+ end
134
+ end
135
+ end