horseman 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (907) hide show
  1. data/Gemfile.lock +12 -12
  2. data/Manifest +894 -0
  3. data/Rakefile +1 -1
  4. data/horseman.gemspec +4 -4
  5. data/lib/horseman/action.rb +20 -0
  6. data/lib/horseman/browser.rb +71 -20
  7. data/lib/horseman/connection.rb +3 -1
  8. data/lib/horseman/response.rb +14 -10
  9. data/lib/horseman/version.rb +1 -1
  10. data/lib/horseman.rb +1 -0
  11. data/spec/horseman/action_spec.rb +29 -0
  12. data/spec/horseman/browser_spec.rb +138 -14
  13. data/spec/horseman/response_spec.rb +25 -2
  14. data/spec/mocks.rb +21 -7
  15. data/vendor/ruby/1.9.1/cache/gemcutter-0.7.1.gem +0 -0
  16. data/vendor/ruby/1.9.1/cache/json-1.6.4.gem +0 -0
  17. data/vendor/ruby/1.9.1/cache/json_pure-1.6.4.gem +0 -0
  18. data/vendor/ruby/1.9.1/cache/rdoc-3.12.gem +0 -0
  19. data/vendor/ruby/1.9.1/cache/rspec-2.8.0.gem +0 -0
  20. data/vendor/ruby/1.9.1/cache/rspec-core-2.8.0.gem +0 -0
  21. data/vendor/ruby/1.9.1/cache/rspec-expectations-2.8.0.gem +0 -0
  22. data/vendor/ruby/1.9.1/cache/rspec-mocks-2.8.0.gem +0 -0
  23. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/Gemfile +7 -0
  24. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/MIT-LICENSE +22 -0
  25. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/README.md +99 -0
  26. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/Rakefile +13 -0
  27. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/lib/gemcutter/version.rb +3 -0
  28. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/lib/rubygems/commands/migrate_command.rb +14 -0
  29. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/lib/rubygems/commands/tumble_command.rb +13 -0
  30. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/lib/rubygems/commands/webhook_command.rb +117 -0
  31. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/lib/rubygems/commands/yank_command.rb +86 -0
  32. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/lib/rubygems_plugin.rb +7 -0
  33. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/test/helper.rb +41 -0
  34. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/test/webhook_command_test.rb +240 -0
  35. data/vendor/ruby/1.9.1/gems/gemcutter-0.7.1/test/yank_command_test.rb +157 -0
  36. data/vendor/ruby/1.9.1/gems/json-1.6.4/CHANGES +227 -0
  37. data/vendor/ruby/1.9.1/gems/json-1.6.4/COPYING +58 -0
  38. data/vendor/ruby/1.9.1/gems/json-1.6.4/COPYING-json-jruby +57 -0
  39. data/vendor/ruby/1.9.1/gems/json-1.6.4/GPL +340 -0
  40. data/vendor/ruby/1.9.1/gems/json-1.6.4/Gemfile +11 -0
  41. data/vendor/ruby/1.9.1/gems/json-1.6.4/README-json-jruby.markdown +33 -0
  42. data/vendor/ruby/1.9.1/gems/json-1.6.4/README.rdoc +358 -0
  43. data/vendor/ruby/1.9.1/gems/json-1.6.4/Rakefile +408 -0
  44. data/vendor/ruby/1.9.1/gems/json-1.6.4/TODO +1 -0
  45. data/vendor/ruby/1.9.1/gems/json-1.6.4/VERSION +1 -0
  46. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
  47. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
  48. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
  49. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
  50. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
  51. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
  52. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
  53. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
  54. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
  55. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
  56. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
  57. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
  58. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
  59. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
  60. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
  61. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
  62. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
  63. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
  64. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
  65. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
  66. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
  67. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
  68. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/generator2_benchmark.rb +222 -0
  69. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/generator_benchmark.rb +224 -0
  70. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/ohai.json +1216 -0
  71. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/ohai.ruby +1 -0
  72. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/parser2_benchmark.rb +251 -0
  73. data/vendor/ruby/1.9.1/gems/json-1.6.4/benchmarks/parser_benchmark.rb +259 -0
  74. data/vendor/ruby/1.9.1/gems/json-1.6.4/data/example.json +1 -0
  75. data/vendor/ruby/1.9.1/gems/json-1.6.4/data/index.html +38 -0
  76. data/vendor/ruby/1.9.1/gems/json-1.6.4/data/prototype.js +4184 -0
  77. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/fbuffer/fbuffer.h +156 -0
  78. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/generator/Makefile +213 -0
  79. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/generator/extconf.rb +13 -0
  80. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/generator/generator.bundle +0 -0
  81. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/generator/generator.c +1384 -0
  82. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/generator/generator.h +161 -0
  83. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/json/ext/generator.bundle +0 -0
  84. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/json/ext/parser.bundle +0 -0
  85. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/parser/Makefile +213 -0
  86. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/parser/extconf.rb +13 -0
  87. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/parser/parser.bundle +0 -0
  88. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/parser/parser.c +2203 -0
  89. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/parser/parser.h +77 -0
  90. data/vendor/ruby/1.9.1/gems/json-1.6.4/ext/json/ext/parser/parser.rl +926 -0
  91. data/vendor/ruby/1.9.1/gems/json-1.6.4/install.rb +19 -0
  92. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/ByteListTranscoder.java +167 -0
  93. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/Generator.java +437 -0
  94. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/GeneratorMethods.java +232 -0
  95. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/GeneratorService.java +43 -0
  96. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/GeneratorState.java +522 -0
  97. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/OptionsReader.java +113 -0
  98. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/Parser.java +2640 -0
  99. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/Parser.rl +964 -0
  100. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/ParserService.java +35 -0
  101. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/RuntimeInfo.java +121 -0
  102. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/StringDecoder.java +166 -0
  103. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/StringEncoder.java +106 -0
  104. data/vendor/ruby/1.9.1/gems/json-1.6.4/java/src/json/ext/Utils.java +89 -0
  105. data/vendor/ruby/1.9.1/gems/json-1.6.4/json-java.gemspec +22 -0
  106. data/vendor/ruby/1.9.1/gems/json-1.6.4/json.gemspec +40 -0
  107. data/vendor/ruby/1.9.1/gems/json-1.6.4/json_pure.gemspec +42 -0
  108. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/bigdecimal.rb +21 -0
  109. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/complex.rb +22 -0
  110. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/core.rb +11 -0
  111. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/date.rb +34 -0
  112. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/date_time.rb +50 -0
  113. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/exception.rb +31 -0
  114. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/ostruct.rb +31 -0
  115. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/range.rb +29 -0
  116. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/rational.rb +22 -0
  117. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/regexp.rb +30 -0
  118. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/struct.rb +30 -0
  119. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/symbol.rb +25 -0
  120. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/add/time.rb +35 -0
  121. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/common.rb +470 -0
  122. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/ext.rb +21 -0
  123. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/pure/generator.rb +468 -0
  124. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/pure/parser.rb +359 -0
  125. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/pure.rb +21 -0
  126. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json/version.rb +8 -0
  127. data/vendor/ruby/1.9.1/gems/json-1.6.4/lib/json.rb +62 -0
  128. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail1.json +1 -0
  129. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail10.json +1 -0
  130. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail11.json +1 -0
  131. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail12.json +1 -0
  132. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail13.json +1 -0
  133. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail14.json +1 -0
  134. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail18.json +1 -0
  135. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail19.json +1 -0
  136. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail2.json +1 -0
  137. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail20.json +1 -0
  138. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail21.json +1 -0
  139. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail22.json +1 -0
  140. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail23.json +1 -0
  141. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail24.json +1 -0
  142. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail25.json +1 -0
  143. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail27.json +2 -0
  144. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail28.json +2 -0
  145. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail3.json +1 -0
  146. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail4.json +1 -0
  147. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail5.json +1 -0
  148. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail6.json +1 -0
  149. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail7.json +1 -0
  150. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail8.json +1 -0
  151. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/fail9.json +1 -0
  152. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass1.json +56 -0
  153. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass15.json +1 -0
  154. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass16.json +1 -0
  155. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass17.json +1 -0
  156. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass2.json +1 -0
  157. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass26.json +1 -0
  158. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/fixtures/pass3.json +6 -0
  159. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/setup_variant.rb +11 -0
  160. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json.rb +527 -0
  161. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json_addition.rb +188 -0
  162. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json_encoding.rb +65 -0
  163. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json_fixtures.rb +35 -0
  164. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json_generate.rb +249 -0
  165. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json_string_matching.rb +40 -0
  166. data/vendor/ruby/1.9.1/gems/json-1.6.4/tests/test_json_unicode.rb +72 -0
  167. data/vendor/ruby/1.9.1/gems/json-1.6.4/tools/fuzz.rb +139 -0
  168. data/vendor/ruby/1.9.1/gems/json-1.6.4/tools/server.rb +62 -0
  169. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/CHANGES +227 -0
  170. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/COPYING +58 -0
  171. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/COPYING-json-jruby +57 -0
  172. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/GPL +340 -0
  173. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/Gemfile +11 -0
  174. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/README-json-jruby.markdown +33 -0
  175. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/README.rdoc +358 -0
  176. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/Rakefile +408 -0
  177. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/TODO +1 -0
  178. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/VERSION +1 -0
  179. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
  180. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
  181. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
  182. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
  183. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
  184. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
  185. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
  186. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
  187. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
  188. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
  189. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
  190. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
  191. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
  192. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
  193. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
  194. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
  195. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
  196. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
  197. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
  198. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
  199. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
  200. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
  201. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/generator2_benchmark.rb +222 -0
  202. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/generator_benchmark.rb +224 -0
  203. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/ohai.json +1216 -0
  204. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/ohai.ruby +1 -0
  205. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/parser2_benchmark.rb +251 -0
  206. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/benchmarks/parser_benchmark.rb +259 -0
  207. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/data/example.json +1 -0
  208. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/data/index.html +38 -0
  209. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/data/prototype.js +4184 -0
  210. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/fbuffer/fbuffer.h +156 -0
  211. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/generator/extconf.rb +13 -0
  212. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/generator/generator.c +1384 -0
  213. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/generator/generator.h +161 -0
  214. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/parser/extconf.rb +13 -0
  215. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/parser/parser.c +2203 -0
  216. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/parser/parser.h +77 -0
  217. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/ext/json/ext/parser/parser.rl +926 -0
  218. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/install.rb +19 -0
  219. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/ByteListTranscoder.java +167 -0
  220. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/Generator.java +437 -0
  221. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/GeneratorMethods.java +232 -0
  222. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/GeneratorService.java +43 -0
  223. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/GeneratorState.java +522 -0
  224. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/OptionsReader.java +113 -0
  225. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/Parser.java +2640 -0
  226. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/Parser.rl +964 -0
  227. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/ParserService.java +35 -0
  228. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/RuntimeInfo.java +121 -0
  229. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/StringDecoder.java +166 -0
  230. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/StringEncoder.java +106 -0
  231. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/java/src/json/ext/Utils.java +89 -0
  232. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/json-java.gemspec +22 -0
  233. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/json.gemspec +40 -0
  234. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/json_pure.gemspec +42 -0
  235. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/bigdecimal.rb +21 -0
  236. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/complex.rb +22 -0
  237. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/core.rb +11 -0
  238. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/date.rb +34 -0
  239. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/date_time.rb +50 -0
  240. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/exception.rb +31 -0
  241. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/ostruct.rb +31 -0
  242. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/range.rb +29 -0
  243. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/rational.rb +22 -0
  244. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/regexp.rb +30 -0
  245. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/struct.rb +30 -0
  246. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/symbol.rb +25 -0
  247. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/add/time.rb +35 -0
  248. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/common.rb +470 -0
  249. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/ext.rb +21 -0
  250. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/pure/generator.rb +468 -0
  251. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/pure/parser.rb +359 -0
  252. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/pure.rb +21 -0
  253. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json/version.rb +8 -0
  254. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/lib/json.rb +62 -0
  255. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail1.json +1 -0
  256. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail10.json +1 -0
  257. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail11.json +1 -0
  258. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail12.json +1 -0
  259. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail13.json +1 -0
  260. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail14.json +1 -0
  261. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail18.json +1 -0
  262. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail19.json +1 -0
  263. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail2.json +1 -0
  264. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail20.json +1 -0
  265. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail21.json +1 -0
  266. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail22.json +1 -0
  267. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail23.json +1 -0
  268. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail24.json +1 -0
  269. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail25.json +1 -0
  270. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail27.json +2 -0
  271. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail28.json +2 -0
  272. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail3.json +1 -0
  273. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail4.json +1 -0
  274. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail5.json +1 -0
  275. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail6.json +1 -0
  276. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail7.json +1 -0
  277. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail8.json +1 -0
  278. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/fail9.json +1 -0
  279. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass1.json +56 -0
  280. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass15.json +1 -0
  281. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass16.json +1 -0
  282. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass17.json +1 -0
  283. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass2.json +1 -0
  284. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass26.json +1 -0
  285. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/fixtures/pass3.json +6 -0
  286. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/setup_variant.rb +11 -0
  287. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json.rb +527 -0
  288. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json_addition.rb +188 -0
  289. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json_encoding.rb +65 -0
  290. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json_fixtures.rb +35 -0
  291. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json_generate.rb +249 -0
  292. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json_string_matching.rb +40 -0
  293. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tests/test_json_unicode.rb +72 -0
  294. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tools/fuzz.rb +139 -0
  295. data/vendor/ruby/1.9.1/gems/json_pure-1.6.4/tools/server.rb +62 -0
  296. data/vendor/ruby/1.9.1/gems/rdoc-3.12/DEVELOPERS.rdoc +141 -0
  297. data/vendor/ruby/1.9.1/gems/rdoc-3.12/History.rdoc +962 -0
  298. data/vendor/ruby/1.9.1/gems/rdoc-3.12/LEGAL.rdoc +27 -0
  299. data/vendor/ruby/1.9.1/gems/rdoc-3.12/LICENSE.rdoc +57 -0
  300. data/vendor/ruby/1.9.1/gems/rdoc-3.12/Manifest.txt +228 -0
  301. data/vendor/ruby/1.9.1/gems/rdoc-3.12/README.rdoc +61 -0
  302. data/vendor/ruby/1.9.1/gems/rdoc-3.12/RI.rdoc +57 -0
  303. data/vendor/ruby/1.9.1/gems/rdoc-3.12/Rakefile +135 -0
  304. data/vendor/ruby/1.9.1/gems/rdoc-3.12/TODO.rdoc +40 -0
  305. data/vendor/ruby/1.9.1/gems/rdoc-3.12/bin/rdoc +40 -0
  306. data/vendor/ruby/1.9.1/gems/rdoc-3.12/bin/ri +12 -0
  307. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/gauntlet_rdoc.rb +84 -0
  308. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/alias.rb +111 -0
  309. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/anon_class.rb +10 -0
  310. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/any_method.rb +208 -0
  311. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/attr.rb +134 -0
  312. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/class_module.rb +619 -0
  313. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/code_object.rb +305 -0
  314. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/code_objects.rb +5 -0
  315. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/comment.rb +225 -0
  316. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/constant.rb +84 -0
  317. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/context/section.rb +123 -0
  318. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/context.rb +1136 -0
  319. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/cross_reference.rb +175 -0
  320. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/encoding.rb +90 -0
  321. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/erbio.rb +37 -0
  322. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/darkfish.rb +532 -0
  323. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/json_index.rb +240 -0
  324. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/markup.rb +171 -0
  325. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/ri.rb +83 -0
  326. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_footer.rhtml +5 -0
  327. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_head.rhtml +16 -0
  328. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +18 -0
  329. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +9 -0
  330. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +8 -0
  331. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +16 -0
  332. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +12 -0
  333. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml +7 -0
  334. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +12 -0
  335. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +10 -0
  336. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +10 -0
  337. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +10 -0
  338. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/class.rhtml +165 -0
  339. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/add.png +0 -0
  340. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
  341. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
  342. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/bug.png +0 -0
  343. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
  344. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
  345. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
  346. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
  347. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/delete.png +0 -0
  348. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
  349. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif +0 -0
  350. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/macFFBgHack.png +0 -0
  351. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
  352. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
  353. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
  354. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
  355. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
  356. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
  357. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/tag_blue.png +0 -0
  358. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
  359. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/transparent.png +0 -0
  360. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
  361. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
  362. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
  363. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/index.rhtml +19 -0
  364. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/js/darkfish.js +153 -0
  365. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/js/jquery.js +18 -0
  366. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/js/search.js +94 -0
  367. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/page.rhtml +16 -0
  368. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/rdoc.css +543 -0
  369. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +55 -0
  370. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/json_index/js/navigation.js +142 -0
  371. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator/template/json_index/js/searcher.js +228 -0
  372. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/generator.rb +45 -0
  373. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ghost_method.rb +6 -0
  374. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/include.rb +110 -0
  375. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/known_classes.rb +72 -0
  376. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/attr_changer.rb +25 -0
  377. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/attr_span.rb +29 -0
  378. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/attribute.rb +51 -0
  379. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/attribute_manager.rb +335 -0
  380. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/blank_line.rb +27 -0
  381. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/document.rb +148 -0
  382. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/formatter.rb +173 -0
  383. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/formatter_test_case.rb +698 -0
  384. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/heading.rb +64 -0
  385. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/include.rb +42 -0
  386. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/indented_paragraph.rb +33 -0
  387. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/inline.rb +1 -0
  388. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/list.rb +82 -0
  389. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/list_item.rb +86 -0
  390. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/paragraph.rb +14 -0
  391. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/parser.rb +504 -0
  392. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/pre_process.rb +293 -0
  393. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/raw.rb +69 -0
  394. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/rule.rb +20 -0
  395. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/special.rb +40 -0
  396. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/text_formatter_test_case.rb +114 -0
  397. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_ansi.rb +87 -0
  398. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_bs.rb +78 -0
  399. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_html.rb +394 -0
  400. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_html_crossref.rb +156 -0
  401. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_html_snippet.rb +268 -0
  402. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_label.rb +55 -0
  403. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_rdoc.rb +302 -0
  404. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_table_of_contents.rb +56 -0
  405. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_test.rb +69 -0
  406. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/to_tt_only.rb +111 -0
  407. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup/verbatim.rb +64 -0
  408. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/markup.rb +813 -0
  409. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/meta_method.rb +6 -0
  410. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/method_attr.rb +384 -0
  411. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/normal_class.rb +69 -0
  412. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/normal_module.rb +64 -0
  413. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/options.rb +1040 -0
  414. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser/c.rb +1024 -0
  415. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser/rd.rb +22 -0
  416. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser/ruby.rb +1816 -0
  417. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser/ruby_tools.rb +162 -0
  418. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser/simple.rb +61 -0
  419. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser/text.rb +11 -0
  420. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/parser.rb +242 -0
  421. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/rd/block_parser.ry +638 -0
  422. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/rd/inline.rb +71 -0
  423. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/rd/inline_parser.ry +593 -0
  424. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/rd.rb +95 -0
  425. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/rdoc.rb +532 -0
  426. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/require.rb +51 -0
  427. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ri/driver.rb +1174 -0
  428. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ri/formatter.rb +5 -0
  429. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ri/paths.rb +128 -0
  430. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ri/store.rb +357 -0
  431. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ri.rb +20 -0
  432. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ruby_lex.rb +1334 -0
  433. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/ruby_token.rb +458 -0
  434. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/rubygems_hook.rb +220 -0
  435. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/single_class.rb +21 -0
  436. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/stats/normal.rb +48 -0
  437. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/stats/quiet.rb +59 -0
  438. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/stats/verbose.rb +45 -0
  439. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/stats.rb +436 -0
  440. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/task.rb +329 -0
  441. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/test_case.rb +76 -0
  442. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/text.rb +314 -0
  443. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/token_stream.rb +95 -0
  444. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/tom_doc.rb +232 -0
  445. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc/top_level.rb +523 -0
  446. data/vendor/ruby/1.9.1/gems/rdoc-3.12/lib/rdoc.rb +221 -0
  447. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/README +1 -0
  448. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/binary.dat +0 -0
  449. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/hidden.zip.txt +1 -0
  450. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test.ja.large.rdoc +3 -0
  451. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test.ja.rdoc +10 -0
  452. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test.ja.txt +8 -0
  453. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test.txt +1 -0
  454. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_attribute_manager.rb +117 -0
  455. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_alias.rb +13 -0
  456. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_any_method.rb +248 -0
  457. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_attr.rb +136 -0
  458. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_class_module.rb +814 -0
  459. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_code_object.rb +297 -0
  460. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_comment.rb +504 -0
  461. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_constant.rb +15 -0
  462. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_context.rb +791 -0
  463. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_context_section.rb +53 -0
  464. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_cross_reference.rb +176 -0
  465. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_encoding.rb +188 -0
  466. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_generator_darkfish.rb +151 -0
  467. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_generator_json_index.rb +255 -0
  468. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_generator_markup.rb +56 -0
  469. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_generator_ri.rb +84 -0
  470. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_include.rb +96 -0
  471. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup.rb +95 -0
  472. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_attribute_manager.rb +237 -0
  473. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_document.rb +180 -0
  474. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_formatter.rb +55 -0
  475. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_heading.rb +20 -0
  476. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_include.rb +19 -0
  477. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_indented_paragraph.rb +39 -0
  478. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_paragraph.rb +18 -0
  479. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_parser.rb +1624 -0
  480. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_pre_process.rb +461 -0
  481. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_raw.rb +29 -0
  482. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_ansi.rb +348 -0
  483. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_bs.rb +342 -0
  484. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_html.rb +515 -0
  485. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_html_crossref.rb +200 -0
  486. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_html_snippet.rb +668 -0
  487. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_label.rb +50 -0
  488. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_rdoc.rb +357 -0
  489. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_table_of_contents.rb +90 -0
  490. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_to_tt_only.rb +226 -0
  491. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_markup_verbatim.rb +16 -0
  492. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_method_attr.rb +150 -0
  493. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_normal_class.rb +23 -0
  494. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_normal_module.rb +37 -0
  495. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_options.rb +579 -0
  496. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_parser.rb +162 -0
  497. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_parser_c.rb +1438 -0
  498. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_parser_rd.rb +52 -0
  499. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_parser_ruby.rb +2490 -0
  500. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_parser_simple.rb +115 -0
  501. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_rd.rb +30 -0
  502. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_rd_block_parser.rb +527 -0
  503. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_rd_inline.rb +63 -0
  504. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_rd_inline_parser.rb +173 -0
  505. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_rdoc.rb +280 -0
  506. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_require.rb +25 -0
  507. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_ri_driver.rb +1059 -0
  508. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_ri_paths.rb +46 -0
  509. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_ri_store.rb +466 -0
  510. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_ruby_lex.rb +137 -0
  511. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_rubygems_hook.rb +202 -0
  512. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_single_class.rb +12 -0
  513. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_stats.rb +588 -0
  514. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_task.rb +120 -0
  515. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_text.rb +542 -0
  516. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_token_stream.rb +42 -0
  517. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_tom_doc.rb +458 -0
  518. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/test_rdoc_top_level.rb +313 -0
  519. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/xref_data.rb +76 -0
  520. data/vendor/ruby/1.9.1/gems/rdoc-3.12/test/xref_test_case.rb +67 -0
  521. data/vendor/ruby/1.9.1/gems/rspec-2.8.0/License.txt +24 -0
  522. data/vendor/ruby/1.9.1/gems/rspec-2.8.0/README.markdown +47 -0
  523. data/vendor/ruby/1.9.1/gems/rspec-2.8.0/lib/rspec/version.rb +5 -0
  524. data/vendor/ruby/1.9.1/gems/rspec-2.8.0/lib/rspec.rb +4 -0
  525. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/License.txt +24 -0
  526. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/README.md +228 -0
  527. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/exe/autospec +13 -0
  528. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/exe/rspec +25 -0
  529. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/Autotest.md +38 -0
  530. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/README.md +17 -0
  531. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/Upgrade.md +364 -0
  532. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/README.md +28 -0
  533. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/example_name_option.feature +86 -0
  534. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/exit_status.feature +83 -0
  535. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/format_option.feature +81 -0
  536. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/init.feature +18 -0
  537. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/line_number_appended_to_path.feature +140 -0
  538. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/line_number_option.feature +58 -0
  539. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/order.feature +29 -0
  540. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/pattern_option.feature +31 -0
  541. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/rake_task.feature +68 -0
  542. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/ruby.feature +22 -0
  543. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/command_line/tag.feature +91 -0
  544. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/configuration/alias_example_to.feature +48 -0
  545. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/configuration/custom_settings.feature +84 -0
  546. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/configuration/default_path.feature +38 -0
  547. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/configuration/fail_fast.feature +77 -0
  548. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/configuration/read_options_from_file.feature +87 -0
  549. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/example_groups/basic_structure.feature +55 -0
  550. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/example_groups/shared_context.feature +74 -0
  551. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/example_groups/shared_examples.feature +204 -0
  552. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/expectation_framework_integration/configure_expectation_framework.feature +73 -0
  553. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/filtering/exclusion_filters.feature +139 -0
  554. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/filtering/if_and_unless.feature +168 -0
  555. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/filtering/inclusion_filters.feature +105 -0
  556. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/filtering/run_all_when_everything_filtered.feature +46 -0
  557. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/formatters/custom_formatter.feature +36 -0
  558. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/formatters/text_formatter.feature +46 -0
  559. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/helper_methods/arbitrary_methods.feature +40 -0
  560. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/helper_methods/let.feature +50 -0
  561. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/helper_methods/modules.feature +149 -0
  562. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/hooks/around_hooks.feature +343 -0
  563. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/hooks/before_and_after_hooks.feature +423 -0
  564. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/hooks/filtering.feature +234 -0
  565. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/metadata/current_example.feature +17 -0
  566. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/metadata/described_class.feature +17 -0
  567. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/metadata/user_defined.feature +113 -0
  568. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/mock_framework_integration/use_any_framework.feature +106 -0
  569. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/mock_framework_integration/use_flexmock.feature +96 -0
  570. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/mock_framework_integration/use_mocha.feature +97 -0
  571. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/mock_framework_integration/use_rr.feature +98 -0
  572. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/mock_framework_integration/use_rspec.feature +97 -0
  573. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/pending/pending_examples.feature +229 -0
  574. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/spec_files/arbitrary_file_suffix.feature +13 -0
  575. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/step_definitions/additional_cli_steps.rb +30 -0
  576. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/subject/attribute_of_subject.feature +122 -0
  577. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/subject/explicit_subject.feature +78 -0
  578. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/subject/implicit_receiver.feature +29 -0
  579. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/subject/implicit_subject.feature +30 -0
  580. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/features/support/env.rb +12 -0
  581. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/autotest/discover.rb +1 -0
  582. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/autotest/rspec2.rb +73 -0
  583. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/autorun.rb +2 -0
  584. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/backward_compatibility.rb +65 -0
  585. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb +36 -0
  586. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb +861 -0
  587. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/configuration_options.rb +121 -0
  588. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/deprecation.rb +51 -0
  589. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/drb_command_line.rb +23 -0
  590. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/drb_options.rb +83 -0
  591. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/dsl.rb +24 -0
  592. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/example.rb +247 -0
  593. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb +443 -0
  594. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/extensions/instance_eval_with_args.rb +44 -0
  595. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/extensions/kernel.rb +9 -0
  596. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/extensions/module_eval_with_args.rb +38 -0
  597. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/extensions/ordered.rb +21 -0
  598. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/extensions.rb +4 -0
  599. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/filter_manager.rb +203 -0
  600. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_formatter.rb +174 -0
  601. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_text_formatter.rb +198 -0
  602. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/documentation_formatter.rb +71 -0
  603. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/helpers.rb +24 -0
  604. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/html_formatter.rb +464 -0
  605. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/progress_formatter.rb +32 -0
  606. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/snippet_extractor.rb +58 -0
  607. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/formatters/text_mate_formatter.rb +34 -0
  608. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb +415 -0
  609. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/let.rb +103 -0
  610. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/load_path.rb +3 -0
  611. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/metadata.rb +273 -0
  612. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/metadata_hash_builder.rb +97 -0
  613. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/mocking/with_absolutely_nothing.rb +11 -0
  614. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/mocking/with_flexmock.rb +27 -0
  615. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/mocking/with_mocha.rb +23 -0
  616. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/mocking/with_rr.rb +27 -0
  617. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/mocking/with_rspec.rb +23 -0
  618. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/option_parser.rb +180 -0
  619. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/pending.rb +101 -0
  620. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/project_initializer.rb +81 -0
  621. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/rake_task.rb +179 -0
  622. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/reporter.rb +102 -0
  623. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/ruby_project.rb +44 -0
  624. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb +86 -0
  625. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/shared_context.rb +49 -0
  626. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/shared_example_group.rb +72 -0
  627. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/subject.rb +175 -0
  628. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/version.rb +7 -0
  629. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core/world.rb +132 -0
  630. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/core.rb +107 -0
  631. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/monkey/spork/test_framework/rspec.rb +10 -0
  632. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/lib/rspec/monkey.rb +1 -0
  633. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/autotest/discover_spec.rb +19 -0
  634. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/autotest/failed_results_re_spec.rb +45 -0
  635. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/autotest/rspec_spec.rb +123 -0
  636. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/command_line/order_spec.rb +137 -0
  637. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/command_line_spec.rb +166 -0
  638. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/command_line_spec_output.txt +0 -0
  639. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/configuration_options_spec.rb +352 -0
  640. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/configuration_spec.rb +1128 -0
  641. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/deprecations_spec.rb +66 -0
  642. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/drb_command_line_spec.rb +107 -0
  643. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/drb_options_spec.rb +179 -0
  644. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/example_group_spec.rb +1074 -0
  645. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/example_spec.rb +302 -0
  646. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/filter_manager_spec.rb +256 -0
  647. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/base_formatter_spec.rb +80 -0
  648. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/base_text_formatter_spec.rb +344 -0
  649. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/documentation_formatter_spec.rb +66 -0
  650. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/helpers_spec.rb +46 -0
  651. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +410 -0
  652. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/html_formatted-1.8.7.html +409 -0
  653. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/html_formatted-1.9.2.html +416 -0
  654. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/html_formatted-1.9.3.html +416 -0
  655. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/html_formatter_spec.rb +82 -0
  656. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/progress_formatter_spec.rb +30 -0
  657. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/snippet_extractor_spec.rb +18 -0
  658. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +410 -0
  659. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +409 -0
  660. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +416 -0
  661. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/text_mate_formatted-1.9.3.html +416 -0
  662. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/formatters/text_mate_formatter_spec.rb +83 -0
  663. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/hooks_filtering_spec.rb +227 -0
  664. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/hooks_spec.rb +143 -0
  665. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/kernel_extensions_spec.rb +9 -0
  666. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/let_spec.rb +55 -0
  667. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/metadata_spec.rb +438 -0
  668. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/option_parser_spec.rb +165 -0
  669. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/pending_example_spec.rb +219 -0
  670. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/project_initializer_spec.rb +130 -0
  671. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/rake_task_spec.rb +138 -0
  672. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/reporter_spec.rb +103 -0
  673. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/resources/a_bar.rb +0 -0
  674. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/resources/a_foo.rb +0 -0
  675. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/resources/a_spec.rb +1 -0
  676. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
  677. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/resources/formatter_specs.rb +60 -0
  678. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/resources/utf8_encoded.rb +8 -0
  679. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/rspec_matchers_spec.rb +45 -0
  680. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/ruby_project_spec.rb +24 -0
  681. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/runner_spec.rb +82 -0
  682. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/shared_context_spec.rb +67 -0
  683. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/shared_example_group_spec.rb +84 -0
  684. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/subject_spec.rb +199 -0
  685. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core/world_spec.rb +134 -0
  686. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/rspec/core_spec.rb +25 -0
  687. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/spec_helper.rb +98 -0
  688. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/support/config_options_helper.rb +27 -0
  689. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/support/matchers.rb +65 -0
  690. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/support/shared_example_groups.rb +41 -0
  691. data/vendor/ruby/1.9.1/gems/rspec-core-2.8.0/spec/support/spec_files.rb +44 -0
  692. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/License.txt +23 -0
  693. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/README.md +158 -0
  694. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/README.markdown +49 -0
  695. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/Upgrade.md +53 -0
  696. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/README.md +90 -0
  697. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/be.feature +135 -0
  698. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/be_within.feature +43 -0
  699. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/cover.feature +45 -0
  700. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/equality.feature +145 -0
  701. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/exist.feature +43 -0
  702. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/expect_change.feature +59 -0
  703. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/expect_error.feature +138 -0
  704. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/have.feature +103 -0
  705. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/include.feature +121 -0
  706. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/match.feature +50 -0
  707. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/operators.feature +221 -0
  708. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/predicates.feature +128 -0
  709. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/respond_to.feature +78 -0
  710. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/satisfy.feature +31 -0
  711. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/throw_symbol.feature +85 -0
  712. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/built_in_matchers/types.feature +114 -0
  713. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/custom_matchers/access_running_example.feature +53 -0
  714. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/custom_matchers/define_diffable_matcher.feature +27 -0
  715. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/custom_matchers/define_matcher.feature +340 -0
  716. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/custom_matchers/define_matcher_outside_rspec.feature +38 -0
  717. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/custom_matchers/define_matcher_with_fluent_interface.feature +24 -0
  718. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/customized_message.feature +22 -0
  719. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/diffing.feature +85 -0
  720. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/implicit_docstrings.feature +52 -0
  721. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/step_definitions/additional_cli_steps.rb +22 -0
  722. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/support/env.rb +5 -0
  723. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/features/test_frameworks/test_unit.feature +46 -0
  724. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/deprecation.rb +38 -0
  725. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/differ.rb +76 -0
  726. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/errors.rb +9 -0
  727. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/extensions/array.rb +9 -0
  728. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/extensions/kernel.rb +26 -0
  729. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/extensions/object.rb +39 -0
  730. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/extensions.rb +3 -0
  731. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/fail_with.rb +54 -0
  732. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/handler.rb +50 -0
  733. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations/version.rb +8 -0
  734. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/expectations.rb +45 -0
  735. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/base_matcher.rb +56 -0
  736. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/be.rb +232 -0
  737. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/be_close.rb +9 -0
  738. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/be_instance_of.rb +24 -0
  739. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/be_kind_of.rb +24 -0
  740. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/be_within.rb +47 -0
  741. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/block_aliases.rb +20 -0
  742. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/change.rb +197 -0
  743. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/compatibility.rb +14 -0
  744. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/cover.rb +36 -0
  745. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/dsl.rb +23 -0
  746. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/eq.rb +36 -0
  747. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/eql.rb +35 -0
  748. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/equal.rb +58 -0
  749. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/errors.rb +5 -0
  750. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/exist.rb +34 -0
  751. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/extensions/instance_eval_with_args.rb +39 -0
  752. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/generated_descriptions.rb +36 -0
  753. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/has.rb +44 -0
  754. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/have.rb +162 -0
  755. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/include.rb +66 -0
  756. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/match.rb +21 -0
  757. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/match_array.rb +65 -0
  758. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/matcher.rb +268 -0
  759. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/method_missing.rb +12 -0
  760. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/operator_matcher.rb +85 -0
  761. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/pretty.rb +60 -0
  762. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/raise_error.rb +116 -0
  763. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/respond_to.rb +80 -0
  764. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/satisfy.rb +46 -0
  765. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers/throw_symbol.rb +112 -0
  766. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec/matchers.rb +206 -0
  767. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/lib/rspec-expectations.rb +1 -0
  768. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/expectations/differ_spec.rb +144 -0
  769. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/expectations/extensions/kernel_spec.rb +45 -0
  770. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/expectations/fail_with_spec.rb +70 -0
  771. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/expectations/handler_spec.rb +206 -0
  772. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/base_matcher_spec.rb +53 -0
  773. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/be_close_spec.rb +22 -0
  774. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/be_instance_of_spec.rb +36 -0
  775. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/be_kind_of_spec.rb +33 -0
  776. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/be_spec.rb +452 -0
  777. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/be_within_spec.rb +64 -0
  778. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/change_spec.rb +522 -0
  779. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/compatibility_spec.rb +28 -0
  780. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/cover_spec.rb +65 -0
  781. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/description_generation_spec.rb +176 -0
  782. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/dsl_spec.rb +8 -0
  783. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/eq_spec.rb +38 -0
  784. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/eql_spec.rb +37 -0
  785. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/equal_spec.rb +57 -0
  786. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/exist_spec.rb +104 -0
  787. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/has_spec.rb +113 -0
  788. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/have_spec.rb +458 -0
  789. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/include_spec.rb +351 -0
  790. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/match_array_spec.rb +108 -0
  791. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/match_spec.rb +57 -0
  792. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/matcher_spec.rb +420 -0
  793. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/matchers_spec.rb +31 -0
  794. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/method_missing_spec.rb +23 -0
  795. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/operator_matcher_spec.rb +221 -0
  796. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/raise_error_spec.rb +339 -0
  797. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/respond_to_spec.rb +292 -0
  798. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/satisfy_spec.rb +40 -0
  799. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/rspec/matchers/throw_symbol_spec.rb +113 -0
  800. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/spec_helper.rb +27 -0
  801. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/support/classes.rb +56 -0
  802. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/support/matchers.rb +22 -0
  803. data/vendor/ruby/1.9.1/gems/rspec-expectations-2.8.0/spec/support/ruby_version.rb +10 -0
  804. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/License.txt +23 -0
  805. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/README.md +257 -0
  806. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/README.markdown +67 -0
  807. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/Scope.md +17 -0
  808. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/Upgrade.md +22 -0
  809. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/argument_matchers/README.md +27 -0
  810. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/argument_matchers/explicit.feature +60 -0
  811. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/argument_matchers/general_matchers.feature +85 -0
  812. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/argument_matchers/type_matchers.feature +25 -0
  813. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/message_expectations/README.md +58 -0
  814. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/message_expectations/any_instance.feature +21 -0
  815. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/message_expectations/block_local_expectations.feature.pending +55 -0
  816. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/message_expectations/expect_message.feature +94 -0
  817. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/message_expectations/receive_counts.feature +209 -0
  818. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/message_expectations/warn_when_expectation_is_set_on_nil.feature +50 -0
  819. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/README.md +43 -0
  820. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/any_instance.feature +133 -0
  821. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/as_null_object.feature +36 -0
  822. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/simple_return_value.feature +64 -0
  823. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/stub_chain.feature +51 -0
  824. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/stub_implementation.feature +26 -0
  825. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/method_stubs/to_ary.feature +47 -0
  826. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/outside_rspec/configuration.feature +82 -0
  827. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/outside_rspec/standalone.feature +32 -0
  828. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/step_definitions/additional_cli_steps.rb +4 -0
  829. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/features/support/env.rb +6 -0
  830. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/any_instance/chain.rb +158 -0
  831. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/any_instance/message_chains.rb +60 -0
  832. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/any_instance/recorder.rb +192 -0
  833. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/any_instance.rb +45 -0
  834. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/argument_expectation.rb +55 -0
  835. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/argument_matchers.rb +230 -0
  836. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/error_generator.rb +107 -0
  837. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/errors.rb +12 -0
  838. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/example_methods.rb +54 -0
  839. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/extensions/instance_exec.rb +34 -0
  840. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/extensions/marshal.rb +23 -0
  841. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/extensions/psych.rb +23 -0
  842. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/framework.rb +18 -0
  843. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/message_expectation.rb +501 -0
  844. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/method_double.rb +190 -0
  845. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/methods.rb +150 -0
  846. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/mock.rb +81 -0
  847. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/order_group.rb +33 -0
  848. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/proxy.rb +179 -0
  849. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/serialization.rb +32 -0
  850. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/space.rb +29 -0
  851. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/standalone.rb +3 -0
  852. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks/version.rb +7 -0
  853. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/rspec/mocks.rb +39 -0
  854. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/lib/spec/mocks.rb +2 -0
  855. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/and_yield_spec.rb +114 -0
  856. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/any_instance/message_chains_spec.rb +40 -0
  857. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/any_instance_spec.rb +785 -0
  858. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/any_number_of_times_spec.rb +30 -0
  859. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/argument_expectation_spec.rb +37 -0
  860. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/at_least_spec.rb +103 -0
  861. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/at_most_spec.rb +99 -0
  862. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/block_return_value_spec.rb +45 -0
  863. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_10260_spec.rb +8 -0
  864. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_10263_spec.rb +25 -0
  865. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_11545_spec.rb +32 -0
  866. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_496_spec.rb +17 -0
  867. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_600_spec.rb +22 -0
  868. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_7611_spec.rb +16 -0
  869. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_8165_spec.rb +31 -0
  870. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_830_spec.rb +21 -0
  871. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/bug_report_957_spec.rb +22 -0
  872. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/double_spec.rb +12 -0
  873. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/failing_argument_matchers_spec.rb +95 -0
  874. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/hash_excluding_matcher_spec.rb +67 -0
  875. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/hash_including_matcher_spec.rb +90 -0
  876. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/mock_ordering_spec.rb +94 -0
  877. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/mock_space_spec.rb +54 -0
  878. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/mock_spec.rb +702 -0
  879. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/multiple_return_value_spec.rb +188 -0
  880. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/nil_expectation_warning_spec.rb +62 -0
  881. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/null_object_mock_spec.rb +78 -0
  882. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/once_counts_spec.rb +53 -0
  883. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/options_hash_spec.rb +35 -0
  884. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/partial_mock_spec.rb +156 -0
  885. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +95 -0
  886. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/passing_argument_matchers_spec.rb +142 -0
  887. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/precise_counts_spec.rb +58 -0
  888. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/record_messages_spec.rb +26 -0
  889. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/serialization_spec.rb +111 -0
  890. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/stash_spec.rb +27 -0
  891. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/stub_chain_spec.rb +149 -0
  892. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/stub_implementation_spec.rb +68 -0
  893. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/stub_spec.rb +238 -0
  894. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/stubbed_message_expectations_spec.rb +26 -0
  895. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/to_ary_spec.rb +40 -0
  896. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks/twice_counts_spec.rb +67 -0
  897. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/rspec/mocks_spec.rb +51 -0
  898. data/vendor/ruby/1.9.1/gems/rspec-mocks-2.8.0/spec/spec_helper.rb +53 -0
  899. data/vendor/ruby/1.9.1/specifications/gemcutter-0.7.1.gemspec +44 -0
  900. data/vendor/ruby/1.9.1/specifications/json-1.6.4.gemspec +39 -0
  901. data/vendor/ruby/1.9.1/specifications/json_pure-1.6.4.gemspec +41 -0
  902. data/vendor/ruby/1.9.1/specifications/rdoc-3.12.gemspec +51 -0
  903. data/vendor/ruby/1.9.1/specifications/rspec-2.8.0.gemspec +39 -0
  904. data/vendor/ruby/1.9.1/specifications/rspec-core-2.8.0.gemspec +32 -0
  905. data/vendor/ruby/1.9.1/specifications/rspec-expectations-2.8.0.gemspec +33 -0
  906. data/vendor/ruby/1.9.1/specifications/rspec-mocks-2.8.0.gemspec +30 -0
  907. metadata +899 -4
@@ -0,0 +1,1816 @@
1
+ ##
2
+ # This file contains stuff stolen outright from:
3
+ #
4
+ # rtags.rb -
5
+ # ruby-lex.rb - ruby lexcal analyzer
6
+ # ruby-token.rb - ruby tokens
7
+ # by Keiju ISHITSUKA (Nippon Rational Inc.)
8
+ #
9
+
10
+ $TOKEN_DEBUG ||= nil
11
+
12
+ ##
13
+ # Extracts code elements from a source file returning a TopLevel object
14
+ # containing the constituent file elements.
15
+ #
16
+ # This file is based on rtags
17
+ #
18
+ # RubyParser understands how to document:
19
+ # * classes
20
+ # * modules
21
+ # * methods
22
+ # * constants
23
+ # * aliases
24
+ # * private, public, protected
25
+ # * private_class_function, public_class_function
26
+ # * module_function
27
+ # * attr, attr_reader, attr_writer, attr_accessor
28
+ # * extra accessors given on the command line
29
+ # * metaprogrammed methods
30
+ # * require
31
+ # * include
32
+ #
33
+ # == Method Arguments
34
+ #
35
+ #--
36
+ # NOTE: I don't think this works, needs tests, remove the paragraph following
37
+ # this block when known to work
38
+ #
39
+ # The parser extracts the arguments from the method definition. You can
40
+ # override this with a custom argument definition using the :args: directive:
41
+ #
42
+ # ##
43
+ # # This method tries over and over until it is tired
44
+ #
45
+ # def go_go_go(thing_to_try, tries = 10) # :args: thing_to_try
46
+ # puts thing_to_try
47
+ # go_go_go thing_to_try, tries - 1
48
+ # end
49
+ #
50
+ # If you have a more-complex set of overrides you can use the :call-seq:
51
+ # directive:
52
+ #++
53
+ #
54
+ # The parser extracts the arguments from the method definition. You can
55
+ # override this with a custom argument definition using the :call-seq:
56
+ # directive:
57
+ #
58
+ # ##
59
+ # # This method can be called with a range or an offset and length
60
+ # #
61
+ # # :call-seq:
62
+ # # my_method(Range)
63
+ # # my_method(offset, length)
64
+ #
65
+ # def my_method(*args)
66
+ # end
67
+ #
68
+ # The parser extracts +yield+ expressions from method bodies to gather the
69
+ # yielded argument names. If your method manually calls a block instead of
70
+ # yielding or you want to override the discovered argument names use
71
+ # the :yields: directive:
72
+ #
73
+ # ##
74
+ # # My method is awesome
75
+ #
76
+ # def my_method(&block) # :yields: happy, times
77
+ # block.call 1, 2
78
+ # end
79
+ #
80
+ # == Metaprogrammed Methods
81
+ #
82
+ # To pick up a metaprogrammed method, the parser looks for a comment starting
83
+ # with '##' before an identifier:
84
+ #
85
+ # ##
86
+ # # This is a meta-programmed method!
87
+ #
88
+ # add_my_method :meta_method, :arg1, :arg2
89
+ #
90
+ # The parser looks at the token after the identifier to determine the name, in
91
+ # this example, :meta_method. If a name cannot be found, a warning is printed
92
+ # and 'unknown is used.
93
+ #
94
+ # You can force the name of a method using the :method: directive:
95
+ #
96
+ # ##
97
+ # # :method: woo_hoo!
98
+ #
99
+ # By default, meta-methods are instance methods. To indicate that a method is
100
+ # a singleton method instead use the :singleton-method: directive:
101
+ #
102
+ # ##
103
+ # # :singleton-method:
104
+ #
105
+ # You can also use the :singleton-method: directive with a name:
106
+ #
107
+ # ##
108
+ # # :singleton-method: woo_hoo!
109
+ #
110
+ # Additionally you can mark a method as an attribute by
111
+ # using :attr:, :attr_reader:, :attr_writer: or :attr_accessor:. Just like
112
+ # for :method:, the name is optional.
113
+ #
114
+ # ##
115
+ # # :attr_reader: my_attr_name
116
+ #
117
+ # == Hidden methods and attributes
118
+ #
119
+ # You can provide documentation for methods that don't appear using
120
+ # the :method:, :singleton-method: and :attr: directives:
121
+ #
122
+ # ##
123
+ # # :attr_writer: ghost_writer
124
+ # # There is an attribute here, but you can't see it!
125
+ #
126
+ # ##
127
+ # # :method: ghost_method
128
+ # # There is a method here, but you can't see it!
129
+ #
130
+ # ##
131
+ # # this is a comment for a regular method
132
+ #
133
+ # def regular_method() end
134
+ #
135
+ # Note that by default, the :method: directive will be ignored if there is a
136
+ # standard rdocable item following it.
137
+
138
+ class RDoc::Parser::Ruby < RDoc::Parser
139
+
140
+ parse_files_matching(/\.rbw?$/)
141
+
142
+ include RDoc::RubyToken
143
+ include RDoc::TokenStream
144
+ include RDoc::Parser::RubyTools
145
+
146
+ ##
147
+ # RDoc::NormalClass type
148
+
149
+ NORMAL = "::"
150
+
151
+ ##
152
+ # RDoc::SingleClass type
153
+
154
+ SINGLE = "<<"
155
+
156
+ ##
157
+ # Creates a new Ruby parser.
158
+
159
+ def initialize(top_level, file_name, content, options, stats)
160
+ super
161
+
162
+ @size = 0
163
+ @token_listeners = nil
164
+ @scanner = RDoc::RubyLex.new content, @options
165
+ @scanner.exception_on_syntax_error = false
166
+ @prev_seek = nil
167
+ @markup = @options.markup
168
+
169
+ @encoding = nil
170
+ @encoding = @options.encoding if Object.const_defined? :Encoding
171
+
172
+ reset
173
+ end
174
+
175
+ ##
176
+ # Look for the first comment in a file that isn't a shebang line.
177
+
178
+ def collect_first_comment
179
+ skip_tkspace
180
+ comment = ''
181
+ comment.force_encoding @encoding if @encoding
182
+ first_line = true
183
+
184
+ tk = get_tk
185
+
186
+ while TkCOMMENT === tk
187
+ if first_line and tk.text =~ /\A#!/ then
188
+ skip_tkspace
189
+ tk = get_tk
190
+ elsif first_line and tk.text =~ /\A#\s*-\*-/ then
191
+ first_line = false
192
+ skip_tkspace
193
+ tk = get_tk
194
+ else
195
+ first_line = false
196
+ comment << tk.text << "\n"
197
+ tk = get_tk
198
+
199
+ if TkNL === tk then
200
+ skip_tkspace false
201
+ tk = get_tk
202
+ end
203
+ end
204
+ end
205
+
206
+ unget_tk tk
207
+
208
+ new_comment comment
209
+ end
210
+
211
+ ##
212
+ # Aborts with +msg+
213
+
214
+ def error(msg)
215
+ msg = make_message msg
216
+
217
+ abort msg
218
+ end
219
+
220
+ ##
221
+ # Looks for a true or false token. Returns false if TkFALSE or TkNIL are
222
+ # found.
223
+
224
+ def get_bool
225
+ skip_tkspace
226
+ tk = get_tk
227
+ case tk
228
+ when TkTRUE
229
+ true
230
+ when TkFALSE, TkNIL
231
+ false
232
+ else
233
+ unget_tk tk
234
+ true
235
+ end
236
+ end
237
+
238
+ ##
239
+ # Look for the name of a class of module (optionally with a leading :: or
240
+ # with :: separated named) and return the ultimate name, the associated
241
+ # container, and the given name (with the ::).
242
+
243
+ def get_class_or_module(container)
244
+ skip_tkspace
245
+ name_t = get_tk
246
+ given_name = ''
247
+
248
+ # class ::A -> A is in the top level
249
+ case name_t
250
+ when TkCOLON2, TkCOLON3 then # bug
251
+ name_t = get_tk
252
+ container = @top_level
253
+ given_name << '::'
254
+ end
255
+
256
+ skip_tkspace false
257
+ given_name << name_t.name
258
+
259
+ while TkCOLON2 === peek_tk do
260
+ prev_container = container
261
+ container = container.find_module_named name_t.name
262
+ unless container then
263
+ container = prev_container.add_module RDoc::NormalModule, name_t.name
264
+ end
265
+ get_tk
266
+ name_t = get_tk
267
+ given_name << '::' << name_t.name
268
+ end
269
+ skip_tkspace false
270
+ return [container, name_t, given_name]
271
+ end
272
+
273
+ ##
274
+ # Return a superclass, which can be either a constant of an expression
275
+
276
+ def get_class_specification
277
+ tk = get_tk
278
+ return "self" if TkSELF === tk
279
+
280
+ res = ""
281
+ while TkCOLON2 === tk or TkCOLON3 === tk or TkCONSTANT === tk do
282
+ res += tk.name
283
+ tk = get_tk
284
+ end
285
+
286
+ unget_tk(tk)
287
+ skip_tkspace false
288
+
289
+ get_tkread # empty out read buffer
290
+
291
+ tk = get_tk
292
+
293
+ case tk
294
+ when TkNL, TkCOMMENT, TkSEMICOLON then
295
+ unget_tk(tk)
296
+ return res
297
+ end
298
+
299
+ res += parse_call_parameters(tk)
300
+ res
301
+ end
302
+
303
+ ##
304
+ # Parse a constant, which might be qualified by one or more class or module
305
+ # names
306
+
307
+ def get_constant
308
+ res = ""
309
+ skip_tkspace false
310
+ tk = get_tk
311
+
312
+ while TkCOLON2 === tk or TkCOLON3 === tk or TkCONSTANT === tk do
313
+ res += tk.name
314
+ tk = get_tk
315
+ end
316
+
317
+ # if res.empty?
318
+ # warn("Unexpected token #{tk} in constant")
319
+ # end
320
+ unget_tk(tk)
321
+ res
322
+ end
323
+
324
+ ##
325
+ # Get a constant that may be surrounded by parens
326
+
327
+ def get_constant_with_optional_parens
328
+ skip_tkspace false
329
+
330
+ nest = 0
331
+
332
+ while TkLPAREN === (tk = peek_tk) or TkfLPAREN === tk do
333
+ get_tk
334
+ skip_tkspace
335
+ nest += 1
336
+ end
337
+
338
+ name = get_constant
339
+
340
+ while nest > 0
341
+ skip_tkspace
342
+ tk = get_tk
343
+ nest -= 1 if TkRPAREN === tk
344
+ end
345
+
346
+ name
347
+ end
348
+
349
+ ##
350
+ # Extracts a name or symbol from the token stream.
351
+
352
+ def get_symbol_or_name
353
+ tk = get_tk
354
+ case tk
355
+ when TkSYMBOL then
356
+ text = tk.text.sub(/^:/, '')
357
+
358
+ if TkASSIGN === peek_tk then
359
+ get_tk
360
+ text << '='
361
+ end
362
+
363
+ text
364
+ when TkId, TkOp then
365
+ tk.name
366
+ when TkAMPER,
367
+ TkDSTRING,
368
+ TkSTAR,
369
+ TkSTRING then
370
+ tk.text
371
+ else
372
+ raise RDoc::Error, "Name or symbol expected (got #{tk})"
373
+ end
374
+ end
375
+
376
+ ##
377
+ # Look for directives in a normal comment block:
378
+ #
379
+ # # :stopdoc:
380
+ # # Don't display comment from this point forward
381
+ #
382
+ # This routine modifies its +comment+ parameter.
383
+
384
+ def look_for_directives_in context, comment
385
+ @preprocess.handle comment, context do |directive, param|
386
+ case directive
387
+ when 'method', 'singleton-method',
388
+ 'attr', 'attr_accessor', 'attr_reader', 'attr_writer' then
389
+ false # handled elsewhere
390
+ when 'section' then
391
+ context.set_current_section param, comment.dup
392
+ comment.text = ''
393
+ break
394
+ end
395
+ end
396
+
397
+ remove_private_comments comment
398
+ end
399
+
400
+ ##
401
+ # Adds useful info about the parser to +message+
402
+
403
+ def make_message message
404
+ prefix = "#{@file_name}:"
405
+
406
+ prefix << "#{@scanner.line_no}:#{@scanner.char_no}:" if @scanner
407
+
408
+ "#{prefix} #{message}"
409
+ end
410
+
411
+ ##
412
+ # Creates a comment with the correct format
413
+
414
+ def new_comment comment
415
+ c = RDoc::Comment.new comment, @top_level
416
+ c.format = @markup
417
+ c
418
+ end
419
+
420
+ ##
421
+ # Creates an RDoc::Attr for the name following +tk+, setting the comment to
422
+ # +comment+.
423
+
424
+ def parse_attr(context, single, tk, comment)
425
+ offset = tk.seek
426
+ line_no = tk.line_no
427
+
428
+ args = parse_symbol_arg 1
429
+ if args.size > 0 then
430
+ name = args[0]
431
+ rw = "R"
432
+ skip_tkspace false
433
+ tk = get_tk
434
+
435
+ if TkCOMMA === tk then
436
+ rw = "RW" if get_bool
437
+ else
438
+ unget_tk tk
439
+ end
440
+
441
+ att = RDoc::Attr.new get_tkread, name, rw, comment, single == SINGLE
442
+ att.record_location @top_level
443
+ att.offset = offset
444
+ att.line = line_no
445
+
446
+ read_documentation_modifiers att, RDoc::ATTR_MODIFIERS
447
+
448
+ context.add_attribute att
449
+
450
+ @stats.add_attribute att
451
+ else
452
+ warn "'attr' ignored - looks like a variable"
453
+ end
454
+ end
455
+
456
+ ##
457
+ # Creates an RDoc::Attr for each attribute listed after +tk+, setting the
458
+ # comment for each to +comment+.
459
+
460
+ def parse_attr_accessor(context, single, tk, comment)
461
+ offset = tk.seek
462
+ line_no = tk.line_no
463
+
464
+ args = parse_symbol_arg
465
+ rw = "?"
466
+
467
+ tmp = RDoc::CodeObject.new
468
+ read_documentation_modifiers tmp, RDoc::ATTR_MODIFIERS
469
+ # TODO In most other places we let the context keep track of document_self
470
+ # and add found items appropriately but here we do not. I'm not sure why.
471
+ return unless tmp.document_self
472
+
473
+ case tk.name
474
+ when "attr_reader" then rw = "R"
475
+ when "attr_writer" then rw = "W"
476
+ when "attr_accessor" then rw = "RW"
477
+ else
478
+ rw = '?'
479
+ end
480
+
481
+ for name in args
482
+ att = RDoc::Attr.new get_tkread, name, rw, comment, single == SINGLE
483
+ att.record_location @top_level
484
+ att.offset = offset
485
+ att.line = line_no
486
+
487
+ context.add_attribute att
488
+ @stats.add_attribute att
489
+ end
490
+ end
491
+
492
+ ##
493
+ # Parses an +alias+ in +context+ with +comment+
494
+
495
+ def parse_alias(context, single, tk, comment)
496
+ offset = tk.seek
497
+ line_no = tk.line_no
498
+
499
+ skip_tkspace
500
+
501
+ if TkLPAREN === peek_tk then
502
+ get_tk
503
+ skip_tkspace
504
+ end
505
+
506
+ new_name = get_symbol_or_name
507
+
508
+ @scanner.instance_eval { @lex_state = EXPR_FNAME }
509
+
510
+ skip_tkspace
511
+ if TkCOMMA === peek_tk then
512
+ get_tk
513
+ skip_tkspace
514
+ end
515
+
516
+ begin
517
+ old_name = get_symbol_or_name
518
+ rescue RDoc::Error
519
+ return
520
+ end
521
+
522
+ al = RDoc::Alias.new(get_tkread, old_name, new_name, comment,
523
+ single == SINGLE)
524
+ al.record_location @top_level
525
+ al.offset = offset
526
+ al.line = line_no
527
+
528
+ read_documentation_modifiers al, RDoc::ATTR_MODIFIERS
529
+ context.add_alias al
530
+ @stats.add_alias al
531
+
532
+ al
533
+ end
534
+
535
+ ##
536
+ # Extracts call parameters from the token stream.
537
+
538
+ def parse_call_parameters(tk)
539
+ end_token = case tk
540
+ when TkLPAREN, TkfLPAREN
541
+ TkRPAREN
542
+ when TkRPAREN
543
+ return ""
544
+ else
545
+ TkNL
546
+ end
547
+ nest = 0
548
+
549
+ loop do
550
+ case tk
551
+ when TkSEMICOLON
552
+ break
553
+ when TkLPAREN, TkfLPAREN
554
+ nest += 1
555
+ when end_token
556
+ if end_token == TkRPAREN
557
+ nest -= 1
558
+ break if @scanner.lex_state == EXPR_END and nest <= 0
559
+ else
560
+ break unless @scanner.continue
561
+ end
562
+ when TkCOMMENT, TkASSIGN, TkOPASGN
563
+ unget_tk(tk)
564
+ break
565
+ when nil then
566
+ break
567
+ end
568
+ tk = get_tk
569
+ end
570
+ res = get_tkread.tr("\n", " ").strip
571
+ res = "" if res == ";"
572
+ res
573
+ end
574
+
575
+ ##
576
+ # Parses a class in +context+ with +comment+
577
+
578
+ def parse_class container, single, tk, comment
579
+ offset = tk.seek
580
+ line_no = tk.line_no
581
+
582
+ declaration_context = container
583
+ container, name_t, given_name = get_class_or_module container
584
+
585
+ case name_t
586
+ when TkCONSTANT
587
+ name = name_t.name
588
+ superclass = '::Object'
589
+
590
+ if TkLT === peek_tk then
591
+ get_tk
592
+ skip_tkspace
593
+ superclass = get_class_specification
594
+ superclass = '(unknown)' if superclass.empty?
595
+ end
596
+
597
+ cls_type = single == SINGLE ? RDoc::SingleClass : RDoc::NormalClass
598
+ cls = declaration_context.add_class cls_type, given_name, superclass
599
+ cls.ignore unless container.document_children
600
+
601
+ read_documentation_modifiers cls, RDoc::CLASS_MODIFIERS
602
+ cls.record_location @top_level
603
+ cls.offset = offset
604
+ cls.line = line_no
605
+
606
+ cls.add_comment comment, @top_level
607
+
608
+ @top_level.add_to_classes_or_modules cls
609
+ @stats.add_class cls
610
+
611
+ parse_statements cls
612
+ when TkLSHFT
613
+ case name = get_class_specification
614
+ when "self", container.name
615
+ parse_statements container, SINGLE
616
+ else
617
+ other = RDoc::TopLevel.find_class_named name
618
+
619
+ unless other then
620
+ other = container.add_module RDoc::NormalModule, name
621
+ other.record_location @top_level
622
+ other.offset = offset
623
+ other.line = line_no
624
+
625
+ other.add_comment comment, @top_level
626
+ end
627
+
628
+ # notify :nodoc: all if not a constant-named class/module
629
+ # (and remove any comment)
630
+ unless name =~ /\A(::)?[A-Z]/ then
631
+ other.document_self = nil
632
+ other.document_children = false
633
+ other.clear_comment
634
+ end
635
+
636
+ @top_level.add_to_classes_or_modules other
637
+ @stats.add_class other
638
+
639
+ read_documentation_modifiers other, RDoc::CLASS_MODIFIERS
640
+ parse_statements(other, SINGLE)
641
+ end
642
+ else
643
+ warn("Expected class name or '<<'. Got #{name_t.class}: #{name_t.text.inspect}")
644
+ end
645
+ end
646
+
647
+ ##
648
+ # Parses a constant in +context+ with +comment+
649
+
650
+ def parse_constant container, tk, comment
651
+ offset = tk.seek
652
+ line_no = tk.line_no
653
+
654
+ name = tk.name
655
+ skip_tkspace false
656
+
657
+ return unless name =~ /^\w+$/
658
+
659
+ eq_tk = get_tk
660
+
661
+ unless TkASSIGN === eq_tk then
662
+ unget_tk eq_tk
663
+ return false
664
+ end
665
+
666
+ value = ''
667
+ con = RDoc::Constant.new name, value, comment
668
+ nest = 0
669
+ get_tkread
670
+
671
+ tk = get_tk
672
+
673
+ if TkGT === tk then
674
+ unget_tk tk
675
+ unget_tk eq_tk
676
+ return false
677
+ end
678
+
679
+ rhs_name = ''
680
+
681
+ loop do
682
+ case tk
683
+ when TkSEMICOLON then
684
+ break if nest <= 0
685
+ when TkLPAREN, TkfLPAREN, TkLBRACE, TkfLBRACE, TkLBRACK, TkfLBRACK,
686
+ TkDO, TkIF, TkUNLESS, TkCASE, TkDEF, TkBEGIN then
687
+ nest += 1
688
+ when TkRPAREN, TkRBRACE, TkRBRACK, TkEND then
689
+ nest -= 1
690
+ when TkCOMMENT then
691
+ if nest <= 0 &&
692
+ (@scanner.lex_state == EXPR_END || !@scanner.continue) then
693
+ unget_tk tk
694
+ break
695
+ else
696
+ unget_tk tk
697
+ read_documentation_modifiers con, RDoc::CONSTANT_MODIFIERS
698
+ end
699
+ when TkCONSTANT then
700
+ rhs_name << tk.name
701
+
702
+ if nest <= 0 and TkNL === peek_tk then
703
+ mod = if rhs_name =~ /^::/ then
704
+ RDoc::TopLevel.find_class_or_module rhs_name
705
+ else
706
+ container.find_module_named rhs_name
707
+ end
708
+
709
+ container.add_module_alias mod, name, @top_level if mod
710
+ break
711
+ end
712
+ when TkNL then
713
+ if nest <= 0 &&
714
+ (@scanner.lex_state == EXPR_END || !@scanner.continue) then
715
+ unget_tk tk
716
+ break
717
+ end
718
+ when TkCOLON2, TkCOLON3 then
719
+ rhs_name << '::'
720
+ when nil then
721
+ break
722
+ end
723
+ tk = get_tk
724
+ end
725
+
726
+ res = get_tkread.gsub(/^[ \t]+/, '').strip
727
+ res = "" if res == ";"
728
+
729
+ value.replace res
730
+ con.record_location @top_level
731
+ con.offset = offset
732
+ con.line = line_no
733
+ read_documentation_modifiers con, RDoc::CONSTANT_MODIFIERS
734
+
735
+ @stats.add_constant con
736
+ con = container.add_constant con
737
+
738
+ true
739
+ end
740
+
741
+ ##
742
+ # Generates an RDoc::Method or RDoc::Attr from +comment+ by looking for
743
+ # :method: or :attr: directives in +comment+.
744
+
745
+ def parse_comment container, tk, comment
746
+ return parse_comment_tomdoc container, tk, comment if @markup == 'tomdoc'
747
+ column = tk.char_no
748
+ offset = tk.seek
749
+ line_no = tk.line_no
750
+
751
+ text = comment.text
752
+
753
+ singleton = !!text.sub!(/(^# +:?)(singleton-)(method:)/, '\1\3')
754
+
755
+ # REFACTOR
756
+ if text.sub!(/^# +:?method: *(\S*).*?\n/i, '') then
757
+ name = $1 unless $1.empty?
758
+
759
+ meth = RDoc::GhostMethod.new get_tkread, name
760
+ meth.record_location @top_level
761
+ meth.singleton = singleton
762
+ meth.offset = offset
763
+ meth.line = line_no
764
+
765
+ meth.start_collecting_tokens
766
+ indent = TkSPACE.new 0, 1, 1
767
+ indent.set_text " " * column
768
+
769
+ position_comment = TkCOMMENT.new 0, line_no, 1
770
+ position_comment.set_text "# File #{@top_level.absolute_name}, line #{line_no}"
771
+ meth.add_tokens [position_comment, NEWLINE_TOKEN, indent]
772
+
773
+ meth.params = ''
774
+
775
+ comment.normalize
776
+ comment.extract_call_seq meth
777
+
778
+ return unless meth.name
779
+
780
+ container.add_method meth
781
+
782
+ meth.comment = comment
783
+
784
+ @stats.add_method meth
785
+ elsif text.sub!(/# +:?(attr(_reader|_writer|_accessor)?): *(\S*).*?\n/i, '') then
786
+ rw = case $1
787
+ when 'attr_reader' then 'R'
788
+ when 'attr_writer' then 'W'
789
+ else 'RW'
790
+ end
791
+
792
+ name = $3 unless $3.empty?
793
+
794
+ # TODO authorize 'singleton-attr...'?
795
+ att = RDoc::Attr.new get_tkread, name, rw, comment
796
+ att.record_location @top_level
797
+ att.offset = offset
798
+ att.line = line_no
799
+
800
+ container.add_attribute att
801
+ @stats.add_attribute att
802
+ end
803
+
804
+ true
805
+ end
806
+
807
+ ##
808
+ # Creates an RDoc::Method on +container+ from +comment+ if there is a
809
+ # Signature section in the comment
810
+
811
+ def parse_comment_tomdoc container, tk, comment
812
+ return unless signature = RDoc::TomDoc.signature(comment)
813
+ offset = tk.seek
814
+ line_no = tk.line_no
815
+
816
+ name, = signature.split %r%[ \(]%, 2
817
+
818
+ meth = RDoc::GhostMethod.new get_tkread, name
819
+ meth.record_location @top_level
820
+ meth.offset = offset
821
+ meth.line = line_no
822
+
823
+ meth.start_collecting_tokens
824
+ indent = TkSPACE.new 0, 1, 1
825
+ indent.set_text " " * offset
826
+
827
+ position_comment = TkCOMMENT.new 0, line_no, 1
828
+ position_comment.set_text "# File #{@top_level.absolute_name}, line #{line_no}"
829
+ meth.add_tokens [position_comment, NEWLINE_TOKEN, indent]
830
+
831
+ meth.call_seq = signature
832
+
833
+ comment.normalize
834
+
835
+ return unless meth.name
836
+
837
+ container.add_method meth
838
+
839
+ meth.comment = comment
840
+
841
+ @stats.add_method meth
842
+ end
843
+
844
+ ##
845
+ # Parses an +include+ in +context+ with +comment+
846
+
847
+ def parse_include context, comment
848
+ loop do
849
+ skip_tkspace_comment
850
+
851
+ name = get_constant_with_optional_parens
852
+
853
+ unless name.empty? then
854
+ incl = context.add_include RDoc::Include.new(name, comment)
855
+ incl.record_location @top_level
856
+ end
857
+
858
+ return unless TkCOMMA === peek_tk
859
+
860
+ get_tk
861
+ end
862
+ end
863
+
864
+ ##
865
+ # Parses a meta-programmed attribute and creates an RDoc::Attr.
866
+ #
867
+ # To create foo and bar attributes on class C with comment "My attributes":
868
+ #
869
+ # class C
870
+ #
871
+ # ##
872
+ # # :attr:
873
+ # #
874
+ # # My attributes
875
+ #
876
+ # my_attr :foo, :bar
877
+ #
878
+ # end
879
+ #
880
+ # To create a foo attribute on class C with comment "My attribute":
881
+ #
882
+ # class C
883
+ #
884
+ # ##
885
+ # # :attr: foo
886
+ # #
887
+ # # My attribute
888
+ #
889
+ # my_attr :foo, :bar
890
+ #
891
+ # end
892
+
893
+ def parse_meta_attr(context, single, tk, comment)
894
+ args = parse_symbol_arg
895
+ rw = "?"
896
+
897
+ # If nodoc is given, don't document any of them
898
+
899
+ tmp = RDoc::CodeObject.new
900
+ read_documentation_modifiers tmp, RDoc::ATTR_MODIFIERS
901
+
902
+ if comment.text.sub!(/^# +:?(attr(_reader|_writer|_accessor)?): *(\S*).*?\n/i, '') then
903
+ rw = case $1
904
+ when 'attr_reader' then 'R'
905
+ when 'attr_writer' then 'W'
906
+ else 'RW'
907
+ end
908
+ name = $3 unless $3.empty?
909
+ end
910
+
911
+ if name then
912
+ att = RDoc::Attr.new get_tkread, name, rw, comment, single == SINGLE
913
+ att.record_location @top_level
914
+
915
+ context.add_attribute att
916
+ @stats.add_attribute att
917
+ else
918
+ args.each do |attr_name|
919
+ att = RDoc::Attr.new(get_tkread, attr_name, rw, comment,
920
+ single == SINGLE)
921
+ att.record_location @top_level
922
+
923
+ context.add_attribute att
924
+ @stats.add_attribute att
925
+ end
926
+ end
927
+ end
928
+
929
+ ##
930
+ # Parses a meta-programmed method
931
+
932
+ def parse_meta_method(container, single, tk, comment)
933
+ column = tk.char_no
934
+ offset = tk.seek
935
+ line_no = tk.line_no
936
+
937
+ start_collecting_tokens
938
+ add_token tk
939
+ add_token_listener self
940
+
941
+ skip_tkspace false
942
+
943
+ singleton = !!comment.text.sub!(/(^# +:?)(singleton-)(method:)/, '\1\3')
944
+
945
+ if comment.text.sub!(/^# +:?method: *(\S*).*?\n/i, '') then
946
+ name = $1 unless $1.empty?
947
+ end
948
+
949
+ if name.nil? then
950
+ name_t = get_tk
951
+ case name_t
952
+ when TkSYMBOL then
953
+ name = name_t.text[1..-1]
954
+ when TkSTRING then
955
+ name = name_t.value[1..-2]
956
+ when TkASSIGN then # ignore
957
+ remove_token_listener self
958
+ return
959
+ else
960
+ warn "unknown name token #{name_t.inspect} for meta-method '#{tk.name}'"
961
+ name = 'unknown'
962
+ end
963
+ end
964
+
965
+ meth = RDoc::MetaMethod.new get_tkread, name
966
+ meth.record_location @top_level
967
+ meth.offset = offset
968
+ meth.line = line_no
969
+ meth.singleton = singleton
970
+
971
+ remove_token_listener self
972
+
973
+ meth.start_collecting_tokens
974
+ indent = TkSPACE.new 0, 1, 1
975
+ indent.set_text " " * column
976
+
977
+ position_comment = TkCOMMENT.new 0, line_no, 1
978
+ position_comment.value = "# File #{@top_level.absolute_name}, line #{line_no}"
979
+ meth.add_tokens [position_comment, NEWLINE_TOKEN, indent]
980
+ meth.add_tokens @token_stream
981
+
982
+ token_listener meth do
983
+ meth.params = ''
984
+
985
+ comment.normalize
986
+ comment.extract_call_seq meth
987
+
988
+ container.add_method meth
989
+
990
+ last_tk = tk
991
+
992
+ while tk = get_tk do
993
+ case tk
994
+ when TkSEMICOLON then
995
+ break
996
+ when TkNL then
997
+ break unless last_tk and TkCOMMA === last_tk
998
+ when TkSPACE then
999
+ # expression continues
1000
+ when TkDO then
1001
+ unget_tk tk
1002
+ parse_statements container, single, meth
1003
+ break
1004
+ else
1005
+ last_tk = tk
1006
+ end
1007
+ end
1008
+ end
1009
+
1010
+ meth.comment = comment
1011
+
1012
+ @stats.add_method meth
1013
+ end
1014
+
1015
+ ##
1016
+ # Parses a normal method defined by +def+
1017
+
1018
+ def parse_method(container, single, tk, comment)
1019
+ added_container = nil
1020
+ meth = nil
1021
+ name = nil
1022
+ column = tk.char_no
1023
+ offset = tk.seek
1024
+ line_no = tk.line_no
1025
+
1026
+ start_collecting_tokens
1027
+ add_token tk
1028
+
1029
+ token_listener self do
1030
+ @scanner.instance_eval do @lex_state = EXPR_FNAME end
1031
+
1032
+ skip_tkspace
1033
+ name_t = get_tk
1034
+ back_tk = skip_tkspace
1035
+ meth = nil
1036
+ added_container = false
1037
+
1038
+ dot = get_tk
1039
+ if TkDOT === dot or TkCOLON2 === dot then
1040
+ @scanner.instance_eval do @lex_state = EXPR_FNAME end
1041
+ skip_tkspace
1042
+ name_t2 = get_tk
1043
+
1044
+ case name_t
1045
+ when TkSELF, TkMOD then
1046
+ name = name_t2.name
1047
+ when TkCONSTANT then
1048
+ name = name_t2.name
1049
+ prev_container = container
1050
+ container = container.find_module_named(name_t.name)
1051
+ unless container then
1052
+ added_container = true
1053
+ obj = name_t.name.split("::").inject(Object) do |state, item|
1054
+ state.const_get(item)
1055
+ end rescue nil
1056
+
1057
+ type = obj.class == Class ? RDoc::NormalClass : RDoc::NormalModule
1058
+
1059
+ unless [Class, Module].include?(obj.class) then
1060
+ warn("Couldn't find #{name_t.name}. Assuming it's a module")
1061
+ end
1062
+
1063
+ if type == RDoc::NormalClass then
1064
+ sclass = obj.superclass ? obj.superclass.name : nil
1065
+ container = prev_container.add_class type, name_t.name, sclass
1066
+ else
1067
+ container = prev_container.add_module type, name_t.name
1068
+ end
1069
+
1070
+ container.record_location @top_level
1071
+ end
1072
+ when TkIDENTIFIER, TkIVAR, TkGVAR then
1073
+ dummy = RDoc::Context.new
1074
+ dummy.parent = container
1075
+ skip_method dummy
1076
+ return
1077
+ when TkTRUE, TkFALSE, TkNIL then
1078
+ klass_name = "#{name_t.name.capitalize}Class"
1079
+ container = RDoc::TopLevel.find_class_named klass_name
1080
+ container ||= @top_level.add_class RDoc::NormalClass, klass_name
1081
+
1082
+ name = name_t2.name
1083
+ else
1084
+ warn "unexpected method name token #{name_t.inspect}"
1085
+ # break
1086
+ skip_method container
1087
+ return
1088
+ end
1089
+
1090
+ meth = RDoc::AnyMethod.new(get_tkread, name)
1091
+ meth.singleton = true
1092
+ else
1093
+ unget_tk dot
1094
+ back_tk.reverse_each do |token|
1095
+ unget_tk token
1096
+ end
1097
+
1098
+ name = case name_t
1099
+ when TkSTAR, TkAMPER then
1100
+ name_t.text
1101
+ else
1102
+ unless name_t.respond_to? :name then
1103
+ warn "expected method name token, . or ::, got #{name_t.inspect}"
1104
+ skip_method container
1105
+ return
1106
+ end
1107
+ name_t.name
1108
+ end
1109
+
1110
+ meth = RDoc::AnyMethod.new get_tkread, name
1111
+ meth.singleton = (single == SINGLE)
1112
+ end
1113
+ end
1114
+
1115
+ meth.record_location @top_level
1116
+ meth.offset = offset
1117
+ meth.line = line_no
1118
+
1119
+ meth.start_collecting_tokens
1120
+ indent = TkSPACE.new 0, 1, 1
1121
+ indent.set_text " " * column
1122
+
1123
+ token = TkCOMMENT.new 0, line_no, 1
1124
+ token.set_text "# File #{@top_level.absolute_name}, line #{line_no}"
1125
+ meth.add_tokens [token, NEWLINE_TOKEN, indent]
1126
+ meth.add_tokens @token_stream
1127
+
1128
+ token_listener meth do
1129
+ @scanner.instance_eval do @continue = false end
1130
+ parse_method_parameters meth
1131
+
1132
+ if meth.document_self then
1133
+ container.add_method meth
1134
+ elsif added_container then
1135
+ container.document_self = false
1136
+ end
1137
+
1138
+ # Having now read the method parameters and documentation modifiers, we
1139
+ # now know whether we have to rename #initialize to ::new
1140
+
1141
+ if name == "initialize" && !meth.singleton then
1142
+ if meth.dont_rename_initialize then
1143
+ meth.visibility = :protected
1144
+ else
1145
+ meth.singleton = true
1146
+ meth.name = "new"
1147
+ meth.visibility = :public
1148
+ end
1149
+ end
1150
+
1151
+ parse_statements container, single, meth
1152
+ end
1153
+
1154
+ comment.normalize
1155
+ comment.extract_call_seq meth
1156
+
1157
+ meth.comment = comment
1158
+
1159
+ @stats.add_method meth
1160
+ end
1161
+
1162
+ ##
1163
+ # Extracts +yield+ parameters from +method+
1164
+
1165
+ def parse_method_or_yield_parameters(method = nil,
1166
+ modifiers = RDoc::METHOD_MODIFIERS)
1167
+ skip_tkspace false
1168
+ tk = get_tk
1169
+
1170
+ # Little hack going on here. In the statement
1171
+ # f = 2*(1+yield)
1172
+ # We see the RPAREN as the next token, so we need
1173
+ # to exit early. This still won't catch all cases
1174
+ # (such as "a = yield + 1"
1175
+ end_token = case tk
1176
+ when TkLPAREN, TkfLPAREN
1177
+ TkRPAREN
1178
+ when TkRPAREN
1179
+ return ""
1180
+ else
1181
+ TkNL
1182
+ end
1183
+ nest = 0
1184
+
1185
+ loop do
1186
+ case tk
1187
+ when TkSEMICOLON then
1188
+ break if nest == 0
1189
+ when TkLBRACE, TkfLBRACE then
1190
+ nest += 1
1191
+ when TkRBRACE then
1192
+ nest -= 1
1193
+ if nest <= 0
1194
+ # we might have a.each { |i| yield i }
1195
+ unget_tk(tk) if nest < 0
1196
+ break
1197
+ end
1198
+ when TkLPAREN, TkfLPAREN then
1199
+ nest += 1
1200
+ when end_token then
1201
+ if end_token == TkRPAREN
1202
+ nest -= 1
1203
+ break if @scanner.lex_state == EXPR_END and nest <= 0
1204
+ else
1205
+ break unless @scanner.continue
1206
+ end
1207
+ when TkRPAREN then
1208
+ nest -= 1
1209
+ when method && method.block_params.nil? && TkCOMMENT then
1210
+ unget_tk tk
1211
+ read_documentation_modifiers method, modifiers
1212
+ @read.pop
1213
+ when TkCOMMENT then
1214
+ @read.pop
1215
+ when nil then
1216
+ break
1217
+ end
1218
+ tk = get_tk
1219
+ end
1220
+
1221
+ res = get_tkread.gsub(/\s+/, ' ').strip
1222
+ res = '' if res == ';'
1223
+ res
1224
+ end
1225
+
1226
+ ##
1227
+ # Capture the method's parameters. Along the way, look for a comment
1228
+ # containing:
1229
+ #
1230
+ # # yields: ....
1231
+ #
1232
+ # and add this as the block_params for the method
1233
+
1234
+ def parse_method_parameters(method)
1235
+ res = parse_method_or_yield_parameters method
1236
+
1237
+ res = "(#{res})" unless res =~ /\A\(/
1238
+ method.params = res unless method.params
1239
+
1240
+ if method.block_params.nil? then
1241
+ skip_tkspace false
1242
+ read_documentation_modifiers method, RDoc::METHOD_MODIFIERS
1243
+ end
1244
+ end
1245
+
1246
+ ##
1247
+ # Parses an RDoc::NormalModule in +container+ with +comment+
1248
+
1249
+ def parse_module container, single, tk, comment
1250
+ container, name_t, = get_class_or_module container
1251
+
1252
+ name = name_t.name
1253
+
1254
+ mod = container.add_module RDoc::NormalModule, name
1255
+ mod.ignore unless container.document_children
1256
+ mod.record_location @top_level
1257
+
1258
+ read_documentation_modifiers mod, RDoc::CLASS_MODIFIERS
1259
+ mod.add_comment comment, @top_level
1260
+ parse_statements mod
1261
+
1262
+ @top_level.add_to_classes_or_modules mod
1263
+ @stats.add_module mod
1264
+ end
1265
+
1266
+ ##
1267
+ # Parses an RDoc::Require in +context+ containing +comment+
1268
+
1269
+ def parse_require(context, comment)
1270
+ skip_tkspace_comment
1271
+ tk = get_tk
1272
+
1273
+ if TkLPAREN === tk then
1274
+ skip_tkspace_comment
1275
+ tk = get_tk
1276
+ end
1277
+
1278
+ name = tk.text if TkSTRING === tk
1279
+
1280
+ if name then
1281
+ @top_level.add_require RDoc::Require.new(name, comment)
1282
+ else
1283
+ unget_tk tk
1284
+ end
1285
+ end
1286
+
1287
+ ##
1288
+ # The core of the ruby parser.
1289
+
1290
+ def parse_statements(container, single = NORMAL, current_method = nil,
1291
+ comment = new_comment(''))
1292
+ raise 'no' unless RDoc::Comment === comment
1293
+ comment.force_encoding @encoding if @encoding
1294
+
1295
+ nest = 1
1296
+ save_visibility = container.visibility
1297
+
1298
+ non_comment_seen = true
1299
+
1300
+ while tk = get_tk do
1301
+ keep_comment = false
1302
+ try_parse_comment = false
1303
+
1304
+ non_comment_seen = true unless TkCOMMENT === tk
1305
+
1306
+ case tk
1307
+ when TkNL then
1308
+ skip_tkspace
1309
+ tk = get_tk
1310
+
1311
+ if TkCOMMENT === tk then
1312
+ if non_comment_seen then
1313
+ # Look for RDoc in a comment about to be thrown away
1314
+ non_comment_seen = parse_comment container, tk, comment unless
1315
+ comment.empty?
1316
+
1317
+ comment = ''
1318
+ comment.force_encoding @encoding if @encoding
1319
+ end
1320
+
1321
+ while TkCOMMENT === tk do
1322
+ comment << tk.text << "\n"
1323
+
1324
+ tk = get_tk
1325
+
1326
+ if TkNL === tk then
1327
+ skip_tkspace false # leading spaces
1328
+ tk = get_tk
1329
+ end
1330
+ end
1331
+
1332
+ comment = new_comment comment
1333
+
1334
+ unless comment.empty? then
1335
+ look_for_directives_in container, comment
1336
+
1337
+ if container.done_documenting then
1338
+ container.ongoing_visibility = save_visibility
1339
+ end
1340
+ end
1341
+
1342
+ keep_comment = true
1343
+ else
1344
+ non_comment_seen = true
1345
+ end
1346
+
1347
+ unget_tk tk # TODO peek instead of get then unget
1348
+ keep_comment = true
1349
+
1350
+ when TkCLASS then
1351
+ parse_class container, single, tk, comment
1352
+
1353
+ when TkMODULE then
1354
+ parse_module container, single, tk, comment
1355
+
1356
+ when TkDEF then
1357
+ parse_method container, single, tk, comment
1358
+
1359
+ when TkCONSTANT then
1360
+ unless parse_constant container, tk, comment then
1361
+ try_parse_comment = true
1362
+ end
1363
+
1364
+ when TkALIAS then
1365
+ parse_alias container, single, tk, comment unless current_method
1366
+
1367
+ when TkYIELD then
1368
+ if current_method.nil? then
1369
+ warn "Warning: yield outside of method" if container.document_self
1370
+ else
1371
+ parse_yield container, single, tk, current_method
1372
+ end
1373
+
1374
+ # Until and While can have a 'do', which shouldn't increase the nesting.
1375
+ # We can't solve the general case, but we can handle most occurrences by
1376
+ # ignoring a do at the end of a line.
1377
+
1378
+ when TkUNTIL, TkWHILE then
1379
+ nest += 1
1380
+ skip_optional_do_after_expression
1381
+
1382
+ # 'for' is trickier
1383
+ when TkFOR then
1384
+ nest += 1
1385
+ skip_for_variable
1386
+ skip_optional_do_after_expression
1387
+
1388
+ when TkCASE, TkDO, TkIF, TkUNLESS, TkBEGIN then
1389
+ nest += 1
1390
+
1391
+ when TkIDENTIFIER then
1392
+ if nest == 1 and current_method.nil? then
1393
+ case tk.name
1394
+ when 'private', 'protected', 'public', 'private_class_method',
1395
+ 'public_class_method', 'module_function' then
1396
+ parse_visibility container, single, tk
1397
+ keep_comment = true
1398
+ when 'attr' then
1399
+ parse_attr container, single, tk, comment
1400
+ when /^attr_(reader|writer|accessor)$/ then
1401
+ parse_attr_accessor container, single, tk, comment
1402
+ when 'alias_method' then
1403
+ parse_alias container, single, tk, comment
1404
+ when 'require', 'include' then
1405
+ # ignore
1406
+ else
1407
+ if comment.text =~ /\A#\#$/ then
1408
+ case comment.text
1409
+ when /^# +:?attr(_reader|_writer|_accessor)?:/ then
1410
+ parse_meta_attr container, single, tk, comment
1411
+ else
1412
+ parse_meta_method container, single, tk, comment
1413
+ end
1414
+ end
1415
+ end
1416
+ end
1417
+
1418
+ case tk.name
1419
+ when "require" then
1420
+ parse_require container, comment
1421
+ when "include" then
1422
+ parse_include container, comment
1423
+ end
1424
+
1425
+ when TkEND then
1426
+ nest -= 1
1427
+ if nest == 0 then
1428
+ read_documentation_modifiers container, RDoc::CLASS_MODIFIERS
1429
+ container.ongoing_visibility = save_visibility
1430
+
1431
+ parse_comment container, tk, comment unless comment.empty?
1432
+
1433
+ return
1434
+ end
1435
+ else
1436
+ try_parse_comment = nest == 1
1437
+ end
1438
+
1439
+ if try_parse_comment then
1440
+ non_comment_seen = parse_comment container, tk, comment unless
1441
+ comment.empty?
1442
+
1443
+ keep_comment = false
1444
+ end
1445
+
1446
+ unless keep_comment then
1447
+ comment = new_comment ''
1448
+ comment.force_encoding @encoding if @encoding
1449
+ end
1450
+
1451
+ begin
1452
+ get_tkread
1453
+ skip_tkspace false
1454
+ end while peek_tk == TkNL
1455
+ end
1456
+ end
1457
+
1458
+ ##
1459
+ # Parse up to +no+ symbol arguments
1460
+
1461
+ def parse_symbol_arg(no = nil)
1462
+ args = []
1463
+
1464
+ skip_tkspace_comment
1465
+
1466
+ case tk = get_tk
1467
+ when TkLPAREN
1468
+ loop do
1469
+ skip_tkspace_comment
1470
+ if tk1 = parse_symbol_in_arg
1471
+ args.push tk1
1472
+ break if no and args.size >= no
1473
+ end
1474
+
1475
+ skip_tkspace_comment
1476
+ case tk2 = get_tk
1477
+ when TkRPAREN
1478
+ break
1479
+ when TkCOMMA
1480
+ else
1481
+ warn("unexpected token: '#{tk2.inspect}'") if $DEBUG_RDOC
1482
+ break
1483
+ end
1484
+ end
1485
+ else
1486
+ unget_tk tk
1487
+ if tk = parse_symbol_in_arg
1488
+ args.push tk
1489
+ return args if no and args.size >= no
1490
+ end
1491
+
1492
+ loop do
1493
+ skip_tkspace false
1494
+
1495
+ tk1 = get_tk
1496
+ unless TkCOMMA === tk1 then
1497
+ unget_tk tk1
1498
+ break
1499
+ end
1500
+
1501
+ skip_tkspace_comment
1502
+ if tk = parse_symbol_in_arg
1503
+ args.push tk
1504
+ break if no and args.size >= no
1505
+ end
1506
+ end
1507
+ end
1508
+
1509
+ args
1510
+ end
1511
+
1512
+ ##
1513
+ # Returns symbol text from the next token
1514
+
1515
+ def parse_symbol_in_arg
1516
+ case tk = get_tk
1517
+ when TkSYMBOL
1518
+ tk.text.sub(/^:/, '')
1519
+ when TkSTRING
1520
+ eval @read[-1]
1521
+ when TkDSTRING, TkIDENTIFIER then
1522
+ nil # ignore
1523
+ else
1524
+ warn("Expected symbol or string, got #{tk.inspect}") if $DEBUG_RDOC
1525
+ nil
1526
+ end
1527
+ end
1528
+
1529
+ ##
1530
+ # Parses statements in the top-level +container+
1531
+
1532
+ def parse_top_level_statements container
1533
+ comment = collect_first_comment
1534
+
1535
+ look_for_directives_in container, comment
1536
+
1537
+ @markup = comment.format
1538
+
1539
+ # HACK move if to RDoc::Context#comment=
1540
+ container.comment = comment if container.document_self unless comment.empty?
1541
+
1542
+ parse_statements container, NORMAL, nil, comment
1543
+ end
1544
+
1545
+ ##
1546
+ # Determines the visibility in +container+ from +tk+
1547
+
1548
+ def parse_visibility(container, single, tk)
1549
+ singleton = (single == SINGLE)
1550
+
1551
+ vis_type = tk.name
1552
+
1553
+ vis = case vis_type
1554
+ when 'private' then :private
1555
+ when 'protected' then :protected
1556
+ when 'public' then :public
1557
+ when 'private_class_method' then
1558
+ singleton = true
1559
+ :private
1560
+ when 'public_class_method' then
1561
+ singleton = true
1562
+ :public
1563
+ when 'module_function' then
1564
+ singleton = true
1565
+ :public
1566
+ else
1567
+ raise RDoc::Error, "Invalid visibility: #{tk.name}"
1568
+ end
1569
+
1570
+ skip_tkspace_comment false
1571
+
1572
+ case peek_tk
1573
+ # Ryan Davis suggested the extension to ignore modifiers, because he
1574
+ # often writes
1575
+ #
1576
+ # protected unless $TESTING
1577
+ #
1578
+ when TkNL, TkUNLESS_MOD, TkIF_MOD, TkSEMICOLON then
1579
+ container.ongoing_visibility = vis
1580
+ else
1581
+ new_methods = []
1582
+
1583
+ case vis_type
1584
+ when 'module_function' then
1585
+ args = parse_symbol_arg
1586
+ container.set_visibility_for args, :private, false
1587
+
1588
+ container.methods_matching args do |m|
1589
+ s_m = m.dup
1590
+ s_m.record_location @top_level
1591
+ s_m.singleton = true
1592
+ new_methods << s_m
1593
+ end
1594
+ when 'public_class_method', 'private_class_method' then
1595
+ args = parse_symbol_arg
1596
+
1597
+ container.methods_matching args, true do |m|
1598
+ if m.parent != container then
1599
+ m = m.dup
1600
+ m.record_location @top_level
1601
+ new_methods << m
1602
+ end
1603
+
1604
+ m.visibility = vis
1605
+ end
1606
+ else
1607
+ args = parse_symbol_arg
1608
+ container.set_visibility_for args, vis, singleton
1609
+ end
1610
+
1611
+ new_methods.each do |method|
1612
+ case method
1613
+ when RDoc::AnyMethod then
1614
+ container.add_method method
1615
+ when RDoc::Attr then
1616
+ container.add_attribute method
1617
+ end
1618
+ method.visibility = vis
1619
+ end
1620
+ end
1621
+ end
1622
+
1623
+ ##
1624
+ # Determines the block parameter for +context+
1625
+
1626
+ def parse_yield(context, single, tk, method)
1627
+ return if method.block_params
1628
+
1629
+ get_tkread
1630
+ @scanner.instance_eval { @continue = false }
1631
+ method.block_params = parse_method_or_yield_parameters
1632
+ end
1633
+
1634
+ ##
1635
+ # Directives are modifier comments that can appear after class, module, or
1636
+ # method names. For example:
1637
+ #
1638
+ # def fred # :yields: a, b
1639
+ #
1640
+ # or:
1641
+ #
1642
+ # class MyClass # :nodoc:
1643
+ #
1644
+ # We return the directive name and any parameters as a two element array
1645
+
1646
+ def read_directive allowed
1647
+ tk = get_tk
1648
+
1649
+ if TkCOMMENT === tk then
1650
+ return unless tk.text =~ /\s*:?(\w+):\s*(.*)/
1651
+
1652
+ directive = $1.downcase
1653
+
1654
+ return [directive, $2] if allowed.include? directive
1655
+ else
1656
+ unget_tk tk
1657
+ end
1658
+ end
1659
+
1660
+ ##
1661
+ # Handles the directive for +context+ if the directive is listed in +allow+.
1662
+ # This method is called for directives following a definition.
1663
+
1664
+ def read_documentation_modifiers context, allow
1665
+ directive, value = read_directive allow
1666
+
1667
+ return unless directive
1668
+
1669
+ @preprocess.handle_directive '', directive, value, context do |dir, param|
1670
+ if %w[notnew not_new not-new].include? dir then
1671
+ context.dont_rename_initialize = true
1672
+
1673
+ true
1674
+ end
1675
+ end
1676
+ end
1677
+
1678
+ ##
1679
+ # Removes private comments from +comment+
1680
+ #--
1681
+ # TODO remove
1682
+
1683
+ def remove_private_comments comment
1684
+ comment.remove_private
1685
+ end
1686
+
1687
+ ##
1688
+ # Scans this ruby file for ruby constructs
1689
+
1690
+ def scan
1691
+ reset
1692
+
1693
+ catch :eof do
1694
+ begin
1695
+ parse_top_level_statements @top_level
1696
+
1697
+ rescue StandardError => e
1698
+ bytes = ''
1699
+
1700
+ 20.times do @scanner.ungetc end
1701
+ count = 0
1702
+ 60.times do |i|
1703
+ count = i
1704
+ byte = @scanner.getc
1705
+ break unless byte
1706
+ bytes << byte
1707
+ end
1708
+ count -= 20
1709
+ count.times do @scanner.ungetc end
1710
+
1711
+ $stderr.puts <<-EOF
1712
+
1713
+ #{self.class} failure around line #{@scanner.line_no} of
1714
+ #{@file_name}
1715
+
1716
+ EOF
1717
+
1718
+ unless bytes.empty? then
1719
+ $stderr.puts
1720
+ $stderr.puts bytes.inspect
1721
+ end
1722
+
1723
+ raise e
1724
+ end
1725
+ end
1726
+
1727
+ @top_level
1728
+ end
1729
+
1730
+ ##
1731
+ # while, until, and for have an optional do
1732
+
1733
+ def skip_optional_do_after_expression
1734
+ skip_tkspace false
1735
+ tk = get_tk
1736
+ case tk
1737
+ when TkLPAREN, TkfLPAREN then
1738
+ end_token = TkRPAREN
1739
+ else
1740
+ end_token = TkNL
1741
+ end
1742
+
1743
+ b_nest = 0
1744
+ nest = 0
1745
+ @scanner.instance_eval { @continue = false }
1746
+
1747
+ loop do
1748
+ case tk
1749
+ when TkSEMICOLON then
1750
+ break if b_nest.zero?
1751
+ when TkLPAREN, TkfLPAREN then
1752
+ nest += 1
1753
+ when TkBEGIN then
1754
+ b_nest += 1
1755
+ when TkEND then
1756
+ b_nest -= 1
1757
+ when TkDO
1758
+ break if nest.zero?
1759
+ when end_token then
1760
+ if end_token == TkRPAREN
1761
+ nest -= 1
1762
+ break if @scanner.lex_state == EXPR_END and nest.zero?
1763
+ else
1764
+ break unless @scanner.continue
1765
+ end
1766
+ when nil then
1767
+ break
1768
+ end
1769
+ tk = get_tk
1770
+ end
1771
+
1772
+ skip_tkspace false
1773
+
1774
+ get_tk if TkDO === peek_tk
1775
+ end
1776
+
1777
+ ##
1778
+ # skip the var [in] part of a 'for' statement
1779
+
1780
+ def skip_for_variable
1781
+ skip_tkspace false
1782
+ tk = get_tk
1783
+ skip_tkspace false
1784
+ tk = get_tk
1785
+ unget_tk(tk) unless TkIN === tk
1786
+ end
1787
+
1788
+ ##
1789
+ # Skips the next method in +container+
1790
+
1791
+ def skip_method container
1792
+ meth = RDoc::AnyMethod.new "", "anon"
1793
+ parse_method_parameters meth
1794
+ parse_statements container, false, meth
1795
+ end
1796
+
1797
+ ##
1798
+ # Skip spaces until a comment is found
1799
+
1800
+ def skip_tkspace_comment(skip_nl = true)
1801
+ loop do
1802
+ skip_tkspace skip_nl
1803
+ return unless TkCOMMENT === peek_tk
1804
+ get_tk
1805
+ end
1806
+ end
1807
+
1808
+ ##
1809
+ # Prints +message+ to +$stderr+ unless we're being quiet
1810
+
1811
+ def warn message
1812
+ @options.warn make_message message
1813
+ end
1814
+
1815
+ end
1816
+