bibtex_to_scrapbox 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE +22 -0
- data/README.md +43 -0
- data/Rakefile +6 -0
- data/bibtex_to_scrapbox.gemspec +29 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/exe/bibtex_to_scrapbox +7 -0
- data/gems/bin/htmldiff +29 -0
- data/gems/bin/ldiff +29 -0
- data/gems/bin/rake +27 -0
- data/gems/bin/rspec +27 -0
- data/gems/bin/thor +27 -0
- data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/gem.build_complete +0 -0
- data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/gem_make.out +288 -0
- data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/unicode/unicode_native.bundle +0 -0
- data/gems/gems/bibtex-ruby-4.4.4/Gemfile +66 -0
- data/gems/gems/bibtex-ruby-4.4.4/Guardfile +22 -0
- data/gems/gems/bibtex-ruby-4.4.4/History.txt +306 -0
- data/gems/gems/bibtex-ruby-4.4.4/LICENSE +621 -0
- data/gems/gems/bibtex-ruby-4.4.4/Manifest +100 -0
- data/gems/gems/bibtex-ruby-4.4.4/README.md +615 -0
- data/gems/gems/bibtex-ruby-4.4.4/Rakefile +123 -0
- data/gems/gems/bibtex-ruby-4.4.4/bibtex-ruby.gemspec +38 -0
- data/gems/gems/bibtex-ruby-4.4.4/examples/bib2html.rb +42 -0
- data/gems/gems/bibtex-ruby-4.4.4/examples/bib2yaml.rb +12 -0
- data/gems/gems/bibtex-ruby-4.4.4/examples/markdown.bib +39 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/bibtex.feature +96 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/entries.feature +67 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/braced_strings.feature +48 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/crossref.feature +62 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/latex_filter.feature +171 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/multiline_strings.feature +14 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/name_parsing.feature +19 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/non_ascii_default_keys.feature +20 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/non_ascii_keys.feature +17 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/number_keys.feature +45 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/parse_months.feature +43 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/slash_keys.feature +21 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/trailing_comma.feature +21 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/issues/whitespace_keys.feature +23 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/names.feature +86 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/preambles.feature +27 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/query.feature +102 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/replacement.feature +68 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/step_definitions/bibtex_steps.rb +119 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/step_definitions/name_steps.rb +18 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/strings.feature +53 -0
- data/gems/gems/bibtex-ruby-4.4.4/features/support/env.rb +21 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex.rb +83 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibliography.rb +594 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibliography/rdf_converter.rb +27 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibtex.y +141 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/compatibility.rb +25 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/elements.rb +376 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry.rb +690 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/bibtexml_converter.rb +44 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/citeproc_converter.rb +164 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/rdf_converter.rb +588 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/error.rb +49 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/extensions.rb +25 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters.rb +55 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters/latex.rb +13 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters/linebreaks.rb +11 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/lexer.rb +358 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/name_parser.rb +563 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/names.rb +315 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/names.y +267 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/parser.rb +474 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/replaceable.rb +52 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/ruby.rb +1 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/utilities.rb +59 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/value.rb +305 -0
- data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/version.rb +28 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/benchmark.rb +84 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/entry/test_rdf_converter.rb +341 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_bibliography.rb +446 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_elements.rb +64 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_entry.rb +698 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_filters.rb +36 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_lexer.rb +42 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_name_parser.rb +29 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_names.rb +168 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_parser.rb +210 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_string.rb +83 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_utilities.rb +34 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_value.rb +189 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/bibdesk.bib +50 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/comment.bib +15 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/decoret.bib +83 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/empty.bib +0 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/entry.bib +24 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/errors.bib +67 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/no_bibtex.bib +9 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/preamble.bib +12 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/roundtrip.bib +11 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/helper.rb +43 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/macruby.d +21 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/macruby.rb +22 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/profile.rb +28 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/test_bibtex.rb +127 -0
- data/gems/gems/bibtex-ruby-4.4.4/test/test_export.rb +33 -0
- data/gems/gems/diff-lcs-1.3/.rspec +1 -0
- data/gems/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
- data/gems/gems/diff-lcs-1.3/Contributing.md +83 -0
- data/gems/gems/diff-lcs-1.3/History.md +220 -0
- data/gems/gems/diff-lcs-1.3/License.md +39 -0
- data/gems/gems/diff-lcs-1.3/Manifest.txt +37 -0
- data/gems/gems/diff-lcs-1.3/README.rdoc +84 -0
- data/gems/gems/diff-lcs-1.3/Rakefile +57 -0
- data/gems/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
- data/gems/gems/diff-lcs-1.3/bin/htmldiff +32 -0
- data/gems/gems/diff-lcs-1.3/bin/ldiff +6 -0
- data/gems/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
- data/gems/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
- data/gems/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
- data/gems/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
- data/gems/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
- data/gems/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
- data/gems/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
- data/gems/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
- data/gems/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
- data/gems/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
- data/gems/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
- data/gems/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
- data/gems/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
- data/gems/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
- data/gems/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
- data/gems/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
- data/gems/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
- data/gems/gems/latex-decode-0.2.2/.gitignore +6 -0
- data/gems/gems/latex-decode-0.2.2/.travis.yml +18 -0
- data/gems/gems/latex-decode-0.2.2/Gemfile +21 -0
- data/gems/gems/latex-decode-0.2.2/LICENSE +621 -0
- data/gems/gems/latex-decode-0.2.2/README.md +65 -0
- data/gems/gems/latex-decode-0.2.2/Rakefile +41 -0
- data/gems/gems/latex-decode-0.2.2/cucumber.yml +1 -0
- data/gems/gems/latex-decode-0.2.2/features/brackets.feature +11 -0
- data/gems/gems/latex-decode-0.2.2/features/diacritics.feature +40 -0
- data/gems/gems/latex-decode-0.2.2/features/greek.feature +13 -0
- data/gems/gems/latex-decode-0.2.2/features/maths.feature +9 -0
- data/gems/gems/latex-decode-0.2.2/features/non-latex.feature +15 -0
- data/gems/gems/latex-decode-0.2.2/features/punctuation.feature +50 -0
- data/gems/gems/latex-decode-0.2.2/features/special_characters.feature +21 -0
- data/gems/gems/latex-decode-0.2.2/features/step_definitions/latex.rb +7 -0
- data/gems/gems/latex-decode-0.2.2/features/support/env.rb +14 -0
- data/gems/gems/latex-decode-0.2.2/features/symbols.feature +21 -0
- data/gems/gems/latex-decode-0.2.2/features/umlauts.feature +11 -0
- data/gems/gems/latex-decode-0.2.2/latex-decode.gemspec +33 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode.rb +54 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/accents.rb +36 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/base.rb +62 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/compatibility.rb +89 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/diacritics.rb +46 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/greek.rb +61 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/maths.rb +21 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/punctuation.rb +59 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/symbols.rb +225 -0
- data/gems/gems/latex-decode-0.2.2/lib/latex/decode/version.rb +5 -0
- data/gems/gems/rake-10.5.0/.autotest +7 -0
- data/gems/gems/rake-10.5.0/.rubocop.yml +27 -0
- data/gems/gems/rake-10.5.0/.togglerc +7 -0
- data/gems/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
- data/gems/gems/rake-10.5.0/History.rdoc +659 -0
- data/gems/gems/rake-10.5.0/MIT-LICENSE +21 -0
- data/gems/gems/rake-10.5.0/Manifest.txt +166 -0
- data/gems/gems/rake-10.5.0/README.rdoc +139 -0
- data/gems/gems/rake-10.5.0/Rakefile +81 -0
- data/gems/gems/rake-10.5.0/bin/rake +33 -0
- data/gems/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
- data/gems/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
- data/gems/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
- data/gems/gems/rake-10.5.0/doc/example/a.c +6 -0
- data/gems/gems/rake-10.5.0/doc/example/b.c +6 -0
- data/gems/gems/rake-10.5.0/doc/example/main.c +11 -0
- data/gems/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
- data/gems/gems/rake-10.5.0/doc/jamis.rb +591 -0
- data/gems/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
- data/gems/gems/rake-10.5.0/doc/rake.1 +141 -0
- data/gems/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
- data/gems/gems/rake-10.5.0/doc/rational.rdoc +151 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/gems/gems/rake-10.5.0/lib/rake.rb +79 -0
- data/gems/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
- data/gems/gems/rake-10.5.0/lib/rake/application.rb +790 -0
- data/gems/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
- data/gems/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
- data/gems/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
- data/gems/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
- data/gems/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
- data/gems/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
- data/gems/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
- data/gems/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
- data/gems/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
- data/gems/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
- data/gems/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
- data/gems/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
- data/gems/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
- data/gems/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
- data/gems/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
- data/gems/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
- data/gems/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
- data/gems/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
- data/gems/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
- data/gems/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
- data/gems/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
- data/gems/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
- data/gems/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
- data/gems/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
- data/gems/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
- data/gems/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
- data/gems/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
- data/gems/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
- data/gems/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
- data/gems/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
- data/gems/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
- data/gems/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
- data/gems/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
- data/gems/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
- data/gems/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
- data/gems/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
- data/gems/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/gems/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
- data/gems/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
- data/gems/gems/rake-10.5.0/lib/rake/task.rb +383 -0
- data/gems/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
- data/gems/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
- data/gems/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
- data/gems/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
- data/gems/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
- data/gems/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
- data/gems/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
- data/gems/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
- data/gems/gems/rake-10.5.0/lib/rake/version.rb +7 -0
- data/gems/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
- data/gems/gems/rake-10.5.0/rakelib/publish.rake +20 -0
- data/gems/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
- data/gems/gems/rake-10.5.0/test/file_creation.rb +34 -0
- data/gems/gems/rake-10.5.0/test/helper.rb +129 -0
- data/gems/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
- data/gems/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
- data/gems/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
- data/gems/gems/rake-10.5.0/test/test_rake.rb +40 -0
- data/gems/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
- data/gems/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
- data/gems/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
- data/gems/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
- data/gems/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
- data/gems/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
- data/gems/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
- data/gems/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
- data/gems/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
- data/gems/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
- data/gems/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
- data/gems/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
- data/gems/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
- data/gems/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
- data/gems/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
- data/gems/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
- data/gems/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
- data/gems/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
- data/gems/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
- data/gems/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
- data/gems/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
- data/gems/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
- data/gems/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
- data/gems/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
- data/gems/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
- data/gems/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
- data/gems/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
- data/gems/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
- data/gems/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
- data/gems/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
- data/gems/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
- data/gems/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
- data/gems/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
- data/gems/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/gems/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
- data/gems/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
- data/gems/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
- data/gems/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
- data/gems/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
- data/gems/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
- data/gems/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
- data/gems/gems/rspec-3.6.0/LICENSE.md +27 -0
- data/gems/gems/rspec-3.6.0/README.md +39 -0
- data/gems/gems/rspec-3.6.0/lib/rspec.rb +3 -0
- data/gems/gems/rspec-3.6.0/lib/rspec/version.rb +5 -0
- data/gems/gems/rspec-core-3.6.0/.document +5 -0
- data/gems/gems/rspec-core-3.6.0/.yardopts +8 -0
- data/gems/gems/rspec-core-3.6.0/Changelog.md +2167 -0
- data/gems/gems/rspec-core-3.6.0/LICENSE.md +26 -0
- data/gems/gems/rspec-core-3.6.0/README.md +384 -0
- data/gems/gems/rspec-core-3.6.0/exe/rspec +4 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/autorun.rb +3 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core.rb +185 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/coordinator.rb +66 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/example_minimizer.rb +169 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/runner.rb +169 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/server.rb +70 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/configuration.rb +2177 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/configuration_options.rb +196 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/drb.rb +113 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/dsl.rb +98 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example.rb +653 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example_group.rb +883 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example_status_persister.rb +235 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/filter_manager.rb +231 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/flat_map.rb +20 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters.rb +265 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/console_codes.rb +68 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/exception_presenter.rb +496 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/helpers.rb +110 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_printer.rb +414 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_snippet_extractor.rb +118 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/json_formatter.rb +101 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/protocol.rb +182 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/hooks.rb +624 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/invocations.rb +85 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/memoized_helpers.rb +535 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/metadata.rb +499 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/metadata_filter.rb +255 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/notifications.rb +514 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/option_parser.rb +309 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/ordering.rb +158 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/output_wrapper.rb +29 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/pending.rb +165 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/profiler.rb +32 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer.rb +48 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/.rspec +1 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/rake_task.rb +168 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/reporter.rb +260 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/ruby_project.rb +53 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/runner.rb +193 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/sandbox.rb +37 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/set.rb +54 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shared_context.rb +55 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shared_example_group.rb +271 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shell_escape.rb +49 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/version.rb +9 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/warnings.rb +40 -0
- data/gems/gems/rspec-core-3.6.0/lib/rspec/core/world.rb +264 -0
- data/gems/gems/rspec-expectations-3.6.0/.document +5 -0
- data/gems/gems/rspec-expectations-3.6.0/.yardopts +6 -0
- data/gems/gems/rspec-expectations-3.6.0/Changelog.md +1072 -0
- data/gems/gems/rspec-expectations-3.6.0/LICENSE.md +25 -0
- data/gems/gems/rspec-expectations-3.6.0/README.md +305 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations.rb +82 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/configuration.rb +201 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/expectation_target.rb +127 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/fail_with.rb +39 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/handler.rb +170 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/minitest_integration.rb +58 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/syntax.rb +132 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/version.rb +8 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers.rb +1025 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in.rb +52 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/all.rb +85 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be.rb +288 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/change.rb +387 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/compound.rb +272 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/contain_exactly.rb +301 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/cover.rb +24 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eq.rb +40 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eql.rb +34 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/equal.rb +81 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/exist.rb +90 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/has.rb +103 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/include.rb +143 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/match.rb +106 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/operators.rb +128 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/output.rb +200 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/yield.rb +432 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/composable.rb +169 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/dsl.rb +527 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/english_phrasing.rb +58 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
- data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
- data/gems/gems/rspec-mocks-3.6.0/.document +5 -0
- data/gems/gems/rspec-mocks-3.6.0/.yardopts +6 -0
- data/gems/gems/rspec-mocks-3.6.0/Changelog.md +1073 -0
- data/gems/gems/rspec-mocks-3.6.0/LICENSE.md +25 -0
- data/gems/gems/rspec-mocks-3.6.0/README.md +460 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks.rb +130 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance.rb +11 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_matchers.rb +320 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/configuration.rb +212 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/error_generator.rb +369 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/example_methods.rb +434 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/marshal_extension.rb +41 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive.rb +132 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_chain.rb +87 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_expectation.rb +740 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_double.rb +287 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_reference.rb +202 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/minitest_integration.rb +68 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/mutate_const.rb +339 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/object_reference.rb +149 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/order_group.rb +81 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/proxy.rb +484 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/space.rb +238 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/standalone.rb +3 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/syntax.rb +325 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/targets.rb +124 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/test_double.rb +171 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_double.rb +129 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
- data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/version.rb +9 -0
- data/gems/gems/rspec-support-3.6.0/Changelog.md +211 -0
- data/gems/gems/rspec-support-3.6.0/LICENSE.md +23 -0
- data/gems/gems/rspec-support-3.6.0/README.md +40 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support.rb +139 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/caller_filter.rb +83 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/comparable_version.rb +46 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/differ.rb +215 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/directory_maker.rb +63 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/encoded_string.rb +165 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/hunk_generator.rb +47 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/matcher_definition.rb +42 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/method_signature_verifier.rb +392 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/mutex.rb +73 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/object_formatter.rb +268 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/reentrant_mutex.rb +53 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/ruby_features.rb +162 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source.rb +75 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/location.rb +21 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/node.rb +107 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/token.rb +87 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec.rb +81 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/shell_out.rb +84 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/string_matcher.rb +46 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/version.rb +7 -0
- data/gems/gems/rspec-support-3.6.0/lib/rspec/support/warnings.rb +39 -0
- data/gems/gems/thor-0.19.4/.document +5 -0
- data/gems/gems/thor-0.19.4/CHANGELOG.md +163 -0
- data/gems/gems/thor-0.19.4/CONTRIBUTING.md +15 -0
- data/gems/gems/thor-0.19.4/LICENSE.md +20 -0
- data/gems/gems/thor-0.19.4/README.md +47 -0
- data/gems/gems/thor-0.19.4/bin/thor +6 -0
- data/gems/gems/thor-0.19.4/lib/thor.rb +492 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions.rb +318 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions/create_file.rb +103 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions/create_link.rb +59 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions/directory.rb +118 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions/empty_directory.rb +135 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions/file_manipulation.rb +327 -0
- data/gems/gems/thor-0.19.4/lib/thor/actions/inject_into_file.rb +103 -0
- data/gems/gems/thor-0.19.4/lib/thor/base.rb +656 -0
- data/gems/gems/thor-0.19.4/lib/thor/command.rb +133 -0
- data/gems/gems/thor-0.19.4/lib/thor/core_ext/hash_with_indifferent_access.rb +85 -0
- data/gems/gems/thor-0.19.4/lib/thor/core_ext/io_binary_read.rb +12 -0
- data/gems/gems/thor-0.19.4/lib/thor/core_ext/ordered_hash.rb +129 -0
- data/gems/gems/thor-0.19.4/lib/thor/error.rb +32 -0
- data/gems/gems/thor-0.19.4/lib/thor/group.rb +281 -0
- data/gems/gems/thor-0.19.4/lib/thor/invocation.rb +177 -0
- data/gems/gems/thor-0.19.4/lib/thor/line_editor.rb +17 -0
- data/gems/gems/thor-0.19.4/lib/thor/line_editor/basic.rb +35 -0
- data/gems/gems/thor-0.19.4/lib/thor/line_editor/readline.rb +88 -0
- data/gems/gems/thor-0.19.4/lib/thor/parser.rb +4 -0
- data/gems/gems/thor-0.19.4/lib/thor/parser/argument.rb +70 -0
- data/gems/gems/thor-0.19.4/lib/thor/parser/arguments.rb +175 -0
- data/gems/gems/thor-0.19.4/lib/thor/parser/option.rb +146 -0
- data/gems/gems/thor-0.19.4/lib/thor/parser/options.rb +220 -0
- data/gems/gems/thor-0.19.4/lib/thor/rake_compat.rb +71 -0
- data/gems/gems/thor-0.19.4/lib/thor/runner.rb +322 -0
- data/gems/gems/thor-0.19.4/lib/thor/shell.rb +81 -0
- data/gems/gems/thor-0.19.4/lib/thor/shell/basic.rb +436 -0
- data/gems/gems/thor-0.19.4/lib/thor/shell/color.rb +149 -0
- data/gems/gems/thor-0.19.4/lib/thor/shell/html.rb +126 -0
- data/gems/gems/thor-0.19.4/lib/thor/util.rb +268 -0
- data/gems/gems/thor-0.19.4/lib/thor/version.rb +3 -0
- data/gems/gems/thor-0.19.4/thor.gemspec +21 -0
- data/gems/gems/unicode-0.4.4.4/README +156 -0
- data/gems/gems/unicode-0.4.4.4/Rakefile +103 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/.sitearchdir.-.unicode.time +0 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/Makefile +264 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/extconf.rb +3 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode.c +1325 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode.o +0 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode_native.bundle +0 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/unidata.map +24555 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.c +208 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.h +48 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.o +0 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.c +257 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.h +43 -0
- data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.o +0 -0
- data/gems/gems/unicode-0.4.4.4/lib/unicode.rb +6 -0
- data/gems/gems/unicode-0.4.4.4/lib/unicode/unicode_native.bundle +0 -0
- data/gems/gems/unicode-0.4.4.4/test/test.rb +69 -0
- data/gems/gems/unicode-0.4.4.4/tools/README +7 -0
- data/gems/gems/unicode-0.4.4.4/tools/mkunidata.rb +293 -0
- data/gems/gems/unicode-0.4.4.4/tools/normtest.rb +111 -0
- data/gems/gems/unicode-0.4.4.4/unicode.gemspec +30 -0
- data/gems/specifications/bibtex-ruby-4.4.4.gemspec +32 -0
- data/gems/specifications/diff-lcs-1.3.gemspec +61 -0
- data/gems/specifications/latex-decode-0.2.2.gemspec +35 -0
- data/gems/specifications/rake-10.5.0.gemspec +43 -0
- data/gems/specifications/rspec-3.6.0.gemspec +42 -0
- data/gems/specifications/rspec-core-3.6.0.gemspec +62 -0
- data/gems/specifications/rspec-expectations-3.6.0.gemspec +50 -0
- data/gems/specifications/rspec-mocks-3.6.0.gemspec +50 -0
- data/gems/specifications/rspec-support-3.6.0.gemspec +41 -0
- data/gems/specifications/thor-0.19.4.gemspec +35 -0
- data/gems/specifications/unicode-0.4.4.4.gemspec +25 -0
- data/lib/bibtex_to_scrapbox.rb +67 -0
- data/lib/bibtex_to_scrapbox/version.rb +3 -0
- data/lib/cli.rb +23 -0
- metadata +740 -0
@@ -0,0 +1,432 @@
|
|
1
|
+
RSpec::Support.require_rspec_support 'method_signature_verifier'
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Matchers
|
5
|
+
module BuiltIn
|
6
|
+
# @private
|
7
|
+
# Object that is yielded to `expect` when one of the
|
8
|
+
# yield matchers is used. Provides information about
|
9
|
+
# the yield behavior of the object-under-test.
|
10
|
+
class YieldProbe
|
11
|
+
def self.probe(block, &callback)
|
12
|
+
probe = new(block, &callback)
|
13
|
+
return probe unless probe.has_block?
|
14
|
+
probe.probe
|
15
|
+
end
|
16
|
+
|
17
|
+
attr_accessor :num_yields, :yielded_args
|
18
|
+
|
19
|
+
def initialize(block, &callback)
|
20
|
+
@block = block
|
21
|
+
@callback = callback || Proc.new {}
|
22
|
+
@used = false
|
23
|
+
self.num_yields = 0
|
24
|
+
self.yielded_args = []
|
25
|
+
end
|
26
|
+
|
27
|
+
def has_block?
|
28
|
+
Proc === @block
|
29
|
+
end
|
30
|
+
|
31
|
+
def probe
|
32
|
+
assert_valid_expect_block!
|
33
|
+
@block.call(self)
|
34
|
+
assert_used!
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_proc
|
39
|
+
@used = true
|
40
|
+
|
41
|
+
probe = self
|
42
|
+
callback = @callback
|
43
|
+
Proc.new do |*args|
|
44
|
+
probe.num_yields += 1
|
45
|
+
probe.yielded_args << args
|
46
|
+
callback.call(*args)
|
47
|
+
nil # to indicate the block does not return a meaningful value
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def single_yield_args
|
52
|
+
yielded_args.first
|
53
|
+
end
|
54
|
+
|
55
|
+
def yielded_once?(matcher_name)
|
56
|
+
case num_yields
|
57
|
+
when 1 then true
|
58
|
+
when 0 then false
|
59
|
+
else
|
60
|
+
raise "The #{matcher_name} matcher is not designed to be used with a " \
|
61
|
+
'method that yields multiple times. Use the yield_successive_args ' \
|
62
|
+
'matcher for that case.'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def assert_used!
|
67
|
+
return if @used
|
68
|
+
raise 'You must pass the argument yielded to your expect block on ' \
|
69
|
+
'to the method-under-test as a block. It acts as a probe that ' \
|
70
|
+
'allows the matcher to detect whether or not the method-under-test ' \
|
71
|
+
'yields, and, if so, how many times, and what the yielded arguments ' \
|
72
|
+
'are.'
|
73
|
+
end
|
74
|
+
|
75
|
+
if RUBY_VERSION.to_f > 1.8
|
76
|
+
def assert_valid_expect_block!
|
77
|
+
block_signature = RSpec::Support::BlockSignature.new(@block)
|
78
|
+
return if RSpec::Support::StrictSignatureVerifier.new(block_signature, [self]).valid?
|
79
|
+
raise 'Your expect block must accept an argument to be used with this ' \
|
80
|
+
'matcher. Pass the argument as a block on to the method you are testing.'
|
81
|
+
end
|
82
|
+
else
|
83
|
+
# :nocov:
|
84
|
+
# On 1.8.7, `lambda { }.arity` and `lambda { |*a| }.arity` both return -1,
|
85
|
+
# so we can't distinguish between accepting no args and an arg splat.
|
86
|
+
# It's OK to skip, this, though; it just provides a nice error message
|
87
|
+
# when the user forgets to accept an arg in their block. They'll still get
|
88
|
+
# the `assert_used!` error message from above, which is sufficient.
|
89
|
+
def assert_valid_expect_block!
|
90
|
+
# nothing to do
|
91
|
+
end
|
92
|
+
# :nocov:
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# @api private
|
97
|
+
# Provides the implementation for `yield_control`.
|
98
|
+
# Not intended to be instantiated directly.
|
99
|
+
class YieldControl < BaseMatcher
|
100
|
+
def initialize
|
101
|
+
at_least(:once)
|
102
|
+
end
|
103
|
+
|
104
|
+
# @api public
|
105
|
+
# Specifies that the method is expected to yield once.
|
106
|
+
def once
|
107
|
+
exactly(1)
|
108
|
+
self
|
109
|
+
end
|
110
|
+
|
111
|
+
# @api public
|
112
|
+
# Specifies that the method is expected to yield twice.
|
113
|
+
def twice
|
114
|
+
exactly(2)
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
118
|
+
# @api public
|
119
|
+
# Specifies that the method is expected to yield thrice.
|
120
|
+
def thrice
|
121
|
+
exactly(3)
|
122
|
+
self
|
123
|
+
end
|
124
|
+
|
125
|
+
# @api public
|
126
|
+
# Specifies that the method is expected to yield the given number of times.
|
127
|
+
def exactly(number)
|
128
|
+
set_expected_yields_count(:==, number)
|
129
|
+
self
|
130
|
+
end
|
131
|
+
|
132
|
+
# @api public
|
133
|
+
# Specifies the maximum number of times the method is expected to yield
|
134
|
+
def at_most(number)
|
135
|
+
set_expected_yields_count(:<=, number)
|
136
|
+
self
|
137
|
+
end
|
138
|
+
|
139
|
+
# @api public
|
140
|
+
# Specifies the minimum number of times the method is expected to yield
|
141
|
+
def at_least(number)
|
142
|
+
set_expected_yields_count(:>=, number)
|
143
|
+
self
|
144
|
+
end
|
145
|
+
|
146
|
+
# @api public
|
147
|
+
# No-op. Provides syntactic sugar.
|
148
|
+
def times
|
149
|
+
self
|
150
|
+
end
|
151
|
+
|
152
|
+
# @private
|
153
|
+
def matches?(block)
|
154
|
+
@probe = YieldProbe.probe(block)
|
155
|
+
return false unless @probe.has_block?
|
156
|
+
|
157
|
+
@probe.num_yields.__send__(@expectation_type, @expected_yields_count)
|
158
|
+
end
|
159
|
+
|
160
|
+
# @private
|
161
|
+
def does_not_match?(block)
|
162
|
+
!matches?(block) && @probe.has_block?
|
163
|
+
end
|
164
|
+
|
165
|
+
# @api private
|
166
|
+
# @return [String]
|
167
|
+
def failure_message
|
168
|
+
'expected given block to yield control' + failure_reason
|
169
|
+
end
|
170
|
+
|
171
|
+
# @api private
|
172
|
+
# @return [String]
|
173
|
+
def failure_message_when_negated
|
174
|
+
'expected given block not to yield control' + failure_reason
|
175
|
+
end
|
176
|
+
|
177
|
+
# @private
|
178
|
+
def supports_block_expectations?
|
179
|
+
true
|
180
|
+
end
|
181
|
+
|
182
|
+
private
|
183
|
+
|
184
|
+
def set_expected_yields_count(relativity, n)
|
185
|
+
@expectation_type = relativity
|
186
|
+
@expected_yields_count = case n
|
187
|
+
when Numeric then n
|
188
|
+
when :once then 1
|
189
|
+
when :twice then 2
|
190
|
+
when :thrice then 3
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def failure_reason
|
195
|
+
return ' but was not a block' unless @probe.has_block?
|
196
|
+
return '' unless @expected_yields_count
|
197
|
+
" #{human_readable_expectation_type}#{human_readable_count(@expected_yields_count)}" \
|
198
|
+
" but yielded #{human_readable_count(@probe.num_yields)}"
|
199
|
+
end
|
200
|
+
|
201
|
+
def human_readable_expectation_type
|
202
|
+
case @expectation_type
|
203
|
+
when :<= then 'at most '
|
204
|
+
when :>= then 'at least '
|
205
|
+
else ''
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
def human_readable_count(count)
|
210
|
+
case count
|
211
|
+
when 1 then 'once'
|
212
|
+
when 2 then 'twice'
|
213
|
+
else "#{count} times"
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
# @api private
|
219
|
+
# Provides the implementation for `yield_with_no_args`.
|
220
|
+
# Not intended to be instantiated directly.
|
221
|
+
class YieldWithNoArgs < BaseMatcher
|
222
|
+
# @private
|
223
|
+
def matches?(block)
|
224
|
+
@probe = YieldProbe.probe(block)
|
225
|
+
return false unless @probe.has_block?
|
226
|
+
@probe.yielded_once?(:yield_with_no_args) && @probe.single_yield_args.empty?
|
227
|
+
end
|
228
|
+
|
229
|
+
# @private
|
230
|
+
def does_not_match?(block)
|
231
|
+
!matches?(block) && @probe.has_block?
|
232
|
+
end
|
233
|
+
|
234
|
+
# @private
|
235
|
+
def failure_message
|
236
|
+
"expected given block to yield with no arguments, but #{positive_failure_reason}"
|
237
|
+
end
|
238
|
+
|
239
|
+
# @private
|
240
|
+
def failure_message_when_negated
|
241
|
+
"expected given block not to yield with no arguments, but #{negative_failure_reason}"
|
242
|
+
end
|
243
|
+
|
244
|
+
# @private
|
245
|
+
def supports_block_expectations?
|
246
|
+
true
|
247
|
+
end
|
248
|
+
|
249
|
+
private
|
250
|
+
|
251
|
+
def positive_failure_reason
|
252
|
+
return 'was not a block' unless @probe.has_block?
|
253
|
+
return 'did not yield' if @probe.num_yields.zero?
|
254
|
+
"yielded with arguments: #{description_of @probe.single_yield_args}"
|
255
|
+
end
|
256
|
+
|
257
|
+
def negative_failure_reason
|
258
|
+
return 'was not a block' unless @probe.has_block?
|
259
|
+
'did'
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
# @api private
|
264
|
+
# Provides the implementation for `yield_with_args`.
|
265
|
+
# Not intended to be instantiated directly.
|
266
|
+
class YieldWithArgs < BaseMatcher
|
267
|
+
def initialize(*args)
|
268
|
+
@expected = args
|
269
|
+
end
|
270
|
+
|
271
|
+
# @private
|
272
|
+
def matches?(block)
|
273
|
+
@args_matched_when_yielded = true
|
274
|
+
@probe = YieldProbe.new(block) do
|
275
|
+
@actual = @probe.single_yield_args
|
276
|
+
@actual_formatted = actual_formatted
|
277
|
+
@args_matched_when_yielded &&= args_currently_match?
|
278
|
+
end
|
279
|
+
return false unless @probe.has_block?
|
280
|
+
@probe.probe
|
281
|
+
@probe.yielded_once?(:yield_with_args) && @args_matched_when_yielded
|
282
|
+
end
|
283
|
+
|
284
|
+
# @private
|
285
|
+
def does_not_match?(block)
|
286
|
+
!matches?(block) && @probe.has_block?
|
287
|
+
end
|
288
|
+
|
289
|
+
# @private
|
290
|
+
def failure_message
|
291
|
+
"expected given block to yield with arguments, but #{positive_failure_reason}"
|
292
|
+
end
|
293
|
+
|
294
|
+
# @private
|
295
|
+
def failure_message_when_negated
|
296
|
+
"expected given block not to yield with arguments, but #{negative_failure_reason}"
|
297
|
+
end
|
298
|
+
|
299
|
+
# @private
|
300
|
+
def description
|
301
|
+
desc = 'yield with args'
|
302
|
+
desc << "(#{expected_arg_description})" unless @expected.empty?
|
303
|
+
desc
|
304
|
+
end
|
305
|
+
|
306
|
+
# @private
|
307
|
+
def supports_block_expectations?
|
308
|
+
true
|
309
|
+
end
|
310
|
+
|
311
|
+
private
|
312
|
+
|
313
|
+
def positive_failure_reason
|
314
|
+
return 'was not a block' unless @probe.has_block?
|
315
|
+
return 'did not yield' if @probe.num_yields.zero?
|
316
|
+
@positive_args_failure
|
317
|
+
end
|
318
|
+
|
319
|
+
def expected_arg_description
|
320
|
+
@expected.map { |e| description_of e }.join(', ')
|
321
|
+
end
|
322
|
+
|
323
|
+
def negative_failure_reason
|
324
|
+
if !@probe.has_block?
|
325
|
+
'was not a block'
|
326
|
+
elsif @args_matched_when_yielded && !@expected.empty?
|
327
|
+
'yielded with expected arguments' \
|
328
|
+
"\nexpected not: #{surface_descriptions_in(@expected).inspect}" \
|
329
|
+
"\n got: #{@actual_formatted}"
|
330
|
+
else
|
331
|
+
'did'
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
def args_currently_match?
|
336
|
+
if @expected.empty? # expect {...}.to yield_with_args
|
337
|
+
@positive_args_failure = 'yielded with no arguments' if @actual.empty?
|
338
|
+
return !@actual.empty?
|
339
|
+
end
|
340
|
+
|
341
|
+
unless (match = all_args_match?)
|
342
|
+
@positive_args_failure = 'yielded with unexpected arguments' \
|
343
|
+
"\nexpected: #{surface_descriptions_in(@expected).inspect}" \
|
344
|
+
"\n got: #{@actual_formatted}"
|
345
|
+
end
|
346
|
+
|
347
|
+
match
|
348
|
+
end
|
349
|
+
|
350
|
+
def all_args_match?
|
351
|
+
values_match?(@expected, @actual)
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
# @api private
|
356
|
+
# Provides the implementation for `yield_successive_args`.
|
357
|
+
# Not intended to be instantiated directly.
|
358
|
+
class YieldSuccessiveArgs < BaseMatcher
|
359
|
+
def initialize(*args)
|
360
|
+
@expected = args
|
361
|
+
end
|
362
|
+
|
363
|
+
# @private
|
364
|
+
def matches?(block)
|
365
|
+
@actual_formatted = []
|
366
|
+
@actual = []
|
367
|
+
args_matched_when_yielded = true
|
368
|
+
yield_count = 0
|
369
|
+
|
370
|
+
@probe = YieldProbe.probe(block) do |*arg_array|
|
371
|
+
arg_or_args = arg_array.size == 1 ? arg_array.first : arg_array
|
372
|
+
@actual_formatted << RSpec::Support::ObjectFormatter.format(arg_or_args)
|
373
|
+
@actual << arg_or_args
|
374
|
+
args_matched_when_yielded &&= values_match?(@expected[yield_count], arg_or_args)
|
375
|
+
yield_count += 1
|
376
|
+
end
|
377
|
+
|
378
|
+
return false unless @probe.has_block?
|
379
|
+
args_matched_when_yielded && yield_count == @expected.length
|
380
|
+
end
|
381
|
+
|
382
|
+
def does_not_match?(block)
|
383
|
+
!matches?(block) && @probe.has_block?
|
384
|
+
end
|
385
|
+
|
386
|
+
# @private
|
387
|
+
def failure_message
|
388
|
+
'expected given block to yield successively with arguments, ' \
|
389
|
+
"but #{positive_failure_reason}"
|
390
|
+
end
|
391
|
+
|
392
|
+
# @private
|
393
|
+
def failure_message_when_negated
|
394
|
+
'expected given block not to yield successively with arguments, ' \
|
395
|
+
"but #{negative_failure_reason}"
|
396
|
+
end
|
397
|
+
|
398
|
+
# @private
|
399
|
+
def description
|
400
|
+
"yield successive args(#{expected_arg_description})"
|
401
|
+
end
|
402
|
+
|
403
|
+
# @private
|
404
|
+
def supports_block_expectations?
|
405
|
+
true
|
406
|
+
end
|
407
|
+
|
408
|
+
private
|
409
|
+
|
410
|
+
def expected_arg_description
|
411
|
+
@expected.map { |e| description_of e }.join(', ')
|
412
|
+
end
|
413
|
+
|
414
|
+
def positive_failure_reason
|
415
|
+
return 'was not a block' unless @probe.has_block?
|
416
|
+
|
417
|
+
'yielded with unexpected arguments' \
|
418
|
+
"\nexpected: #{surface_descriptions_in(@expected).inspect}" \
|
419
|
+
"\n got: [#{@actual_formatted.join(", ")}]"
|
420
|
+
end
|
421
|
+
|
422
|
+
def negative_failure_reason
|
423
|
+
return 'was not a block' unless @probe.has_block?
|
424
|
+
|
425
|
+
'yielded with expected arguments' \
|
426
|
+
"\nexpected not: #{surface_descriptions_in(@expected).inspect}" \
|
427
|
+
"\n got: [#{@actual_formatted.join(", ")}]"
|
428
|
+
end
|
429
|
+
end
|
430
|
+
end
|
431
|
+
end
|
432
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
RSpec::Support.require_rspec_support "fuzzy_matcher"
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Matchers
|
5
|
+
# Mixin designed to support the composable matcher features
|
6
|
+
# of RSpec 3+. Mix it into your custom matcher classes to
|
7
|
+
# allow them to be used in a composable fashion.
|
8
|
+
#
|
9
|
+
# @api public
|
10
|
+
module Composable
|
11
|
+
# Creates a compound `and` expectation. The matcher will
|
12
|
+
# only pass if both sub-matchers pass.
|
13
|
+
# This can be chained together to form an arbitrarily long
|
14
|
+
# chain of matchers.
|
15
|
+
#
|
16
|
+
# @example
|
17
|
+
# expect(alphabet).to start_with("a").and end_with("z")
|
18
|
+
# expect(alphabet).to start_with("a") & end_with("z")
|
19
|
+
#
|
20
|
+
# @note The negative form (`expect(...).not_to matcher.and other`)
|
21
|
+
# is not supported at this time.
|
22
|
+
def and(matcher)
|
23
|
+
BuiltIn::Compound::And.new self, matcher
|
24
|
+
end
|
25
|
+
alias & and
|
26
|
+
|
27
|
+
# Creates a compound `or` expectation. The matcher will
|
28
|
+
# pass if either sub-matcher passes.
|
29
|
+
# This can be chained together to form an arbitrarily long
|
30
|
+
# chain of matchers.
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# expect(stoplight.color).to eq("red").or eq("green").or eq("yellow")
|
34
|
+
# expect(stoplight.color).to eq("red") | eq("green") | eq("yellow")
|
35
|
+
#
|
36
|
+
# @note The negative form (`expect(...).not_to matcher.or other`)
|
37
|
+
# is not supported at this time.
|
38
|
+
def or(matcher)
|
39
|
+
BuiltIn::Compound::Or.new self, matcher
|
40
|
+
end
|
41
|
+
alias | or
|
42
|
+
|
43
|
+
# Delegates to `#matches?`. Allows matchers to be used in composable
|
44
|
+
# fashion and also supports using matchers in case statements.
|
45
|
+
def ===(value)
|
46
|
+
matches?(value)
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
# This provides a generic way to fuzzy-match an expected value against
|
52
|
+
# an actual value. It understands nested data structures (e.g. hashes
|
53
|
+
# and arrays) and is able to match against a matcher being used as
|
54
|
+
# the expected value or within the expected value at any level of
|
55
|
+
# nesting.
|
56
|
+
#
|
57
|
+
# Within a custom matcher you are encouraged to use this whenever your
|
58
|
+
# matcher needs to match two values, unless it needs more precise semantics.
|
59
|
+
# For example, the `eq` matcher _does not_ use this as it is meant to
|
60
|
+
# use `==` (and only `==`) for matching.
|
61
|
+
#
|
62
|
+
# @param expected [Object] what is expected
|
63
|
+
# @param actual [Object] the actual value
|
64
|
+
#
|
65
|
+
# @!visibility public
|
66
|
+
def values_match?(expected, actual)
|
67
|
+
expected = with_matchers_cloned(expected)
|
68
|
+
Support::FuzzyMatcher.values_match?(expected, actual)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Returns the description of the given object in a way that is
|
72
|
+
# aware of composed matchers. If the object is a matcher with
|
73
|
+
# a `description` method, returns the description; otherwise
|
74
|
+
# returns `object.inspect`.
|
75
|
+
#
|
76
|
+
# You are encouraged to use this in your custom matcher's
|
77
|
+
# `description`, `failure_message` or
|
78
|
+
# `failure_message_when_negated` implementation if you are
|
79
|
+
# supporting matcher arguments.
|
80
|
+
#
|
81
|
+
# @!visibility public
|
82
|
+
def description_of(object)
|
83
|
+
RSpec::Support::ObjectFormatter.format(object)
|
84
|
+
end
|
85
|
+
|
86
|
+
# Transforms the given data structue (typically a hash or array)
|
87
|
+
# into a new data structure that, when `#inspect` is called on it,
|
88
|
+
# will provide descriptions of any contained matchers rather than
|
89
|
+
# the normal `#inspect` output.
|
90
|
+
#
|
91
|
+
# You are encouraged to use this in your custom matcher's
|
92
|
+
# `description`, `failure_message` or
|
93
|
+
# `failure_message_when_negated` implementation if you are
|
94
|
+
# supporting any arguments which may be a data structure
|
95
|
+
# containing matchers.
|
96
|
+
#
|
97
|
+
# @!visibility public
|
98
|
+
def surface_descriptions_in(item)
|
99
|
+
if Matchers.is_a_describable_matcher?(item)
|
100
|
+
DescribableItem.new(item)
|
101
|
+
elsif Hash === item
|
102
|
+
Hash[surface_descriptions_in(item.to_a)]
|
103
|
+
elsif Struct === item || unreadable_io?(item)
|
104
|
+
RSpec::Support::ObjectFormatter.format(item)
|
105
|
+
elsif should_enumerate?(item)
|
106
|
+
item.map { |subitem| surface_descriptions_in(subitem) }
|
107
|
+
else
|
108
|
+
item
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
# @private
|
113
|
+
# Historically, a single matcher instance was only checked
|
114
|
+
# against a single value. Given that the matcher was only
|
115
|
+
# used once, it's been common to memoize some intermediate
|
116
|
+
# calculation that is derived from the `actual` value in
|
117
|
+
# order to reuse that intermediate result in the failure
|
118
|
+
# message.
|
119
|
+
#
|
120
|
+
# This can cause a problem when using such a matcher as an
|
121
|
+
# argument to another matcher in a composed matcher expression,
|
122
|
+
# since the matcher instance may be checked against multiple
|
123
|
+
# values and produce invalid results due to the memoization.
|
124
|
+
#
|
125
|
+
# To deal with this, we clone any matchers in `expected` via
|
126
|
+
# this method when using `values_match?`, so that any memoization
|
127
|
+
# does not "leak" between checks.
|
128
|
+
def with_matchers_cloned(object)
|
129
|
+
if Matchers.is_a_matcher?(object)
|
130
|
+
object.clone
|
131
|
+
elsif Hash === object
|
132
|
+
Hash[with_matchers_cloned(object.to_a)]
|
133
|
+
elsif should_enumerate?(object)
|
134
|
+
object.map { |subobject| with_matchers_cloned(subobject) }
|
135
|
+
else
|
136
|
+
object
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
# @api private
|
141
|
+
# We should enumerate arrays as long as they are not recursive.
|
142
|
+
def should_enumerate?(item)
|
143
|
+
Array === item && item.none? { |subitem| subitem.equal?(item) }
|
144
|
+
end
|
145
|
+
|
146
|
+
# @api private
|
147
|
+
def unreadable_io?(object)
|
148
|
+
return false unless IO === object
|
149
|
+
object.each {} # STDOUT is enumerable but raises an error
|
150
|
+
false
|
151
|
+
rescue IOError
|
152
|
+
true
|
153
|
+
end
|
154
|
+
module_function :surface_descriptions_in, :should_enumerate?, :unreadable_io?
|
155
|
+
|
156
|
+
# Wraps an item in order to surface its `description` via `inspect`.
|
157
|
+
# @api private
|
158
|
+
DescribableItem = Struct.new(:item) do
|
159
|
+
def inspect
|
160
|
+
"(#{item.description})"
|
161
|
+
end
|
162
|
+
|
163
|
+
def pretty_print(pp)
|
164
|
+
pp.text "(#{item.description})"
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|