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,53 @@
|
|
1
|
+
Feature: BibTeX Strings
|
2
|
+
As a hacker who works with bibliographies
|
3
|
+
I want to be able to parse BibTeX files containing string assignments
|
4
|
+
|
5
|
+
@string
|
6
|
+
Scenario: A BibTeX file with string assignments
|
7
|
+
When I parse the following file:
|
8
|
+
"""
|
9
|
+
%%
|
10
|
+
%% This is a valid BibTeX file
|
11
|
+
%% String assignments Test
|
12
|
+
%%
|
13
|
+
|
14
|
+
@string{foo="bar"}
|
15
|
+
@ string{foo="bar"}
|
16
|
+
@string {foo="bar"}
|
17
|
+
@string{ foo="bar"}
|
18
|
+
@string{foo ="bar"}
|
19
|
+
@string{foo= "bar"}
|
20
|
+
@string{foo="bar" }
|
21
|
+
@ string { foo = "bar" }
|
22
|
+
@string { foo= "bar"}
|
23
|
+
@string{ foo = "bar" }
|
24
|
+
|
25
|
+
@string{foo="bar"}
|
26
|
+
@string{foo="'bar'"}
|
27
|
+
@string{foo="{"}bar{"}"}
|
28
|
+
|
29
|
+
Using some interesting symbols
|
30
|
+
@string{foo="@bar@"}
|
31
|
+
@string{foo="'bar'"}
|
32
|
+
@string{foo="{"}bar{"}"}
|
33
|
+
@string{foo="{bar}"}
|
34
|
+
"""
|
35
|
+
Then my bibliography should contain the following objects:
|
36
|
+
| type | value |
|
37
|
+
| string | bar |
|
38
|
+
| string | bar |
|
39
|
+
| string | bar |
|
40
|
+
| string | bar |
|
41
|
+
| string | bar |
|
42
|
+
| string | bar |
|
43
|
+
| string | bar |
|
44
|
+
| string | bar |
|
45
|
+
| string | bar |
|
46
|
+
| string | bar |
|
47
|
+
| string | bar |
|
48
|
+
| string | 'bar' |
|
49
|
+
| string | {"}bar{"} |
|
50
|
+
| string | @bar@ |
|
51
|
+
| string | 'bar' |
|
52
|
+
| string | {"}bar{"} |
|
53
|
+
| string | {bar} |
|
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'simplecov'
|
3
|
+
require 'coveralls' if ENV['CI']
|
4
|
+
rescue LoadError
|
5
|
+
# ignore
|
6
|
+
end
|
7
|
+
|
8
|
+
begin
|
9
|
+
if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
10
|
+
require 'rubinius-debugger'
|
11
|
+
else
|
12
|
+
require 'debugger'
|
13
|
+
end
|
14
|
+
rescue LoadError
|
15
|
+
# ignore
|
16
|
+
end
|
17
|
+
|
18
|
+
require 'minitest/unit'
|
19
|
+
require 'bibtex'
|
20
|
+
|
21
|
+
World(MiniTest::Assertions)
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#--
|
2
|
+
# BibTeX-Ruby
|
3
|
+
# Copyright (C) 2010-2015 Sylvester Keil <sylvester.keil.or.at>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#++
|
18
|
+
|
19
|
+
require 'digest/md5'
|
20
|
+
require 'forwardable'
|
21
|
+
require 'logger'
|
22
|
+
require 'open-uri'
|
23
|
+
|
24
|
+
require 'json'
|
25
|
+
|
26
|
+
require 'bibtex/version'
|
27
|
+
|
28
|
+
# = BibTeX
|
29
|
+
#
|
30
|
+
# This module encompasses a parser for BibTeX files and
|
31
|
+
# an API to the individual BibTeX objects: +String+,
|
32
|
+
# +Preamble+, +Comment+, and +Entry+.
|
33
|
+
#
|
34
|
+
# Author:: {Sylvester Keil}[http://sylvester.keil.or.at]
|
35
|
+
# Copyright:: Copyright (c) 2010-2014 Sylvester Keil
|
36
|
+
# License:: GNU GPL 3.0
|
37
|
+
#
|
38
|
+
module BibTeX
|
39
|
+
|
40
|
+
#
|
41
|
+
# An instance of the Ruby core class +Logger+.
|
42
|
+
# Used for logging by BibTeX-Ruby.
|
43
|
+
#
|
44
|
+
@log = Logger.new(STDERR)
|
45
|
+
@log.level = ENV.has_key?('DEBUG') ? Logger::DEBUG : Logger::WARN
|
46
|
+
@log.datetime_format = '%Y-%m-%d %H:%M:%S'
|
47
|
+
|
48
|
+
class << self
|
49
|
+
attr_accessor :log
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
# Load debugger
|
55
|
+
# require 'ruby-debug'
|
56
|
+
# Debugger.start
|
57
|
+
|
58
|
+
require 'bibtex/extensions'
|
59
|
+
|
60
|
+
require 'bibtex/value'
|
61
|
+
require 'bibtex/filters'
|
62
|
+
require 'bibtex/name_parser'
|
63
|
+
|
64
|
+
require 'bibtex/compatibility'
|
65
|
+
|
66
|
+
require 'bibtex/names'
|
67
|
+
require 'bibtex/replaceable'
|
68
|
+
require 'bibtex/elements'
|
69
|
+
require 'bibtex/entry'
|
70
|
+
require 'bibtex/entry/bibtexml_converter'
|
71
|
+
require 'bibtex/entry/citeproc_converter'
|
72
|
+
require 'bibtex/error'
|
73
|
+
require 'bibtex/parser'
|
74
|
+
require 'bibtex/bibliography'
|
75
|
+
require 'bibtex/utilities'
|
76
|
+
|
77
|
+
begin
|
78
|
+
require 'rdf'
|
79
|
+
require 'bibtex/entry/rdf_converter'
|
80
|
+
require 'bibtex/bibliography/rdf_converter'
|
81
|
+
rescue LoadError
|
82
|
+
# ignored
|
83
|
+
end
|
@@ -0,0 +1,594 @@
|
|
1
|
+
#--
|
2
|
+
# BibTeX-Ruby
|
3
|
+
# Copyright (C) 2010-2015 Sylvester Keil <sylvester.keil.or.at>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
#++
|
18
|
+
|
19
|
+
module BibTeX
|
20
|
+
|
21
|
+
#
|
22
|
+
# The Bibliography class models a BibTeX bibliography;
|
23
|
+
# typically, it corresponds to a `.bib' file.
|
24
|
+
#
|
25
|
+
class Bibliography
|
26
|
+
extend Forwardable
|
27
|
+
|
28
|
+
include Enumerable
|
29
|
+
include Comparable
|
30
|
+
|
31
|
+
@defaults = { :parse_names => true, :parse_months => true }.freeze
|
32
|
+
|
33
|
+
class << self
|
34
|
+
|
35
|
+
attr_reader :defaults
|
36
|
+
|
37
|
+
# Opens and parses the `.bib' file at the given +path+. Returns
|
38
|
+
# a new Bibliography instance corresponding to the file, or, if a block
|
39
|
+
# is given, yields the instance to the block, ensuring that the file
|
40
|
+
# is saved after the block's execution (use the :out option if you want
|
41
|
+
# to specify a save path other than the path from where the file is
|
42
|
+
# loaded).
|
43
|
+
#
|
44
|
+
# The options argument is passed on to BibTeX::Parser.new. Additional
|
45
|
+
# option parameters are:
|
46
|
+
#
|
47
|
+
# -:parse_names: set to false to disable automatic name parsing
|
48
|
+
# -:parse_months: set to false to disable automatic month conversion
|
49
|
+
# -:filter: convert all entries using the sepcified filter (not set by default)
|
50
|
+
#
|
51
|
+
def open(path, options = {})
|
52
|
+
b = parse(Kernel.open(path, 'r:UTF-8').read, options)
|
53
|
+
b.path = path
|
54
|
+
return b unless block_given?
|
55
|
+
|
56
|
+
begin
|
57
|
+
yield b
|
58
|
+
ensure
|
59
|
+
b.save_to(options[:out] || path)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Parses the given string and returns a corresponding Bibliography instance.
|
64
|
+
def parse(input, options = {})
|
65
|
+
case input
|
66
|
+
when Array, Hash, Element
|
67
|
+
Bibliography.new(options).add(input)
|
68
|
+
when ::String
|
69
|
+
Parser.new(options).parse(input) || Bibliography.new(options)
|
70
|
+
else
|
71
|
+
raise ArgumentError, "failed to parse #{input.inspect}"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Defines a new accessor that selects elements by type.
|
76
|
+
def attr_by_type(*arguments)
|
77
|
+
arguments.each do |type|
|
78
|
+
method_id = "#{type}s"
|
79
|
+
define_method(method_id) { find_by_type(type) } unless respond_to?(method_id)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
attr_accessor :path
|
85
|
+
|
86
|
+
attr_reader :data, :strings, :entries, :errors, :options
|
87
|
+
|
88
|
+
attr_by_type :article, :book, :journal, :collection, :preamble,
|
89
|
+
:comment, :meta_content
|
90
|
+
|
91
|
+
def_delegators :@data, :length, :size, :empty?
|
92
|
+
def_delegators :@entries, :key?, :has_key?, :values_at
|
93
|
+
|
94
|
+
alias entries_at values_at
|
95
|
+
|
96
|
+
# Creates a new bibliography.
|
97
|
+
def initialize(options = {})
|
98
|
+
@options = Bibliography.defaults.merge(options)
|
99
|
+
@data, @strings, @errors = [], {}, []
|
100
|
+
@entries = Hash.new { |h,k| h.fetch(k.to_s, nil) }
|
101
|
+
|
102
|
+
yield self if block_given?
|
103
|
+
end
|
104
|
+
|
105
|
+
def initialize_copy(other)
|
106
|
+
@options = other.options.dup
|
107
|
+
@errors = other.errors.dup
|
108
|
+
@data, @strings = [], {}
|
109
|
+
@entries = Hash.new { |h,k| h.fetch(k.to_s, nil) }
|
110
|
+
|
111
|
+
other.each do |element|
|
112
|
+
add element.dup
|
113
|
+
end
|
114
|
+
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
118
|
+
# Adds a new element, or a list of new elements to the bibliography.
|
119
|
+
# Returns the Bibliography for chainability.
|
120
|
+
def add(*arguments)
|
121
|
+
Element.parse(arguments.flatten, @options).each do |element|
|
122
|
+
data << element.added_to_bibliography(self)
|
123
|
+
end
|
124
|
+
self
|
125
|
+
end
|
126
|
+
|
127
|
+
alias << add
|
128
|
+
alias push add
|
129
|
+
|
130
|
+
|
131
|
+
# Saves the bibliography to the current path.
|
132
|
+
def save(options = {})
|
133
|
+
save_to(@path, options)
|
134
|
+
end
|
135
|
+
|
136
|
+
# Saves the bibliography to a file at the given path. Returns the bibliography.
|
137
|
+
def save_to(path, options = {})
|
138
|
+
options[:quotes] ||= %w({ })
|
139
|
+
|
140
|
+
File.open(path, 'w:UTF-8') do |f|
|
141
|
+
f.write(to_s(options))
|
142
|
+
end
|
143
|
+
|
144
|
+
self
|
145
|
+
end
|
146
|
+
|
147
|
+
|
148
|
+
def each
|
149
|
+
if block_given?
|
150
|
+
data.each(&Proc.new)
|
151
|
+
self
|
152
|
+
else
|
153
|
+
to_enum
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
|
158
|
+
def parse_names
|
159
|
+
entries.each_value { |e| e.parse_names }
|
160
|
+
self
|
161
|
+
end
|
162
|
+
|
163
|
+
def parse_months
|
164
|
+
entries.each_value { |e| e.parse_month }
|
165
|
+
self
|
166
|
+
end
|
167
|
+
|
168
|
+
|
169
|
+
# Converts all enties using the given filter(s). If an optional block is given
|
170
|
+
# the block is used as a condition (the block will be called with each
|
171
|
+
# entry). @see Entry#convert!
|
172
|
+
def convert(*filters)
|
173
|
+
filters = filters.flatten.map { |f| Filters.resolve!(f) }
|
174
|
+
|
175
|
+
entries.each_value do |entry|
|
176
|
+
entry.convert!(*filters) if !block_given? || yield(entry)
|
177
|
+
end
|
178
|
+
|
179
|
+
self
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
# Deletes an object, or a list of objects from the bibliography.
|
184
|
+
# If a list of objects is to be deleted, you can either supply the list
|
185
|
+
# of objects or use a query or block to define the list.
|
186
|
+
#
|
187
|
+
# Returns the object (or the list of objects) that were deleted; nil
|
188
|
+
# if the object was not part of the bibliography.
|
189
|
+
def delete(*arguments, &block)
|
190
|
+
objects = q(*arguments, &block).map { |o| o.removed_from_bibliography(self) }
|
191
|
+
@data = @data - objects
|
192
|
+
objects.length == 1 ? objects[0] : objects
|
193
|
+
end
|
194
|
+
|
195
|
+
alias remove delete
|
196
|
+
alias rm delete
|
197
|
+
|
198
|
+
|
199
|
+
# call-seq:
|
200
|
+
# >> bib[-1]
|
201
|
+
# => Returns the last element of the Bibliography or nil
|
202
|
+
# >> bib[1,2]
|
203
|
+
# => Returns the second and third elements or nil
|
204
|
+
# >> bib[1..2]
|
205
|
+
# >> Same as above
|
206
|
+
# >> bib[:key]
|
207
|
+
# => Returns the first entry with key 'key' or nil
|
208
|
+
# >> bib['key']
|
209
|
+
# => Same as above
|
210
|
+
# >> bib['@article']
|
211
|
+
# => Returns all entries of type 'article' or []
|
212
|
+
# >> bib['@preamble']
|
213
|
+
# => Returns all preamble objects (this is the same as Bibliography#preambles) or []
|
214
|
+
# >> bib[/ruby/]
|
215
|
+
# => Returns all objects that match 'ruby' anywhere or []
|
216
|
+
# >> bib['@book[keywords=ruby]']
|
217
|
+
# => Returns all books whose keywords attribute equals 'ruby' or []
|
218
|
+
#
|
219
|
+
# Returns an element or a list of elements according to the given index,
|
220
|
+
# range, or query. Contrary to the Bibliography#query this method does
|
221
|
+
# not yield to a block for additional refinement of the query.
|
222
|
+
#
|
223
|
+
def [](*arguments)
|
224
|
+
raise(ArgumentError, "wrong number of arguments (#{arguments.length} for 1..2)") unless arguments.length.between?(1,2)
|
225
|
+
|
226
|
+
case
|
227
|
+
when arguments[0].is_a?(Numeric) || arguments[0].is_a?(Range)
|
228
|
+
data[*arguments]
|
229
|
+
when arguments.length == 1
|
230
|
+
case
|
231
|
+
when arguments[0].nil?
|
232
|
+
nil
|
233
|
+
when arguments[0].respond_to?(:empty?) && arguments[0].empty?
|
234
|
+
nil
|
235
|
+
when arguments[0].is_a?(Symbol)
|
236
|
+
entries[arguments[0]]
|
237
|
+
when arguments[0].respond_to?(:start_with?) && !arguments[0].start_with?('@', '!@')
|
238
|
+
entries[arguments[0]]
|
239
|
+
else
|
240
|
+
query(*arguments)
|
241
|
+
end
|
242
|
+
else
|
243
|
+
query(*arguments)
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
|
248
|
+
# Returns true if there are object which could not be parsed.
|
249
|
+
def errors?
|
250
|
+
!errors.empty?
|
251
|
+
end
|
252
|
+
|
253
|
+
# Returns true if the +Bibliography+ contains no errors and only
|
254
|
+
# valid BibTeX objects (meta content is ignored).
|
255
|
+
def valid?
|
256
|
+
!errors? && entries.values.all?(&:valid?)
|
257
|
+
end
|
258
|
+
|
259
|
+
# Returns a list of the names of all authors, editors and translators in the Bibliography.
|
260
|
+
def names
|
261
|
+
map(&:names).flatten
|
262
|
+
end
|
263
|
+
|
264
|
+
# Replaces all string symbols which are defined in the bibliography.
|
265
|
+
#
|
266
|
+
# By default symbols in @string, @preamble and entries are replaced; this
|
267
|
+
# behaviour can be changed using the optional query parameter.
|
268
|
+
#
|
269
|
+
# Note that strings are replaced in the order in which they occur in the
|
270
|
+
# bibliography.
|
271
|
+
#
|
272
|
+
# call-seq:
|
273
|
+
# bib.replace #=> replaces all symbols
|
274
|
+
# bib.replace('@string, @preamble')
|
275
|
+
# #=> replaces only symbols in @string and @preamble objects
|
276
|
+
#
|
277
|
+
def replace(filter = '')
|
278
|
+
q(filter) { |e| e.replace(@strings.values) }
|
279
|
+
self
|
280
|
+
end
|
281
|
+
|
282
|
+
alias :replace_strings :replace
|
283
|
+
|
284
|
+
def join(filter = '')
|
285
|
+
q(filter, &:join)
|
286
|
+
self
|
287
|
+
end
|
288
|
+
|
289
|
+
alias join_strings join
|
290
|
+
|
291
|
+
def rename(*arguments, &block)
|
292
|
+
q('@entry') { |e| e.rename(*arguments, &block) }
|
293
|
+
self
|
294
|
+
end
|
295
|
+
|
296
|
+
# call-seq:
|
297
|
+
# b.extend_initials(['Edgar Allen', 'Poe'], ['Nathaniel', 'Hawthorne'])
|
298
|
+
# #=> Extends the initials in names like 'E.A. Poe' or 'Hawethorne, N.'
|
299
|
+
# in the bibliography.
|
300
|
+
#
|
301
|
+
# Extends the initials for the given names. Returns the Bibliography.
|
302
|
+
def extend_initials(*arguments)
|
303
|
+
arguments.each do |with_first, for_last|
|
304
|
+
names.each do |name|
|
305
|
+
name.extend_initials(with_first, for_last)
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
self
|
310
|
+
end
|
311
|
+
|
312
|
+
# This method combines all names in the bibliography that look identical
|
313
|
+
# when using initials as first names and then tries to extend the first
|
314
|
+
# names for all names in each group to the longest available form.
|
315
|
+
# Returns the bibliography.
|
316
|
+
#
|
317
|
+
# If your bibliography contains the names 'Poe, Edgar A.', 'Poe, E.A.',
|
318
|
+
# and 'Poe, E. A.' calling this method would convert all three names to
|
319
|
+
# 'Poe, Edgar A.'.
|
320
|
+
def extend_initials!
|
321
|
+
groups = Hash.new do |h,k|
|
322
|
+
h[k] = { :prototype => nil, :names => [] }
|
323
|
+
end
|
324
|
+
|
325
|
+
# group names together
|
326
|
+
names.each do |name|
|
327
|
+
group = groups[name.sort_order(:initials => true).downcase]
|
328
|
+
group[:names] << name
|
329
|
+
|
330
|
+
if group[:prototype].nil? || group[:prototype].first.to_s.length < name.first.to_s.length
|
331
|
+
group[:prototype] = name
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
# extend all names in group to prototype
|
336
|
+
groups.each_value do |group|
|
337
|
+
group[:names].each do |name|
|
338
|
+
name.set(group[:prototype])
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
self
|
343
|
+
end
|
344
|
+
|
345
|
+
# call-seq:
|
346
|
+
# b.unify :publisher, /o'?reilly/i, "O'Reilly"
|
347
|
+
# #=> Unifies the publisher name "O'Reilly" in the bibliography
|
348
|
+
#
|
349
|
+
# Sets all fields matching the passed-in pattern to the supplied value.
|
350
|
+
# If a block is given, each matching entry will be passed to the block
|
351
|
+
# instead. Returns the bibliography.
|
352
|
+
def unify(field, pattern, value = nil)
|
353
|
+
pattern = Regexp.new(pattern) unless pattern.is_a?(Regexp)
|
354
|
+
|
355
|
+
block = if block_given?
|
356
|
+
Proc.new
|
357
|
+
else
|
358
|
+
Proc.new { |e| e[field] = value }
|
359
|
+
end
|
360
|
+
|
361
|
+
each_entry do |entry|
|
362
|
+
if entry.field?(field) && entry[field].to_s =~ pattern
|
363
|
+
block.call(entry)
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
self
|
368
|
+
end
|
369
|
+
|
370
|
+
def group_by(*arguments, &block)
|
371
|
+
groups = Hash.new { |h,k| h[k] = [] }
|
372
|
+
|
373
|
+
entries.values.each do |e|
|
374
|
+
groups[e.digest(arguments, &block)] << e
|
375
|
+
end
|
376
|
+
|
377
|
+
groups
|
378
|
+
end
|
379
|
+
|
380
|
+
def sort!(*arguments, &block)
|
381
|
+
data.sort!(*arguments, &block)
|
382
|
+
self
|
383
|
+
end
|
384
|
+
|
385
|
+
def sort(*arguments, &block)
|
386
|
+
dup.sort!(*arguments, &block)
|
387
|
+
end
|
388
|
+
|
389
|
+
def sort_by!(*arguments, &block)
|
390
|
+
data.sort_by!(*arguments, &block)
|
391
|
+
self
|
392
|
+
end
|
393
|
+
|
394
|
+
# Returns a string representation of the bibliography.
|
395
|
+
def to_s(options = {})
|
396
|
+
map { |o| o.to_s(options) }.join
|
397
|
+
end
|
398
|
+
|
399
|
+
def inspect
|
400
|
+
"#<#{self.class} data=[#{length}]>"
|
401
|
+
end
|
402
|
+
|
403
|
+
def to_a(options = {})
|
404
|
+
map { |o| o.to_hash(options) }
|
405
|
+
end
|
406
|
+
|
407
|
+
# Returns a Ruby hash representation of the bibliography.
|
408
|
+
def to_hash(options = {})
|
409
|
+
{ :bibliography => map { |o| o.to_hash(options) } }
|
410
|
+
end
|
411
|
+
|
412
|
+
# Returns a YAML representation of the bibliography.
|
413
|
+
def to_yaml(options = {})
|
414
|
+
to_a(options).to_yaml
|
415
|
+
end
|
416
|
+
|
417
|
+
# Returns a JSON representation of the bibliography.
|
418
|
+
def to_json(options = {})
|
419
|
+
::JSON.dump(to_a(options))
|
420
|
+
end
|
421
|
+
|
422
|
+
# Returns a CiteProc JSON representation of the bibliography. Only BibTeX enrties are exported.
|
423
|
+
def to_citeproc(options = {})
|
424
|
+
q('@entry').map { |o| o.to_citeproc(options) }
|
425
|
+
end
|
426
|
+
|
427
|
+
# Returns a REXML::Document representation of the bibliography using the
|
428
|
+
# BibTeXML format.
|
429
|
+
def to_xml(options = {})
|
430
|
+
require 'rexml/document'
|
431
|
+
|
432
|
+
xml = REXML::Document.new
|
433
|
+
xml << REXML::XMLDecl.new('1.0','UTF-8')
|
434
|
+
|
435
|
+
root = REXML::Element.new('bibtex:file')
|
436
|
+
root.add_namespace('bibtex', 'http://bibtexml.sf.net/')
|
437
|
+
|
438
|
+
each { |e| root.add_element(e.to_xml(options)) if e.is_a?(Entry) }
|
439
|
+
|
440
|
+
xml.add_element(root)
|
441
|
+
xml
|
442
|
+
end
|
443
|
+
|
444
|
+
# Returns an RDF::Graph representation of the bibliography. The graph
|
445
|
+
# can be serialized using any of the RDF serializer plugins.
|
446
|
+
def to_rdf(options = {})
|
447
|
+
if defined?(::RDF)
|
448
|
+
RDFConverter.convert(self)
|
449
|
+
else
|
450
|
+
BibTeX.log.error 'Please `gem install rdf` for RDF support.'
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
454
|
+
# call-seq:
|
455
|
+
# bib.query() #=> returns all elements
|
456
|
+
# bib.query('@book') #=> returns all books
|
457
|
+
# bib.query('@entry') #=> returns all entries (books, articles etc.)
|
458
|
+
# bib.query('@*') #=> same as above
|
459
|
+
# bib.query(:first, '@book, @article')
|
460
|
+
# #=> returns the first book or article or nil
|
461
|
+
# bib.query('@book[year<=2011], @article)
|
462
|
+
# #=> returns all books published in 2011 or earlier and all articles
|
463
|
+
# bib.query('@book, @article) { |o| o.year == '2011' }
|
464
|
+
# #=> returns all books and articles published in 2011
|
465
|
+
# bib.query('@book[year=2011], @article[year=2011])
|
466
|
+
# #=> same as above without using a block
|
467
|
+
#
|
468
|
+
# Returns objects in the Bibliography which match the given selector and,
|
469
|
+
# optionally, the conditions specified in the given block.
|
470
|
+
#
|
471
|
+
# Queries offer syntactic sugar for common enumerator invocations:
|
472
|
+
#
|
473
|
+
# >> bib.query(:all, '@book')
|
474
|
+
# => same as bib.select { |b| b.has_type?(:book) }
|
475
|
+
# >> bib.query('@book')
|
476
|
+
# => same as above
|
477
|
+
# >> bib.query(:first, '@book')
|
478
|
+
# => same as bib.detect { |b| b.has_type?(:book) }
|
479
|
+
# >> bib.query(:none, '@book')
|
480
|
+
# => same as bib.reject { |b| b.has_type?(:book) }
|
481
|
+
#
|
482
|
+
def query(*arguments, &block)
|
483
|
+
case arguments.length
|
484
|
+
when 0
|
485
|
+
selector, q = :all, nil
|
486
|
+
when 1
|
487
|
+
selector, q = :all, arguments[0]
|
488
|
+
when 2
|
489
|
+
selector, q = arguments
|
490
|
+
else
|
491
|
+
raise ArgumentError, "wrong number of arguments (#{arguments.length} for 0..2)"
|
492
|
+
end
|
493
|
+
|
494
|
+
filter = block ? Proc.new { |e| e.match?(q) && block.call(e) } :
|
495
|
+
Proc.new { |e| e.match?(q) }
|
496
|
+
|
497
|
+
send(query_handler(selector), &filter)
|
498
|
+
end
|
499
|
+
|
500
|
+
alias q query
|
501
|
+
|
502
|
+
def each_entry
|
503
|
+
if block_given?
|
504
|
+
q('@entry').each(&Proc.new)
|
505
|
+
else
|
506
|
+
q('@entry').to_enum
|
507
|
+
end
|
508
|
+
end
|
509
|
+
|
510
|
+
def find_by_type(*types, &block)
|
511
|
+
q(types.flatten.compact.map { |t| "@#{t}" }.join(', '), &block)
|
512
|
+
end
|
513
|
+
|
514
|
+
alias find_by_types find_by_type
|
515
|
+
|
516
|
+
def <=>(other)
|
517
|
+
other.respond_to?(:to_a) ? to_a <=> other.to_a : nil
|
518
|
+
end
|
519
|
+
|
520
|
+
def select_duplicates_by(*arguments)
|
521
|
+
arguments = [:year, :title] if arguments.empty?
|
522
|
+
block = Proc.new if block_given?
|
523
|
+
|
524
|
+
group_by(*arguments) { |digest, entry|
|
525
|
+
|
526
|
+
# 1.8 compatibility
|
527
|
+
# digest = digest[0] if digest.is_a?(Array)
|
528
|
+
|
529
|
+
digest.gsub(/\s+/, '').downcase
|
530
|
+
digest = block.call(digest, entry) unless block.nil?
|
531
|
+
digest
|
532
|
+
|
533
|
+
}.values.select { |d| d.length > 1 }
|
534
|
+
end
|
535
|
+
|
536
|
+
alias duplicates select_duplicates_by
|
537
|
+
|
538
|
+
def duplicates?
|
539
|
+
!select_duplicates_by.empty?
|
540
|
+
end
|
541
|
+
|
542
|
+
# call-seq:
|
543
|
+
# bib.uniq! -> bib
|
544
|
+
# bib.uniq!(:title, :year) -> bib
|
545
|
+
# bib.uniq! { |digest, entry| ... } -> bib
|
546
|
+
# bib.uniq!(:title) { |digest, entry| ... } -> bib
|
547
|
+
#
|
548
|
+
# Removes duplicate entries from the Bibliography.
|
549
|
+
#
|
550
|
+
# All arguments given will be used to calculate a digest
|
551
|
+
# for each entry. If a block is given, it will be be passed
|
552
|
+
# the computed digest as well as each entry; the block
|
553
|
+
# must then yield the final digest that will be used to
|
554
|
+
# compute duplicates.
|
555
|
+
#
|
556
|
+
# This method will always retain the first entry and will
|
557
|
+
# discard subsequent duplicates on the basis of each entry's
|
558
|
+
# digest.
|
559
|
+
#
|
560
|
+
# @see Entry#digest
|
561
|
+
# @see @duplicates_by
|
562
|
+
#
|
563
|
+
def uniq!(*arguments, &block)
|
564
|
+
select_duplicates_by(*arguments, &block).each do |dupes|
|
565
|
+
dupes.shift
|
566
|
+
dupes.each do |dupe|
|
567
|
+
self.remove dupe
|
568
|
+
end
|
569
|
+
end
|
570
|
+
|
571
|
+
self
|
572
|
+
end
|
573
|
+
|
574
|
+
# Experimental!
|
575
|
+
# Returns a new Bibliography with all duplicates removed.
|
576
|
+
def uniq(*arguments, &block)
|
577
|
+
dup.uniq!
|
578
|
+
end
|
579
|
+
|
580
|
+
private
|
581
|
+
|
582
|
+
def query_handler(selector)
|
583
|
+
case selector.to_s
|
584
|
+
when /first|distinct|detect/i
|
585
|
+
:detect
|
586
|
+
when /none|reject|not/i
|
587
|
+
:reject
|
588
|
+
else
|
589
|
+
:select
|
590
|
+
end
|
591
|
+
end
|
592
|
+
|
593
|
+
end
|
594
|
+
end
|