lgrgic_palindrome_detector 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 (376) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +8 -0
  5. data/Gemfile.lock +31 -0
  6. data/README.md +39 -0
  7. data/Rakefile +10 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +8 -0
  10. data/lgrgic_palindrome_detector.gemspec +37 -0
  11. data/lib/lgrgic_palindrome_detector.rb +16 -0
  12. data/lib/lgrgic_palindrome_detector/version.rb +3 -0
  13. data/vendor/cache/ansi-1.5.0.gem +0 -0
  14. data/vendor/cache/bin/rake +27 -0
  15. data/vendor/cache/builder-3.2.3.gem +0 -0
  16. data/vendor/cache/cache/ansi-1.5.0.gem +0 -0
  17. data/vendor/cache/cache/builder-3.2.3.gem +0 -0
  18. data/vendor/cache/cache/minitest-5.11.3.gem +0 -0
  19. data/vendor/cache/cache/minitest-reporters-1.2.0.gem +0 -0
  20. data/vendor/cache/cache/rake-10.5.0.gem +0 -0
  21. data/vendor/cache/cache/ruby-progressbar-1.10.0.gem +0 -0
  22. data/vendor/cache/gems/ansi-1.5.0/.index +77 -0
  23. data/vendor/cache/gems/ansi-1.5.0/.yardopts +8 -0
  24. data/vendor/cache/gems/ansi-1.5.0/DEMO.md +451 -0
  25. data/vendor/cache/gems/ansi-1.5.0/HISTORY.md +217 -0
  26. data/vendor/cache/gems/ansi-1.5.0/LICENSE.txt +23 -0
  27. data/vendor/cache/gems/ansi-1.5.0/NOTICE.md +170 -0
  28. data/vendor/cache/gems/ansi-1.5.0/README.md +91 -0
  29. data/vendor/cache/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
  30. data/vendor/cache/gems/ansi-1.5.0/demo/02_core.md +11 -0
  31. data/vendor/cache/gems/ansi-1.5.0/demo/03_logger.md +30 -0
  32. data/vendor/cache/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
  33. data/vendor/cache/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
  34. data/vendor/cache/gems/ansi-1.5.0/demo/06_string.md +56 -0
  35. data/vendor/cache/gems/ansi-1.5.0/demo/07_columns.md +89 -0
  36. data/vendor/cache/gems/ansi-1.5.0/demo/08_table.md +28 -0
  37. data/vendor/cache/gems/ansi-1.5.0/demo/09_diff.md +47 -0
  38. data/vendor/cache/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
  39. data/vendor/cache/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
  40. data/vendor/cache/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
  41. data/vendor/cache/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
  42. data/vendor/cache/gems/ansi-1.5.0/lib/ansi.rb +22 -0
  43. data/vendor/cache/gems/ansi-1.5.0/lib/ansi.yml +77 -0
  44. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
  45. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
  46. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
  47. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
  48. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
  49. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
  50. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
  51. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
  52. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
  53. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
  54. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
  55. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
  56. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
  57. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
  58. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
  59. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
  60. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
  61. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
  62. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
  63. data/vendor/cache/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
  64. data/vendor/cache/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
  65. data/vendor/cache/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
  66. data/vendor/cache/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
  67. data/vendor/cache/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
  68. data/vendor/cache/gems/ansi-1.5.0/test/test_helper.rb +3 -0
  69. data/vendor/cache/gems/builder-3.2.3/CHANGES +107 -0
  70. data/vendor/cache/gems/builder-3.2.3/MIT-LICENSE +20 -0
  71. data/vendor/cache/gems/builder-3.2.3/README.md +258 -0
  72. data/vendor/cache/gems/builder-3.2.3/Rakefile +195 -0
  73. data/vendor/cache/gems/builder-3.2.3/doc/jamis.rb +591 -0
  74. data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-1.2.4.rdoc +31 -0
  75. data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.0.0.rdoc +46 -0
  76. data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.1.1.rdoc +58 -0
  77. data/vendor/cache/gems/builder-3.2.3/lib/blankslate.rb +137 -0
  78. data/vendor/cache/gems/builder-3.2.3/lib/builder.rb +13 -0
  79. data/vendor/cache/gems/builder-3.2.3/lib/builder/blankslate.rb +23 -0
  80. data/vendor/cache/gems/builder-3.2.3/lib/builder/version.rb +8 -0
  81. data/vendor/cache/gems/builder-3.2.3/lib/builder/xchar.rb +197 -0
  82. data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlbase.rb +199 -0
  83. data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlevents.rb +63 -0
  84. data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlmarkup.rb +339 -0
  85. data/vendor/cache/gems/builder-3.2.3/rakelib/publish.rake +20 -0
  86. data/vendor/cache/gems/builder-3.2.3/rakelib/tags.rake +62 -0
  87. data/vendor/cache/gems/builder-3.2.3/rakelib/testing.rake +7 -0
  88. data/vendor/cache/gems/builder-3.2.3/test/helper.rb +12 -0
  89. data/vendor/cache/gems/builder-3.2.3/test/performance.rb +41 -0
  90. data/vendor/cache/gems/builder-3.2.3/test/preload.rb +39 -0
  91. data/vendor/cache/gems/builder-3.2.3/test/test_blankslate.rb +213 -0
  92. data/vendor/cache/gems/builder-3.2.3/test/test_eventbuilder.rb +150 -0
  93. data/vendor/cache/gems/builder-3.2.3/test/test_markupbuilder.rb +611 -0
  94. data/vendor/cache/gems/builder-3.2.3/test/test_method_caching.rb +62 -0
  95. data/vendor/cache/gems/builder-3.2.3/test/test_namecollision.rb +39 -0
  96. data/vendor/cache/gems/builder-3.2.3/test/test_xchar.rb +78 -0
  97. data/vendor/cache/gems/minitest-5.11.3/.autotest +34 -0
  98. data/vendor/cache/gems/minitest-5.11.3/History.rdoc +1310 -0
  99. data/vendor/cache/gems/minitest-5.11.3/Manifest.txt +26 -0
  100. data/vendor/cache/gems/minitest-5.11.3/README.rdoc +746 -0
  101. data/vendor/cache/gems/minitest-5.11.3/Rakefile +86 -0
  102. data/vendor/cache/gems/minitest-5.11.3/design_rationale.rb +52 -0
  103. data/vendor/cache/gems/minitest-5.11.3/lib/hoe/minitest.rb +32 -0
  104. data/vendor/cache/gems/minitest-5.11.3/lib/minitest.rb +987 -0
  105. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/assertions.rb +693 -0
  106. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/autorun.rb +13 -0
  107. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/benchmark.rb +455 -0
  108. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/expectations.rb +284 -0
  109. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/hell.rb +11 -0
  110. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/mock.rb +240 -0
  111. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/parallel.rb +70 -0
  112. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride.rb +4 -0
  113. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride_plugin.rb +142 -0
  114. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/spec.rb +331 -0
  115. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/test.rb +220 -0
  116. data/vendor/cache/gems/minitest-5.11.3/lib/minitest/unit.rb +45 -0
  117. data/vendor/cache/gems/minitest-5.11.3/test/minitest/metametameta.rb +102 -0
  118. data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_benchmark.rb +137 -0
  119. data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_mock.rb +874 -0
  120. data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_reporter.rb +299 -0
  121. data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_spec.rb +987 -0
  122. data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_test.rb +2142 -0
  123. data/vendor/cache/gems/minitest-reporters-1.2.0/.gitignore +27 -0
  124. data/vendor/cache/gems/minitest-reporters-1.2.0/.ruby-gemset +1 -0
  125. data/vendor/cache/gems/minitest-reporters-1.2.0/.travis.yml +10 -0
  126. data/vendor/cache/gems/minitest-reporters-1.2.0/.yardopts +6 -0
  127. data/vendor/cache/gems/minitest-reporters-1.2.0/CHANGELOG.md +40 -0
  128. data/vendor/cache/gems/minitest-reporters-1.2.0/Gemfile +2 -0
  129. data/vendor/cache/gems/minitest-reporters-1.2.0/LICENSE +20 -0
  130. data/vendor/cache/gems/minitest-reporters-1.2.0/README.md +115 -0
  131. data/vendor/cache/gems/minitest-reporters-1.2.0/Rakefile +60 -0
  132. data/vendor/cache/gems/minitest-reporters-1.2.0/assets/default-reporter.png +0 -0
  133. data/vendor/cache/gems/minitest-reporters-1.2.0/assets/mean_time_reporter.png +0 -0
  134. data/vendor/cache/gems/minitest-reporters-1.2.0/assets/progress-reporter.png +0 -0
  135. data/vendor/cache/gems/minitest-reporters-1.2.0/assets/spec-reporter.png +0 -0
  136. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/extensible_backtrace_filter.rb +67 -0
  137. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/minitest_reporter_plugin.rb +75 -0
  138. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/old_activesupport_fix.rb +24 -0
  139. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/relative_position.rb +26 -0
  140. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters.rb +89 -0
  141. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ansi.rb +31 -0
  142. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/base_reporter.rb +117 -0
  143. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/default_reporter.rb +228 -0
  144. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/html_reporter.rb +221 -0
  145. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/junit_reporter.rb +157 -0
  146. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/mean_time_reporter.rb +392 -0
  147. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/progress_reporter.rb +96 -0
  148. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
  149. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/rubymine_reporter.rb +117 -0
  150. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/spec_reporter.rb +61 -0
  151. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/version.rb +5 -0
  152. data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/templates/index.html.erb +83 -0
  153. data/vendor/cache/gems/minitest-reporters-1.2.0/minitest-reporters.gemspec +31 -0
  154. data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/junit_filename_bug_example_test.rb +21 -0
  155. data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/mean_time_test.rb +8 -0
  156. data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_detailed_skip_test.rb +8 -0
  157. data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_test.rb +8 -0
  158. data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/sample_test.rb +15 -0
  159. data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/spec_test.rb +13 -0
  160. data/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/bad_test.rb +25 -0
  161. data/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/good_test.rb +14 -0
  162. data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/junit_reporter_test.rb +12 -0
  163. data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/mean_time_reporter_test.rb +7 -0
  164. data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/progress_reporter_test.rb +34 -0
  165. data/vendor/cache/gems/minitest-reporters-1.2.0/test/test_helper.rb +22 -0
  166. data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
  167. data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -0
  168. data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
  169. data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/reporters_test.rb +52 -0
  170. data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/spec_reporter_test.rb +41 -0
  171. data/vendor/cache/gems/rake-10.5.0/.autotest +7 -0
  172. data/vendor/cache/gems/rake-10.5.0/.rubocop.yml +27 -0
  173. data/vendor/cache/gems/rake-10.5.0/.togglerc +7 -0
  174. data/vendor/cache/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  175. data/vendor/cache/gems/rake-10.5.0/History.rdoc +659 -0
  176. data/vendor/cache/gems/rake-10.5.0/MIT-LICENSE +21 -0
  177. data/vendor/cache/gems/rake-10.5.0/Manifest.txt +166 -0
  178. data/vendor/cache/gems/rake-10.5.0/README.rdoc +139 -0
  179. data/vendor/cache/gems/rake-10.5.0/Rakefile +81 -0
  180. data/vendor/cache/gems/rake-10.5.0/bin/rake +33 -0
  181. data/vendor/cache/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  182. data/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  183. data/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  184. data/vendor/cache/gems/rake-10.5.0/doc/example/a.c +6 -0
  185. data/vendor/cache/gems/rake-10.5.0/doc/example/b.c +6 -0
  186. data/vendor/cache/gems/rake-10.5.0/doc/example/main.c +11 -0
  187. data/vendor/cache/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  188. data/vendor/cache/gems/rake-10.5.0/doc/jamis.rb +591 -0
  189. data/vendor/cache/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  190. data/vendor/cache/gems/rake-10.5.0/doc/rake.1 +141 -0
  191. data/vendor/cache/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  192. data/vendor/cache/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  193. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  194. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  195. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  196. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  197. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  198. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  199. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  200. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  201. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  202. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  203. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  204. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  205. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  206. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  207. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  208. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  209. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  210. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  211. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  212. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  213. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  214. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  215. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  216. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  217. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  218. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  219. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  220. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  221. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  222. data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  223. data/vendor/cache/gems/rake-10.5.0/lib/rake.rb +79 -0
  224. data/vendor/cache/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  225. data/vendor/cache/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  226. data/vendor/cache/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  227. data/vendor/cache/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  228. data/vendor/cache/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  229. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  230. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  231. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  232. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  233. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  234. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  235. data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  236. data/vendor/cache/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  237. data/vendor/cache/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  238. data/vendor/cache/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  239. data/vendor/cache/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  240. data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  241. data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  242. data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  243. data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  244. data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  245. data/vendor/cache/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  246. data/vendor/cache/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  247. data/vendor/cache/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  248. data/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  249. data/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  250. data/vendor/cache/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  251. data/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  252. data/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  253. data/vendor/cache/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  254. data/vendor/cache/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  255. data/vendor/cache/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  256. data/vendor/cache/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  257. data/vendor/cache/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  258. data/vendor/cache/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  259. data/vendor/cache/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  260. data/vendor/cache/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  261. data/vendor/cache/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  262. data/vendor/cache/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  263. data/vendor/cache/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  264. data/vendor/cache/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  265. data/vendor/cache/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  266. data/vendor/cache/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  267. data/vendor/cache/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  268. data/vendor/cache/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  269. data/vendor/cache/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  270. data/vendor/cache/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  271. data/vendor/cache/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  272. data/vendor/cache/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  273. data/vendor/cache/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  274. data/vendor/cache/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  275. data/vendor/cache/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  276. data/vendor/cache/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  277. data/vendor/cache/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  278. data/vendor/cache/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  279. data/vendor/cache/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  280. data/vendor/cache/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  281. data/vendor/cache/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  282. data/vendor/cache/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  283. data/vendor/cache/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  284. data/vendor/cache/gems/rake-10.5.0/test/file_creation.rb +34 -0
  285. data/vendor/cache/gems/rake-10.5.0/test/helper.rb +129 -0
  286. data/vendor/cache/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  287. data/vendor/cache/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  288. data/vendor/cache/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  289. data/vendor/cache/gems/rake-10.5.0/test/test_rake.rb +40 -0
  290. data/vendor/cache/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  291. data/vendor/cache/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  292. data/vendor/cache/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  293. data/vendor/cache/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  294. data/vendor/cache/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  295. data/vendor/cache/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  296. data/vendor/cache/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  297. data/vendor/cache/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  298. data/vendor/cache/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  299. data/vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  300. data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  301. data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  302. data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  303. data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  304. data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  305. data/vendor/cache/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  306. data/vendor/cache/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  307. data/vendor/cache/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  308. data/vendor/cache/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  309. data/vendor/cache/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  310. data/vendor/cache/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  311. data/vendor/cache/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  312. data/vendor/cache/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  313. data/vendor/cache/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  314. data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  315. data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  316. data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  317. data/vendor/cache/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  318. data/vendor/cache/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  319. data/vendor/cache/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  320. data/vendor/cache/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  321. data/vendor/cache/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  322. data/vendor/cache/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  323. data/vendor/cache/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  324. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  325. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  326. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  327. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  328. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  329. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  330. data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  331. data/vendor/cache/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  332. data/vendor/cache/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  333. data/vendor/cache/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  334. data/vendor/cache/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  335. data/vendor/cache/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  336. data/vendor/cache/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  337. data/vendor/cache/gems/ruby-progressbar-1.10.0/LICENSE.txt +19 -0
  338. data/vendor/cache/gems/ruby-progressbar-1.10.0/README.md +38 -0
  339. data/vendor/cache/gems/ruby-progressbar-1.10.0/Rakefile +2 -0
  340. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar.rb +18 -0
  341. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/base.rb +183 -0
  342. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/length.rb +100 -0
  343. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  344. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components.rb +5 -0
  345. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/bar.rb +102 -0
  346. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/percentage.rb +29 -0
  347. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/rate.rb +43 -0
  348. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/time.rb +107 -0
  349. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/title.rb +13 -0
  350. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  351. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format.rb +3 -0
  352. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/formatter.rb +27 -0
  353. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/molecule.rb +60 -0
  354. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/string.rb +36 -0
  355. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/output.rb +68 -0
  356. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  357. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/null.rb +33 -0
  358. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
  359. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/progress.rb +118 -0
  360. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements.rb +1 -0
  361. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
  362. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/throttle.rb +25 -0
  363. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/time.rb +32 -0
  364. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/timer.rb +72 -0
  365. data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/version.rb +3 -0
  366. data/vendor/cache/minitest-5.11.3.gem +0 -0
  367. data/vendor/cache/minitest-reporters-1.2.0.gem +0 -0
  368. data/vendor/cache/rake-10.5.0.gem +0 -0
  369. data/vendor/cache/ruby-progressbar-1.10.0.gem +0 -0
  370. data/vendor/cache/specifications/ansi-1.5.0.gemspec +49 -0
  371. data/vendor/cache/specifications/builder-3.2.3.gemspec +21 -0
  372. data/vendor/cache/specifications/minitest-5.11.3.gemspec +39 -0
  373. data/vendor/cache/specifications/minitest-reporters-1.2.0.gemspec +49 -0
  374. data/vendor/cache/specifications/rake-10.5.0.gemspec +43 -0
  375. data/vendor/cache/specifications/ruby-progressbar-1.10.0.gemspec +46 -0
  376. metadata +460 -0
@@ -0,0 +1,31 @@
1
+ = Builder 1.2.4 Released.
2
+
3
+ Added a "CDATA" method to the XML Markup builder (from Josh Knowles).
4
+
5
+ == What is Builder?
6
+
7
+ Builder::XmlMarkup allows easy programmatic creation of XML markup.
8
+ For example:
9
+
10
+ builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
11
+ builder.person { |b| b.name("Jim"); b.phone("555-1234") }
12
+ puts builder.target!
13
+
14
+ will generate:
15
+
16
+ <person>
17
+ <name>Jim</name>
18
+ <phone>555-1234</phone>
19
+ </person>
20
+
21
+ == Availability
22
+
23
+ The easiest way to get and install builder is via RubyGems ...
24
+
25
+ gem install builder (you may need root/admin privileges)
26
+
27
+ == Thanks
28
+
29
+ * Josh Knowles for the cdata! patch.
30
+
31
+ -- Jim Weirich
@@ -0,0 +1,46 @@
1
+ = Builder 2.0.0 Released.
2
+
3
+ == Changes in 2.0.0
4
+
5
+ * UTF-8 characters in data are now correctly translated to their XML
6
+ equivalents. (Thanks to Sam Ruby)
7
+
8
+ * Attribute values are now escaped by default. See the README
9
+ file for details.
10
+
11
+ <b>NOTE:</b> The escaping attribute values by default is different
12
+ than in previous releases of Builder. This makes version 2.0.0
13
+ somewhat incompatible with the 1.x series of Builder. If you use "&",
14
+ "<", or ">" in attributes values, you may have to change your
15
+ code. (Essentially you remove the manual escaping. The new way is
16
+ easier, believe me).
17
+
18
+ == What is Builder?
19
+
20
+ Builder::XmlMarkup is a library that allows easy programmatic creation
21
+ of XML markup. For example:
22
+
23
+ builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
24
+ builder.person { |b| b.name("Jim"); b.phone("555-1234") }
25
+
26
+ will generate:
27
+
28
+ <person>
29
+ <name>Jim</name>
30
+ <phone>555-1234</phone>
31
+ </person>
32
+
33
+ == Availability
34
+
35
+ The easiest way to get and install builder is via RubyGems ...
36
+
37
+ gem install builder (you may need root/admin privileges)
38
+
39
+ == Thanks
40
+
41
+ * Sam Ruby for the XChar module and the related UTF-8 translation
42
+ tools.
43
+ * Also to Sam Ruby for gently persuading me to start quoting attribute
44
+ values.
45
+
46
+ -- Jim Weirich
@@ -0,0 +1,58 @@
1
+ = Builder 2.1.1 Released.
2
+
3
+ Release 2.1.1 of Builder is mainly a bug fix release.
4
+
5
+ == Changes in 2.1.1
6
+
7
+ * Added <tt>reveal</tt> capability to BlankSlate.
8
+
9
+ * Fixed a bug in BlankSlate where including a module into Object could
10
+ cause methods to leak into BlankSlate.
11
+
12
+ * Fixed typo in XmlMarkup class docs (from Martin Fowler).
13
+
14
+ * Fixed test on private methods to differentiate between targetted and
15
+ untargetted private methods.
16
+
17
+ * Removed legacy capture of @self in XmlBase (@self was used back when
18
+ we used instance eval).
19
+
20
+ * Added additional tests for global functions (both direct and
21
+ included).
22
+
23
+ * Several misc internal cleanups, including rearranging the source
24
+ code tree.
25
+
26
+ <b>NOTE:</b> The escaping attribute values by default is different
27
+ than in previous releases of Builder. This makes version 2.0.x
28
+ somewhat incompatible with the 1.x series of Builder. If you use "&",
29
+ "<", or ">" in attributes values, you may have to change your
30
+ code. (Essentially you remove the manual escaping. The new way is
31
+ easier, believe me).
32
+
33
+ == What is Builder?
34
+
35
+ Builder::XmlMarkup is a library that allows easy programmatic creation
36
+ of XML markup. For example:
37
+
38
+ builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
39
+ builder.person { |b| b.name("Jim"); b.phone("555-1234") }
40
+
41
+ will generate:
42
+
43
+ <person>
44
+ <name>Jim</name>
45
+ <phone>555-1234</phone>
46
+ </person>
47
+
48
+ == Availability
49
+
50
+ The easiest way to get and install builder is via RubyGems ...
51
+
52
+ gem install builder (you may need root/admin privileges)
53
+
54
+ == Thanks
55
+
56
+ * Martin Fowler for spotting some typos in the documentation.
57
+
58
+ -- Jim Weirich
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org).
4
+ # All rights reserved.
5
+
6
+ # Permission is granted for use, copying, modification, distribution,
7
+ # and distribution of modified versions of this work as long as the
8
+ # above copyright notice is included.
9
+ #++
10
+
11
+ class String
12
+ if instance_methods.first.is_a?(Symbol)
13
+ def _blankslate_as_name
14
+ to_sym
15
+ end
16
+ else
17
+ def _blankslate_as_name
18
+ self
19
+ end
20
+ end
21
+ end
22
+
23
+ class Symbol
24
+ if instance_methods.first.is_a?(Symbol)
25
+ def _blankslate_as_name
26
+ self
27
+ end
28
+ else
29
+ def _blankslate_as_name
30
+ to_s
31
+ end
32
+ end
33
+ end
34
+
35
+ ######################################################################
36
+ # BlankSlate provides an abstract base class with no predefined
37
+ # methods (except for <tt>\_\_send__</tt> and <tt>\_\_id__</tt>).
38
+ # BlankSlate is useful as a base class when writing classes that
39
+ # depend upon <tt>method_missing</tt> (e.g. dynamic proxies).
40
+ #
41
+ class BlankSlate
42
+ class << self
43
+
44
+ # Hide the method named +name+ in the BlankSlate class. Don't
45
+ # hide +instance_eval+ or any method beginning with "__".
46
+ def hide(name)
47
+ warn_level = $VERBOSE
48
+ $VERBOSE = nil
49
+ if instance_methods.include?(name._blankslate_as_name) &&
50
+ name !~ /^(__|instance_eval$)/
51
+ @hidden_methods ||= {}
52
+ @hidden_methods[name.to_sym] = instance_method(name)
53
+ undef_method name
54
+ end
55
+ ensure
56
+ $VERBOSE = warn_level
57
+ end
58
+
59
+ def find_hidden_method(name)
60
+ @hidden_methods ||= {}
61
+ @hidden_methods[name] || superclass.find_hidden_method(name)
62
+ end
63
+
64
+ # Redefine a previously hidden method so that it may be called on a blank
65
+ # slate object.
66
+ def reveal(name)
67
+ hidden_method = find_hidden_method(name)
68
+ fail "Don't know how to reveal method '#{name}'" unless hidden_method
69
+ define_method(name, hidden_method)
70
+ end
71
+ end
72
+
73
+ instance_methods.each { |m| hide(m) }
74
+ end
75
+
76
+ ######################################################################
77
+ # Since Ruby is very dynamic, methods added to the ancestors of
78
+ # BlankSlate <em>after BlankSlate is defined</em> will show up in the
79
+ # list of available BlankSlate methods. We handle this by defining a
80
+ # hook in the Object and Kernel classes that will hide any method
81
+ # defined after BlankSlate has been loaded.
82
+ #
83
+ module Kernel
84
+ class << self
85
+ alias_method :blank_slate_method_added, :method_added
86
+
87
+ # Detect method additions to Kernel and remove them in the
88
+ # BlankSlate class.
89
+ def method_added(name)
90
+ result = blank_slate_method_added(name)
91
+ return result if self != Kernel
92
+ BlankSlate.hide(name)
93
+ result
94
+ end
95
+ end
96
+ end
97
+
98
+ ######################################################################
99
+ # Same as above, except in Object.
100
+ #
101
+ class Object
102
+ class << self
103
+ alias_method :blank_slate_method_added, :method_added
104
+
105
+ # Detect method additions to Object and remove them in the
106
+ # BlankSlate class.
107
+ def method_added(name)
108
+ result = blank_slate_method_added(name)
109
+ return result if self != Object
110
+ BlankSlate.hide(name)
111
+ result
112
+ end
113
+
114
+ def find_hidden_method(name)
115
+ nil
116
+ end
117
+ end
118
+ end
119
+
120
+ ######################################################################
121
+ # Also, modules included into Object need to be scanned and have their
122
+ # instance methods removed from blank slate. In theory, modules
123
+ # included into Kernel would have to be removed as well, but a
124
+ # "feature" of Ruby prevents late includes into modules from being
125
+ # exposed in the first place.
126
+ #
127
+ class Module
128
+ alias blankslate_original_append_features append_features
129
+ def append_features(mod)
130
+ result = blankslate_original_append_features(mod)
131
+ return result if mod != Object
132
+ instance_methods.each do |name|
133
+ BlankSlate.hide(name)
134
+ end
135
+ result
136
+ end
137
+ end
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #--
4
+ # Copyright 2004 by Jim Weirich (jim@weirichhouse.org).
5
+ # All rights reserved.
6
+
7
+ # Permission is granted for use, copying, modification, distribution,
8
+ # and distribution of modified versions of this work as long as the
9
+ # above copyright notice is included.
10
+ #++
11
+
12
+ require 'builder/xmlmarkup'
13
+ require 'builder/xmlevents'
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org).
4
+ # All rights reserved.
5
+
6
+ # Permission is granted for use, copying, modification, distribution,
7
+ # and distribution of modified versions of this work as long as the
8
+ # above copyright notice is included.
9
+ #++
10
+
11
+ ######################################################################
12
+ # BlankSlate has been promoted to a top level name and is now
13
+ # available as a standalone gem. We make the name available in the
14
+ # Builder namespace for compatibility.
15
+ #
16
+ module Builder
17
+ if Object::const_defined?(:BasicObject)
18
+ BlankSlate = ::BasicObject
19
+ else
20
+ require 'blankslate'
21
+ BlankSlate = ::BlankSlate
22
+ end
23
+ end
@@ -0,0 +1,8 @@
1
+ module Builder
2
+ VERSION_NUMBERS = [
3
+ VERSION_MAJOR = 3,
4
+ VERSION_MINOR = 2,
5
+ VERSION_BUILD = 3,
6
+ ]
7
+ VERSION = VERSION_NUMBERS.join(".")
8
+ end
@@ -0,0 +1,197 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # The XChar library is provided courtesy of Sam Ruby (See
4
+ # http://intertwingly.net/stories/2005/09/28/xchar.rb)
5
+
6
+ # --------------------------------------------------------------------
7
+
8
+ # If the Builder::XChar module is not currently defined, fail on any
9
+ # name clashes in standard library classes.
10
+
11
+ module Builder
12
+ def self.check_for_name_collision(klass, method_name, defined_constant=nil)
13
+ if klass.method_defined?(method_name.to_s)
14
+ fail RuntimeError,
15
+ "Name Collision: Method '#{method_name}' is already defined in #{klass}"
16
+ end
17
+ end
18
+ end
19
+
20
+ if ! defined?(Builder::XChar) and ! String.method_defined?(:encode)
21
+ Builder.check_for_name_collision(String, "to_xs")
22
+ Builder.check_for_name_collision(Integer, "xchr")
23
+ end
24
+
25
+ ######################################################################
26
+ module Builder
27
+
28
+ ####################################################################
29
+ # XML Character converter, from Sam Ruby:
30
+ # (see http://intertwingly.net/stories/2005/09/28/xchar.rb).
31
+ #
32
+ module XChar # :nodoc:
33
+
34
+ # See
35
+ # http://intertwingly.net/stories/2004/04/14/i18n.html#CleaningWindows
36
+ # for details.
37
+ CP1252 = { # :nodoc:
38
+ 128 => 8364, # euro sign
39
+ 130 => 8218, # single low-9 quotation mark
40
+ 131 => 402, # latin small letter f with hook
41
+ 132 => 8222, # double low-9 quotation mark
42
+ 133 => 8230, # horizontal ellipsis
43
+ 134 => 8224, # dagger
44
+ 135 => 8225, # double dagger
45
+ 136 => 710, # modifier letter circumflex accent
46
+ 137 => 8240, # per mille sign
47
+ 138 => 352, # latin capital letter s with caron
48
+ 139 => 8249, # single left-pointing angle quotation mark
49
+ 140 => 338, # latin capital ligature oe
50
+ 142 => 381, # latin capital letter z with caron
51
+ 145 => 8216, # left single quotation mark
52
+ 146 => 8217, # right single quotation mark
53
+ 147 => 8220, # left double quotation mark
54
+ 148 => 8221, # right double quotation mark
55
+ 149 => 8226, # bullet
56
+ 150 => 8211, # en dash
57
+ 151 => 8212, # em dash
58
+ 152 => 732, # small tilde
59
+ 153 => 8482, # trade mark sign
60
+ 154 => 353, # latin small letter s with caron
61
+ 155 => 8250, # single right-pointing angle quotation mark
62
+ 156 => 339, # latin small ligature oe
63
+ 158 => 382, # latin small letter z with caron
64
+ 159 => 376, # latin capital letter y with diaeresis
65
+ }
66
+
67
+ # See http://www.w3.org/TR/REC-xml/#dt-chardata for details.
68
+ PREDEFINED = {
69
+ 38 => '&amp;', # ampersand
70
+ 60 => '&lt;', # left angle bracket
71
+ 62 => '&gt;', # right angle bracket
72
+ }
73
+
74
+ # See http://www.w3.org/TR/REC-xml/#charsets for details.
75
+ VALID = [
76
+ 0x9, 0xA, 0xD,
77
+ (0x20..0xD7FF),
78
+ (0xE000..0xFFFD),
79
+ (0x10000..0x10FFFF)
80
+ ]
81
+
82
+ # http://www.fileformat.info/info/unicode/char/fffd/index.htm
83
+ REPLACEMENT_CHAR =
84
+ if String.method_defined?(:encode)
85
+ "\uFFFD"
86
+ elsif $KCODE == 'UTF8'
87
+ "\xEF\xBF\xBD"
88
+ else
89
+ '*'
90
+ end
91
+ end
92
+
93
+ end
94
+
95
+
96
+ if String.method_defined?(:encode)
97
+ module Builder
98
+ module XChar # :nodoc:
99
+ CP1252_DIFFERENCES, UNICODE_EQUIVALENT = Builder::XChar::CP1252.each.
100
+ inject([[],[]]) {|(domain,range),(key,value)|
101
+ [domain << key,range << value]
102
+ }.map {|seq| seq.pack('U*').force_encoding('utf-8')}
103
+
104
+ XML_PREDEFINED = Regexp.new('[' +
105
+ Builder::XChar::PREDEFINED.keys.pack('U*').force_encoding('utf-8') +
106
+ ']')
107
+
108
+ INVALID_XML_CHAR = Regexp.new('[^'+
109
+ Builder::XChar::VALID.map { |item|
110
+ case item
111
+ when Integer
112
+ [item].pack('U').force_encoding('utf-8')
113
+ when Range
114
+ [item.first, '-'.ord, item.last].pack('UUU').force_encoding('utf-8')
115
+ end
116
+ }.join +
117
+ ']')
118
+
119
+ ENCODING_BINARY = Encoding.find('BINARY')
120
+ ENCODING_UTF8 = Encoding.find('UTF-8')
121
+ ENCODING_ISO1 = Encoding.find('ISO-8859-1')
122
+
123
+ # convert a string to valid UTF-8, compensating for a number of
124
+ # common errors.
125
+ def XChar.unicode(string)
126
+ if string.encoding == ENCODING_BINARY
127
+ if string.ascii_only?
128
+ string
129
+ else
130
+ string = string.clone.force_encoding(ENCODING_UTF8)
131
+ if string.valid_encoding?
132
+ string
133
+ else
134
+ string.encode(ENCODING_UTF8, ENCODING_ISO1)
135
+ end
136
+ end
137
+
138
+ elsif string.encoding == ENCODING_UTF8
139
+ if string.valid_encoding?
140
+ string
141
+ else
142
+ string.encode(ENCODING_UTF8, ENCODING_ISO1)
143
+ end
144
+
145
+ else
146
+ string.encode(ENCODING_UTF8)
147
+ end
148
+ end
149
+
150
+ # encode a string per XML rules
151
+ def XChar.encode(string)
152
+ unicode(string).
153
+ tr(CP1252_DIFFERENCES, UNICODE_EQUIVALENT).
154
+ gsub(INVALID_XML_CHAR, REPLACEMENT_CHAR).
155
+ gsub(XML_PREDEFINED) {|c| PREDEFINED[c.ord]}
156
+ end
157
+ end
158
+ end
159
+
160
+ else
161
+
162
+ ######################################################################
163
+ # Enhance the Integer class with a XML escaped character conversion.
164
+ #
165
+ class Integer
166
+ XChar = Builder::XChar if ! defined?(XChar)
167
+
168
+ # XML escaped version of chr. When <tt>escape</tt> is set to false
169
+ # the CP1252 fix is still applied but utf-8 characters are not
170
+ # converted to character entities.
171
+ def xchr(escape=true)
172
+ n = XChar::CP1252[self] || self
173
+ case n when *XChar::VALID
174
+ XChar::PREDEFINED[n] or
175
+ (n<128 ? n.chr : (escape ? "&##{n};" : [n].pack('U*')))
176
+ else
177
+ Builder::XChar::REPLACEMENT_CHAR
178
+ end
179
+ end
180
+ end
181
+
182
+
183
+ ######################################################################
184
+ # Enhance the String class with a XML escaped character version of
185
+ # to_s.
186
+ #
187
+ class String
188
+ # XML escaped version of to_s. When <tt>escape</tt> is set to false
189
+ # the CP1252 fix is still applied but utf-8 characters are not
190
+ # converted to character entities.
191
+ def to_xs(escape=true)
192
+ unpack('U*').map {|n| n.xchr(escape)}.join # ASCII, UTF-8
193
+ rescue
194
+ unpack('C*').map {|n| n.xchr}.join # ISO-8859-1, WIN-1252
195
+ end
196
+ end
197
+ end