bibtex_to_scrapbox 0.2.0 → 0.2.1

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 (614) hide show
  1. checksums.yaml +5 -5
  2. data/bibtex_to_scrapbox.gemspec +2 -2
  3. data/lib/bibtex_to_scrapbox/version.rb +1 -1
  4. metadata +11 -622
  5. data/gems/bin/htmldiff +0 -29
  6. data/gems/bin/ldiff +0 -29
  7. data/gems/bin/rake +0 -27
  8. data/gems/bin/rspec +0 -27
  9. data/gems/bin/thor +0 -27
  10. data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/gem.build_complete +0 -0
  11. data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/gem_make.out +0 -288
  12. data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/unicode/unicode_native.bundle +0 -0
  13. data/gems/gems/bibtex-ruby-4.4.4/Gemfile +0 -66
  14. data/gems/gems/bibtex-ruby-4.4.4/Guardfile +0 -22
  15. data/gems/gems/bibtex-ruby-4.4.4/History.txt +0 -306
  16. data/gems/gems/bibtex-ruby-4.4.4/LICENSE +0 -621
  17. data/gems/gems/bibtex-ruby-4.4.4/Manifest +0 -100
  18. data/gems/gems/bibtex-ruby-4.4.4/README.md +0 -615
  19. data/gems/gems/bibtex-ruby-4.4.4/Rakefile +0 -123
  20. data/gems/gems/bibtex-ruby-4.4.4/bibtex-ruby.gemspec +0 -38
  21. data/gems/gems/bibtex-ruby-4.4.4/examples/bib2html.rb +0 -42
  22. data/gems/gems/bibtex-ruby-4.4.4/examples/bib2yaml.rb +0 -12
  23. data/gems/gems/bibtex-ruby-4.4.4/examples/markdown.bib +0 -39
  24. data/gems/gems/bibtex-ruby-4.4.4/features/bibtex.feature +0 -96
  25. data/gems/gems/bibtex-ruby-4.4.4/features/entries.feature +0 -67
  26. data/gems/gems/bibtex-ruby-4.4.4/features/issues/braced_strings.feature +0 -48
  27. data/gems/gems/bibtex-ruby-4.4.4/features/issues/crossref.feature +0 -62
  28. data/gems/gems/bibtex-ruby-4.4.4/features/issues/latex_filter.feature +0 -171
  29. data/gems/gems/bibtex-ruby-4.4.4/features/issues/multiline_strings.feature +0 -14
  30. data/gems/gems/bibtex-ruby-4.4.4/features/issues/name_parsing.feature +0 -19
  31. data/gems/gems/bibtex-ruby-4.4.4/features/issues/non_ascii_default_keys.feature +0 -20
  32. data/gems/gems/bibtex-ruby-4.4.4/features/issues/non_ascii_keys.feature +0 -17
  33. data/gems/gems/bibtex-ruby-4.4.4/features/issues/number_keys.feature +0 -45
  34. data/gems/gems/bibtex-ruby-4.4.4/features/issues/parse_months.feature +0 -43
  35. data/gems/gems/bibtex-ruby-4.4.4/features/issues/slash_keys.feature +0 -21
  36. data/gems/gems/bibtex-ruby-4.4.4/features/issues/trailing_comma.feature +0 -21
  37. data/gems/gems/bibtex-ruby-4.4.4/features/issues/whitespace_keys.feature +0 -23
  38. data/gems/gems/bibtex-ruby-4.4.4/features/names.feature +0 -86
  39. data/gems/gems/bibtex-ruby-4.4.4/features/preambles.feature +0 -27
  40. data/gems/gems/bibtex-ruby-4.4.4/features/query.feature +0 -102
  41. data/gems/gems/bibtex-ruby-4.4.4/features/replacement.feature +0 -68
  42. data/gems/gems/bibtex-ruby-4.4.4/features/step_definitions/bibtex_steps.rb +0 -119
  43. data/gems/gems/bibtex-ruby-4.4.4/features/step_definitions/name_steps.rb +0 -18
  44. data/gems/gems/bibtex-ruby-4.4.4/features/strings.feature +0 -53
  45. data/gems/gems/bibtex-ruby-4.4.4/features/support/env.rb +0 -21
  46. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex.rb +0 -83
  47. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibliography.rb +0 -594
  48. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibliography/rdf_converter.rb +0 -27
  49. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibtex.y +0 -141
  50. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/compatibility.rb +0 -25
  51. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/elements.rb +0 -376
  52. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry.rb +0 -690
  53. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/bibtexml_converter.rb +0 -44
  54. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/citeproc_converter.rb +0 -164
  55. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/rdf_converter.rb +0 -588
  56. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/error.rb +0 -49
  57. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/extensions.rb +0 -25
  58. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters.rb +0 -55
  59. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters/latex.rb +0 -13
  60. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters/linebreaks.rb +0 -11
  61. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/lexer.rb +0 -358
  62. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/name_parser.rb +0 -563
  63. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/names.rb +0 -315
  64. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/names.y +0 -267
  65. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/parser.rb +0 -474
  66. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/replaceable.rb +0 -52
  67. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/ruby.rb +0 -1
  68. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/utilities.rb +0 -59
  69. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/value.rb +0 -305
  70. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/version.rb +0 -28
  71. data/gems/gems/bibtex-ruby-4.4.4/test/benchmark.rb +0 -84
  72. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/entry/test_rdf_converter.rb +0 -341
  73. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_bibliography.rb +0 -446
  74. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_elements.rb +0 -64
  75. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_entry.rb +0 -698
  76. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_filters.rb +0 -36
  77. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_lexer.rb +0 -42
  78. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_name_parser.rb +0 -29
  79. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_names.rb +0 -168
  80. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_parser.rb +0 -210
  81. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_string.rb +0 -83
  82. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_utilities.rb +0 -34
  83. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_value.rb +0 -189
  84. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/bibdesk.bib +0 -50
  85. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/comment.bib +0 -15
  86. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/decoret.bib +0 -83
  87. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/empty.bib +0 -0
  88. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/entry.bib +0 -24
  89. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/errors.bib +0 -67
  90. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/no_bibtex.bib +0 -9
  91. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/preamble.bib +0 -12
  92. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/roundtrip.bib +0 -11
  93. data/gems/gems/bibtex-ruby-4.4.4/test/helper.rb +0 -43
  94. data/gems/gems/bibtex-ruby-4.4.4/test/macruby.d +0 -21
  95. data/gems/gems/bibtex-ruby-4.4.4/test/macruby.rb +0 -22
  96. data/gems/gems/bibtex-ruby-4.4.4/test/profile.rb +0 -28
  97. data/gems/gems/bibtex-ruby-4.4.4/test/test_bibtex.rb +0 -127
  98. data/gems/gems/bibtex-ruby-4.4.4/test/test_export.rb +0 -33
  99. data/gems/gems/diff-lcs-1.3/.rspec +0 -1
  100. data/gems/gems/diff-lcs-1.3/Code-of-Conduct.md +0 -74
  101. data/gems/gems/diff-lcs-1.3/Contributing.md +0 -83
  102. data/gems/gems/diff-lcs-1.3/History.md +0 -220
  103. data/gems/gems/diff-lcs-1.3/License.md +0 -39
  104. data/gems/gems/diff-lcs-1.3/Manifest.txt +0 -37
  105. data/gems/gems/diff-lcs-1.3/README.rdoc +0 -84
  106. data/gems/gems/diff-lcs-1.3/Rakefile +0 -57
  107. data/gems/gems/diff-lcs-1.3/autotest/discover.rb +0 -1
  108. data/gems/gems/diff-lcs-1.3/bin/htmldiff +0 -32
  109. data/gems/gems/diff-lcs-1.3/bin/ldiff +0 -6
  110. data/gems/gems/diff-lcs-1.3/docs/COPYING.txt +0 -339
  111. data/gems/gems/diff-lcs-1.3/docs/artistic.txt +0 -127
  112. data/gems/gems/diff-lcs-1.3/lib/diff-lcs.rb +0 -3
  113. data/gems/gems/diff-lcs-1.3/lib/diff/lcs.rb +0 -725
  114. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +0 -7
  115. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +0 -37
  116. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +0 -322
  117. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +0 -181
  118. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +0 -149
  119. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +0 -276
  120. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +0 -307
  121. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +0 -167
  122. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +0 -5
  123. data/gems/gems/diff-lcs-1.3/spec/change_spec.rb +0 -65
  124. data/gems/gems/diff-lcs-1.3/spec/diff_spec.rb +0 -47
  125. data/gems/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +0 -50
  126. data/gems/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +0 -51
  127. data/gems/gems/diff-lcs-1.3/spec/hunk_spec.rb +0 -72
  128. data/gems/gems/diff-lcs-1.3/spec/issues_spec.rb +0 -49
  129. data/gems/gems/diff-lcs-1.3/spec/lcs_spec.rb +0 -56
  130. data/gems/gems/diff-lcs-1.3/spec/ldiff_spec.rb +0 -47
  131. data/gems/gems/diff-lcs-1.3/spec/patch_spec.rb +0 -422
  132. data/gems/gems/diff-lcs-1.3/spec/sdiff_spec.rb +0 -214
  133. data/gems/gems/diff-lcs-1.3/spec/spec_helper.rb +0 -321
  134. data/gems/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +0 -310
  135. data/gems/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +0 -139
  136. data/gems/gems/latex-decode-0.2.2/.gitignore +0 -6
  137. data/gems/gems/latex-decode-0.2.2/.travis.yml +0 -18
  138. data/gems/gems/latex-decode-0.2.2/Gemfile +0 -21
  139. data/gems/gems/latex-decode-0.2.2/LICENSE +0 -621
  140. data/gems/gems/latex-decode-0.2.2/README.md +0 -65
  141. data/gems/gems/latex-decode-0.2.2/Rakefile +0 -41
  142. data/gems/gems/latex-decode-0.2.2/cucumber.yml +0 -1
  143. data/gems/gems/latex-decode-0.2.2/features/brackets.feature +0 -11
  144. data/gems/gems/latex-decode-0.2.2/features/diacritics.feature +0 -40
  145. data/gems/gems/latex-decode-0.2.2/features/greek.feature +0 -13
  146. data/gems/gems/latex-decode-0.2.2/features/maths.feature +0 -9
  147. data/gems/gems/latex-decode-0.2.2/features/non-latex.feature +0 -15
  148. data/gems/gems/latex-decode-0.2.2/features/punctuation.feature +0 -50
  149. data/gems/gems/latex-decode-0.2.2/features/special_characters.feature +0 -21
  150. data/gems/gems/latex-decode-0.2.2/features/step_definitions/latex.rb +0 -7
  151. data/gems/gems/latex-decode-0.2.2/features/support/env.rb +0 -14
  152. data/gems/gems/latex-decode-0.2.2/features/symbols.feature +0 -21
  153. data/gems/gems/latex-decode-0.2.2/features/umlauts.feature +0 -11
  154. data/gems/gems/latex-decode-0.2.2/latex-decode.gemspec +0 -33
  155. data/gems/gems/latex-decode-0.2.2/lib/latex/decode.rb +0 -54
  156. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/accents.rb +0 -36
  157. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/base.rb +0 -62
  158. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/compatibility.rb +0 -89
  159. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/diacritics.rb +0 -46
  160. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/greek.rb +0 -61
  161. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/maths.rb +0 -21
  162. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/punctuation.rb +0 -59
  163. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/symbols.rb +0 -225
  164. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/version.rb +0 -5
  165. data/gems/gems/rake-10.5.0/.autotest +0 -7
  166. data/gems/gems/rake-10.5.0/.rubocop.yml +0 -27
  167. data/gems/gems/rake-10.5.0/.togglerc +0 -7
  168. data/gems/gems/rake-10.5.0/CONTRIBUTING.rdoc +0 -38
  169. data/gems/gems/rake-10.5.0/History.rdoc +0 -659
  170. data/gems/gems/rake-10.5.0/MIT-LICENSE +0 -21
  171. data/gems/gems/rake-10.5.0/Manifest.txt +0 -166
  172. data/gems/gems/rake-10.5.0/README.rdoc +0 -139
  173. data/gems/gems/rake-10.5.0/Rakefile +0 -81
  174. data/gems/gems/rake-10.5.0/bin/rake +0 -33
  175. data/gems/gems/rake-10.5.0/doc/command_line_usage.rdoc +0 -158
  176. data/gems/gems/rake-10.5.0/doc/example/Rakefile1 +0 -38
  177. data/gems/gems/rake-10.5.0/doc/example/Rakefile2 +0 -35
  178. data/gems/gems/rake-10.5.0/doc/example/a.c +0 -6
  179. data/gems/gems/rake-10.5.0/doc/example/b.c +0 -6
  180. data/gems/gems/rake-10.5.0/doc/example/main.c +0 -11
  181. data/gems/gems/rake-10.5.0/doc/glossary.rdoc +0 -42
  182. data/gems/gems/rake-10.5.0/doc/jamis.rb +0 -591
  183. data/gems/gems/rake-10.5.0/doc/proto_rake.rdoc +0 -127
  184. data/gems/gems/rake-10.5.0/doc/rake.1 +0 -141
  185. data/gems/gems/rake-10.5.0/doc/rakefile.rdoc +0 -624
  186. data/gems/gems/rake-10.5.0/doc/rational.rdoc +0 -151
  187. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +0 -23
  188. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +0 -35
  189. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +0 -53
  190. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +0 -78
  191. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +0 -46
  192. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +0 -141
  193. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +0 -119
  194. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +0 -59
  195. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +0 -121
  196. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +0 -47
  197. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +0 -114
  198. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +0 -165
  199. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +0 -112
  200. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +0 -147
  201. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +0 -53
  202. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +0 -37
  203. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +0 -55
  204. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +0 -112
  205. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +0 -52
  206. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  207. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +0 -49
  208. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +0 -102
  209. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +0 -60
  210. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +0 -55
  211. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +0 -64
  212. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +0 -178
  213. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +0 -58
  214. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +0 -53
  215. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +0 -191
  216. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +0 -61
  217. data/gems/gems/rake-10.5.0/lib/rake.rb +0 -79
  218. data/gems/gems/rake-10.5.0/lib/rake/alt_system.rb +0 -110
  219. data/gems/gems/rake-10.5.0/lib/rake/application.rb +0 -790
  220. data/gems/gems/rake-10.5.0/lib/rake/backtrace.rb +0 -23
  221. data/gems/gems/rake-10.5.0/lib/rake/clean.rb +0 -76
  222. data/gems/gems/rake-10.5.0/lib/rake/cloneable.rb +0 -16
  223. data/gems/gems/rake-10.5.0/lib/rake/contrib/.document +0 -1
  224. data/gems/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +0 -21
  225. data/gems/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +0 -137
  226. data/gems/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +0 -81
  227. data/gems/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  228. data/gems/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +0 -61
  229. data/gems/gems/rake-10.5.0/lib/rake/contrib/sys.rb +0 -4
  230. data/gems/gems/rake-10.5.0/lib/rake/cpu_counter.rb +0 -125
  231. data/gems/gems/rake-10.5.0/lib/rake/default_loader.rb +0 -14
  232. data/gems/gems/rake-10.5.0/lib/rake/dsl_definition.rb +0 -201
  233. data/gems/gems/rake-10.5.0/lib/rake/early_time.rb +0 -21
  234. data/gems/gems/rake-10.5.0/lib/rake/ext/core.rb +0 -25
  235. data/gems/gems/rake-10.5.0/lib/rake/ext/module.rb +0 -2
  236. data/gems/gems/rake-10.5.0/lib/rake/ext/pathname.rb +0 -25
  237. data/gems/gems/rake-10.5.0/lib/rake/ext/string.rb +0 -175
  238. data/gems/gems/rake-10.5.0/lib/rake/ext/time.rb +0 -18
  239. data/gems/gems/rake-10.5.0/lib/rake/file_creation_task.rb +0 -24
  240. data/gems/gems/rake-10.5.0/lib/rake/file_list.rb +0 -428
  241. data/gems/gems/rake-10.5.0/lib/rake/file_task.rb +0 -46
  242. data/gems/gems/rake-10.5.0/lib/rake/file_utils.rb +0 -128
  243. data/gems/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +0 -144
  244. data/gems/gems/rake-10.5.0/lib/rake/gempackagetask.rb +0 -4
  245. data/gems/gems/rake-10.5.0/lib/rake/invocation_chain.rb +0 -56
  246. data/gems/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +0 -16
  247. data/gems/gems/rake-10.5.0/lib/rake/late_time.rb +0 -17
  248. data/gems/gems/rake-10.5.0/lib/rake/linked_list.rb +0 -103
  249. data/gems/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +0 -53
  250. data/gems/gems/rake-10.5.0/lib/rake/multi_task.rb +0 -13
  251. data/gems/gems/rake-10.5.0/lib/rake/name_space.rb +0 -38
  252. data/gems/gems/rake-10.5.0/lib/rake/packagetask.rb +0 -199
  253. data/gems/gems/rake-10.5.0/lib/rake/pathmap.rb +0 -3
  254. data/gems/gems/rake-10.5.0/lib/rake/phony.rb +0 -15
  255. data/gems/gems/rake-10.5.0/lib/rake/private_reader.rb +0 -20
  256. data/gems/gems/rake-10.5.0/lib/rake/promise.rb +0 -99
  257. data/gems/gems/rake-10.5.0/lib/rake/pseudo_status.rb +0 -29
  258. data/gems/gems/rake-10.5.0/lib/rake/rake_module.rb +0 -38
  259. data/gems/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +0 -22
  260. data/gems/gems/rake-10.5.0/lib/rake/rdoctask.rb +0 -4
  261. data/gems/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +0 -29
  262. data/gems/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +0 -20
  263. data/gems/gems/rake-10.5.0/lib/rake/runtest.rb +0 -27
  264. data/gems/gems/rake-10.5.0/lib/rake/scope.rb +0 -42
  265. data/gems/gems/rake-10.5.0/lib/rake/task.rb +0 -383
  266. data/gems/gems/rake-10.5.0/lib/rake/task_argument_error.rb +0 -7
  267. data/gems/gems/rake-10.5.0/lib/rake/task_arguments.rb +0 -98
  268. data/gems/gems/rake-10.5.0/lib/rake/task_manager.rb +0 -307
  269. data/gems/gems/rake-10.5.0/lib/rake/tasklib.rb +0 -24
  270. data/gems/gems/rake-10.5.0/lib/rake/testtask.rb +0 -213
  271. data/gems/gems/rake-10.5.0/lib/rake/thread_history_display.rb +0 -48
  272. data/gems/gems/rake-10.5.0/lib/rake/thread_pool.rb +0 -164
  273. data/gems/gems/rake-10.5.0/lib/rake/trace_output.rb +0 -22
  274. data/gems/gems/rake-10.5.0/lib/rake/version.rb +0 -7
  275. data/gems/gems/rake-10.5.0/lib/rake/win32.rb +0 -56
  276. data/gems/gems/rake-10.5.0/rakelib/publish.rake +0 -20
  277. data/gems/gems/rake-10.5.0/rakelib/test_times.rake +0 -25
  278. data/gems/gems/rake-10.5.0/test/file_creation.rb +0 -34
  279. data/gems/gems/rake-10.5.0/test/helper.rb +0 -129
  280. data/gems/gems/rake-10.5.0/test/support/rakefile_definitions.rb +0 -478
  281. data/gems/gems/rake-10.5.0/test/support/ruby_runner.rb +0 -34
  282. data/gems/gems/rake-10.5.0/test/test_private_reader.rb +0 -42
  283. data/gems/gems/rake-10.5.0/test/test_rake.rb +0 -40
  284. data/gems/gems/rake-10.5.0/test/test_rake_application.rb +0 -643
  285. data/gems/gems/rake-10.5.0/test/test_rake_application_options.rb +0 -468
  286. data/gems/gems/rake-10.5.0/test/test_rake_backtrace.rb +0 -119
  287. data/gems/gems/rake-10.5.0/test/test_rake_clean.rb +0 -61
  288. data/gems/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +0 -68
  289. data/gems/gems/rake-10.5.0/test/test_rake_definitions.rb +0 -84
  290. data/gems/gems/rake-10.5.0/test/test_rake_directory_task.rb +0 -76
  291. data/gems/gems/rake-10.5.0/test/test_rake_dsl.rb +0 -40
  292. data/gems/gems/rake-10.5.0/test/test_rake_early_time.rb +0 -31
  293. data/gems/gems/rake-10.5.0/test/test_rake_extension.rb +0 -59
  294. data/gems/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +0 -56
  295. data/gems/gems/rake-10.5.0/test/test_rake_file_list.rb +0 -670
  296. data/gems/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +0 -8
  297. data/gems/gems/rake-10.5.0/test/test_rake_file_task.rb +0 -197
  298. data/gems/gems/rake-10.5.0/test/test_rake_file_utils.rb +0 -314
  299. data/gems/gems/rake-10.5.0/test/test_rake_ftp_file.rb +0 -74
  300. data/gems/gems/rake-10.5.0/test/test_rake_functional.rb +0 -482
  301. data/gems/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +0 -64
  302. data/gems/gems/rake-10.5.0/test/test_rake_late_time.rb +0 -18
  303. data/gems/gems/rake-10.5.0/test/test_rake_linked_list.rb +0 -84
  304. data/gems/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +0 -46
  305. data/gems/gems/rake-10.5.0/test/test_rake_multi_task.rb +0 -64
  306. data/gems/gems/rake-10.5.0/test/test_rake_name_space.rb +0 -57
  307. data/gems/gems/rake-10.5.0/test/test_rake_package_task.rb +0 -79
  308. data/gems/gems/rake-10.5.0/test/test_rake_path_map.rb +0 -168
  309. data/gems/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +0 -34
  310. data/gems/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +0 -18
  311. data/gems/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +0 -15
  312. data/gems/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +0 -21
  313. data/gems/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +0 -20
  314. data/gems/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +0 -26
  315. data/gems/gems/rake-10.5.0/test/test_rake_require.rb +0 -40
  316. data/gems/gems/rake-10.5.0/test/test_rake_rules.rb +0 -388
  317. data/gems/gems/rake-10.5.0/test/test_rake_scope.rb +0 -44
  318. data/gems/gems/rake-10.5.0/test/test_rake_task.rb +0 -393
  319. data/gems/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +0 -119
  320. data/gems/gems/rake-10.5.0/test/test_rake_task_arguments.rb +0 -127
  321. data/gems/gems/rake-10.5.0/test/test_rake_task_lib.rb +0 -9
  322. data/gems/gems/rake-10.5.0/test/test_rake_task_manager.rb +0 -178
  323. data/gems/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +0 -19
  324. data/gems/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +0 -172
  325. data/gems/gems/rake-10.5.0/test/test_rake_test_task.rb +0 -146
  326. data/gems/gems/rake-10.5.0/test/test_rake_thread_pool.rb +0 -145
  327. data/gems/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +0 -71
  328. data/gems/gems/rake-10.5.0/test/test_rake_win32.rb +0 -72
  329. data/gems/gems/rake-10.5.0/test/test_thread_history_display.rb +0 -101
  330. data/gems/gems/rake-10.5.0/test/test_trace_output.rb +0 -52
  331. data/gems/gems/rspec-3.6.0/LICENSE.md +0 -27
  332. data/gems/gems/rspec-3.6.0/README.md +0 -39
  333. data/gems/gems/rspec-3.6.0/lib/rspec.rb +0 -3
  334. data/gems/gems/rspec-3.6.0/lib/rspec/version.rb +0 -5
  335. data/gems/gems/rspec-core-3.6.0/.document +0 -5
  336. data/gems/gems/rspec-core-3.6.0/.yardopts +0 -8
  337. data/gems/gems/rspec-core-3.6.0/Changelog.md +0 -2167
  338. data/gems/gems/rspec-core-3.6.0/LICENSE.md +0 -26
  339. data/gems/gems/rspec-core-3.6.0/README.md +0 -384
  340. data/gems/gems/rspec-core-3.6.0/exe/rspec +0 -4
  341. data/gems/gems/rspec-core-3.6.0/lib/rspec/autorun.rb +0 -3
  342. data/gems/gems/rspec-core-3.6.0/lib/rspec/core.rb +0 -185
  343. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/backtrace_formatter.rb +0 -65
  344. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/coordinator.rb +0 -66
  345. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/example_minimizer.rb +0 -169
  346. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/runner.rb +0 -169
  347. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/server.rb +0 -70
  348. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/configuration.rb +0 -2177
  349. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/configuration_options.rb +0 -196
  350. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/drb.rb +0 -113
  351. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/dsl.rb +0 -98
  352. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example.rb +0 -653
  353. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example_group.rb +0 -883
  354. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example_status_persister.rb +0 -235
  355. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/filter_manager.rb +0 -231
  356. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/flat_map.rb +0 -20
  357. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters.rb +0 -265
  358. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_formatter.rb +0 -70
  359. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_text_formatter.rb +0 -75
  360. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_formatter.rb +0 -69
  361. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +0 -144
  362. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/console_codes.rb +0 -68
  363. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/deprecation_formatter.rb +0 -223
  364. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/documentation_formatter.rb +0 -70
  365. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/exception_presenter.rb +0 -496
  366. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/fallback_message_formatter.rb +0 -28
  367. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/helpers.rb +0 -110
  368. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_formatter.rb +0 -153
  369. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_printer.rb +0 -414
  370. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_snippet_extractor.rb +0 -118
  371. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/json_formatter.rb +0 -101
  372. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/profile_formatter.rb +0 -68
  373. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/progress_formatter.rb +0 -29
  374. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/protocol.rb +0 -182
  375. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/snippet_extractor.rb +0 -134
  376. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/syntax_highlighter.rb +0 -91
  377. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/hooks.rb +0 -624
  378. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/invocations.rb +0 -85
  379. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/memoized_helpers.rb +0 -535
  380. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/metadata.rb +0 -499
  381. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/metadata_filter.rb +0 -255
  382. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/minitest_assertions_adapter.rb +0 -31
  383. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/flexmock.rb +0 -31
  384. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/mocha.rb +0 -57
  385. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/null.rb +0 -14
  386. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rr.rb +0 -31
  387. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rspec.rb +0 -32
  388. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/notifications.rb +0 -514
  389. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/option_parser.rb +0 -309
  390. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/ordering.rb +0 -158
  391. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/output_wrapper.rb +0 -29
  392. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/pending.rb +0 -165
  393. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/profiler.rb +0 -32
  394. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer.rb +0 -48
  395. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/.rspec +0 -1
  396. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +0 -100
  397. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/rake_task.rb +0 -168
  398. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/reporter.rb +0 -260
  399. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/ruby_project.rb +0 -53
  400. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/runner.rb +0 -193
  401. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/sandbox.rb +0 -37
  402. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/set.rb +0 -54
  403. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shared_context.rb +0 -55
  404. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shared_example_group.rb +0 -271
  405. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shell_escape.rb +0 -49
  406. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
  407. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/version.rb +0 -9
  408. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/warnings.rb +0 -40
  409. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/world.rb +0 -264
  410. data/gems/gems/rspec-expectations-3.6.0/.document +0 -5
  411. data/gems/gems/rspec-expectations-3.6.0/.yardopts +0 -6
  412. data/gems/gems/rspec-expectations-3.6.0/Changelog.md +0 -1072
  413. data/gems/gems/rspec-expectations-3.6.0/LICENSE.md +0 -25
  414. data/gems/gems/rspec-expectations-3.6.0/README.md +0 -305
  415. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations.rb +0 -82
  416. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/block_snippet_extractor.rb +0 -253
  417. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/configuration.rb +0 -201
  418. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/expectation_target.rb +0 -127
  419. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/fail_with.rb +0 -39
  420. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/failure_aggregator.rb +0 -194
  421. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/handler.rb +0 -170
  422. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/minitest_integration.rb +0 -58
  423. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/syntax.rb +0 -132
  424. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/version.rb +0 -8
  425. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers.rb +0 -1025
  426. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/aliased_matcher.rb +0 -116
  427. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in.rb +0 -52
  428. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/all.rb +0 -85
  429. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/base_matcher.rb +0 -193
  430. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be.rb +0 -288
  431. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_between.rb +0 -77
  432. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_instance_of.rb +0 -22
  433. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_kind_of.rb +0 -16
  434. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_within.rb +0 -72
  435. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/change.rb +0 -387
  436. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/compound.rb +0 -272
  437. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/contain_exactly.rb +0 -301
  438. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/cover.rb +0 -24
  439. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eq.rb +0 -40
  440. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eql.rb +0 -34
  441. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/equal.rb +0 -81
  442. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/exist.rb +0 -90
  443. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/has.rb +0 -103
  444. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/have_attributes.rb +0 -114
  445. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/include.rb +0 -143
  446. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/match.rb +0 -106
  447. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/operators.rb +0 -128
  448. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/output.rb +0 -200
  449. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/raise_error.rb +0 -230
  450. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/respond_to.rb +0 -165
  451. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/satisfy.rb +0 -60
  452. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/start_or_end_with.rb +0 -94
  453. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/throw_symbol.rb +0 -132
  454. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/yield.rb +0 -432
  455. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/composable.rb +0 -169
  456. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/dsl.rb +0 -527
  457. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/english_phrasing.rb +0 -58
  458. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +0 -73
  459. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/fail_matchers.rb +0 -42
  460. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/generated_descriptions.rb +0 -42
  461. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_delegator.rb +0 -35
  462. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_protocol.rb +0 -99
  463. data/gems/gems/rspec-mocks-3.6.0/.document +0 -5
  464. data/gems/gems/rspec-mocks-3.6.0/.yardopts +0 -6
  465. data/gems/gems/rspec-mocks-3.6.0/Changelog.md +0 -1073
  466. data/gems/gems/rspec-mocks-3.6.0/LICENSE.md +0 -25
  467. data/gems/gems/rspec-mocks-3.6.0/README.md +0 -460
  468. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks.rb +0 -130
  469. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance.rb +0 -11
  470. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/chain.rb +0 -110
  471. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/error_generator.rb +0 -31
  472. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +0 -31
  473. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expectation_chain.rb +0 -50
  474. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/message_chains.rb +0 -83
  475. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/proxy.rb +0 -116
  476. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/recorder.rb +0 -289
  477. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain.rb +0 -51
  478. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +0 -23
  479. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_list_matcher.rb +0 -100
  480. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_matchers.rb +0 -320
  481. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/configuration.rb +0 -212
  482. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/error_generator.rb +0 -369
  483. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/example_methods.rb +0 -434
  484. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/instance_method_stasher.rb +0 -146
  485. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/marshal_extension.rb +0 -41
  486. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/expectation_customization.rb +0 -20
  487. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/have_received.rb +0 -130
  488. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive.rb +0 -132
  489. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_message_chain.rb +0 -82
  490. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_messages.rb +0 -77
  491. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_chain.rb +0 -87
  492. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_expectation.rb +0 -740
  493. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_double.rb +0 -287
  494. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_reference.rb +0 -202
  495. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/minitest_integration.rb +0 -68
  496. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/mutate_const.rb +0 -339
  497. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/object_reference.rb +0 -149
  498. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/order_group.rb +0 -81
  499. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/proxy.rb +0 -484
  500. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/space.rb +0 -238
  501. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/standalone.rb +0 -3
  502. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/syntax.rb +0 -325
  503. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/targets.rb +0 -124
  504. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/test_double.rb +0 -171
  505. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_double.rb +0 -129
  506. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_message_expectation.rb +0 -54
  507. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_proxy.rb +0 -220
  508. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/version.rb +0 -9
  509. data/gems/gems/rspec-support-3.6.0/Changelog.md +0 -211
  510. data/gems/gems/rspec-support-3.6.0/LICENSE.md +0 -23
  511. data/gems/gems/rspec-support-3.6.0/README.md +0 -40
  512. data/gems/gems/rspec-support-3.6.0/lib/rspec/support.rb +0 -139
  513. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/caller_filter.rb +0 -83
  514. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/comparable_version.rb +0 -46
  515. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/differ.rb +0 -215
  516. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/directory_maker.rb +0 -63
  517. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/encoded_string.rb +0 -165
  518. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/fuzzy_matcher.rb +0 -48
  519. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/hunk_generator.rb +0 -47
  520. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/matcher_definition.rb +0 -42
  521. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/method_signature_verifier.rb +0 -392
  522. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/mutex.rb +0 -73
  523. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/object_formatter.rb +0 -268
  524. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/recursive_const_methods.rb +0 -76
  525. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/reentrant_mutex.rb +0 -53
  526. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/ruby_features.rb +0 -162
  527. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source.rb +0 -75
  528. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/location.rb +0 -21
  529. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/node.rb +0 -107
  530. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/token.rb +0 -87
  531. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec.rb +0 -81
  532. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/deprecation_helpers.rb +0 -64
  533. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/formatting_support.rb +0 -9
  534. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/in_sub_process.rb +0 -69
  535. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/library_wide_checks.rb +0 -150
  536. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/shell_out.rb +0 -84
  537. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/stderr_splitter.rb +0 -63
  538. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/string_matcher.rb +0 -46
  539. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_directory.rb +0 -13
  540. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_stderr.rb +0 -13
  541. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/version.rb +0 -7
  542. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/warnings.rb +0 -39
  543. data/gems/gems/thor-0.19.4/.document +0 -5
  544. data/gems/gems/thor-0.19.4/CHANGELOG.md +0 -163
  545. data/gems/gems/thor-0.19.4/CONTRIBUTING.md +0 -15
  546. data/gems/gems/thor-0.19.4/LICENSE.md +0 -20
  547. data/gems/gems/thor-0.19.4/README.md +0 -47
  548. data/gems/gems/thor-0.19.4/bin/thor +0 -6
  549. data/gems/gems/thor-0.19.4/lib/thor.rb +0 -492
  550. data/gems/gems/thor-0.19.4/lib/thor/actions.rb +0 -318
  551. data/gems/gems/thor-0.19.4/lib/thor/actions/create_file.rb +0 -103
  552. data/gems/gems/thor-0.19.4/lib/thor/actions/create_link.rb +0 -59
  553. data/gems/gems/thor-0.19.4/lib/thor/actions/directory.rb +0 -118
  554. data/gems/gems/thor-0.19.4/lib/thor/actions/empty_directory.rb +0 -135
  555. data/gems/gems/thor-0.19.4/lib/thor/actions/file_manipulation.rb +0 -327
  556. data/gems/gems/thor-0.19.4/lib/thor/actions/inject_into_file.rb +0 -103
  557. data/gems/gems/thor-0.19.4/lib/thor/base.rb +0 -656
  558. data/gems/gems/thor-0.19.4/lib/thor/command.rb +0 -133
  559. data/gems/gems/thor-0.19.4/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -85
  560. data/gems/gems/thor-0.19.4/lib/thor/core_ext/io_binary_read.rb +0 -12
  561. data/gems/gems/thor-0.19.4/lib/thor/core_ext/ordered_hash.rb +0 -129
  562. data/gems/gems/thor-0.19.4/lib/thor/error.rb +0 -32
  563. data/gems/gems/thor-0.19.4/lib/thor/group.rb +0 -281
  564. data/gems/gems/thor-0.19.4/lib/thor/invocation.rb +0 -177
  565. data/gems/gems/thor-0.19.4/lib/thor/line_editor.rb +0 -17
  566. data/gems/gems/thor-0.19.4/lib/thor/line_editor/basic.rb +0 -35
  567. data/gems/gems/thor-0.19.4/lib/thor/line_editor/readline.rb +0 -88
  568. data/gems/gems/thor-0.19.4/lib/thor/parser.rb +0 -4
  569. data/gems/gems/thor-0.19.4/lib/thor/parser/argument.rb +0 -70
  570. data/gems/gems/thor-0.19.4/lib/thor/parser/arguments.rb +0 -175
  571. data/gems/gems/thor-0.19.4/lib/thor/parser/option.rb +0 -146
  572. data/gems/gems/thor-0.19.4/lib/thor/parser/options.rb +0 -220
  573. data/gems/gems/thor-0.19.4/lib/thor/rake_compat.rb +0 -71
  574. data/gems/gems/thor-0.19.4/lib/thor/runner.rb +0 -322
  575. data/gems/gems/thor-0.19.4/lib/thor/shell.rb +0 -81
  576. data/gems/gems/thor-0.19.4/lib/thor/shell/basic.rb +0 -436
  577. data/gems/gems/thor-0.19.4/lib/thor/shell/color.rb +0 -149
  578. data/gems/gems/thor-0.19.4/lib/thor/shell/html.rb +0 -126
  579. data/gems/gems/thor-0.19.4/lib/thor/util.rb +0 -268
  580. data/gems/gems/thor-0.19.4/lib/thor/version.rb +0 -3
  581. data/gems/gems/thor-0.19.4/thor.gemspec +0 -21
  582. data/gems/gems/unicode-0.4.4.4/README +0 -156
  583. data/gems/gems/unicode-0.4.4.4/Rakefile +0 -103
  584. data/gems/gems/unicode-0.4.4.4/ext/unicode/.sitearchdir.-.unicode.time +0 -0
  585. data/gems/gems/unicode-0.4.4.4/ext/unicode/Makefile +0 -264
  586. data/gems/gems/unicode-0.4.4.4/ext/unicode/extconf.rb +0 -3
  587. data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode.c +0 -1325
  588. data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode.o +0 -0
  589. data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode_native.bundle +0 -0
  590. data/gems/gems/unicode-0.4.4.4/ext/unicode/unidata.map +0 -24555
  591. data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.c +0 -208
  592. data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.h +0 -48
  593. data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.o +0 -0
  594. data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.c +0 -257
  595. data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.h +0 -43
  596. data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.o +0 -0
  597. data/gems/gems/unicode-0.4.4.4/lib/unicode.rb +0 -6
  598. data/gems/gems/unicode-0.4.4.4/lib/unicode/unicode_native.bundle +0 -0
  599. data/gems/gems/unicode-0.4.4.4/test/test.rb +0 -69
  600. data/gems/gems/unicode-0.4.4.4/tools/README +0 -7
  601. data/gems/gems/unicode-0.4.4.4/tools/mkunidata.rb +0 -293
  602. data/gems/gems/unicode-0.4.4.4/tools/normtest.rb +0 -111
  603. data/gems/gems/unicode-0.4.4.4/unicode.gemspec +0 -30
  604. data/gems/specifications/bibtex-ruby-4.4.4.gemspec +0 -32
  605. data/gems/specifications/diff-lcs-1.3.gemspec +0 -61
  606. data/gems/specifications/latex-decode-0.2.2.gemspec +0 -35
  607. data/gems/specifications/rake-10.5.0.gemspec +0 -43
  608. data/gems/specifications/rspec-3.6.0.gemspec +0 -42
  609. data/gems/specifications/rspec-core-3.6.0.gemspec +0 -62
  610. data/gems/specifications/rspec-expectations-3.6.0.gemspec +0 -50
  611. data/gems/specifications/rspec-mocks-3.6.0.gemspec +0 -50
  612. data/gems/specifications/rspec-support-3.6.0.gemspec +0 -41
  613. data/gems/specifications/thor-0.19.4.gemspec +0 -35
  614. data/gems/specifications/unicode-0.4.4.4.gemspec +0 -25
@@ -1,272 +0,0 @@
1
- module RSpec
2
- module Matchers
3
- module BuiltIn
4
- # @api private
5
- # Base class for `and` and `or` compound matchers.
6
- # rubocop:disable ClassLength
7
- class Compound < BaseMatcher
8
- # @private
9
- attr_reader :matcher_1, :matcher_2, :evaluator
10
-
11
- def initialize(matcher_1, matcher_2)
12
- @matcher_1 = matcher_1
13
- @matcher_2 = matcher_2
14
- end
15
-
16
- # @private
17
- def does_not_match?(_actual)
18
- raise NotImplementedError, "`expect(...).not_to matcher.#{conjunction} matcher` " \
19
- "is not supported, since it creates a bit of an ambiguity. Instead, define negated versions " \
20
- "of whatever matchers you wish to negate with `RSpec::Matchers.define_negated_matcher` and " \
21
- "use `expect(...).to matcher.#{conjunction} matcher`."
22
- end
23
-
24
- # @api private
25
- # @return [String]
26
- def description
27
- "#{matcher_1.description} #{conjunction} #{matcher_2.description}"
28
- end
29
-
30
- def supports_block_expectations?
31
- matcher_supports_block_expectations?(matcher_1) &&
32
- matcher_supports_block_expectations?(matcher_2)
33
- end
34
-
35
- def expects_call_stack_jump?
36
- NestedEvaluator.matcher_expects_call_stack_jump?(matcher_1) ||
37
- NestedEvaluator.matcher_expects_call_stack_jump?(matcher_2)
38
- end
39
-
40
- # @api private
41
- # @return [Boolean]
42
- def diffable?
43
- matcher_is_diffable?(matcher_1) || matcher_is_diffable?(matcher_2)
44
- end
45
-
46
- # @api private
47
- # @return [RSpec::Matchers::ExpectedsForMultipleDiffs]
48
- def expected
49
- return nil unless evaluator
50
- ::RSpec::Matchers::ExpectedsForMultipleDiffs.for_many_matchers(diffable_matcher_list)
51
- end
52
-
53
- protected
54
-
55
- def diffable_matcher_list
56
- list = []
57
- list.concat(diffable_matcher_list_for(matcher_1)) unless matcher_1_matches?
58
- list.concat(diffable_matcher_list_for(matcher_2)) unless matcher_2_matches?
59
- list
60
- end
61
-
62
- private
63
-
64
- def initialize_copy(other)
65
- @matcher_1 = @matcher_1.clone
66
- @matcher_2 = @matcher_2.clone
67
- super
68
- end
69
-
70
- def match(_expected, actual)
71
- evaluator_klass = if supports_block_expectations? && Proc === actual
72
- NestedEvaluator
73
- else
74
- SequentialEvaluator
75
- end
76
-
77
- @evaluator = evaluator_klass.new(actual, matcher_1, matcher_2)
78
- end
79
-
80
- def indent_multiline_message(message)
81
- message.lines.map do |line|
82
- line =~ /\S/ ? ' ' + line : line
83
- end.join
84
- end
85
-
86
- def compound_failure_message
87
- "#{indent_multiline_message(matcher_1.failure_message.sub(/\n+\z/, ''))}" \
88
- "\n\n...#{conjunction}:" \
89
- "\n\n#{indent_multiline_message(matcher_2.failure_message.sub(/\A\n+/, ''))}"
90
- end
91
-
92
- def matcher_1_matches?
93
- evaluator.matcher_matches?(matcher_1)
94
- end
95
-
96
- def matcher_2_matches?
97
- evaluator.matcher_matches?(matcher_2)
98
- end
99
-
100
- def matcher_supports_block_expectations?(matcher)
101
- matcher.supports_block_expectations?
102
- rescue NoMethodError
103
- false
104
- end
105
-
106
- def matcher_is_diffable?(matcher)
107
- matcher.diffable?
108
- rescue NoMethodError
109
- false
110
- end
111
-
112
- def diffable_matcher_list_for(matcher)
113
- return [] unless matcher_is_diffable?(matcher)
114
- return matcher.diffable_matcher_list if Compound === matcher
115
- [matcher]
116
- end
117
-
118
- # For value expectations, we can evaluate the matchers sequentially.
119
- class SequentialEvaluator
120
- def initialize(actual, *)
121
- @actual = actual
122
- end
123
-
124
- def matcher_matches?(matcher)
125
- matcher.matches?(@actual)
126
- end
127
- end
128
-
129
- # Normally, we evaluate the matching sequentially. For an expression like
130
- # `expect(x).to foo.and bar`, this becomes:
131
- #
132
- # expect(x).to foo
133
- # expect(x).to bar
134
- #
135
- # For block expectations, we need to nest them instead, so that
136
- # `expect { x }.to foo.and bar` becomes:
137
- #
138
- # expect {
139
- # expect { x }.to foo
140
- # }.to bar
141
- #
142
- # This is necessary so that the `expect` block is only executed once.
143
- class NestedEvaluator
144
- def initialize(actual, matcher_1, matcher_2)
145
- @actual = actual
146
- @matcher_1 = matcher_1
147
- @matcher_2 = matcher_2
148
- @match_results = {}
149
-
150
- inner, outer = order_block_matchers
151
-
152
- @match_results[outer] = outer.matches?(Proc.new do |*args|
153
- @match_results[inner] = inner.matches?(inner_matcher_block(args))
154
- end)
155
- end
156
-
157
- def matcher_matches?(matcher)
158
- @match_results.fetch(matcher)
159
- end
160
-
161
- private
162
-
163
- # Some block matchers (such as `yield_xyz`) pass args to the `expect` block.
164
- # When such a matcher is used as the outer matcher, we need to forward the
165
- # the args on to the `expect` block.
166
- def inner_matcher_block(outer_args)
167
- return @actual if outer_args.empty?
168
-
169
- Proc.new do |*inner_args|
170
- unless inner_args.empty?
171
- raise ArgumentError, "(#{@matcher_1.description}) and " \
172
- "(#{@matcher_2.description}) cannot be combined in a compound expectation " \
173
- "since both matchers pass arguments to the block."
174
- end
175
-
176
- @actual.call(*outer_args)
177
- end
178
- end
179
-
180
- # For a matcher like `raise_error` or `throw_symbol`, where the block will jump
181
- # up the call stack, we need to order things so that it is the inner matcher.
182
- # For example, we need it to be this:
183
- #
184
- # expect {
185
- # expect {
186
- # x += 1
187
- # raise "boom"
188
- # }.to raise_error("boom")
189
- # }.to change { x }.by(1)
190
- #
191
- # ...rather than:
192
- #
193
- # expect {
194
- # expect {
195
- # x += 1
196
- # raise "boom"
197
- # }.to change { x }.by(1)
198
- # }.to raise_error("boom")
199
- #
200
- # In the latter case, the after-block logic in the `change` matcher would never
201
- # get executed because the `raise "boom"` line would jump to the `rescue` in the
202
- # `raise_error` logic, so only the former case will work properly.
203
- #
204
- # This method figures out which matcher should be the inner matcher and which
205
- # should be the outer matcher.
206
- def order_block_matchers
207
- return @matcher_1, @matcher_2 unless self.class.matcher_expects_call_stack_jump?(@matcher_2)
208
- return @matcher_2, @matcher_1 unless self.class.matcher_expects_call_stack_jump?(@matcher_1)
209
-
210
- raise ArgumentError, "(#{@matcher_1.description}) and " \
211
- "(#{@matcher_2.description}) cannot be combined in a compound expectation " \
212
- "because they both expect a call stack jump."
213
- end
214
-
215
- def self.matcher_expects_call_stack_jump?(matcher)
216
- matcher.expects_call_stack_jump?
217
- rescue NoMethodError
218
- false
219
- end
220
- end
221
-
222
- # @api public
223
- # Matcher used to represent a compound `and` expectation.
224
- class And < self
225
- # @api private
226
- # @return [String]
227
- def failure_message
228
- if matcher_1_matches?
229
- matcher_2.failure_message
230
- elsif matcher_2_matches?
231
- matcher_1.failure_message
232
- else
233
- compound_failure_message
234
- end
235
- end
236
-
237
- private
238
-
239
- def match(*)
240
- super
241
- matcher_1_matches? && matcher_2_matches?
242
- end
243
-
244
- def conjunction
245
- "and"
246
- end
247
- end
248
-
249
- # @api public
250
- # Matcher used to represent a compound `or` expectation.
251
- class Or < self
252
- # @api private
253
- # @return [String]
254
- def failure_message
255
- compound_failure_message
256
- end
257
-
258
- private
259
-
260
- def match(*)
261
- super
262
- matcher_1_matches? || matcher_2_matches?
263
- end
264
-
265
- def conjunction
266
- "or"
267
- end
268
- end
269
- end
270
- end
271
- end
272
- end
@@ -1,301 +0,0 @@
1
- module RSpec
2
- module Matchers
3
- module BuiltIn
4
- # rubocop:disable ClassLength
5
- # @api private
6
- # Provides the implementation for `contain_exactly` and `match_array`.
7
- # Not intended to be instantiated directly.
8
- class ContainExactly < BaseMatcher
9
- # @api private
10
- # @return [String]
11
- def failure_message
12
- if Array === actual
13
- generate_failure_message
14
- else
15
- "expected a collection that can be converted to an array with " \
16
- "`#to_ary` or `#to_a`, but got #{actual_formatted}"
17
- end
18
- end
19
-
20
- # @api private
21
- # @return [String]
22
- def failure_message_when_negated
23
- list = EnglishPhrasing.list(surface_descriptions_in(expected))
24
- "expected #{actual_formatted} not to contain exactly#{list}"
25
- end
26
-
27
- # @api private
28
- # @return [String]
29
- def description
30
- list = EnglishPhrasing.list(surface_descriptions_in(expected))
31
- "contain exactly#{list}"
32
- end
33
-
34
- private
35
-
36
- def generate_failure_message
37
- message = expected_collection_line
38
- message += actual_collection_line
39
- message += missing_elements_line unless missing_items.empty?
40
- message += extra_elements_line unless extra_items.empty?
41
- message
42
- end
43
-
44
- def expected_collection_line
45
- message_line('expected collection contained', expected, true)
46
- end
47
-
48
- def actual_collection_line
49
- message_line('actual collection contained', actual)
50
- end
51
-
52
- def missing_elements_line
53
- message_line('the missing elements were', missing_items, true)
54
- end
55
-
56
- def extra_elements_line
57
- message_line('the extra elements were', extra_items)
58
- end
59
-
60
- def describe_collection(collection, surface_descriptions=false)
61
- if surface_descriptions
62
- "#{description_of(safe_sort(surface_descriptions_in collection))}\n"
63
- else
64
- "#{description_of(safe_sort(collection))}\n"
65
- end
66
- end
67
-
68
- def message_line(prefix, collection, surface_descriptions=false)
69
- "%-32s%s" % [prefix + ':',
70
- describe_collection(collection, surface_descriptions)]
71
- end
72
-
73
- def match(_expected, _actual)
74
- return false unless convert_actual_to_an_array
75
- match_when_sorted? || (extra_items.empty? && missing_items.empty?)
76
- end
77
-
78
- # This cannot always work (e.g. when dealing with unsortable items,
79
- # or matchers as expected items), but it's practically free compared to
80
- # the slowness of the full matching algorithm, and in common cases this
81
- # works, so it's worth a try.
82
- def match_when_sorted?
83
- values_match?(safe_sort(expected), safe_sort(actual))
84
- end
85
-
86
- def convert_actual_to_an_array
87
- if actual.respond_to?(:to_ary)
88
- @actual = actual.to_ary
89
- elsif actual.respond_to?(:to_a) && !to_a_disallowed?(actual)
90
- @actual = actual.to_a
91
- else
92
- return false
93
- end
94
- end
95
-
96
- def safe_sort(array)
97
- array.sort
98
- rescue Support::AllExceptionsExceptOnesWeMustNotRescue
99
- array
100
- end
101
-
102
- if RUBY_VERSION == "1.8.7"
103
- def to_a_disallowed?(object)
104
- case object
105
- when NilClass, String then true
106
- else Kernel == RSpec::Support.method_handle_for(object, :to_a).owner
107
- end
108
- end
109
- else
110
- def to_a_disallowed?(object)
111
- NilClass === object
112
- end
113
- end
114
-
115
- def missing_items
116
- @missing_items ||= best_solution.unmatched_expected_indexes.map do |index|
117
- expected[index]
118
- end
119
- end
120
-
121
- def extra_items
122
- @extra_items ||= best_solution.unmatched_actual_indexes.map do |index|
123
- actual[index]
124
- end
125
- end
126
-
127
- def best_solution
128
- @best_solution ||= pairings_maximizer.find_best_solution
129
- end
130
-
131
- def pairings_maximizer
132
- @pairings_maximizer ||= begin
133
- expected_matches = Hash[Array.new(expected.size) { |i| [i, []] }]
134
- actual_matches = Hash[Array.new(actual.size) { |i| [i, []] }]
135
-
136
- expected.each_with_index do |e, ei|
137
- actual.each_with_index do |a, ai|
138
- next unless values_match?(e, a)
139
-
140
- expected_matches[ei] << ai
141
- actual_matches[ai] << ei
142
- end
143
- end
144
-
145
- PairingsMaximizer.new(expected_matches, actual_matches)
146
- end
147
- end
148
-
149
- # Once we started supporting composing matchers, the algorithm for this matcher got
150
- # much more complicated. Consider this expression:
151
- #
152
- # expect(["fool", "food"]).to contain_exactly(/foo/, /fool/)
153
- #
154
- # This should pass (because we can pair /fool/ with "fool" and /foo/ with "food"), but
155
- # the original algorithm used by this matcher would pair the first elements it could
156
- # (/foo/ with "fool"), which would leave /fool/ and "food" unmatched. When we have
157
- # an expected element which is a matcher that matches a superset of actual items
158
- # compared to another expected element matcher, we need to consider every possible pairing.
159
- #
160
- # This class is designed to maximize the number of actual/expected pairings -- or,
161
- # conversely, to minimize the number of unpaired items. It's essentially a brute
162
- # force solution, but with a few heuristics applied to reduce the size of the
163
- # problem space:
164
- #
165
- # * Any items which match none of the items in the other list are immediately
166
- # placed into the `unmatched_expected_indexes` or `unmatched_actual_indexes` array.
167
- # The extra items and missing items in the matcher failure message are derived
168
- # from these arrays.
169
- # * Any items which reciprocally match only each other are paired up and not
170
- # considered further.
171
- #
172
- # What's left is only the items which match multiple items from the other list
173
- # (or vice versa). From here, it performs a brute-force depth-first search,
174
- # looking for a solution which pairs all elements in both lists, or, barring that,
175
- # that produces the fewest unmatched items.
176
- #
177
- # @private
178
- class PairingsMaximizer
179
- Solution = Struct.new(:unmatched_expected_indexes, :unmatched_actual_indexes,
180
- :indeterminate_expected_indexes, :indeterminate_actual_indexes) do
181
- def worse_than?(other)
182
- unmatched_item_count > other.unmatched_item_count
183
- end
184
-
185
- def candidate?
186
- indeterminate_expected_indexes.empty? &&
187
- indeterminate_actual_indexes.empty?
188
- end
189
-
190
- def ideal?
191
- candidate? && (
192
- unmatched_expected_indexes.empty? ||
193
- unmatched_actual_indexes.empty?
194
- )
195
- end
196
-
197
- def unmatched_item_count
198
- unmatched_expected_indexes.count + unmatched_actual_indexes.count
199
- end
200
-
201
- def +(derived_candidate_solution)
202
- self.class.new(
203
- unmatched_expected_indexes + derived_candidate_solution.unmatched_expected_indexes,
204
- unmatched_actual_indexes + derived_candidate_solution.unmatched_actual_indexes,
205
- # Ignore the indeterminate indexes: by the time we get here,
206
- # we've dealt with all indeterminates.
207
- [], []
208
- )
209
- end
210
- end
211
-
212
- attr_reader :expected_to_actual_matched_indexes, :actual_to_expected_matched_indexes, :solution
213
-
214
- def initialize(expected_to_actual_matched_indexes, actual_to_expected_matched_indexes)
215
- @expected_to_actual_matched_indexes = expected_to_actual_matched_indexes
216
- @actual_to_expected_matched_indexes = actual_to_expected_matched_indexes
217
-
218
- unmatched_expected_indexes, indeterminate_expected_indexes =
219
- categorize_indexes(expected_to_actual_matched_indexes, actual_to_expected_matched_indexes)
220
-
221
- unmatched_actual_indexes, indeterminate_actual_indexes =
222
- categorize_indexes(actual_to_expected_matched_indexes, expected_to_actual_matched_indexes)
223
-
224
- @solution = Solution.new(unmatched_expected_indexes, unmatched_actual_indexes,
225
- indeterminate_expected_indexes, indeterminate_actual_indexes)
226
- end
227
-
228
- def find_best_solution
229
- return solution if solution.candidate?
230
- best_solution_so_far = NullSolution
231
-
232
- expected_index = solution.indeterminate_expected_indexes.first
233
- actuals = expected_to_actual_matched_indexes[expected_index]
234
-
235
- actuals.each do |actual_index|
236
- solution = best_solution_for_pairing(expected_index, actual_index)
237
- return solution if solution.ideal?
238
- best_solution_so_far = solution if best_solution_so_far.worse_than?(solution)
239
- end
240
-
241
- best_solution_so_far
242
- end
243
-
244
- private
245
-
246
- # @private
247
- # Starting solution that is worse than any other real solution.
248
- NullSolution = Class.new do
249
- def self.worse_than?(_other)
250
- true
251
- end
252
- end
253
-
254
- def categorize_indexes(indexes_to_categorize, other_indexes)
255
- unmatched = []
256
- indeterminate = []
257
-
258
- indexes_to_categorize.each_pair do |index, matches|
259
- if matches.empty?
260
- unmatched << index
261
- elsif !reciprocal_single_match?(matches, index, other_indexes)
262
- indeterminate << index
263
- end
264
- end
265
-
266
- return unmatched, indeterminate
267
- end
268
-
269
- def reciprocal_single_match?(matches, index, other_list)
270
- return false unless matches.one?
271
- other_list[matches.first] == [index]
272
- end
273
-
274
- def best_solution_for_pairing(expected_index, actual_index)
275
- modified_expecteds = apply_pairing_to(
276
- solution.indeterminate_expected_indexes,
277
- expected_to_actual_matched_indexes, actual_index)
278
-
279
- modified_expecteds.delete(expected_index)
280
-
281
- modified_actuals = apply_pairing_to(
282
- solution.indeterminate_actual_indexes,
283
- actual_to_expected_matched_indexes, expected_index)
284
-
285
- modified_actuals.delete(actual_index)
286
-
287
- solution + self.class.new(modified_expecteds, modified_actuals).find_best_solution
288
- end
289
-
290
- def apply_pairing_to(indeterminates, original_matches, other_list_index)
291
- indeterminates.inject({}) do |accum, index|
292
- accum[index] = original_matches[index] - [other_list_index]
293
- accum
294
- end
295
- end
296
- end
297
- end
298
- # rubocop:enable ClassLength
299
- end
300
- end
301
- end