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.
Files changed (627) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +22 -0
  8. data/README.md +43 -0
  9. data/Rakefile +6 -0
  10. data/bibtex_to_scrapbox.gemspec +29 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/exe/bibtex_to_scrapbox +7 -0
  14. data/gems/bin/htmldiff +29 -0
  15. data/gems/bin/ldiff +29 -0
  16. data/gems/bin/rake +27 -0
  17. data/gems/bin/rspec +27 -0
  18. data/gems/bin/thor +27 -0
  19. data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/gem.build_complete +0 -0
  20. data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/gem_make.out +288 -0
  21. data/gems/extensions/x86_64-darwin-16/2.4.0-static/unicode-0.4.4.4/unicode/unicode_native.bundle +0 -0
  22. data/gems/gems/bibtex-ruby-4.4.4/Gemfile +66 -0
  23. data/gems/gems/bibtex-ruby-4.4.4/Guardfile +22 -0
  24. data/gems/gems/bibtex-ruby-4.4.4/History.txt +306 -0
  25. data/gems/gems/bibtex-ruby-4.4.4/LICENSE +621 -0
  26. data/gems/gems/bibtex-ruby-4.4.4/Manifest +100 -0
  27. data/gems/gems/bibtex-ruby-4.4.4/README.md +615 -0
  28. data/gems/gems/bibtex-ruby-4.4.4/Rakefile +123 -0
  29. data/gems/gems/bibtex-ruby-4.4.4/bibtex-ruby.gemspec +38 -0
  30. data/gems/gems/bibtex-ruby-4.4.4/examples/bib2html.rb +42 -0
  31. data/gems/gems/bibtex-ruby-4.4.4/examples/bib2yaml.rb +12 -0
  32. data/gems/gems/bibtex-ruby-4.4.4/examples/markdown.bib +39 -0
  33. data/gems/gems/bibtex-ruby-4.4.4/features/bibtex.feature +96 -0
  34. data/gems/gems/bibtex-ruby-4.4.4/features/entries.feature +67 -0
  35. data/gems/gems/bibtex-ruby-4.4.4/features/issues/braced_strings.feature +48 -0
  36. data/gems/gems/bibtex-ruby-4.4.4/features/issues/crossref.feature +62 -0
  37. data/gems/gems/bibtex-ruby-4.4.4/features/issues/latex_filter.feature +171 -0
  38. data/gems/gems/bibtex-ruby-4.4.4/features/issues/multiline_strings.feature +14 -0
  39. data/gems/gems/bibtex-ruby-4.4.4/features/issues/name_parsing.feature +19 -0
  40. data/gems/gems/bibtex-ruby-4.4.4/features/issues/non_ascii_default_keys.feature +20 -0
  41. data/gems/gems/bibtex-ruby-4.4.4/features/issues/non_ascii_keys.feature +17 -0
  42. data/gems/gems/bibtex-ruby-4.4.4/features/issues/number_keys.feature +45 -0
  43. data/gems/gems/bibtex-ruby-4.4.4/features/issues/parse_months.feature +43 -0
  44. data/gems/gems/bibtex-ruby-4.4.4/features/issues/slash_keys.feature +21 -0
  45. data/gems/gems/bibtex-ruby-4.4.4/features/issues/trailing_comma.feature +21 -0
  46. data/gems/gems/bibtex-ruby-4.4.4/features/issues/whitespace_keys.feature +23 -0
  47. data/gems/gems/bibtex-ruby-4.4.4/features/names.feature +86 -0
  48. data/gems/gems/bibtex-ruby-4.4.4/features/preambles.feature +27 -0
  49. data/gems/gems/bibtex-ruby-4.4.4/features/query.feature +102 -0
  50. data/gems/gems/bibtex-ruby-4.4.4/features/replacement.feature +68 -0
  51. data/gems/gems/bibtex-ruby-4.4.4/features/step_definitions/bibtex_steps.rb +119 -0
  52. data/gems/gems/bibtex-ruby-4.4.4/features/step_definitions/name_steps.rb +18 -0
  53. data/gems/gems/bibtex-ruby-4.4.4/features/strings.feature +53 -0
  54. data/gems/gems/bibtex-ruby-4.4.4/features/support/env.rb +21 -0
  55. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex.rb +83 -0
  56. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibliography.rb +594 -0
  57. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibliography/rdf_converter.rb +27 -0
  58. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/bibtex.y +141 -0
  59. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/compatibility.rb +25 -0
  60. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/elements.rb +376 -0
  61. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry.rb +690 -0
  62. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/bibtexml_converter.rb +44 -0
  63. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/citeproc_converter.rb +164 -0
  64. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/entry/rdf_converter.rb +588 -0
  65. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/error.rb +49 -0
  66. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/extensions.rb +25 -0
  67. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters.rb +55 -0
  68. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters/latex.rb +13 -0
  69. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/filters/linebreaks.rb +11 -0
  70. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/lexer.rb +358 -0
  71. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/name_parser.rb +563 -0
  72. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/names.rb +315 -0
  73. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/names.y +267 -0
  74. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/parser.rb +474 -0
  75. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/replaceable.rb +52 -0
  76. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/ruby.rb +1 -0
  77. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/utilities.rb +59 -0
  78. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/value.rb +305 -0
  79. data/gems/gems/bibtex-ruby-4.4.4/lib/bibtex/version.rb +28 -0
  80. data/gems/gems/bibtex-ruby-4.4.4/test/benchmark.rb +84 -0
  81. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/entry/test_rdf_converter.rb +341 -0
  82. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_bibliography.rb +446 -0
  83. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_elements.rb +64 -0
  84. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_entry.rb +698 -0
  85. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_filters.rb +36 -0
  86. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_lexer.rb +42 -0
  87. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_name_parser.rb +29 -0
  88. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_names.rb +168 -0
  89. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_parser.rb +210 -0
  90. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_string.rb +83 -0
  91. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_utilities.rb +34 -0
  92. data/gems/gems/bibtex-ruby-4.4.4/test/bibtex/test_value.rb +189 -0
  93. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/bibdesk.bib +50 -0
  94. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/comment.bib +15 -0
  95. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/decoret.bib +83 -0
  96. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/empty.bib +0 -0
  97. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/entry.bib +24 -0
  98. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/errors.bib +67 -0
  99. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/no_bibtex.bib +9 -0
  100. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/preamble.bib +12 -0
  101. data/gems/gems/bibtex-ruby-4.4.4/test/fixtures/roundtrip.bib +11 -0
  102. data/gems/gems/bibtex-ruby-4.4.4/test/helper.rb +43 -0
  103. data/gems/gems/bibtex-ruby-4.4.4/test/macruby.d +21 -0
  104. data/gems/gems/bibtex-ruby-4.4.4/test/macruby.rb +22 -0
  105. data/gems/gems/bibtex-ruby-4.4.4/test/profile.rb +28 -0
  106. data/gems/gems/bibtex-ruby-4.4.4/test/test_bibtex.rb +127 -0
  107. data/gems/gems/bibtex-ruby-4.4.4/test/test_export.rb +33 -0
  108. data/gems/gems/diff-lcs-1.3/.rspec +1 -0
  109. data/gems/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  110. data/gems/gems/diff-lcs-1.3/Contributing.md +83 -0
  111. data/gems/gems/diff-lcs-1.3/History.md +220 -0
  112. data/gems/gems/diff-lcs-1.3/License.md +39 -0
  113. data/gems/gems/diff-lcs-1.3/Manifest.txt +37 -0
  114. data/gems/gems/diff-lcs-1.3/README.rdoc +84 -0
  115. data/gems/gems/diff-lcs-1.3/Rakefile +57 -0
  116. data/gems/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  117. data/gems/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  118. data/gems/gems/diff-lcs-1.3/bin/ldiff +6 -0
  119. data/gems/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  120. data/gems/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  121. data/gems/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  122. data/gems/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  123. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  124. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  125. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  126. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  127. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  128. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  129. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  130. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  131. data/gems/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  132. data/gems/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  133. data/gems/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  134. data/gems/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  135. data/gems/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  136. data/gems/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  137. data/gems/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  138. data/gems/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  139. data/gems/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  140. data/gems/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  141. data/gems/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  142. data/gems/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  143. data/gems/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  144. data/gems/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  145. data/gems/gems/latex-decode-0.2.2/.gitignore +6 -0
  146. data/gems/gems/latex-decode-0.2.2/.travis.yml +18 -0
  147. data/gems/gems/latex-decode-0.2.2/Gemfile +21 -0
  148. data/gems/gems/latex-decode-0.2.2/LICENSE +621 -0
  149. data/gems/gems/latex-decode-0.2.2/README.md +65 -0
  150. data/gems/gems/latex-decode-0.2.2/Rakefile +41 -0
  151. data/gems/gems/latex-decode-0.2.2/cucumber.yml +1 -0
  152. data/gems/gems/latex-decode-0.2.2/features/brackets.feature +11 -0
  153. data/gems/gems/latex-decode-0.2.2/features/diacritics.feature +40 -0
  154. data/gems/gems/latex-decode-0.2.2/features/greek.feature +13 -0
  155. data/gems/gems/latex-decode-0.2.2/features/maths.feature +9 -0
  156. data/gems/gems/latex-decode-0.2.2/features/non-latex.feature +15 -0
  157. data/gems/gems/latex-decode-0.2.2/features/punctuation.feature +50 -0
  158. data/gems/gems/latex-decode-0.2.2/features/special_characters.feature +21 -0
  159. data/gems/gems/latex-decode-0.2.2/features/step_definitions/latex.rb +7 -0
  160. data/gems/gems/latex-decode-0.2.2/features/support/env.rb +14 -0
  161. data/gems/gems/latex-decode-0.2.2/features/symbols.feature +21 -0
  162. data/gems/gems/latex-decode-0.2.2/features/umlauts.feature +11 -0
  163. data/gems/gems/latex-decode-0.2.2/latex-decode.gemspec +33 -0
  164. data/gems/gems/latex-decode-0.2.2/lib/latex/decode.rb +54 -0
  165. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/accents.rb +36 -0
  166. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/base.rb +62 -0
  167. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/compatibility.rb +89 -0
  168. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/diacritics.rb +46 -0
  169. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/greek.rb +61 -0
  170. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/maths.rb +21 -0
  171. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/punctuation.rb +59 -0
  172. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/symbols.rb +225 -0
  173. data/gems/gems/latex-decode-0.2.2/lib/latex/decode/version.rb +5 -0
  174. data/gems/gems/rake-10.5.0/.autotest +7 -0
  175. data/gems/gems/rake-10.5.0/.rubocop.yml +27 -0
  176. data/gems/gems/rake-10.5.0/.togglerc +7 -0
  177. data/gems/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  178. data/gems/gems/rake-10.5.0/History.rdoc +659 -0
  179. data/gems/gems/rake-10.5.0/MIT-LICENSE +21 -0
  180. data/gems/gems/rake-10.5.0/Manifest.txt +166 -0
  181. data/gems/gems/rake-10.5.0/README.rdoc +139 -0
  182. data/gems/gems/rake-10.5.0/Rakefile +81 -0
  183. data/gems/gems/rake-10.5.0/bin/rake +33 -0
  184. data/gems/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  185. data/gems/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  186. data/gems/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  187. data/gems/gems/rake-10.5.0/doc/example/a.c +6 -0
  188. data/gems/gems/rake-10.5.0/doc/example/b.c +6 -0
  189. data/gems/gems/rake-10.5.0/doc/example/main.c +11 -0
  190. data/gems/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  191. data/gems/gems/rake-10.5.0/doc/jamis.rb +591 -0
  192. data/gems/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  193. data/gems/gems/rake-10.5.0/doc/rake.1 +141 -0
  194. data/gems/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  195. data/gems/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  196. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  197. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  198. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  199. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  200. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  201. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  202. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  203. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  204. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  205. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  206. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  207. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  208. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  209. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  210. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  211. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  212. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  213. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  214. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  215. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  216. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  217. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  218. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  219. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  220. data/gems/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  221. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  222. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  223. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  224. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  225. data/gems/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  226. data/gems/gems/rake-10.5.0/lib/rake.rb +79 -0
  227. data/gems/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  228. data/gems/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  229. data/gems/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  230. data/gems/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  231. data/gems/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  232. data/gems/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  233. data/gems/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  234. data/gems/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  235. data/gems/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  236. data/gems/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  237. data/gems/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  238. data/gems/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  239. data/gems/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  240. data/gems/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  241. data/gems/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  242. data/gems/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  243. data/gems/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  244. data/gems/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  245. data/gems/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  246. data/gems/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  247. data/gems/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  248. data/gems/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  249. data/gems/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  250. data/gems/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  251. data/gems/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  252. data/gems/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  253. data/gems/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  254. data/gems/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  255. data/gems/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  256. data/gems/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  257. data/gems/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  258. data/gems/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  259. data/gems/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  260. data/gems/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  261. data/gems/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  262. data/gems/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  263. data/gems/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  264. data/gems/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  265. data/gems/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  266. data/gems/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  267. data/gems/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  268. data/gems/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  269. data/gems/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  270. data/gems/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  271. data/gems/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  272. data/gems/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  273. data/gems/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  274. data/gems/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  275. data/gems/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  276. data/gems/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  277. data/gems/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  278. data/gems/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  279. data/gems/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  280. data/gems/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  281. data/gems/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  282. data/gems/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  283. data/gems/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  284. data/gems/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  285. data/gems/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  286. data/gems/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  287. data/gems/gems/rake-10.5.0/test/file_creation.rb +34 -0
  288. data/gems/gems/rake-10.5.0/test/helper.rb +129 -0
  289. data/gems/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  290. data/gems/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  291. data/gems/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  292. data/gems/gems/rake-10.5.0/test/test_rake.rb +40 -0
  293. data/gems/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  294. data/gems/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  295. data/gems/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  296. data/gems/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  297. data/gems/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  298. data/gems/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  299. data/gems/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  300. data/gems/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  301. data/gems/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  302. data/gems/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  303. data/gems/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  304. data/gems/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  305. data/gems/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  306. data/gems/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  307. data/gems/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  308. data/gems/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  309. data/gems/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  310. data/gems/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  311. data/gems/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  312. data/gems/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  313. data/gems/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  314. data/gems/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  315. data/gems/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  316. data/gems/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  317. data/gems/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  318. data/gems/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  319. data/gems/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  320. data/gems/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  321. data/gems/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  322. data/gems/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  323. data/gems/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  324. data/gems/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  325. data/gems/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  326. data/gems/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  327. data/gems/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  328. data/gems/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  329. data/gems/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  330. data/gems/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  331. data/gems/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  332. data/gems/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  333. data/gems/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  334. data/gems/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  335. data/gems/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  336. data/gems/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  337. data/gems/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  338. data/gems/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  339. data/gems/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  340. data/gems/gems/rspec-3.6.0/LICENSE.md +27 -0
  341. data/gems/gems/rspec-3.6.0/README.md +39 -0
  342. data/gems/gems/rspec-3.6.0/lib/rspec.rb +3 -0
  343. data/gems/gems/rspec-3.6.0/lib/rspec/version.rb +5 -0
  344. data/gems/gems/rspec-core-3.6.0/.document +5 -0
  345. data/gems/gems/rspec-core-3.6.0/.yardopts +8 -0
  346. data/gems/gems/rspec-core-3.6.0/Changelog.md +2167 -0
  347. data/gems/gems/rspec-core-3.6.0/LICENSE.md +26 -0
  348. data/gems/gems/rspec-core-3.6.0/README.md +384 -0
  349. data/gems/gems/rspec-core-3.6.0/exe/rspec +4 -0
  350. data/gems/gems/rspec-core-3.6.0/lib/rspec/autorun.rb +3 -0
  351. data/gems/gems/rspec-core-3.6.0/lib/rspec/core.rb +185 -0
  352. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  353. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/coordinator.rb +66 -0
  354. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  355. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/runner.rb +169 -0
  356. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/bisect/server.rb +70 -0
  357. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/configuration.rb +2177 -0
  358. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/configuration_options.rb +196 -0
  359. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/drb.rb +113 -0
  360. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/dsl.rb +98 -0
  361. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example.rb +653 -0
  362. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example_group.rb +883 -0
  363. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/example_status_persister.rb +235 -0
  364. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/filter_manager.rb +231 -0
  365. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/flat_map.rb +20 -0
  366. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters.rb +265 -0
  367. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  368. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  369. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_formatter.rb +69 -0
  370. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  371. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  372. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  373. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  374. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/exception_presenter.rb +496 -0
  375. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  376. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/helpers.rb +110 -0
  377. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  378. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_printer.rb +414 -0
  379. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/html_snippet_extractor.rb +118 -0
  380. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/json_formatter.rb +101 -0
  381. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  382. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  383. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/protocol.rb +182 -0
  384. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  385. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  386. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/hooks.rb +624 -0
  387. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/invocations.rb +85 -0
  388. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/memoized_helpers.rb +535 -0
  389. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/metadata.rb +499 -0
  390. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/metadata_filter.rb +255 -0
  391. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  392. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  393. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  394. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  395. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  396. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  397. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/notifications.rb +514 -0
  398. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/option_parser.rb +309 -0
  399. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/ordering.rb +158 -0
  400. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/output_wrapper.rb +29 -0
  401. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/pending.rb +165 -0
  402. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/profiler.rb +32 -0
  403. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer.rb +48 -0
  404. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/.rspec +1 -0
  405. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  406. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/rake_task.rb +168 -0
  407. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/reporter.rb +260 -0
  408. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/ruby_project.rb +53 -0
  409. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/runner.rb +193 -0
  410. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/sandbox.rb +37 -0
  411. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/set.rb +54 -0
  412. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shared_context.rb +55 -0
  413. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shared_example_group.rb +271 -0
  414. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/shell_escape.rb +49 -0
  415. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  416. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/version.rb +9 -0
  417. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/warnings.rb +40 -0
  418. data/gems/gems/rspec-core-3.6.0/lib/rspec/core/world.rb +264 -0
  419. data/gems/gems/rspec-expectations-3.6.0/.document +5 -0
  420. data/gems/gems/rspec-expectations-3.6.0/.yardopts +6 -0
  421. data/gems/gems/rspec-expectations-3.6.0/Changelog.md +1072 -0
  422. data/gems/gems/rspec-expectations-3.6.0/LICENSE.md +25 -0
  423. data/gems/gems/rspec-expectations-3.6.0/README.md +305 -0
  424. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations.rb +82 -0
  425. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  426. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/configuration.rb +201 -0
  427. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/expectation_target.rb +127 -0
  428. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/fail_with.rb +39 -0
  429. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  430. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/handler.rb +170 -0
  431. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/minitest_integration.rb +58 -0
  432. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/syntax.rb +132 -0
  433. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/expectations/version.rb +8 -0
  434. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers.rb +1025 -0
  435. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  436. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in.rb +52 -0
  437. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/all.rb +85 -0
  438. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  439. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be.rb +288 -0
  440. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  441. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  442. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  443. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  444. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/change.rb +387 -0
  445. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  446. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/contain_exactly.rb +301 -0
  447. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  448. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  449. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  450. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  451. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/exist.rb +90 -0
  452. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/has.rb +103 -0
  453. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  454. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/include.rb +143 -0
  455. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/match.rb +106 -0
  456. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  457. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/output.rb +200 -0
  458. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  459. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  460. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  461. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  462. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  463. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/built_in/yield.rb +432 -0
  464. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/composable.rb +169 -0
  465. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/dsl.rb +527 -0
  466. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/english_phrasing.rb +58 -0
  467. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  468. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  469. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  470. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  471. data/gems/gems/rspec-expectations-3.6.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  472. data/gems/gems/rspec-mocks-3.6.0/.document +5 -0
  473. data/gems/gems/rspec-mocks-3.6.0/.yardopts +6 -0
  474. data/gems/gems/rspec-mocks-3.6.0/Changelog.md +1073 -0
  475. data/gems/gems/rspec-mocks-3.6.0/LICENSE.md +25 -0
  476. data/gems/gems/rspec-mocks-3.6.0/README.md +460 -0
  477. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks.rb +130 -0
  478. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance.rb +11 -0
  479. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  480. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  481. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  482. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  483. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  484. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  485. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  486. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  487. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  488. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  489. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  490. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/configuration.rb +212 -0
  491. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/error_generator.rb +369 -0
  492. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/example_methods.rb +434 -0
  493. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  494. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  495. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  496. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/have_received.rb +130 -0
  497. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  498. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  499. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  500. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_chain.rb +87 -0
  501. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/message_expectation.rb +740 -0
  502. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_double.rb +287 -0
  503. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/method_reference.rb +202 -0
  504. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  505. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/mutate_const.rb +339 -0
  506. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/object_reference.rb +149 -0
  507. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/order_group.rb +81 -0
  508. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/proxy.rb +484 -0
  509. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/space.rb +238 -0
  510. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/standalone.rb +3 -0
  511. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/syntax.rb +325 -0
  512. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/targets.rb +124 -0
  513. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/test_double.rb +171 -0
  514. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_double.rb +129 -0
  515. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  516. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  517. data/gems/gems/rspec-mocks-3.6.0/lib/rspec/mocks/version.rb +9 -0
  518. data/gems/gems/rspec-support-3.6.0/Changelog.md +211 -0
  519. data/gems/gems/rspec-support-3.6.0/LICENSE.md +23 -0
  520. data/gems/gems/rspec-support-3.6.0/README.md +40 -0
  521. data/gems/gems/rspec-support-3.6.0/lib/rspec/support.rb +139 -0
  522. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/caller_filter.rb +83 -0
  523. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/comparable_version.rb +46 -0
  524. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/differ.rb +215 -0
  525. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/directory_maker.rb +63 -0
  526. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/encoded_string.rb +165 -0
  527. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  528. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/hunk_generator.rb +47 -0
  529. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/matcher_definition.rb +42 -0
  530. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/method_signature_verifier.rb +392 -0
  531. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/mutex.rb +73 -0
  532. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/object_formatter.rb +268 -0
  533. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  534. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  535. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/ruby_features.rb +162 -0
  536. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source.rb +75 -0
  537. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/location.rb +21 -0
  538. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/node.rb +107 -0
  539. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/source/token.rb +87 -0
  540. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec.rb +81 -0
  541. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  542. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  543. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  544. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  545. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/shell_out.rb +84 -0
  546. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  547. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  548. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  549. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  550. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/version.rb +7 -0
  551. data/gems/gems/rspec-support-3.6.0/lib/rspec/support/warnings.rb +39 -0
  552. data/gems/gems/thor-0.19.4/.document +5 -0
  553. data/gems/gems/thor-0.19.4/CHANGELOG.md +163 -0
  554. data/gems/gems/thor-0.19.4/CONTRIBUTING.md +15 -0
  555. data/gems/gems/thor-0.19.4/LICENSE.md +20 -0
  556. data/gems/gems/thor-0.19.4/README.md +47 -0
  557. data/gems/gems/thor-0.19.4/bin/thor +6 -0
  558. data/gems/gems/thor-0.19.4/lib/thor.rb +492 -0
  559. data/gems/gems/thor-0.19.4/lib/thor/actions.rb +318 -0
  560. data/gems/gems/thor-0.19.4/lib/thor/actions/create_file.rb +103 -0
  561. data/gems/gems/thor-0.19.4/lib/thor/actions/create_link.rb +59 -0
  562. data/gems/gems/thor-0.19.4/lib/thor/actions/directory.rb +118 -0
  563. data/gems/gems/thor-0.19.4/lib/thor/actions/empty_directory.rb +135 -0
  564. data/gems/gems/thor-0.19.4/lib/thor/actions/file_manipulation.rb +327 -0
  565. data/gems/gems/thor-0.19.4/lib/thor/actions/inject_into_file.rb +103 -0
  566. data/gems/gems/thor-0.19.4/lib/thor/base.rb +656 -0
  567. data/gems/gems/thor-0.19.4/lib/thor/command.rb +133 -0
  568. data/gems/gems/thor-0.19.4/lib/thor/core_ext/hash_with_indifferent_access.rb +85 -0
  569. data/gems/gems/thor-0.19.4/lib/thor/core_ext/io_binary_read.rb +12 -0
  570. data/gems/gems/thor-0.19.4/lib/thor/core_ext/ordered_hash.rb +129 -0
  571. data/gems/gems/thor-0.19.4/lib/thor/error.rb +32 -0
  572. data/gems/gems/thor-0.19.4/lib/thor/group.rb +281 -0
  573. data/gems/gems/thor-0.19.4/lib/thor/invocation.rb +177 -0
  574. data/gems/gems/thor-0.19.4/lib/thor/line_editor.rb +17 -0
  575. data/gems/gems/thor-0.19.4/lib/thor/line_editor/basic.rb +35 -0
  576. data/gems/gems/thor-0.19.4/lib/thor/line_editor/readline.rb +88 -0
  577. data/gems/gems/thor-0.19.4/lib/thor/parser.rb +4 -0
  578. data/gems/gems/thor-0.19.4/lib/thor/parser/argument.rb +70 -0
  579. data/gems/gems/thor-0.19.4/lib/thor/parser/arguments.rb +175 -0
  580. data/gems/gems/thor-0.19.4/lib/thor/parser/option.rb +146 -0
  581. data/gems/gems/thor-0.19.4/lib/thor/parser/options.rb +220 -0
  582. data/gems/gems/thor-0.19.4/lib/thor/rake_compat.rb +71 -0
  583. data/gems/gems/thor-0.19.4/lib/thor/runner.rb +322 -0
  584. data/gems/gems/thor-0.19.4/lib/thor/shell.rb +81 -0
  585. data/gems/gems/thor-0.19.4/lib/thor/shell/basic.rb +436 -0
  586. data/gems/gems/thor-0.19.4/lib/thor/shell/color.rb +149 -0
  587. data/gems/gems/thor-0.19.4/lib/thor/shell/html.rb +126 -0
  588. data/gems/gems/thor-0.19.4/lib/thor/util.rb +268 -0
  589. data/gems/gems/thor-0.19.4/lib/thor/version.rb +3 -0
  590. data/gems/gems/thor-0.19.4/thor.gemspec +21 -0
  591. data/gems/gems/unicode-0.4.4.4/README +156 -0
  592. data/gems/gems/unicode-0.4.4.4/Rakefile +103 -0
  593. data/gems/gems/unicode-0.4.4.4/ext/unicode/.sitearchdir.-.unicode.time +0 -0
  594. data/gems/gems/unicode-0.4.4.4/ext/unicode/Makefile +264 -0
  595. data/gems/gems/unicode-0.4.4.4/ext/unicode/extconf.rb +3 -0
  596. data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode.c +1325 -0
  597. data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode.o +0 -0
  598. data/gems/gems/unicode-0.4.4.4/ext/unicode/unicode_native.bundle +0 -0
  599. data/gems/gems/unicode-0.4.4.4/ext/unicode/unidata.map +24555 -0
  600. data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.c +208 -0
  601. data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.h +48 -0
  602. data/gems/gems/unicode-0.4.4.4/ext/unicode/ustring.o +0 -0
  603. data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.c +257 -0
  604. data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.h +43 -0
  605. data/gems/gems/unicode-0.4.4.4/ext/unicode/wstring.o +0 -0
  606. data/gems/gems/unicode-0.4.4.4/lib/unicode.rb +6 -0
  607. data/gems/gems/unicode-0.4.4.4/lib/unicode/unicode_native.bundle +0 -0
  608. data/gems/gems/unicode-0.4.4.4/test/test.rb +69 -0
  609. data/gems/gems/unicode-0.4.4.4/tools/README +7 -0
  610. data/gems/gems/unicode-0.4.4.4/tools/mkunidata.rb +293 -0
  611. data/gems/gems/unicode-0.4.4.4/tools/normtest.rb +111 -0
  612. data/gems/gems/unicode-0.4.4.4/unicode.gemspec +30 -0
  613. data/gems/specifications/bibtex-ruby-4.4.4.gemspec +32 -0
  614. data/gems/specifications/diff-lcs-1.3.gemspec +61 -0
  615. data/gems/specifications/latex-decode-0.2.2.gemspec +35 -0
  616. data/gems/specifications/rake-10.5.0.gemspec +43 -0
  617. data/gems/specifications/rspec-3.6.0.gemspec +42 -0
  618. data/gems/specifications/rspec-core-3.6.0.gemspec +62 -0
  619. data/gems/specifications/rspec-expectations-3.6.0.gemspec +50 -0
  620. data/gems/specifications/rspec-mocks-3.6.0.gemspec +50 -0
  621. data/gems/specifications/rspec-support-3.6.0.gemspec +41 -0
  622. data/gems/specifications/thor-0.19.4.gemspec +35 -0
  623. data/gems/specifications/unicode-0.4.4.4.gemspec +25 -0
  624. data/lib/bibtex_to_scrapbox.rb +67 -0
  625. data/lib/bibtex_to_scrapbox/version.rb +3 -0
  626. data/lib/cli.rb +23 -0
  627. metadata +740 -0
@@ -0,0 +1,100 @@
1
+ Gemfile
2
+ Guardfile
3
+ History.txt
4
+ LICENSE
5
+ Manifest
6
+ README.md
7
+ Rakefile
8
+ bibtex-ruby.gemspec
9
+ examples
10
+ examples/bib2html.rb
11
+ examples/bib2yaml.rb
12
+ examples/markdown.bib
13
+ features
14
+ features/bibtex.feature
15
+ features/entries.feature
16
+ features/issues
17
+ features/issues/braced_strings.feature
18
+ features/issues/crossref.feature
19
+ features/issues/latex_filter.feature
20
+ features/issues/multiline_strings.feature
21
+ features/issues/name_parsing.feature
22
+ features/issues/non_ascii_default_keys.feature
23
+ features/issues/non_ascii_keys.feature
24
+ features/issues/number_keys.feature
25
+ features/issues/parse_months.feature
26
+ features/issues/slash_keys.feature
27
+ features/issues/trailing_comma.feature
28
+ features/issues/whitespace_keys.feature
29
+ features/names.feature
30
+ features/preambles.feature
31
+ features/query.feature
32
+ features/replacement.feature
33
+ features/step_definitions
34
+ features/step_definitions/bibtex_steps.rb
35
+ features/step_definitions/name_steps.rb
36
+ features/strings.feature
37
+ features/support
38
+ features/support/env.rb
39
+ lib
40
+ lib/bibtex
41
+ lib/bibtex.rb
42
+ lib/bibtex/bibliography
43
+ lib/bibtex/bibliography.rb
44
+ lib/bibtex/bibliography/rdf_converter.rb
45
+ lib/bibtex/bibtex.y
46
+ lib/bibtex/compatibility.rb
47
+ lib/bibtex/elements.rb
48
+ lib/bibtex/entry
49
+ lib/bibtex/entry.rb
50
+ lib/bibtex/entry/bibtexml_converter.rb
51
+ lib/bibtex/entry/citeproc_converter.rb
52
+ lib/bibtex/entry/rdf_converter.rb
53
+ lib/bibtex/error.rb
54
+ lib/bibtex/extensions.rb
55
+ lib/bibtex/filters
56
+ lib/bibtex/filters.rb
57
+ lib/bibtex/filters/latex.rb
58
+ lib/bibtex/filters/linebreaks.rb
59
+ lib/bibtex/lexer.rb
60
+ lib/bibtex/name_parser.rb
61
+ lib/bibtex/names.rb
62
+ lib/bibtex/names.y
63
+ lib/bibtex/parser.rb
64
+ lib/bibtex/replaceable.rb
65
+ lib/bibtex/ruby.rb
66
+ lib/bibtex/utilities.rb
67
+ lib/bibtex/value.rb
68
+ lib/bibtex/version.rb
69
+ test
70
+ test/benchmark.rb
71
+ test/bibtex
72
+ test/bibtex/entry
73
+ test/bibtex/entry/test_rdf_converter.rb
74
+ test/bibtex/test_bibliography.rb
75
+ test/bibtex/test_elements.rb
76
+ test/bibtex/test_entry.rb
77
+ test/bibtex/test_filters.rb
78
+ test/bibtex/test_lexer.rb
79
+ test/bibtex/test_name_parser.rb
80
+ test/bibtex/test_names.rb
81
+ test/bibtex/test_parser.rb
82
+ test/bibtex/test_string.rb
83
+ test/bibtex/test_utilities.rb
84
+ test/bibtex/test_value.rb
85
+ test/fixtures
86
+ test/fixtures/bibdesk.bib
87
+ test/fixtures/comment.bib
88
+ test/fixtures/decoret.bib
89
+ test/fixtures/empty.bib
90
+ test/fixtures/entry.bib
91
+ test/fixtures/errors.bib
92
+ test/fixtures/no_bibtex.bib
93
+ test/fixtures/preamble.bib
94
+ test/fixtures/roundtrip.bib
95
+ test/helper.rb
96
+ test/macruby.d
97
+ test/macruby.rb
98
+ test/profile.rb
99
+ test/test_bibtex.rb
100
+ test/test_export.rb
@@ -0,0 +1,615 @@
1
+ BibTeX-Ruby
2
+ ===========
3
+ [![Build Status](https://secure.travis-ci.org/inukshuk/bibtex-ruby.png?branch=master)](http://travis-ci.org/inukshuk/bibtex-ruby)
4
+ [![Coverage Status](https://coveralls.io/repos/inukshuk/bibtex-ruby/badge.png)](https://coveralls.io/r/inukshuk/bibtex-ruby)
5
+
6
+ BibTeX-Ruby is the Rubyist's swiss-army-knife for all things BibTeX. It
7
+ includes a parser for all common BibTeX objects (@string, @preamble, @comment
8
+ and regular entries) and a sophisticated name parser that tokenizes correctly
9
+ formatted names; BibTeX-Ruby recognizes BibTeX string replacements, joins
10
+ values containing multiple strings or variables, supports cross-references,
11
+ and decodes common LaTeX formatting instructions to unicode; if you are in a
12
+ hurry, it also allows for easy export/conversion to formats such as YAML,
13
+ JSON, CiteProc/CSL, XML (BibTeXML), and RDF (experimental).
14
+
15
+ For a list of projects using BibTeX-Ruby, take a look at the
16
+ [project wiki](https://github.com/inukshuk/bibtex-ruby/wiki/Projects-Using-BibTeX-Ruby).
17
+
18
+
19
+ Quickstart
20
+ ----------
21
+ Install and load BibTeX-Ruby in an IRB session:
22
+
23
+ $ [sudo] gem install bibtex-ruby
24
+ $ irb
25
+ >> require 'bibtex'
26
+
27
+ Open a BibTeX bibliography:
28
+
29
+ b = BibTeX.open('./ruby.bib')
30
+
31
+ Select a BibTeX entry and access individual fields:
32
+
33
+ b['pickaxe'].title
34
+ #=> "Programming Ruby 1.9: The Pragmatic Programmer's Guide"
35
+ b[:pickaxe].author.length
36
+ #=> 3
37
+ b[:pickaxe].author.to_s
38
+ #=> "Thomas, D. and Fowler, Chad and Hunt, Andy"
39
+ b[:pickaxe].author[2].first
40
+ #=> "Andy"
41
+
42
+ Query a bibliography:
43
+
44
+ b['@book'].length
45
+ #=> 3 - the number books in the bibliography
46
+ b['@article'].length
47
+ #=> 0 - the number of articles in the bibliography
48
+ b['@book[year=2009]'].length
49
+ #=> 1 - the number of books published in 2009
50
+
51
+ Extend first name initials throughout your bibliography:
52
+
53
+ b.extend_initials ['Dave', 'Thomas']
54
+ b[:pickaxe].author.to_s
55
+ #=> "Thomas, Dave and Fowler, Chad and Hunt, Andy"
56
+
57
+ You can also extend all names in the bibliography to their prototypical
58
+ (i.e., the longest available) form:
59
+
60
+ b.extend_initials! #=> extends all names in the bibliography
61
+
62
+ Use with caution as this method will treat two names as identical if they
63
+ look the same in their `#sort_order(:initials => true)` form.
64
+
65
+ Unify certain fields across the bibliography:
66
+
67
+ b.unify :publisher, /o'?reilly/i, "O'Reilly"
68
+
69
+ b.unify :publisher, /^penguin/i do |entry|
70
+ entry.publisher = 'Penguin Books'
71
+ entry.address = 'London'
72
+ end
73
+
74
+ This will unify various spellings of entries published by O'Reilly and Penguin.
75
+
76
+ Render your bibliography in one of
77
+ [many different citation styles](https://github.com/citation-style-language/styles)
78
+ (requires the **citeproc-ruby** gem):
79
+
80
+ require 'citeproc'
81
+ CiteProc.process b[:pickaxe].to_citeproc, :style => :apa
82
+ #=> "Thomas, D., Fowler, C., & Hunt, A. (2009). Programming Ruby 1.9: The Pragmatic Programmer's
83
+ Guide. The Facets of Ruby. Raleigh, North Carolina: The Pragmatic Bookshelf."
84
+ CiteProc.process b[:pickaxe].to_citeproc, :style => 'chicago-author-date'
85
+ #=> "Thomas, Dave, Chad Fowler, and Andy Hunt. 2009. Programming Ruby 1.9: The Pragmatic
86
+ Programmer's Guide. The Facets of Ruby.Raleigh, North Carolina: The Pragmatic Bookshelf."
87
+ CiteProc.process b[:pickaxe].to_citeproc, :style => :mla
88
+ #=> "Thomas, Dave, Chad Fowler, and Andy Hunt. Programming Ruby 1.9: The Pragmatic Programmer's
89
+ Guide. Raleigh, North Carolina: The Pragmatic Bookshelf, 2009."
90
+
91
+ Save a bibliography to a file:
92
+
93
+ b.save
94
+ #=> saves the original file
95
+ b.save_to(file)
96
+ #=> saves the bibliography in a new file
97
+
98
+
99
+ Compatibility
100
+ -------------
101
+ The BibTeX-Ruby gem has been developed and tested on Ruby 2.x, 1.9.3, and 1.8;
102
+ it has been confirmed to work with JRuby, Rubinius, and REE, however, there
103
+ have been repeated [issues](https://github.com/inukshuk/bibtex-ruby/issues)
104
+ (performance mostly) with MacRuby caused by MacRuby's current StringScanner
105
+ implementation.
106
+
107
+ Starting with BibTeX-Ruby version 3.0, support for Ruby versions 1.9.2 and
108
+ earlier has been dropped; most features will likely continue to work, but
109
+ compliance with old Rubies is not a priority going forward.
110
+
111
+
112
+ Documentation
113
+ -------------
114
+ It is very easy to use BibTeX-Ruby. You can use the top level utility methods
115
+ **BibTeX.open** and **BibTeX.parse** to open a '.bib' file or to parse a
116
+ string containing BibTeX contents. By default, BibTeX-Ruby will discard all
117
+ text outside of regular BibTeX elements; however, if you wish to include
118
+ everything, simply add `:include => [:meta_content]` to your invocation of
119
+ **BibTeX.open** or **BibTeX.parse**.
120
+
121
+ Once BibTeX-Ruby has parsed your '.bib' file, you can easily access individual
122
+ entries. For example, if you set up your bibliography as follows:
123
+
124
+ b = BibTeX.parse <<-END
125
+ @book{pickaxe,
126
+ address = {Raleigh, North Carolina},
127
+ author = {Thomas, Dave and Fowler, Chad and Hunt, Andy},
128
+ publisher = {The Pragmatic Bookshelf},
129
+ series = {The Facets of Ruby},
130
+ title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
131
+ year = {2009}
132
+ }
133
+ END
134
+
135
+ You could easily access it, using the entry's key, 'pickaxe', like so:
136
+ `b[:pickaxe]`; you also have easy access to individual fields, for example:
137
+ `b[:pickaxe][:author]`. Alternatively, BibTeX-Ruby accepts ghost methods to
138
+ conveniently access an entry's fields, similar to **ActiveRecord::Base**.
139
+ Therefore, it is equally possible to access the 'author' field above as
140
+ `b[:pickaxe].author`.
141
+
142
+ BibTeX-Ruby wraps all values of fields in an entry in Value
143
+ objects. This is necessary to transparently handle different types of values
144
+ (e.g., strings, dates, names etc.). These Value objects are designed to be
145
+ hardly discernible from regular Ruby strings, however, if you ever run into a
146
+ problem with a field's value, simply convert it to a string by calling the
147
+ `#to_s` method.
148
+
149
+ Instead of parsing strings you can also create BibTeX elements directly in
150
+ Ruby:
151
+
152
+ > bib = BibTeX::Bibliography.new
153
+
154
+ Using a Hash:
155
+
156
+ > bib << BibTeX::Entry.new({
157
+ :bibtex_type => :book,
158
+ :key => :rails,
159
+ :address => 'Raleigh, North Carolina',
160
+ :author => 'Ruby, Sam and Thomas, Dave, and Hansson, David Heinemeier',
161
+ :booktitle => 'Agile Web Development with Rails',
162
+ :edition => 'third',
163
+ :keywords => 'ruby, rails',
164
+ :publisher => 'The Pragmatic Bookshelf',
165
+ :series => 'The Facets of Ruby',
166
+ :title => 'Agile Web Development with Rails',
167
+ :year => '2009'
168
+ })
169
+
170
+ Or programmatically:
171
+
172
+ > book = BibTeX::Entry.new
173
+ > book.type = :book
174
+ > book.key = :mybook
175
+ > bib << book
176
+
177
+
178
+ ### Cross References
179
+
180
+ From version 2.0, BibTeX-Ruby correctly resolves entry cross-references,
181
+ which are commonly used for entries with type `inbook`, `incollection`,
182
+ and `inproceedings`. When an entry has a valid citation key in the field
183
+ `crossref`, BibTeX-Ruby will return any fields inherited from the parent
184
+ entry:
185
+
186
+ > b = BibTeX.parse <<-END
187
+ @inbook{fraassen_1989b,
188
+ Crossref = {fraassen_1989},
189
+ Pages = {40-64},
190
+ Title = {Ideal Science: David Lewis's Account of Laws},
191
+ }
192
+
193
+ @book{fraassen_1989,
194
+ Address = {Oxford},
195
+ Author = {Bas C. van Fraassen},
196
+ Publisher = {Oxford University Press},
197
+ Title = {Laws and Symmetry},
198
+ Year = 1989
199
+ }
200
+ END
201
+ > b['fraassen_1989b'].booktitle
202
+ => <"Laws and Symmetry">
203
+
204
+
205
+ ### Queries
206
+
207
+ Since version 1.3 BibTeX-Ruby implements a simple query language to search
208
+ Bibliographies via the `Bibliography#query` (or `Bibliography#q`) methods.
209
+ Additionally, you can access individual elements or groups of elements via
210
+ their index using `Bibliography#[]`; this accessor also exposes some of the
211
+ query functionality with the exception of yielding to a block. For instance:
212
+
213
+ bib[-1]
214
+ => Returns the last element of the Bibliography or nil
215
+ bib[1,2]
216
+ => Returns the second and third elements or nil
217
+ bib[1..2]
218
+ => Same as above
219
+
220
+ bib[:key]
221
+ => Returns the first entry with key 'key' or nil
222
+ bib['key']
223
+ => Returns all entries with key 'key' or []
224
+
225
+ bib['@article']
226
+ => Returns all entries of type 'article' or []
227
+ bib['!@book']
228
+ => Returns all entries of any type other than 'book' or []
229
+ bib['@preamble']
230
+ => Returns all preamble objects (this is the same as Bibliography#preambles) or []
231
+ bib[/ruby/]
232
+ => Returns all objects that match 'ruby' anywhere or []
233
+
234
+ bib['@incollection[booktitle]']
235
+ => Returns all in-collection entries with a booktitle or []
236
+
237
+ # note that the above includes entries inheriting the book title
238
+ # from a cross-referenced entry!
239
+
240
+ bib['@book[keywords=ruby]']
241
+ => Returns all books whose keywords attribute equals 'ruby' or []
242
+ bib['@book[keywords!=ruby]']
243
+ => Returns all books whose keywords attribute does not equal 'ruby'
244
+ bib['@book[keywords/=ruby]']
245
+ => Same as above
246
+
247
+ bib.q('@book[keywords ^= ruby]')
248
+ => Returns all books whose keywords attribute matches /^ruby/
249
+ bib.q('@book[keywords ~= ruby]')
250
+ => Returns all books whose keywords attribute matches /ruby/
251
+ bib['@book[keywords!~ruby]']
252
+ => Returns all books whose keywords attribute does not match /ruby/ or don't have keywords attribute
253
+
254
+ bib.q('@article[year<=2007]')
255
+ => Returns all articles published in 2007 or earlier
256
+ bib.query('@book') { |e| e.keywords.split(/,/).length > 1 }
257
+ => Returns all book entries with two or more keywords or []
258
+
259
+ Queries offer syntactic sugar for common enumerator invocations:
260
+
261
+ bib.query(:all, '@book')
262
+ => same as bib.select { |b| b.has_type?(:book) }
263
+ bib.query('@book')
264
+ => same as above
265
+ bib.query(:first, '@book')
266
+ => same as bib.detect { |b| b.has_type?(:book) }
267
+ bib.query(:none, '@book')
268
+ => same as bib.reject { |b| b.has_type?(:book) }
269
+
270
+ You can also use queries to delete entries in your bibliography:
271
+
272
+ bib.delete(/ruby/)
273
+ => deletes all object that match 'ruby' in their string representation
274
+ bib.delete('@comment')
275
+ => strips all BibTeX comments from the bibliography
276
+
277
+
278
+ ### String Replacement
279
+
280
+ If your bibliography contains BibTeX @string objects, you can let BibTeX-Ruby
281
+ replace the strings for you. You have access to a bibliography's strings via
282
+ **BibTeX::Bibliography#strings** or by using a '@string' query.
283
+ You can replace the string symbols of an object by calling the object's
284
+ the **replace** method. Thus, to replace all strings defined in bibliography
285
+ b you could use the following code:
286
+
287
+ b.each do |obj|
288
+ obj.replace(b.q('@string'))
289
+ end
290
+
291
+ A shorthand version for replacing all strings in a given bibliography is the
292
+ `Bibliography#replace` method. Similarly, you can use the
293
+ `Bibliography#join` method to join individual strings together. For instance:
294
+
295
+ > bib = BibTeX::Bibliography.new
296
+ > bib.add BibTeX::Element.parse '@string{ foo = "foo" }'
297
+ > bib << BibTeX::Element.parse '@string{ bar = "bar" }'
298
+ > bib.add BibTeX::Element.parse <<-END
299
+ > @book{abook,
300
+ > author = foo # "Author",
301
+ > title = foo # bar
302
+ > }
303
+ > END
304
+ > puts bib[:abook].to_s
305
+ @book{abook,
306
+ author = foo # "Author",
307
+ title = foo # bar
308
+ }
309
+ > bib.replace
310
+ > puts bib[:abook].to_s
311
+ @book{abook,
312
+ author = "foo" # "Author",
313
+ title = "foo" # "bar"
314
+ }
315
+ > bib.join
316
+ @book{abook,
317
+ author = {fooAuthor},
318
+ title = {foobar}
319
+ }
320
+
321
+ ### Names
322
+
323
+ Since version 1.3, BibTeX-Ruby features a name parser. You can use the
324
+ top-level `BibTeX.names` utility to quickly parse individual name values.
325
+ Alternatively, you can call `Bibliography.parse_names` to convert all name
326
+ fields contained in the bibliography. When parsing BibTeX files, BibTeX-Ruby
327
+ will automatically convert names; if you do not want the names to be parsed
328
+ you can set the `:parse_names` parser option to false.
329
+
330
+ Note that the string replacement and concatenation features described above
331
+ are not supported for name objects; therefore, BibTeX-Ruby tries to replace
332
+ and join all values before name conversion; name fields containing string
333
+ symbols that cannot be replaced will not be parsed.
334
+
335
+ In the following example, string replacement can take place, thus all names
336
+ are parsed and can easily be mapped to their last names:
337
+
338
+ BibTeX.parse(<<-END)[1].author.map(&:last)
339
+ @string{ ht = "Nathaniel Hawthorne" }
340
+ @book{key,
341
+ author = ht # " and Melville, Herman"
342
+ }
343
+ END
344
+ #=> ["Hawthorne", "Melville"]
345
+
346
+ Another useful method is `Bibliography#names` which returns all names in
347
+ your bibliography (authors, editors, translators). For example, to quickly
348
+ expand the initials of a name across your entire bibliography, you could
349
+ use the following snippet:
350
+
351
+ b.names.each do |name|
352
+ if name.sort_order =~ /^Poe, E/
353
+ name.first = 'Edgar Allen'
354
+ end
355
+ end
356
+
357
+ There is also a short-hand for this use case:
358
+
359
+ b.extend_initials ['Edgar Allen', 'Poe']
360
+
361
+ Alternatively, if your bibliography contains the same names in various
362
+ forms (e.g., 'Poe, Edgar A.', 'Poe, E.A.', 'Poe, E. Allen') you can also
363
+ set all names to their longest available form:
364
+
365
+ b.extend_initials!
366
+
367
+ Use with caution, though, as this method will treat names as identical
368
+ as long as their initials are the same. That is to say, 'Poe, Eric A.' would
369
+ be extend to 'Poe, Edgar Allen'.
370
+
371
+ ### Duplicates
372
+
373
+ Large bibliographies often contain duplicate data, i.e., duplicate entries
374
+ which are not completely identical (e.g., authors or editors with first
375
+ names or initials, titles using different casing, different keywords etc.).
376
+ BibTex-Ruby allows you to group your bibliography by any number of fields
377
+ in order to detect such duplicate entries.
378
+
379
+ b.select_duplicates_by :year, :title
380
+ #=> groups the bibliography by using the year and title field as key
381
+
382
+ b.duplicates?
383
+ #=> whether or not the bibliography contains any duplicates
384
+
385
+ For more complex requirements you can use the `#group_by` method directly.
386
+ This methods accepts a list of arguments whose value will be used for grouping
387
+ and, additionally, a block. The current digest and each individual entry will
388
+ be passed to the block and the block's return value is used as the final
389
+ digest.
390
+
391
+ The duplicate methods above, for example, do something like this:
392
+
393
+ group_by(:year, :title) do |digest, entry|
394
+ digest.gsub(/\s+/, '').downcase
395
+ end
396
+
397
+ You can use this method, for example, to match entries only by their author's
398
+ last name and so on and so forth.
399
+
400
+ Since version 4.1.0, BibTeX-ruby supports parsing of names spelled in the East Asian order (last name, then first name). Names contain a Chinese, Japanese or Korean letter are currently assumed to be such names. If the name is written in comma-separated manner, it is parsed in the normal way.
401
+
402
+ b = BibTeX.parse(<<-END)
403
+ @book{key,
404
+ title = "プログラミング言語 Ruby",
405
+ author = "David Flanagan and まつもと ゆきひろ",
406
+ translator = "卜部, 昌平 and 長尾, 高弘",
407
+ year = "2009",
408
+ publisher = "O'Reilly Japan"
409
+ }
410
+ END
411
+ [*b[0].author, *b[0].translator].map(&:last) #=> [Flanagan, まつもと, 卜部, 長尾]
412
+
413
+ ### Filters
414
+
415
+ Since version 1.3.8 BibTeX-Ruby comes with a plugin framework for input
416
+ filters. You can use the methods `convert` and `convert!` methods if `Value`,
417
+ `Entry` and `Bibliography` instances to easily convert string values according
418
+ to a given filter. Starting with version 1.3.9 BibTeX-Ruby includes a
419
+ LaTeX filter that depends on the
420
+ [latex-decode gem](http://rubygems.org/gems/latex-decode). Example:
421
+
422
+ faust = '@book{faust, title = {Faust: Der Trag\"odie Erster Teil}}'
423
+ BibTeX.parse(faust).convert(:latex)[:faust].title
424
+ #=> "Faust: Der Tragödie Erster Teil"
425
+
426
+ Conditional conversions are also supported:
427
+
428
+ faust1 = '@book{faust1, title = {Faust: Der Trag\"odie Erster Teil}}'
429
+ faust2 = '@book{faust2, title = {Faust: Der Trag\"odie Zweiter Teil}}'
430
+ p BibTeX.parse(faust1 + faust2).convert(:latex) { |e| e.key == :faust2 }.to_s
431
+
432
+ Returns:
433
+
434
+ @book{faust1,
435
+ title = {Faust: Der Trag\"odie Erster Teil}
436
+ }
437
+ @book{faust2,
438
+ title = {Faust: Der Tragödie Zweiter Teil}
439
+ }
440
+
441
+ If you need to express a condition on the basis of individual fields, use the
442
+ conversion methods of BibTeX::Entry with a block instead (the block will be
443
+ passed the key and value of each field prior to conversion).
444
+
445
+ When working with Bibliographies that contain LaTeX it is often best to
446
+ apply the filter upon opening or parsing the Bibliography. You can do this,
447
+ by passing the `:filter` option:
448
+
449
+ BibTeX.open 'references.bib', :filter => :latex
450
+
451
+
452
+ ### Exports
453
+
454
+ Furthermore, BibTeX-Ruby allows you to export your bibliography for processing
455
+ by other tools. Currently supported formats include YAML, JSON, and XML.
456
+
457
+ Of course, you can also export your bibliography back to BibTeX; if you
458
+ include `:meta_content', your export should be identical to the original
459
+ '.bib' file, except for whitespace, blank lines and letter case (BibTeX-Ruby
460
+ will downcase all keys).
461
+
462
+ In order to export your bibliography use **#to\_s**, **#to\_yaml**,
463
+ **#to\_json**, or **#to\_xml**, respectively. For example, the following line
464
+ constitutes a simple BibTeX to YAML converter:
465
+
466
+ >> BibTeX.open('example.bib').to_yaml
467
+
468
+ Starting with version 2.0, BibTeX-Ruby's `#to_xml` exports your bibliography
469
+ to the [BibTeXML](http://bibtexml.sf.net/) format. By passing the option
470
+ `:extended => true` you can make use of the BibTeXML's extended format which
471
+ will return individual person elements and name tokens (provided you have
472
+ successfully parsed the names of your bibliography).
473
+
474
+ > BibTeX.parse(<<-END).to_xml(:extended => true).write($stdout, 2)
475
+ " @book{pickaxe,
476
+ " Address = {Raleigh, North Carolina},
477
+ " Author = {Thomas, Dave, and Fowler, Chad, and Hunt, Andy},
478
+ " Publisher = {The Pragmatic Bookshelf},
479
+ " Title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
480
+ " Year = {2009}
481
+ " }
482
+ " END
483
+
484
+ This example parse a BibTeX entry, formats it as extended BibTeXML,
485
+ and writes the following XML to standard out:
486
+
487
+ ```xml
488
+ <?xml version='1.0' encoding='UTF-8'?>
489
+ <bibtex:file xmlns:bibtex='http://bibtexml.sf.net/'>
490
+ <bibtex:entry id='pickaxe'>
491
+ <bibtex:book>
492
+ <bibtex:address>Raleigh, North Carolina</bibtex:address>
493
+ <bibtex:author>
494
+ <bibtex:person>
495
+ <bibtex:first>Dave</bibtex:first>
496
+ <bibtex:last>Thomas</bibtex:last>
497
+ </bibtex:person>
498
+ <bibtex:person>
499
+ <bibtex:first>Chad</bibtex:first>
500
+ <bibtex:last>Fowler</bibtex:last>
501
+ </bibtex:person>
502
+ <bibtex:person>
503
+ <bibtex:first>Andy</bibtex:first>
504
+ <bibtex:last>Hunt</bibtex:last>
505
+ </bibtex:person>
506
+ </bibtex:author>
507
+ <bibtex:publisher>The Pragmatic Bookshelf</bibtex:publisher>
508
+ <bibtex:title>
509
+ Programming Ruby 1.9: The Pragmatic Programmer&apos;s Guide
510
+ </bibtex:title>
511
+ <bibtex:year>2009</bibtex:year>
512
+ </bibtex:book>
513
+ </bibtex:entry>
514
+ </bibtex:file>
515
+ ```
516
+
517
+ Look at the 'examples' directory for more elaborate examples of a BibTeX to
518
+ YAML and a BibTeX to HTML converter using **#to_citeproc** to format a
519
+ bibliography using [CSL](http://citationstyles.org/).
520
+
521
+ BibTeX-Ruby offers an API which lets you manipulate BibTeX objects (string
522
+ replacement, name parsing etc.); however, sometimes you just want quick access
523
+ to your bibliography's contents. In these cases the **to_hash** method is
524
+ useful (use **to_a** if you are only interested in the bibliography's
525
+ contents): it converts all objects into simple Ruby hashes made up of symbols
526
+ and strings. Furthermore, often you would like to control what sort of quotes
527
+ are used in an export; therefore, all conversion methods accept an options
528
+ hash which lets you define what quotes to use (note that BibTeX-Ruby will
529
+ always use regular double quotes if a value consists of more than one token,
530
+ because these tokens will be concatenated using BibTeX's '#' operator).
531
+
532
+ >> BibTeX.parse(<<-END).to_a # implies: :quotes => ['{','}']
533
+ @book{pickaxe,
534
+ Address = {Raleigh, North Carolina},
535
+ Author = {Thomas, Dave, and Fowler, Chad, and Hunt, Andy},
536
+ Publisher = {The Pragmatic Bookshelf},
537
+ Title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
538
+ Year = {2009}
539
+ }
540
+ END
541
+ => [{:bibtex_key=>:pickaxe, :bibtex_type=>:book,
542
+ :address=>"{Raleigh, North Carolina}",
543
+ :author=>"{Thomas, Dave, and Fowler, Chad, and Hunt, Andy}",
544
+ :publisher=>"{The Pragmatic Bookshelf}",
545
+ :title=>"{Programming Ruby 1.9: The Pragmatic Programmer's Guide}",
546
+ :year=>"{2009}"}]
547
+
548
+ For post-processing in Ruby most of the time you do not need any explicit
549
+ quotes; therefore you can simply add the :quotes option with an empty string:
550
+
551
+ >> BibTeX.parse(<<-END).to_a(:quotes => '')
552
+ ...
553
+ END
554
+ => [{:bibtex_key=>:pickaxe, :bibtex_type=>:book,
555
+ :address=>"Raleigh, North Carolina",
556
+ :author=>"Thomas, Dave, and Fowler, Chad, and Hunt, Andy",
557
+ :publisher=>"The Pragmatic Bookshelf",
558
+ :title=>"Programming Ruby 1.9: The Pragmatic Programmer's Guide",
559
+ :year=>"2009"}]
560
+
561
+
562
+ The Parser
563
+ ----------
564
+ The BibTeX-Ruby parser is generated using the awesome
565
+ [racc](http://i.loveruby.net/en/projects/racc/) parser generator. You can take
566
+ look at the LALR grammar in the file
567
+ [lib/bibtex/bibtex.y](https://github.com/inukshuk/bibtex-ruby/blob/master/lib/bibtex/bibtex.y).
568
+
569
+ For more information about the BibTeX format and the parser's idiosyncrasies
570
+ [refer to the project wiki](https://github.com/inukshuk/bibtex-ruby/wiki/The-BibTeX-Format).
571
+
572
+
573
+ Contributing
574
+ ------------
575
+ The BibTeX-Ruby source code is
576
+ [hosted on GitHub](https://github.com/inukshuk/bibtex-ruby/).
577
+ You can check out a copy of the latest code using Git:
578
+
579
+ $ git clone https://github.com/inukshuk/bibtex-ruby.git
580
+
581
+ If you've found a bug or have a question, please open an issue on the
582
+ [BibTeX-Ruby issue tracker](https://github.com/inukshuk/bibtex-ruby/issues).
583
+ For extra credit, clone the BibTeX-Ruby repository, write a failing
584
+ example, or cucumber feature, fix the bug and submit a pull request (for
585
+ useful examples, take a look at the cucumber features in the
586
+ [features/issues/](https://github.com/inukshuk/bibtex-ruby/blob/master/features/issues)
587
+ directory).
588
+
589
+ The parser generator [racc](http://i.loveruby.net/en/projects/racc/) is
590
+ required to generate the BibTeX parser and the name parser; you do not need
591
+ to install it to use the bibtex-ruby gem.
592
+
593
+ To run the tests and cucumber examples execute these commands (from within
594
+ the bibtex-ruby directory):
595
+
596
+ $ [sudo] gem install bundler
597
+ $ [sudo] bundle install
598
+ $ bundle exec rake
599
+
600
+ To execute the test suite continuously while you're working run:
601
+
602
+ $ bundle exec guard
603
+
604
+
605
+
606
+ Credits
607
+ -------
608
+
609
+ Copyright 2011-2015 [Sylvester Keil](http://sylvester.keil.or.at/).
610
+
611
+ Kudos to all [contributors](https://github.com/inukshuk/bibtex-ruby/contributors)
612
+ who have made BibTeX-Ruby possible.
613
+
614
+ This software is distributed under the terms and conditions of the GNU GPL.
615
+ See LICENSE for details.