rango 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1773) hide show
  1. data/CHANGELOG +22 -8
  2. data/README.textile +2 -2
  3. data/Rakefile +79 -0
  4. data/bin/rango +54 -22
  5. data/deps.rip +8 -0
  6. data/lib/rango.rb +4 -4
  7. data/lib/rango/boot.rb +4 -14
  8. data/lib/rango/contrib/pagination.rb +6 -8
  9. data/lib/rango/contrib/pagination/README.textile +2 -2
  10. data/lib/rango/contrib/pagination/_pagination.html.haml +4 -4
  11. data/lib/rango/contrib/pagination/adapters/datamapper.rb +16 -17
  12. data/lib/rango/contrib/pagination/helpers.rb +10 -0
  13. data/lib/rango/contrib/pagination/strategies.rb +1 -1
  14. data/lib/rango/controller.rb +40 -43
  15. data/lib/rango/exceptions.rb +49 -49
  16. data/lib/rango/gv.rb +93 -0
  17. data/lib/rango/helpers.rb +4 -4
  18. data/lib/rango/helpers/assets.rb +11 -2
  19. data/lib/rango/helpers/merb-helpers/core_ext/numeric.rb +1 -0
  20. data/lib/rango/helpers/merb-helpers/date_time_formatting.rb +5 -19
  21. data/lib/rango/helpers/merb-helpers/form/builder.rb +427 -424
  22. data/lib/rango/helpers/merb-helpers/form/helpers.rb +420 -418
  23. data/lib/rango/helpers/merb-helpers/form_helpers.rb +4 -2
  24. data/lib/rango/helpers/merb-helpers/text_helpers.rb +64 -54
  25. data/lib/rango/mixins/application.rb +1 -1
  26. data/lib/rango/mixins/configurable.rb +3 -4
  27. data/lib/rango/mixins/http_caching.rb +78 -0
  28. data/lib/rango/mixins/mini.rb +2 -2
  29. data/lib/rango/mixins/render.rb +152 -0
  30. data/lib/rango/orm/adapter.rb +46 -0
  31. data/lib/rango/orm/adapters/datamapper.rb +18 -0
  32. data/lib/rango/orm/adapters/sequel.rb +18 -0
  33. data/lib/rango/orm/orm.txt +11 -0
  34. data/lib/rango/orm/{adapters → support}/datamapper/fields.rb +0 -0
  35. data/lib/rango/orm/{adapters → support}/datamapper/support.rb +0 -0
  36. data/lib/rango/orm/tasks/datamapper.rake +34 -0
  37. data/{features/auth/warden.feature → lib/rango/orm/tasks/sequel.rake} +0 -0
  38. data/lib/rango/project.rb +8 -9
  39. data/lib/rango/rack/middlewares/basic.rb +50 -22
  40. data/lib/rango/rango.rb +29 -25
  41. data/lib/rango/router.rb +9 -0
  42. data/lib/rango/router/adapters/rack_mount.rb +17 -0
  43. data/lib/rango/router/adapters/usher.rb +9 -0
  44. data/lib/rango/settings.rb +13 -3
  45. data/lib/rango/settings/erubis.rb +2 -0
  46. data/lib/rango/settings/framework.rb +4 -10
  47. data/lib/rango/settings/haml.rb +6 -0
  48. data/lib/rango/settings/template.rb +3 -1
  49. data/lib/rango/tasks/spec.rake +7 -0
  50. data/lib/rango/templates/adapter.rb +1 -1
  51. data/lib/rango/templates/adapters/erb.rb +2 -2
  52. data/lib/rango/templates/adapters/erubis.rb +1 -1
  53. data/lib/rango/templates/adapters/haml.rb +1 -1
  54. data/lib/rango/templates/erubis.rb +84 -0
  55. data/lib/rango/templates/template.rb +33 -16
  56. data/lib/rango/templates/templates.txt +39 -0
  57. data/lib/rango/utils.rb +13 -0
  58. data/rango.gemspec +20 -15
  59. data/runcoderun.sh +19 -0
  60. data/script/erubis +11 -0
  61. data/script/rackup +2 -0
  62. data/script/rake2thor +86 -0
  63. data/script/spec +12 -0
  64. data/script/thor +12 -0
  65. data/simple-templater.scope +6 -0
  66. data/spec/factories.rb +4 -4
  67. data/spec/rango/controller_spec.rb +2 -2
  68. data/spec/rango/exceptions_spec.rb +3 -1
  69. data/{features/generators/bigapp.feature → spec/rango/gv_spec.rb} +0 -0
  70. data/{features/generators/features.feature → spec/rango/helpers/merb-helpers/core_ext/numeric_spec.rb} +0 -0
  71. data/{features/generators/flat.feature → spec/rango/helpers/merb-helpers/date_time_formatting_spec.rb} +0 -0
  72. data/{features/generators/project.feature → spec/rango/helpers/merb-helpers/date_time_helpers_spec.rb} +0 -0
  73. data/{features/generators/pupu.feature → spec/rango/helpers/merb-helpers/form/builder_spec.rb} +0 -0
  74. data/{features/generators/stub.feature → spec/rango/helpers/merb-helpers/form/helpers_spec.rb} +0 -0
  75. data/{features/routers/rack-router.feature → spec/rango/helpers/merb-helpers/form_helpers_spec.rb} +0 -0
  76. data/spec/rango/helpers/merb-helpers/merb_helpers_config_spec.rb +1 -0
  77. data/spec/rango/helpers/merb-helpers/merb_helpers_date_time_spec.rb +2 -0
  78. data/spec/rango/helpers/merb-helpers/merb_helpers_form_spec.rb +5 -3
  79. data/spec/rango/helpers/merb-helpers/merb_helpers_tag_helper_spec.rb +4 -0
  80. data/spec/rango/helpers/merb-helpers/merb_helpers_text_spec.rb +1 -0
  81. data/spec/rango/helpers/merb-helpers/numeric_extlib_spec.rb +8 -7
  82. data/spec/rango/helpers/merb-helpers/ordinalize_spec.rb +1 -0
  83. data/{features/routers/rack.feature → spec/rango/helpers/merb-helpers/tag_helpers_spec.rb} +0 -0
  84. data/{features/routers/urlmap.feature → spec/rango/helpers/merb-helpers/text_helpers_spec.rb} +0 -0
  85. data/{lib/rango/orm/adapters/sequel/tasks.thor → spec/rango/mixins/chainable_spec.rb} +0 -0
  86. data/spec/rango/{cli/generator_spec.rb → mixins/hookable_spec.rb} +0 -0
  87. data/spec/rango/{cli/templater_spec.rb → mixins/http_caching_spec.rb} +0 -0
  88. data/spec/rango/{generic_views_spec.rb → mixins/render_spec.rb} +0 -0
  89. data/spec/rango/{helpers/spec/core_ext_spec_spec.rb → orm/adapter_spec.rb} +0 -0
  90. data/spec/rango/{helpers/spec/fixture/app/controllers/application_spec.rb → orm/adapters/datamapper_spec.rb} +0 -0
  91. data/spec/rango/{helpers/spec/fixture/app/controllers/bound_check_box_spec.rb → orm/adapters/sequel_spec.rb} +0 -0
  92. data/spec/rango/orm/{adapters → support}/datamapper/fields_spec.rb +0 -0
  93. data/spec/rango/orm/{adapters → support}/datamapper/support_spec.rb +0 -0
  94. data/spec/rango/project_spec.rb +1 -4
  95. data/spec/rango/rack/request_spec.rb +2 -13
  96. data/spec/rango/{helpers/spec/fixture/app/controllers/bound_file_field_spec.rb → router/adapters/rack_router_spec.rb} +0 -0
  97. data/spec/rango/{helpers/spec/fixture/app/controllers/bound_hidden_field_spec.rb → router/adapters/urlmap_spec.rb} +0 -0
  98. data/spec/rango/{helpers/spec/fixture/app/controllers/bound_option_tag_spec.rb → router/adapters/usher_spec.rb} +0 -0
  99. data/spec/rango/{helpers/spec/fixture/config/router_spec.rb → router_spec.rb} +0 -0
  100. data/spec/rango/settings_spec.rb +2 -1
  101. data/spec/rango_spec.rb +3 -4
  102. data/stubs/app/content/init.rb.rbt +4 -1
  103. data/stubs/app/content/models.rb.rbt +9 -1
  104. data/stubs/app/content/views.rb.rbt +14 -4
  105. data/stubs/app/metadata.yml +1 -2
  106. data/stubs/app/setup.rb +13 -0
  107. data/stubs/bigapp/content/models/%model%.rb.rbt +6 -0
  108. data/stubs/bigapp/content/views/%controller%.rb.rbt +8 -0
  109. data/stubs/bigapp/metadata.yml +1 -2
  110. data/stubs/bigapp/setup.rb +12 -0
  111. data/stubs/features/metadata.yml +1 -2
  112. data/stubs/flat/content/flat.ru +21 -0
  113. data/stubs/flat/content/flat.ru.rbt +3 -2
  114. data/stubs/flat/metadata.yml +2 -3
  115. data/stubs/flat/postprocess.rb +12 -0
  116. data/stubs/flat/setup.rb +13 -0
  117. data/stubs/project/content/Gemfile.rbt +108 -0
  118. data/stubs/project/content/Rakefile.rbt +12 -0
  119. data/{spec/rango/helpers/spec/fixture/app/controllers/bound_password_field_spec.rb → stubs/project/content/TODO.txt} +0 -0
  120. data/stubs/project/content/config.ru.rbt +62 -0
  121. data/stubs/project/content/init.rb.rbt +49 -0
  122. data/stubs/project/content/settings.rb +15 -0
  123. data/stubs/project/content/spec/%name%/init_spec.rb.rbt +7 -0
  124. data/stubs/project/content/spec/%name%/models_spec.rb.rbt +10 -0
  125. data/stubs/project/content/spec/%name%/views_spec.rb.rbt +22 -0
  126. data/stubs/project/content/spec/spec.opts +5 -0
  127. data/stubs/project/content/spec/spec_helper.rb +27 -0
  128. data/stubs/project/content/templates/base.html.haml.rbt +9 -22
  129. data/stubs/project/content/templates/index.html.haml +24 -0
  130. data/stubs/project/metadata.yml +1 -2
  131. data/stubs/project/postprocess.rb +18 -4
  132. data/stubs/project/setup.rb +15 -0
  133. data/tasks/package.thor +0 -31
  134. data/tasks/prerelease.thor +34 -0
  135. data/tasks/release.thor +14 -3
  136. data/tasks/repair.thor +1 -1
  137. data/tasks/spec.thor +1 -0
  138. data/tasks/stats.thor +1 -1
  139. data/tasks/system.thor +158 -0
  140. data/vendor/abstract/ChangeLog +3 -0
  141. data/vendor/abstract/README.txt +57 -0
  142. data/vendor/abstract/abstract.gemspec +48 -0
  143. data/vendor/abstract/doc/classes/Kernel.html +134 -0
  144. data/vendor/abstract/doc/classes/Kernel.src/M000002.html +24 -0
  145. data/vendor/abstract/doc/classes/Module.html +140 -0
  146. data/vendor/abstract/doc/classes/Module.src/M000001.html +20 -0
  147. data/vendor/abstract/doc/created.rid +1 -0
  148. data/vendor/abstract/doc/files/README_txt.html +173 -0
  149. data/vendor/abstract/doc/files/lib/abstract_rb.html +137 -0
  150. data/vendor/abstract/doc/fr_class_index.html +28 -0
  151. data/vendor/abstract/doc/fr_file_index.html +28 -0
  152. data/vendor/abstract/doc/fr_method_index.html +28 -0
  153. data/vendor/abstract/doc/index.html +24 -0
  154. data/vendor/abstract/doc/rdoc-style.css +208 -0
  155. data/vendor/abstract/lib/abstract.rb +75 -0
  156. data/vendor/abstract/setup.rb +1331 -0
  157. data/vendor/abstract/test/test.rb +91 -0
  158. data/vendor/cli/CHANGELOG +2 -0
  159. data/vendor/cli/LICENSE +20 -0
  160. data/{spec/rango/helpers/spec/fixture/app/controllers/bound_radio_button_spec.rb → vendor/cli/README.textile} +0 -0
  161. data/vendor/cli/Rakefile +79 -0
  162. data/{spec/rango/helpers/spec/fixture/app/controllers/bound_radio_group_spec.rb → vendor/cli/TODO.txt} +0 -0
  163. data/vendor/cli/cli.gemspec +42 -0
  164. data/vendor/cli/deps.rip +5 -0
  165. data/vendor/cli/lib/cli.rb +33 -0
  166. data/vendor/cli/script/spec +12 -0
  167. data/vendor/cli/spec/cli_spec.rb +56 -0
  168. data/vendor/cli/spec/spec.opts +5 -0
  169. data/vendor/cli/spec/spec_helper.rb +18 -0
  170. data/vendor/erubis/CHANGES.txt +717 -0
  171. data/vendor/erubis/MIT-LICENSE +20 -0
  172. data/vendor/erubis/README.txt +102 -0
  173. data/vendor/erubis/benchmark/Makefile +6 -0
  174. data/vendor/erubis/benchmark/bench.rb +314 -0
  175. data/vendor/erubis/benchmark/bench_context.yaml +141 -0
  176. data/vendor/erubis/benchmark/templates/_footer.html +4 -0
  177. data/vendor/erubis/benchmark/templates/_header.html +52 -0
  178. data/vendor/erubis/benchmark/templates/bench_erb.rhtml +29 -0
  179. data/vendor/erubis/benchmark/templates/bench_erubis.rhtml +29 -0
  180. data/vendor/erubis/benchmark/templates/bench_eruby.rhtml +29 -0
  181. data/vendor/erubis/bin/erubis +11 -0
  182. data/vendor/erubis/contrib/erubis +11 -0
  183. data/vendor/erubis/contrib/erubis-run.rb +132 -0
  184. data/vendor/erubis/contrib/inline-require +153 -0
  185. data/vendor/erubis/doc-api/classes/ActionView.html +105 -0
  186. data/vendor/erubis/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +181 -0
  187. data/vendor/erubis/doc-api/classes/ERB.html +101 -0
  188. data/vendor/erubis/doc-api/classes/Erubis.html +353 -0
  189. data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEnhancer.html +175 -0
  190. data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEruby.html +120 -0
  191. data/vendor/erubis/doc-api/classes/Erubis/ArrayEnhancer.html +174 -0
  192. data/vendor/erubis/doc-api/classes/Erubis/ArrayEruby.html +120 -0
  193. data/vendor/erubis/doc-api/classes/Erubis/Basic.html +112 -0
  194. data/vendor/erubis/doc-api/classes/Erubis/Basic/Converter.html +327 -0
  195. data/vendor/erubis/doc-api/classes/Erubis/Basic/Engine.html +130 -0
  196. data/vendor/erubis/doc-api/classes/Erubis/BiPatternEnhancer.html +215 -0
  197. data/vendor/erubis/doc-api/classes/Erubis/BiPatternEruby.html +120 -0
  198. data/vendor/erubis/doc-api/classes/Erubis/CGenerator.html +386 -0
  199. data/vendor/erubis/doc-api/classes/Erubis/CommandOptionError.html +113 -0
  200. data/vendor/erubis/doc-api/classes/Erubis/Context.html +344 -0
  201. data/vendor/erubis/doc-api/classes/Erubis/Converter.html +283 -0
  202. data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEnhancer.html +150 -0
  203. data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEruby.html +120 -0
  204. data/vendor/erubis/doc-api/classes/Erubis/Ec.html +126 -0
  205. data/vendor/erubis/doc-api/classes/Erubis/Ejava.html +126 -0
  206. data/vendor/erubis/doc-api/classes/Erubis/Ejavascript.html +126 -0
  207. data/vendor/erubis/doc-api/classes/Erubis/Engine.html +305 -0
  208. data/vendor/erubis/doc-api/classes/Erubis/Eperl.html +126 -0
  209. data/vendor/erubis/doc-api/classes/Erubis/Ephp.html +126 -0
  210. data/vendor/erubis/doc-api/classes/Erubis/ErboutEnhancer.html +175 -0
  211. data/vendor/erubis/doc-api/classes/Erubis/ErboutEruby.html +120 -0
  212. data/vendor/erubis/doc-api/classes/Erubis/ErubisError.html +117 -0
  213. data/vendor/erubis/doc-api/classes/Erubis/Eruby.html +132 -0
  214. data/vendor/erubis/doc-api/classes/Erubis/EscapeEnhancer.html +165 -0
  215. data/vendor/erubis/doc-api/classes/Erubis/EscapedEc.html +120 -0
  216. data/vendor/erubis/doc-api/classes/Erubis/EscapedEjava.html +120 -0
  217. data/vendor/erubis/doc-api/classes/Erubis/EscapedEjavascript.html +120 -0
  218. data/vendor/erubis/doc-api/classes/Erubis/EscapedEperl.html +120 -0
  219. data/vendor/erubis/doc-api/classes/Erubis/EscapedEphp.html +120 -0
  220. data/vendor/erubis/doc-api/classes/Erubis/EscapedEruby.html +127 -0
  221. data/vendor/erubis/doc-api/classes/Erubis/EscapedEscheme.html +120 -0
  222. data/vendor/erubis/doc-api/classes/Erubis/Escheme.html +126 -0
  223. data/vendor/erubis/doc-api/classes/Erubis/Evaluator.html +212 -0
  224. data/vendor/erubis/doc-api/classes/Erubis/FastEruby.html +131 -0
  225. data/vendor/erubis/doc-api/classes/Erubis/Generator.html +416 -0
  226. data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEnhancer.html +267 -0
  227. data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEruby.html +120 -0
  228. data/vendor/erubis/doc-api/classes/Erubis/Helpers.html +116 -0
  229. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
  230. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper.html +349 -0
  231. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +164 -0
  232. data/vendor/erubis/doc-api/classes/Erubis/InterpolationEnhancer.html +306 -0
  233. data/vendor/erubis/doc-api/classes/Erubis/InterpolationEruby.html +120 -0
  234. data/vendor/erubis/doc-api/classes/Erubis/JavaGenerator.html +359 -0
  235. data/vendor/erubis/doc-api/classes/Erubis/JavascriptGenerator.html +386 -0
  236. data/vendor/erubis/doc-api/classes/Erubis/Main.html +340 -0
  237. data/vendor/erubis/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
  238. data/vendor/erubis/doc-api/classes/Erubis/NoCodeEruby.html +120 -0
  239. data/vendor/erubis/doc-api/classes/Erubis/NoTextEnhancer.html +159 -0
  240. data/vendor/erubis/doc-api/classes/Erubis/NoTextEruby.html +120 -0
  241. data/vendor/erubis/doc-api/classes/Erubis/NotSupportedError.html +119 -0
  242. data/vendor/erubis/doc-api/classes/Erubis/OptimizedEruby.html +163 -0
  243. data/vendor/erubis/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
  244. data/vendor/erubis/doc-api/classes/Erubis/OptimizedXmlEruby.html +163 -0
  245. data/vendor/erubis/doc-api/classes/Erubis/PI.html +124 -0
  246. data/vendor/erubis/doc-api/classes/Erubis/PI/Converter.html +266 -0
  247. data/vendor/erubis/doc-api/classes/Erubis/PI/Ec.html +166 -0
  248. data/vendor/erubis/doc-api/classes/Erubis/PI/Ejava.html +166 -0
  249. data/vendor/erubis/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
  250. data/vendor/erubis/doc-api/classes/Erubis/PI/Engine.html +122 -0
  251. data/vendor/erubis/doc-api/classes/Erubis/PI/Eperl.html +166 -0
  252. data/vendor/erubis/doc-api/classes/Erubis/PI/Ephp.html +166 -0
  253. data/vendor/erubis/doc-api/classes/Erubis/PI/Eruby.html +155 -0
  254. data/vendor/erubis/doc-api/classes/Erubis/PI/Escheme.html +166 -0
  255. data/vendor/erubis/doc-api/classes/Erubis/PI/TinyEruby.html +293 -0
  256. data/vendor/erubis/doc-api/classes/Erubis/PercentLineEnhancer.html +179 -0
  257. data/vendor/erubis/doc-api/classes/Erubis/PercentLineEruby.html +120 -0
  258. data/vendor/erubis/doc-api/classes/Erubis/PerlGenerator.html +344 -0
  259. data/vendor/erubis/doc-api/classes/Erubis/PhpGenerator.html +350 -0
  260. data/vendor/erubis/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
  261. data/vendor/erubis/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
  262. data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEnhancer.html +212 -0
  263. data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEruby.html +120 -0
  264. data/vendor/erubis/doc-api/classes/Erubis/PrintOutEnhancer.html +244 -0
  265. data/vendor/erubis/doc-api/classes/Erubis/PrintOutEruby.html +120 -0
  266. data/vendor/erubis/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +121 -0
  267. data/vendor/erubis/doc-api/classes/Erubis/RubyEvaluator.html +227 -0
  268. data/vendor/erubis/doc-api/classes/Erubis/RubyGenerator.html +327 -0
  269. data/vendor/erubis/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
  270. data/vendor/erubis/doc-api/classes/Erubis/SimplifiedEruby.html +120 -0
  271. data/vendor/erubis/doc-api/classes/Erubis/SimplifyEnhancer.html +191 -0
  272. data/vendor/erubis/doc-api/classes/Erubis/StdoutEnhancer.html +173 -0
  273. data/vendor/erubis/doc-api/classes/Erubis/StdoutEruby.html +120 -0
  274. data/vendor/erubis/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +121 -0
  275. data/vendor/erubis/doc-api/classes/Erubis/StringBufferEnhancer.html +174 -0
  276. data/vendor/erubis/doc-api/classes/Erubis/StringBufferEruby.html +120 -0
  277. data/vendor/erubis/doc-api/classes/Erubis/StringIOEruby.html +120 -0
  278. data/vendor/erubis/doc-api/classes/Erubis/TinyEruby.html +299 -0
  279. data/vendor/erubis/doc-api/classes/Erubis/XmlEruby.html +130 -0
  280. data/vendor/erubis/doc-api/classes/Erubis/XmlHelper.html +255 -0
  281. data/vendor/erubis/doc-api/created.rid +1 -0
  282. data/vendor/erubis/doc-api/files/README_txt.html +247 -0
  283. data/vendor/erubis/doc-api/files/erubis/context_rb.html +107 -0
  284. data/vendor/erubis/doc-api/files/erubis/converter_rb.html +114 -0
  285. data/vendor/erubis/doc-api/files/erubis/engine/ec_rb.html +115 -0
  286. data/vendor/erubis/doc-api/files/erubis/engine/ejava_rb.html +115 -0
  287. data/vendor/erubis/doc-api/files/erubis/engine/ejavascript_rb.html +115 -0
  288. data/vendor/erubis/doc-api/files/erubis/engine/enhanced_rb.html +115 -0
  289. data/vendor/erubis/doc-api/files/erubis/engine/eperl_rb.html +115 -0
  290. data/vendor/erubis/doc-api/files/erubis/engine/ephp_rb.html +115 -0
  291. data/vendor/erubis/doc-api/files/erubis/engine/eruby_rb.html +115 -0
  292. data/vendor/erubis/doc-api/files/erubis/engine/escheme_rb.html +115 -0
  293. data/vendor/erubis/doc-api/files/erubis/engine/optimized_rb.html +114 -0
  294. data/vendor/erubis/doc-api/files/erubis/engine_rb.html +117 -0
  295. data/vendor/erubis/doc-api/files/erubis/enhancer_rb.html +107 -0
  296. data/vendor/erubis/doc-api/files/erubis/error_rb.html +107 -0
  297. data/vendor/erubis/doc-api/files/erubis/evaluator_rb.html +115 -0
  298. data/vendor/erubis/doc-api/files/erubis/generator_rb.html +114 -0
  299. data/vendor/erubis/doc-api/files/erubis/helper_rb.html +107 -0
  300. data/vendor/erubis/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
  301. data/vendor/erubis/doc-api/files/erubis/helpers/rails_helper_rb.html +116 -0
  302. data/vendor/erubis/doc-api/files/erubis/local-setting_rb.html +107 -0
  303. data/vendor/erubis/doc-api/files/erubis/main_rb.html +127 -0
  304. data/vendor/erubis/doc-api/files/erubis/preprocessing_rb.html +114 -0
  305. data/vendor/erubis/doc-api/files/erubis/tiny_rb.html +107 -0
  306. data/vendor/erubis/doc-api/files/erubis_rb.html +118 -0
  307. data/vendor/erubis/doc-api/fr_class_index.html +122 -0
  308. data/vendor/erubis/doc-api/fr_file_index.html +51 -0
  309. data/vendor/erubis/doc-api/fr_method_index.html +248 -0
  310. data/vendor/erubis/doc-api/index.html +24 -0
  311. data/vendor/erubis/doc-api/rdoc-style.css +208 -0
  312. data/vendor/erubis/doc/docstyle.css +188 -0
  313. data/vendor/erubis/doc/users-guide.html +3285 -0
  314. data/vendor/erubis/erubis.gemspec +66 -0
  315. data/vendor/erubis/examples/basic/Makefile +53 -0
  316. data/vendor/erubis/examples/basic/example.ec +42 -0
  317. data/vendor/erubis/examples/basic/example.ejava +45 -0
  318. data/vendor/erubis/examples/basic/example.ejs +16 -0
  319. data/vendor/erubis/examples/basic/example.eperl +16 -0
  320. data/vendor/erubis/examples/basic/example.ephp +17 -0
  321. data/vendor/erubis/examples/basic/example.eruby +15 -0
  322. data/vendor/erubis/examples/basic/example.escheme +26 -0
  323. data/vendor/erubis/examples/pi/Makefile +54 -0
  324. data/vendor/erubis/examples/pi/example.ec +42 -0
  325. data/vendor/erubis/examples/pi/example.ejava +45 -0
  326. data/vendor/erubis/examples/pi/example.ejs +16 -0
  327. data/vendor/erubis/examples/pi/example.eperl +16 -0
  328. data/vendor/erubis/examples/pi/example.ephp +17 -0
  329. data/vendor/erubis/examples/pi/example.eruby +15 -0
  330. data/vendor/erubis/examples/pi/example.escheme +26 -0
  331. data/vendor/erubis/lib/erubis.rb +73 -0
  332. data/vendor/erubis/lib/erubis/context.rb +84 -0
  333. data/vendor/erubis/lib/erubis/converter.rb +358 -0
  334. data/vendor/erubis/lib/erubis/engine.rb +121 -0
  335. data/vendor/erubis/lib/erubis/engine/ec.rb +118 -0
  336. data/vendor/erubis/lib/erubis/engine/ejava.rb +111 -0
  337. data/vendor/erubis/lib/erubis/engine/ejavascript.rb +120 -0
  338. data/vendor/erubis/lib/erubis/engine/enhanced.rb +122 -0
  339. data/vendor/erubis/lib/erubis/engine/eperl.rb +96 -0
  340. data/vendor/erubis/lib/erubis/engine/ephp.rb +100 -0
  341. data/vendor/erubis/lib/erubis/engine/eruby.rb +125 -0
  342. data/vendor/erubis/lib/erubis/engine/escheme.rb +115 -0
  343. data/vendor/erubis/lib/erubis/engine/optimized.rb +128 -0
  344. data/vendor/erubis/lib/erubis/enhancer.rb +681 -0
  345. data/vendor/erubis/lib/erubis/error.rb +24 -0
  346. data/vendor/erubis/lib/erubis/evaluator.rb +89 -0
  347. data/vendor/erubis/lib/erubis/generator.rb +86 -0
  348. data/vendor/erubis/lib/erubis/helper.rb +48 -0
  349. data/vendor/erubis/lib/erubis/helpers/rails_form_helper.rb +198 -0
  350. data/vendor/erubis/lib/erubis/helpers/rails_helper.rb +325 -0
  351. data/vendor/erubis/lib/erubis/local-setting.rb +10 -0
  352. data/vendor/erubis/lib/erubis/main.rb +491 -0
  353. data/vendor/erubis/lib/erubis/preprocessing.rb +59 -0
  354. data/vendor/erubis/lib/erubis/tiny.rb +146 -0
  355. data/vendor/erubis/setup.rb +1331 -0
  356. data/vendor/erubis/test/assert-text-equal.rb +45 -0
  357. data/vendor/erubis/test/assert-text-equal.rbc +0 -0
  358. data/vendor/erubis/test/data/users-guide/Example.ejava +55 -0
  359. data/vendor/erubis/test/data/users-guide/array_example.result +9 -0
  360. data/vendor/erubis/test/data/users-guide/arraybuffer_example.result +9 -0
  361. data/vendor/erubis/test/data/users-guide/bipattern-example.rhtml +4 -0
  362. data/vendor/erubis/test/data/users-guide/bipattern_example.result +6 -0
  363. data/vendor/erubis/test/data/users-guide/context.rb +6 -0
  364. data/vendor/erubis/test/data/users-guide/context.yaml +8 -0
  365. data/vendor/erubis/test/data/users-guide/def_method.rb +14 -0
  366. data/vendor/erubis/test/data/users-guide/def_method.result +3 -0
  367. data/vendor/erubis/test/data/users-guide/escape_example.result +9 -0
  368. data/vendor/erubis/test/data/users-guide/example.ec +27 -0
  369. data/vendor/erubis/test/data/users-guide/example.ejs +20 -0
  370. data/vendor/erubis/test/data/users-guide/example.eperl +18 -0
  371. data/vendor/erubis/test/data/users-guide/example.ephp +18 -0
  372. data/vendor/erubis/test/data/users-guide/example.eruby +6 -0
  373. data/vendor/erubis/test/data/users-guide/example.escheme +28 -0
  374. data/vendor/erubis/test/data/users-guide/example1.eruby +6 -0
  375. data/vendor/erubis/test/data/users-guide/example1.rb +17 -0
  376. data/vendor/erubis/test/data/users-guide/example1.result +16 -0
  377. data/vendor/erubis/test/data/users-guide/example10.rb +4 -0
  378. data/vendor/erubis/test/data/users-guide/example10.result +17 -0
  379. data/vendor/erubis/test/data/users-guide/example10.xhtml +14 -0
  380. data/vendor/erubis/test/data/users-guide/example10_x.result +17 -0
  381. data/vendor/erubis/test/data/users-guide/example11.php +20 -0
  382. data/vendor/erubis/test/data/users-guide/example11.result +23 -0
  383. data/vendor/erubis/test/data/users-guide/example11.rhtml +21 -0
  384. data/vendor/erubis/test/data/users-guide/example11_C.result +10 -0
  385. data/vendor/erubis/test/data/users-guide/example11_N.result +16 -0
  386. data/vendor/erubis/test/data/users-guide/example11_U.result +16 -0
  387. data/vendor/erubis/test/data/users-guide/example11_php.result +15 -0
  388. data/vendor/erubis/test/data/users-guide/example1_x.result +9 -0
  389. data/vendor/erubis/test/data/users-guide/example2.eruby +7 -0
  390. data/vendor/erubis/test/data/users-guide/example2.rb +10 -0
  391. data/vendor/erubis/test/data/users-guide/example2.result +27 -0
  392. data/vendor/erubis/test/data/users-guide/example2_trim.result +10 -0
  393. data/vendor/erubis/test/data/users-guide/example2_x.result +10 -0
  394. data/vendor/erubis/test/data/users-guide/example3.eruby +6 -0
  395. data/vendor/erubis/test/data/users-guide/example3.rb +10 -0
  396. data/vendor/erubis/test/data/users-guide/example31.result +22 -0
  397. data/vendor/erubis/test/data/users-guide/example32.result +4 -0
  398. data/vendor/erubis/test/data/users-guide/example3_e.result +8 -0
  399. data/vendor/erubis/test/data/users-guide/example4.eruby +3 -0
  400. data/vendor/erubis/test/data/users-guide/example4.rb +11 -0
  401. data/vendor/erubis/test/data/users-guide/example4.result +10 -0
  402. data/vendor/erubis/test/data/users-guide/example4_x.result +5 -0
  403. data/vendor/erubis/test/data/users-guide/example5.eruby +6 -0
  404. data/vendor/erubis/test/data/users-guide/example5.rb +16 -0
  405. data/vendor/erubis/test/data/users-guide/example5.result +7 -0
  406. data/vendor/erubis/test/data/users-guide/example6.rb +12 -0
  407. data/vendor/erubis/test/data/users-guide/example6.result +7 -0
  408. data/vendor/erubis/test/data/users-guide/example7.eruby +8 -0
  409. data/vendor/erubis/test/data/users-guide/example71.result +13 -0
  410. data/vendor/erubis/test/data/users-guide/example72.result +13 -0
  411. data/vendor/erubis/test/data/users-guide/example8.eruby +6 -0
  412. data/vendor/erubis/test/data/users-guide/example8_ruby.result +7 -0
  413. data/vendor/erubis/test/data/users-guide/example8_yaml.result +7 -0
  414. data/vendor/erubis/test/data/users-guide/example9.eruby +3 -0
  415. data/vendor/erubis/test/data/users-guide/example9.rb +8 -0
  416. data/vendor/erubis/test/data/users-guide/example9.result +9 -0
  417. data/vendor/erubis/test/data/users-guide/example91.result +5 -0
  418. data/vendor/erubis/test/data/users-guide/example92.result +4 -0
  419. data/vendor/erubis/test/data/users-guide/example_c.result +29 -0
  420. data/vendor/erubis/test/data/users-guide/example_java.result +56 -0
  421. data/vendor/erubis/test/data/users-guide/example_js.result +22 -0
  422. data/vendor/erubis/test/data/users-guide/example_perl.result +20 -0
  423. data/vendor/erubis/test/data/users-guide/example_php.result +19 -0
  424. data/vendor/erubis/test/data/users-guide/example_scheme.result +30 -0
  425. data/vendor/erubis/test/data/users-guide/example_scheme_display.result +29 -0
  426. data/vendor/erubis/test/data/users-guide/fasteruby.rb +11 -0
  427. data/vendor/erubis/test/data/users-guide/fasteruby.result +38 -0
  428. data/vendor/erubis/test/data/users-guide/fasteruby.rhtml +15 -0
  429. data/vendor/erubis/test/data/users-guide/headerfooter-example.eruby +9 -0
  430. data/vendor/erubis/test/data/users-guide/headerfooter-example2.rb +8 -0
  431. data/vendor/erubis/test/data/users-guide/headerfooter-example2.rhtml +10 -0
  432. data/vendor/erubis/test/data/users-guide/headerfooter_example.result +11 -0
  433. data/vendor/erubis/test/data/users-guide/headerfooter_example2.result +13 -0
  434. data/vendor/erubis/test/data/users-guide/interpolation_example.result +9 -0
  435. data/vendor/erubis/test/data/users-guide/main_program1.rb +8 -0
  436. data/vendor/erubis/test/data/users-guide/main_program1.result +6 -0
  437. data/vendor/erubis/test/data/users-guide/main_program2.rb +8 -0
  438. data/vendor/erubis/test/data/users-guide/main_program2.result +6 -0
  439. data/vendor/erubis/test/data/users-guide/nocode-example.eruby +14 -0
  440. data/vendor/erubis/test/data/users-guide/nocode-php.result +20 -0
  441. data/vendor/erubis/test/data/users-guide/nocode_example.result +15 -0
  442. data/vendor/erubis/test/data/users-guide/normal-eruby-test.eruby +9 -0
  443. data/vendor/erubis/test/data/users-guide/normal_eruby_test.result +11 -0
  444. data/vendor/erubis/test/data/users-guide/notext-example.eruby +14 -0
  445. data/vendor/erubis/test/data/users-guide/notext-example.php +19 -0
  446. data/vendor/erubis/test/data/users-guide/notext-php.result +20 -0
  447. data/vendor/erubis/test/data/users-guide/notext_example.result +16 -0
  448. data/vendor/erubis/test/data/users-guide/percentline-example.rhtml +4 -0
  449. data/vendor/erubis/test/data/users-guide/percentline_example.result +7 -0
  450. data/vendor/erubis/test/data/users-guide/printenable_example.result +4 -0
  451. data/vendor/erubis/test/data/users-guide/printenabled-example.eruby +3 -0
  452. data/vendor/erubis/test/data/users-guide/printenabled-example.rb +8 -0
  453. data/vendor/erubis/test/data/users-guide/printstatement_example.result +8 -0
  454. data/vendor/erubis/test/data/users-guide/simplify_example.result +9 -0
  455. data/vendor/erubis/test/data/users-guide/stdout_exmple.result +9 -0
  456. data/vendor/erubis/test/data/users-guide/stringbuffer_example.result +9 -0
  457. data/vendor/erubis/test/data/users-guide/tail_260.result +4 -0
  458. data/vendor/erubis/test/data/users-guide/tailnewline.rhtml +3 -0
  459. data/vendor/erubis/test/data/users-guide/template1.rhtml +4 -0
  460. data/vendor/erubis/test/data/users-guide/template2.rhtml +4 -0
  461. data/vendor/erubis/test/hoge.rb +5 -0
  462. data/vendor/erubis/test/test-engines.rb +370 -0
  463. data/vendor/erubis/test/test-engines.rbc +0 -0
  464. data/vendor/erubis/test/test-enhancers.rb +571 -0
  465. data/vendor/erubis/test/test-erubis.rb +884 -0
  466. data/vendor/erubis/test/test-erubis.rbc +0 -0
  467. data/vendor/erubis/test/test-main.rb +674 -0
  468. data/vendor/erubis/test/test-users-guide.rb +58 -0
  469. data/vendor/erubis/test/test-users-guide.rbc +0 -0
  470. data/vendor/erubis/test/test.rb +30 -0
  471. data/vendor/erubis/test/test.rbc +0 -0
  472. data/vendor/erubis/test/testutil.rb +101 -0
  473. data/vendor/erubis/test/testutil.rbc +0 -0
  474. data/vendor/extlib/History.txt +77 -0
  475. data/vendor/extlib/LICENSE +47 -0
  476. data/{spec/rango/helpers/spec/fixture/app/controllers/bound_select_spec.rb → vendor/extlib/README} +0 -0
  477. data/vendor/extlib/Rakefile +133 -0
  478. data/vendor/extlib/benchmarks/camel_case.rb +45 -0
  479. data/vendor/extlib/benchmarks/to_const_path.rb +65 -0
  480. data/vendor/extlib/benchmarks/to_const_string.rb +91 -0
  481. data/vendor/extlib/lib/extlib.rb +50 -0
  482. data/vendor/extlib/lib/extlib/array.rb +36 -0
  483. data/vendor/extlib/lib/extlib/assertions.rb +8 -0
  484. data/vendor/extlib/lib/extlib/blank.rb +89 -0
  485. data/vendor/extlib/lib/extlib/boolean.rb +11 -0
  486. data/vendor/extlib/lib/extlib/byte_array.rb +6 -0
  487. data/vendor/extlib/lib/extlib/class.rb +177 -0
  488. data/vendor/extlib/lib/extlib/datetime.rb +29 -0
  489. data/vendor/extlib/lib/extlib/dictionary.rb +433 -0
  490. data/vendor/extlib/lib/extlib/hash.rb +442 -0
  491. data/vendor/extlib/lib/extlib/hook.rb +401 -0
  492. data/vendor/extlib/lib/extlib/inflection.rb +440 -0
  493. data/vendor/extlib/lib/extlib/lazy_array.rb +451 -0
  494. data/vendor/extlib/lib/extlib/lazy_module.rb +18 -0
  495. data/vendor/extlib/lib/extlib/logger.rb +198 -0
  496. data/vendor/extlib/lib/extlib/mash.rb +155 -0
  497. data/vendor/extlib/lib/extlib/module.rb +47 -0
  498. data/vendor/extlib/lib/extlib/nil.rb +5 -0
  499. data/vendor/extlib/lib/extlib/numeric.rb +5 -0
  500. data/vendor/extlib/lib/extlib/object.rb +175 -0
  501. data/vendor/extlib/lib/extlib/object_space.rb +13 -0
  502. data/vendor/extlib/lib/extlib/pathname.rb +20 -0
  503. data/vendor/extlib/lib/extlib/pooling.rb +235 -0
  504. data/vendor/extlib/lib/extlib/rubygems.rb +38 -0
  505. data/vendor/extlib/lib/extlib/simple_set.rb +66 -0
  506. data/vendor/extlib/lib/extlib/string.rb +176 -0
  507. data/vendor/extlib/lib/extlib/struct.rb +17 -0
  508. data/vendor/extlib/lib/extlib/symbol.rb +21 -0
  509. data/vendor/extlib/lib/extlib/tasks/release.rb +15 -0
  510. data/vendor/extlib/lib/extlib/time.rb +43 -0
  511. data/vendor/extlib/lib/extlib/version.rb +3 -0
  512. data/vendor/extlib/lib/extlib/virtual_file.rb +10 -0
  513. data/vendor/extlib/spec/array_spec.rb +39 -0
  514. data/vendor/extlib/spec/blank_spec.rb +85 -0
  515. data/vendor/extlib/spec/byte_array_spec.rb +7 -0
  516. data/vendor/extlib/spec/class_spec.rb +157 -0
  517. data/vendor/extlib/spec/datetime_spec.rb +22 -0
  518. data/vendor/extlib/spec/hash_spec.rb +537 -0
  519. data/vendor/extlib/spec/hook_spec.rb +1234 -0
  520. data/vendor/extlib/spec/inflection/plural_spec.rb +564 -0
  521. data/vendor/extlib/spec/inflection/singular_spec.rb +497 -0
  522. data/vendor/extlib/spec/inflection_extras_spec.rb +110 -0
  523. data/vendor/extlib/spec/lazy_array_spec.rb +1957 -0
  524. data/vendor/extlib/spec/lazy_module_spec.rb +38 -0
  525. data/vendor/extlib/spec/mash_spec.rb +311 -0
  526. data/vendor/extlib/spec/module_spec.rb +70 -0
  527. data/vendor/extlib/spec/object_space_spec.rb +9 -0
  528. data/vendor/extlib/spec/object_spec.rb +114 -0
  529. data/vendor/extlib/spec/pooling_spec.rb +511 -0
  530. data/vendor/extlib/spec/simple_set_spec.rb +57 -0
  531. data/vendor/extlib/spec/spec.opts +3 -0
  532. data/vendor/extlib/spec/spec_helper.rb +10 -0
  533. data/vendor/extlib/spec/string_spec.rb +221 -0
  534. data/vendor/extlib/spec/struct_spec.rb +12 -0
  535. data/vendor/extlib/spec/symbol_spec.rb +8 -0
  536. data/vendor/extlib/spec/time_spec.rb +29 -0
  537. data/vendor/extlib/spec/try_call_spec.rb +73 -0
  538. data/vendor/extlib/spec/try_dup_spec.rb +45 -0
  539. data/vendor/extlib/spec/virtual_file_spec.rb +21 -0
  540. data/vendor/media-path/CHANGELOG +3 -0
  541. data/vendor/media-path/LICENSE +20 -0
  542. data/vendor/media-path/README.textile +40 -0
  543. data/vendor/media-path/Rakefile +79 -0
  544. data/vendor/media-path/TODO.txt +6 -0
  545. data/vendor/media-path/deps.rip +5 -0
  546. data/vendor/media-path/lib/media-path.rb +269 -0
  547. data/vendor/media-path/media-path.gemspec +38 -0
  548. data/vendor/media-path/script/spec +14 -0
  549. data/vendor/media-path/spec/media-path_spec.rb +158 -0
  550. data/vendor/media-path/spec/spec.opts +5 -0
  551. data/{spec/rango/helpers/spec/fixture/app/controllers/bound_text_area_spec.rb → vendor/media-path/spec/stubs/blog/public/js/moo.js} +0 -0
  552. data/vendor/rack/COPYING +18 -0
  553. data/vendor/rack/KNOWN-ISSUES +18 -0
  554. data/vendor/rack/README +364 -0
  555. data/vendor/rack/Rakefile +163 -0
  556. data/vendor/rack/bin/rackup +2 -0
  557. data/vendor/rack/contrib/rack_logo.svg +111 -0
  558. data/vendor/rack/example/lobster.ru +4 -0
  559. data/vendor/rack/example/protectedlobster.rb +14 -0
  560. data/vendor/rack/example/protectedlobster.ru +8 -0
  561. data/vendor/rack/lib/rack.rb +86 -0
  562. data/vendor/rack/lib/rack/adapter/camping.rb +22 -0
  563. data/vendor/rack/lib/rack/auth/abstract/handler.rb +37 -0
  564. data/vendor/rack/lib/rack/auth/abstract/request.rb +37 -0
  565. data/vendor/rack/lib/rack/auth/basic.rb +58 -0
  566. data/vendor/rack/lib/rack/auth/digest/md5.rb +124 -0
  567. data/vendor/rack/lib/rack/auth/digest/nonce.rb +51 -0
  568. data/vendor/rack/lib/rack/auth/digest/params.rb +55 -0
  569. data/vendor/rack/lib/rack/auth/digest/request.rb +40 -0
  570. data/vendor/rack/lib/rack/builder.rb +78 -0
  571. data/vendor/rack/lib/rack/cascade.rb +41 -0
  572. data/vendor/rack/lib/rack/chunked.rb +49 -0
  573. data/vendor/rack/lib/rack/commonlogger.rb +52 -0
  574. data/vendor/rack/lib/rack/conditionalget.rb +47 -0
  575. data/vendor/rack/lib/rack/content_length.rb +29 -0
  576. data/vendor/rack/lib/rack/content_type.rb +23 -0
  577. data/vendor/rack/lib/rack/deflater.rb +96 -0
  578. data/vendor/rack/lib/rack/directory.rb +153 -0
  579. data/vendor/rack/lib/rack/file.rb +88 -0
  580. data/vendor/rack/lib/rack/handler.rb +88 -0
  581. data/vendor/rack/lib/rack/handler/cgi.rb +61 -0
  582. data/vendor/rack/lib/rack/handler/evented_mongrel.rb +8 -0
  583. data/vendor/rack/lib/rack/handler/fastcgi.rb +90 -0
  584. data/vendor/rack/lib/rack/handler/lsws.rb +63 -0
  585. data/vendor/rack/lib/rack/handler/mongrel.rb +91 -0
  586. data/vendor/rack/lib/rack/handler/scgi.rb +62 -0
  587. data/vendor/rack/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
  588. data/vendor/rack/lib/rack/handler/thin.rb +18 -0
  589. data/vendor/rack/lib/rack/handler/webrick.rb +71 -0
  590. data/vendor/rack/lib/rack/head.rb +19 -0
  591. data/vendor/rack/lib/rack/lint.rb +546 -0
  592. data/vendor/rack/lib/rack/lobster.rb +65 -0
  593. data/vendor/rack/lib/rack/lock.rb +16 -0
  594. data/vendor/rack/lib/rack/methodoverride.rb +27 -0
  595. data/vendor/rack/lib/rack/mime.rb +205 -0
  596. data/vendor/rack/lib/rack/mock.rb +189 -0
  597. data/vendor/rack/lib/rack/recursive.rb +57 -0
  598. data/vendor/rack/lib/rack/reloader.rb +109 -0
  599. data/vendor/rack/lib/rack/request.rb +248 -0
  600. data/vendor/rack/lib/rack/response.rb +149 -0
  601. data/vendor/rack/lib/rack/rewindable_input.rb +100 -0
  602. data/vendor/rack/lib/rack/server.rb +189 -0
  603. data/vendor/rack/lib/rack/session/abstract/id.rb +140 -0
  604. data/vendor/rack/lib/rack/session/cookie.rb +90 -0
  605. data/vendor/rack/lib/rack/session/memcache.rb +109 -0
  606. data/vendor/rack/lib/rack/session/pool.rb +100 -0
  607. data/vendor/rack/lib/rack/showexceptions.rb +349 -0
  608. data/vendor/rack/lib/rack/showstatus.rb +106 -0
  609. data/vendor/rack/lib/rack/static.rb +38 -0
  610. data/vendor/rack/lib/rack/urlmap.rb +55 -0
  611. data/vendor/rack/lib/rack/utils.rb +590 -0
  612. data/vendor/rack/test/cgi/lighttpd.conf +20 -0
  613. data/vendor/rack/test/cgi/test +9 -0
  614. data/vendor/rack/test/cgi/test.fcgi +8 -0
  615. data/vendor/rack/test/cgi/test.ru +6 -0
  616. data/vendor/rack/test/multipart/binary +0 -0
  617. data/vendor/rack/test/multipart/empty +10 -0
  618. data/vendor/rack/test/multipart/file1.txt +1 -0
  619. data/vendor/rack/test/multipart/ie +6 -0
  620. data/vendor/rack/test/multipart/nested +10 -0
  621. data/vendor/rack/test/multipart/none +9 -0
  622. data/vendor/rack/test/multipart/semicolon +6 -0
  623. data/vendor/rack/test/multipart/text +10 -0
  624. data/vendor/rack/test/rackup/config.ru +31 -0
  625. data/vendor/rack/test/spec_rack_auth_basic.rb +73 -0
  626. data/vendor/rack/test/spec_rack_auth_digest.rb +226 -0
  627. data/vendor/rack/test/spec_rack_builder.rb +84 -0
  628. data/vendor/rack/test/spec_rack_camping.rb +51 -0
  629. data/vendor/rack/test/spec_rack_cascade.rb +48 -0
  630. data/vendor/rack/test/spec_rack_cgi.rb +89 -0
  631. data/vendor/rack/test/spec_rack_chunked.rb +62 -0
  632. data/vendor/rack/test/spec_rack_commonlogger.rb +61 -0
  633. data/vendor/rack/test/spec_rack_conditionalget.rb +41 -0
  634. data/vendor/rack/test/spec_rack_content_length.rb +43 -0
  635. data/vendor/rack/test/spec_rack_content_type.rb +30 -0
  636. data/vendor/rack/test/spec_rack_deflater.rb +127 -0
  637. data/vendor/rack/test/spec_rack_directory.rb +61 -0
  638. data/vendor/rack/test/spec_rack_fastcgi.rb +89 -0
  639. data/vendor/rack/test/spec_rack_file.rb +75 -0
  640. data/vendor/rack/test/spec_rack_handler.rb +43 -0
  641. data/vendor/rack/test/spec_rack_head.rb +30 -0
  642. data/vendor/rack/test/spec_rack_lint.rb +523 -0
  643. data/vendor/rack/test/spec_rack_lobster.rb +45 -0
  644. data/vendor/rack/test/spec_rack_lock.rb +38 -0
  645. data/vendor/rack/test/spec_rack_methodoverride.rb +60 -0
  646. data/vendor/rack/test/spec_rack_mock.rb +243 -0
  647. data/vendor/rack/test/spec_rack_mongrel.rb +189 -0
  648. data/vendor/rack/test/spec_rack_recursive.rb +77 -0
  649. data/vendor/rack/test/spec_rack_request.rb +510 -0
  650. data/vendor/rack/test/spec_rack_response.rb +218 -0
  651. data/vendor/rack/test/spec_rack_rewindable_input.rb +118 -0
  652. data/vendor/rack/test/spec_rack_session_cookie.rb +82 -0
  653. data/vendor/rack/test/spec_rack_session_memcache.rb +250 -0
  654. data/vendor/rack/test/spec_rack_session_pool.rb +172 -0
  655. data/vendor/rack/test/spec_rack_showexceptions.rb +21 -0
  656. data/vendor/rack/test/spec_rack_showstatus.rb +72 -0
  657. data/vendor/rack/test/spec_rack_static.rb +37 -0
  658. data/vendor/rack/test/spec_rack_thin.rb +91 -0
  659. data/vendor/rack/test/spec_rack_urlmap.rb +185 -0
  660. data/vendor/rack/test/spec_rack_utils.rb +488 -0
  661. data/vendor/rack/test/spec_rack_webrick.rb +130 -0
  662. data/vendor/rack/test/spec_rackup.rb +154 -0
  663. data/vendor/rack/test/testrequest.rb +72 -0
  664. data/vendor/rack/test/unregistered_handler/rack/handler/unregistered.rb +7 -0
  665. data/vendor/rack/test/unregistered_handler/rack/handler/unregistered_long_one.rb +7 -0
  666. data/vendor/rspec/History.rdoc +1510 -0
  667. data/vendor/rspec/License.txt +22 -0
  668. data/vendor/rspec/Manifest.txt +383 -0
  669. data/vendor/rspec/README.rdoc +55 -0
  670. data/vendor/rspec/Rakefile +145 -0
  671. data/vendor/rspec/Ruby1.9.rdoc +31 -0
  672. data/vendor/rspec/TODO.txt +17 -0
  673. data/vendor/rspec/Upgrade.rdoc +199 -0
  674. data/vendor/rspec/bin/autospec +4 -0
  675. data/vendor/rspec/bin/spec +5 -0
  676. data/vendor/rspec/cucumber.yml +5 -0
  677. data/vendor/rspec/examples/failing/README.txt +11 -0
  678. data/vendor/rspec/examples/failing/diffing_spec.rb +36 -0
  679. data/vendor/rspec/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  680. data/vendor/rspec/examples/failing/failure_in_after.rb +10 -0
  681. data/vendor/rspec/examples/failing/failure_in_before.rb +10 -0
  682. data/vendor/rspec/examples/failing/mocking_example.rb +38 -0
  683. data/vendor/rspec/examples/failing/mocking_with_flexmock.rb +26 -0
  684. data/vendor/rspec/examples/failing/mocking_with_mocha.rb +25 -0
  685. data/vendor/rspec/examples/failing/mocking_with_rr.rb +27 -0
  686. data/vendor/rspec/examples/failing/partial_mock_example.rb +18 -0
  687. data/vendor/rspec/examples/failing/pending_example.rb +7 -0
  688. data/vendor/rspec/examples/failing/predicate_example.rb +32 -0
  689. data/vendor/rspec/examples/failing/raising_example.rb +47 -0
  690. data/vendor/rspec/examples/failing/syntax_error_example.rb +7 -0
  691. data/vendor/rspec/examples/failing/team_spec.rb +41 -0
  692. data/vendor/rspec/examples/failing/timeout_behaviour.rb +5 -0
  693. data/vendor/rspec/examples/passing/custom_formatter.rb +11 -0
  694. data/vendor/rspec/examples/passing/custom_matchers.rb +54 -0
  695. data/vendor/rspec/examples/passing/dynamic_spec.rb +7 -0
  696. data/vendor/rspec/examples/passing/file_accessor.rb +18 -0
  697. data/vendor/rspec/examples/passing/file_accessor_spec.rb +37 -0
  698. data/vendor/rspec/examples/passing/filtered_formatter.rb +17 -0
  699. data/vendor/rspec/examples/passing/filtered_formatter_example.rb +31 -0
  700. data/vendor/rspec/examples/passing/greeter_spec.rb +30 -0
  701. data/vendor/rspec/examples/passing/helper_method_example.rb +12 -0
  702. data/vendor/rspec/examples/passing/implicit_docstrings_example.rb +16 -0
  703. data/vendor/rspec/examples/passing/io_processor.rb +8 -0
  704. data/vendor/rspec/examples/passing/io_processor_spec.rb +20 -0
  705. data/vendor/rspec/examples/passing/mocking_example.rb +25 -0
  706. data/vendor/rspec/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  707. data/vendor/rspec/examples/passing/nested_classes_example.rb +35 -0
  708. data/vendor/rspec/examples/passing/options_example.rb +29 -0
  709. data/vendor/rspec/examples/passing/options_formatter.rb +20 -0
  710. data/vendor/rspec/examples/passing/partial_mock_example.rb +27 -0
  711. data/vendor/rspec/examples/passing/pending_example.rb +18 -0
  712. data/vendor/rspec/examples/passing/predicate_example.rb +25 -0
  713. data/vendor/rspec/examples/passing/shared_example_group_example.rb +79 -0
  714. data/vendor/rspec/examples/passing/shared_stack_examples.rb +36 -0
  715. data/vendor/rspec/examples/passing/simple_matcher_example.rb +29 -0
  716. data/vendor/rspec/examples/passing/stack.rb +36 -0
  717. data/vendor/rspec/examples/passing/stack_spec.rb +63 -0
  718. data/vendor/rspec/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  719. data/vendor/rspec/examples/passing/stubbing_example.rb +67 -0
  720. data/vendor/rspec/examples/passing/yielding_example.rb +31 -0
  721. data/vendor/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  722. data/vendor/rspec/features-pending/cli/conditional_exclusion.feature +39 -0
  723. data/vendor/rspec/features-pending/heckle/heckle.feature +56 -0
  724. data/vendor/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  725. data/vendor/rspec/features/command_line/line_number_option.feature +56 -0
  726. data/vendor/rspec/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  727. data/vendor/rspec/features/example_groups/define_example_attribute.feature +41 -0
  728. data/vendor/rspec/features/example_groups/example_group_with_should_methods.feature +29 -0
  729. data/vendor/rspec/features/example_groups/implicit_docstrings.feature +59 -0
  730. data/vendor/rspec/features/example_groups/nested_groups.feature +32 -0
  731. data/vendor/rspec/features/expectations/customized_message.feature +54 -0
  732. data/vendor/rspec/features/expectations/expect_change.feature +65 -0
  733. data/vendor/rspec/features/expectations/expect_error.feature +44 -0
  734. data/vendor/rspec/features/extensions/custom_example_group.feature +19 -0
  735. data/vendor/rspec/features/formatters/custom_formatter.feature +30 -0
  736. data/vendor/rspec/features/interop/examples_and_tests_together.feature +84 -0
  737. data/vendor/rspec/features/interop/rspec_output.feature +25 -0
  738. data/vendor/rspec/features/interop/test_but_not_test_unit.feature +26 -0
  739. data/vendor/rspec/features/interop/test_case_with_should_methods.feature +46 -0
  740. data/vendor/rspec/features/load_paths/add_lib_to_load_path.feature +20 -0
  741. data/vendor/rspec/features/load_paths/add_spec_to_load_path.feature +20 -0
  742. data/vendor/rspec/features/matchers/define_diffable_matcher.feature +26 -0
  743. data/vendor/rspec/features/matchers/define_matcher.feature +179 -0
  744. data/vendor/rspec/features/matchers/define_matcher_outside_rspec.feature +38 -0
  745. data/vendor/rspec/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  746. data/vendor/rspec/features/matchers/define_wrapped_matcher.feature +29 -0
  747. data/vendor/rspec/features/matchers/match_unless_raises.feature +60 -0
  748. data/vendor/rspec/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  749. data/vendor/rspec/features/mock_framework_integration/use_flexmock.feature +27 -0
  750. data/vendor/rspec/features/mock_framework_integration/use_mocha.feature +27 -0
  751. data/vendor/rspec/features/mock_framework_integration/use_rr.feature +27 -0
  752. data/vendor/rspec/features/mocks/block_local_expectations.feature +62 -0
  753. data/vendor/rspec/features/mocks/mix_stubs_and_mocks.feature +22 -0
  754. data/vendor/rspec/features/mocks/stub_implementation.feature +26 -0
  755. data/vendor/rspec/features/pending/pending_examples.feature +81 -0
  756. data/vendor/rspec/features/runner/specify_line_number.feature +32 -0
  757. data/vendor/rspec/features/spec_helper/spec_helper.feature +25 -0
  758. data/vendor/rspec/features/step_definitions/running_rspec_steps.rb +43 -0
  759. data/vendor/rspec/features/subject/explicit_subject.feature +31 -0
  760. data/vendor/rspec/features/subject/implicit_subject.feature +43 -0
  761. data/vendor/rspec/features/support/env.rb +82 -0
  762. data/vendor/rspec/features/support/matchers/smart_match.rb +12 -0
  763. data/vendor/rspec/geminstaller.yml +28 -0
  764. data/vendor/rspec/init.rb +9 -0
  765. data/vendor/rspec/lib/autotest/discover.rb +3 -0
  766. data/vendor/rspec/lib/autotest/rspec.rb +54 -0
  767. data/vendor/rspec/lib/spec.rb +8 -0
  768. data/vendor/rspec/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  769. data/vendor/rspec/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  770. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  771. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  772. data/vendor/rspec/lib/spec/autorun.rb +3 -0
  773. data/vendor/rspec/lib/spec/deprecation.rb +40 -0
  774. data/vendor/rspec/lib/spec/dsl.rb +1 -0
  775. data/vendor/rspec/lib/spec/dsl/main.rb +92 -0
  776. data/vendor/rspec/lib/spec/example.rb +164 -0
  777. data/vendor/rspec/lib/spec/example/args_and_options.rb +27 -0
  778. data/vendor/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
  779. data/vendor/rspec/lib/spec/example/errors.rb +25 -0
  780. data/vendor/rspec/lib/spec/example/example_group.rb +10 -0
  781. data/vendor/rspec/lib/spec/example/example_group_factory.rb +82 -0
  782. data/vendor/rspec/lib/spec/example/example_group_hierarchy.rb +53 -0
  783. data/vendor/rspec/lib/spec/example/example_group_methods.rb +282 -0
  784. data/vendor/rspec/lib/spec/example/example_group_proxy.rb +61 -0
  785. data/vendor/rspec/lib/spec/example/example_matcher.rb +43 -0
  786. data/vendor/rspec/lib/spec/example/example_methods.rb +152 -0
  787. data/vendor/rspec/lib/spec/example/example_proxy.rb +41 -0
  788. data/vendor/rspec/lib/spec/example/module_reopening_fix.rb +43 -0
  789. data/vendor/rspec/lib/spec/example/pending.rb +18 -0
  790. data/vendor/rspec/lib/spec/example/predicate_matchers.rb +46 -0
  791. data/vendor/rspec/lib/spec/example/shared_example_group.rb +59 -0
  792. data/vendor/rspec/lib/spec/example/subject.rb +108 -0
  793. data/vendor/rspec/lib/spec/expectations.rb +35 -0
  794. data/vendor/rspec/lib/spec/expectations/errors.rb +12 -0
  795. data/vendor/rspec/lib/spec/expectations/extensions.rb +1 -0
  796. data/vendor/rspec/lib/spec/expectations/extensions/kernel.rb +52 -0
  797. data/vendor/rspec/lib/spec/expectations/fail_with.rb +45 -0
  798. data/vendor/rspec/lib/spec/expectations/handler.rb +50 -0
  799. data/vendor/rspec/lib/spec/extensions/instance_exec.rb +31 -0
  800. data/vendor/rspec/lib/spec/interop/test.rb +44 -0
  801. data/vendor/rspec/lib/spec/interop/test/unit/autorunner.rb +6 -0
  802. data/vendor/rspec/lib/spec/interop/test/unit/testcase.rb +56 -0
  803. data/vendor/rspec/lib/spec/interop/test/unit/testresult.rb +6 -0
  804. data/vendor/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  805. data/vendor/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  806. data/vendor/rspec/lib/spec/matchers.rb +195 -0
  807. data/vendor/rspec/lib/spec/matchers/be.rb +211 -0
  808. data/vendor/rspec/lib/spec/matchers/be_close.rb +32 -0
  809. data/vendor/rspec/lib/spec/matchers/be_instance_of.rb +26 -0
  810. data/vendor/rspec/lib/spec/matchers/be_kind_of.rb +26 -0
  811. data/vendor/rspec/lib/spec/matchers/change.rb +151 -0
  812. data/vendor/rspec/lib/spec/matchers/compatibility.rb +14 -0
  813. data/vendor/rspec/lib/spec/matchers/dsl.rb +20 -0
  814. data/vendor/rspec/lib/spec/matchers/eql.rb +42 -0
  815. data/vendor/rspec/lib/spec/matchers/equal.rb +53 -0
  816. data/vendor/rspec/lib/spec/matchers/errors.rb +5 -0
  817. data/vendor/rspec/lib/spec/matchers/exist.rb +16 -0
  818. data/vendor/rspec/lib/spec/matchers/generated_descriptions.rb +36 -0
  819. data/vendor/rspec/lib/spec/matchers/has.rb +35 -0
  820. data/vendor/rspec/lib/spec/matchers/have.rb +152 -0
  821. data/vendor/rspec/lib/spec/matchers/include.rb +44 -0
  822. data/vendor/rspec/lib/spec/matchers/match.rb +21 -0
  823. data/vendor/rspec/lib/spec/matchers/match_array.rb +71 -0
  824. data/vendor/rspec/lib/spec/matchers/matcher.rb +102 -0
  825. data/vendor/rspec/lib/spec/matchers/method_missing.rb +9 -0
  826. data/vendor/rspec/lib/spec/matchers/operator_matcher.rb +78 -0
  827. data/vendor/rspec/lib/spec/matchers/pretty.rb +37 -0
  828. data/vendor/rspec/lib/spec/matchers/raise_error.rb +129 -0
  829. data/vendor/rspec/lib/spec/matchers/respond_to.rb +71 -0
  830. data/vendor/rspec/lib/spec/matchers/satisfy.rb +47 -0
  831. data/vendor/rspec/lib/spec/matchers/simple_matcher.rb +133 -0
  832. data/vendor/rspec/lib/spec/matchers/throw_symbol.rb +104 -0
  833. data/vendor/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
  834. data/vendor/rspec/lib/spec/mocks.rb +200 -0
  835. data/vendor/rspec/lib/spec/mocks/argument_expectation.rb +51 -0
  836. data/vendor/rspec/lib/spec/mocks/argument_matchers.rb +237 -0
  837. data/vendor/rspec/lib/spec/mocks/error_generator.rb +92 -0
  838. data/vendor/rspec/lib/spec/mocks/errors.rb +10 -0
  839. data/vendor/rspec/lib/spec/mocks/example_methods.rb +69 -0
  840. data/vendor/rspec/lib/spec/mocks/extensions.rb +1 -0
  841. data/vendor/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  842. data/vendor/rspec/lib/spec/mocks/framework.rb +15 -0
  843. data/vendor/rspec/lib/spec/mocks/message_expectation.rb +343 -0
  844. data/vendor/rspec/lib/spec/mocks/methods.rb +89 -0
  845. data/vendor/rspec/lib/spec/mocks/mock.rb +71 -0
  846. data/vendor/rspec/lib/spec/mocks/order_group.rb +29 -0
  847. data/vendor/rspec/lib/spec/mocks/proxy.rb +245 -0
  848. data/vendor/rspec/lib/spec/mocks/space.rb +28 -0
  849. data/vendor/rspec/lib/spec/rake/spectask.rb +230 -0
  850. data/vendor/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  851. data/vendor/rspec/lib/spec/ruby.rb +9 -0
  852. data/vendor/rspec/lib/spec/runner.rb +66 -0
  853. data/vendor/rspec/lib/spec/runner/backtrace_tweaker.rb +77 -0
  854. data/vendor/rspec/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  855. data/vendor/rspec/lib/spec/runner/command_line.rb +15 -0
  856. data/vendor/rspec/lib/spec/runner/configuration.rb +194 -0
  857. data/vendor/rspec/lib/spec/runner/differs/default.rb +93 -0
  858. data/vendor/rspec/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  859. data/vendor/rspec/lib/spec/runner/drb_command_line.rb +26 -0
  860. data/vendor/rspec/lib/spec/runner/example_group_runner.rb +58 -0
  861. data/vendor/rspec/lib/spec/runner/extensions/kernel.rb +9 -0
  862. data/vendor/rspec/lib/spec/runner/formatter/base_formatter.rb +139 -0
  863. data/vendor/rspec/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  864. data/vendor/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  865. data/vendor/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  866. data/vendor/rspec/lib/spec/runner/formatter/html_formatter.rb +338 -0
  867. data/vendor/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  868. data/vendor/rspec/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  869. data/vendor/rspec/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  870. data/vendor/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  871. data/vendor/rspec/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  872. data/vendor/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  873. data/vendor/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  874. data/vendor/rspec/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  875. data/vendor/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  876. data/vendor/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  877. data/vendor/rspec/lib/spec/runner/line_number_query.rb +78 -0
  878. data/vendor/rspec/lib/spec/runner/option_parser.rb +223 -0
  879. data/vendor/rspec/lib/spec/runner/options.rb +400 -0
  880. data/vendor/rspec/lib/spec/runner/reporter.rb +171 -0
  881. data/vendor/rspec/lib/spec/stubs/cucumber.rb +5 -0
  882. data/vendor/rspec/lib/spec/test/unit.rb +10 -0
  883. data/vendor/rspec/lib/spec/version.rb +14 -0
  884. data/vendor/rspec/resources/helpers/cmdline.rb +8 -0
  885. data/vendor/rspec/resources/rake/examples.rake +7 -0
  886. data/vendor/rspec/resources/rake/examples_with_rcov.rake +9 -0
  887. data/vendor/rspec/resources/rake/failing_examples_with_html.rake +9 -0
  888. data/vendor/rspec/resources/rake/verify_rcov.rake +7 -0
  889. data/vendor/rspec/spec/README.jruby +15 -0
  890. data/vendor/rspec/spec/autotest/autotest_helper.rb +8 -0
  891. data/vendor/rspec/spec/autotest/autotest_matchers.rb +38 -0
  892. data/vendor/rspec/spec/autotest/discover_spec.rb +8 -0
  893. data/vendor/rspec/spec/autotest/failed_results_re_spec.rb +31 -0
  894. data/vendor/rspec/spec/autotest/rspec_spec.rb +126 -0
  895. data/vendor/rspec/spec/ruby_forker.rb +13 -0
  896. data/vendor/rspec/spec/spec.opts +6 -0
  897. data/vendor/rspec/spec/spec/dsl/main_spec.rb +95 -0
  898. data/vendor/rspec/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  899. data/vendor/rspec/spec/spec/example/example_group_factory_spec.rb +180 -0
  900. data/vendor/rspec/spec/spec/example/example_group_methods_spec.rb +759 -0
  901. data/vendor/rspec/spec/spec/example/example_group_proxy_spec.rb +107 -0
  902. data/vendor/rspec/spec/spec/example/example_group_spec.rb +643 -0
  903. data/vendor/rspec/spec/spec/example/example_matcher_spec.rb +86 -0
  904. data/vendor/rspec/spec/spec/example/example_methods_spec.rb +162 -0
  905. data/vendor/rspec/spec/spec/example/example_proxy_spec.rb +57 -0
  906. data/vendor/rspec/spec/spec/example/helper_method_spec.rb +24 -0
  907. data/vendor/rspec/spec/spec/example/nested_example_group_spec.rb +71 -0
  908. data/vendor/rspec/spec/spec/example/pending_module_spec.rb +58 -0
  909. data/vendor/rspec/spec/spec/example/predicate_matcher_spec.rb +41 -0
  910. data/vendor/rspec/spec/spec/example/shared_example_group_spec.rb +257 -0
  911. data/vendor/rspec/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  912. data/vendor/rspec/spec/spec/example/subject_spec.rb +103 -0
  913. data/vendor/rspec/spec/spec/expectations/differs/default_spec.rb +194 -0
  914. data/vendor/rspec/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  915. data/vendor/rspec/spec/spec/expectations/fail_with_spec.rb +96 -0
  916. data/vendor/rspec/spec/spec/expectations/handler_spec.rb +206 -0
  917. data/vendor/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  918. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  919. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  920. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  921. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  922. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  923. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  924. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  925. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  926. data/vendor/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  927. data/vendor/rspec/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  928. data/vendor/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  929. data/vendor/rspec/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  930. data/vendor/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  931. data/vendor/rspec/spec/spec/matchers/be_close_spec.rb +50 -0
  932. data/vendor/rspec/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  933. data/vendor/rspec/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  934. data/vendor/rspec/spec/spec/matchers/be_spec.rb +419 -0
  935. data/vendor/rspec/spec/spec/matchers/change_spec.rb +349 -0
  936. data/vendor/rspec/spec/spec/matchers/compatibility_spec.rb +28 -0
  937. data/vendor/rspec/spec/spec/matchers/description_generation_spec.rb +160 -0
  938. data/vendor/rspec/spec/spec/matchers/dsl_spec.rb +34 -0
  939. data/vendor/rspec/spec/spec/matchers/eql_spec.rb +33 -0
  940. data/vendor/rspec/spec/spec/matchers/equal_spec.rb +57 -0
  941. data/vendor/rspec/spec/spec/matchers/exist_spec.rb +65 -0
  942. data/vendor/rspec/spec/spec/matchers/has_spec.rb +190 -0
  943. data/vendor/rspec/spec/spec/matchers/have_spec.rb +396 -0
  944. data/vendor/rspec/spec/spec/matchers/include_spec.rb +88 -0
  945. data/vendor/rspec/spec/spec/matchers/match_array_spec.rb +108 -0
  946. data/vendor/rspec/spec/spec/matchers/match_spec.rb +57 -0
  947. data/vendor/rspec/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  948. data/vendor/rspec/spec/spec/matchers/matcher_spec.rb +273 -0
  949. data/vendor/rspec/spec/spec/matchers/matchers_spec.rb +2 -0
  950. data/vendor/rspec/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  951. data/vendor/rspec/spec/spec/matchers/raise_error_spec.rb +333 -0
  952. data/vendor/rspec/spec/spec/matchers/respond_to_spec.rb +116 -0
  953. data/vendor/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  954. data/vendor/rspec/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  955. data/vendor/rspec/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  956. data/vendor/rspec/spec/spec/mocks/and_yield_spec.rb +117 -0
  957. data/vendor/rspec/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  958. data/vendor/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  959. data/vendor/rspec/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  960. data/vendor/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  961. data/vendor/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  962. data/vendor/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  963. data/vendor/rspec/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  964. data/vendor/rspec/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  965. data/vendor/rspec/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  966. data/vendor/rspec/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  967. data/vendor/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  968. data/vendor/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  969. data/vendor/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  970. data/vendor/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  971. data/vendor/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  972. data/vendor/rspec/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  973. data/vendor/rspec/spec/spec/mocks/double_spec.rb +12 -0
  974. data/vendor/rspec/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  975. data/vendor/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  976. data/vendor/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  977. data/vendor/rspec/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  978. data/vendor/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  979. data/vendor/rspec/spec/spec/mocks/mock_spec.rb +594 -0
  980. data/vendor/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  981. data/vendor/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  982. data/vendor/rspec/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  983. data/vendor/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  984. data/vendor/rspec/spec/spec/mocks/options_hash_spec.rb +35 -0
  985. data/vendor/rspec/spec/spec/mocks/partial_mock_spec.rb +164 -0
  986. data/vendor/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  987. data/vendor/rspec/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  988. data/vendor/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  989. data/vendor/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  990. data/vendor/rspec/spec/spec/mocks/stub_chain_spec.rb +42 -0
  991. data/vendor/rspec/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  992. data/vendor/rspec/spec/spec/mocks/stub_spec.rb +203 -0
  993. data/vendor/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  994. data/vendor/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  995. data/vendor/rspec/spec/spec/mocks/unstub_spec.rb +127 -0
  996. data/vendor/rspec/spec/spec/package/bin_spec_spec.rb +16 -0
  997. data/vendor/rspec/spec/spec/rake/spectask_spec.rb +150 -0
  998. data/vendor/rspec/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  999. data/vendor/rspec/spec/spec/runner/command_line_spec.rb +162 -0
  1000. data/vendor/rspec/spec/spec/runner/configuration_spec.rb +320 -0
  1001. data/vendor/rspec/spec/spec/runner/drb_command_line_spec.rb +107 -0
  1002. data/{spec/rango/helpers/spec/fixture/app/controllers/bound_text_field_spec.rb → vendor/rspec/spec/spec/runner/empty_file.txt} +0 -0
  1003. data/vendor/rspec/spec/spec/runner/example_group_runner_spec.rb +26 -0
  1004. data/vendor/rspec/spec/spec/runner/examples.txt +2 -0
  1005. data/vendor/rspec/spec/spec/runner/failed.txt +3 -0
  1006. data/vendor/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  1007. data/vendor/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  1008. data/vendor/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  1009. data/vendor/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  1010. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  1011. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  1012. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  1013. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  1014. data/vendor/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  1015. data/vendor/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  1016. data/vendor/rspec/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  1017. data/vendor/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  1018. data/vendor/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  1019. data/vendor/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  1020. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  1021. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  1022. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  1023. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  1024. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  1025. data/vendor/rspec/spec/spec/runner/heckle_runner_spec.rb +78 -0
  1026. data/vendor/rspec/spec/spec/runner/heckler_spec.rb +20 -0
  1027. data/vendor/rspec/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  1028. data/vendor/rspec/spec/spec/runner/line_number_query_spec.rb +129 -0
  1029. data/vendor/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  1030. data/vendor/rspec/spec/spec/runner/option_parser_spec.rb +545 -0
  1031. data/vendor/rspec/spec/spec/runner/options_spec.rb +547 -0
  1032. data/vendor/rspec/spec/spec/runner/output_one_time_fixture.rb +7 -0
  1033. data/vendor/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  1034. data/vendor/rspec/spec/spec/runner/output_one_time_spec.rb +15 -0
  1035. data/vendor/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +123 -0
  1036. data/vendor/rspec/spec/spec/runner/reporter_spec.rb +244 -0
  1037. data/{spec/rango/helpers/spec/fixture/app/controllers/button_spec.rb → vendor/rspec/spec/spec/runner/resources/a_bar.rb} +0 -0
  1038. data/{spec/rango/helpers/spec/fixture/app/controllers/check_box_spec.rb → vendor/rspec/spec/spec/runner/resources/a_foo.rb} +0 -0
  1039. data/vendor/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
  1040. data/vendor/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  1041. data/vendor/rspec/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  1042. data/vendor/rspec/spec/spec/runner/spec.opts +2 -0
  1043. data/vendor/rspec/spec/spec/runner/spec_drb.opts +2 -0
  1044. data/vendor/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  1045. data/vendor/rspec/spec/spec/runner_spec.rb +13 -0
  1046. data/vendor/rspec/spec/spec_helper.rb +112 -0
  1047. data/vendor/rspec/spec/support/macros.rb +29 -0
  1048. data/vendor/rspec/spec/support/spec_classes.rb +133 -0
  1049. data/vendor/rubyexts/CHANGELOG +2 -0
  1050. data/vendor/rubyexts/LICENSE +20 -0
  1051. data/{spec/rango/helpers/spec/fixture/app/controllers/custom_builder_spec.rb → vendor/rubyexts/README.textile} +0 -0
  1052. data/vendor/rubyexts/Rakefile +79 -0
  1053. data/vendor/rubyexts/TODO.txt +6 -0
  1054. data/vendor/rubyexts/lib/rubyexts.rb +102 -0
  1055. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/array.rb +0 -0
  1056. data/vendor/rubyexts/lib/rubyexts/attribute.rb +151 -0
  1057. data/vendor/rubyexts/lib/rubyexts/capture_io.rb +32 -0
  1058. data/vendor/rubyexts/lib/rubyexts/class.rb +177 -0
  1059. data/vendor/rubyexts/lib/rubyexts/colored_string.rb +103 -0
  1060. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/enumerable.rb +0 -0
  1061. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/file.rb +0 -0
  1062. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/hash.rb +0 -0
  1063. data/vendor/rubyexts/lib/rubyexts/kernel.rb +91 -0
  1064. data/vendor/rubyexts/lib/rubyexts/module.rb +53 -0
  1065. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/object.rb +0 -0
  1066. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/object_space.rb +0 -0
  1067. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/os.rb +0 -0
  1068. data/vendor/rubyexts/lib/rubyexts/platform.rb +27 -0
  1069. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/random.rb +0 -0
  1070. data/vendor/rubyexts/lib/rubyexts/string.rb +92 -0
  1071. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/time.rb +0 -0
  1072. data/{lib/rango/ext → vendor/rubyexts/lib/rubyexts}/time_dsl.rb +0 -0
  1073. data/vendor/rubyexts/lib/rubyexts/try_dup.rb +43 -0
  1074. data/vendor/rubyexts/lib/rubyexts/unique_array.rb +16 -0
  1075. data/vendor/rubyexts/rubyexts.gemspec +36 -0
  1076. data/vendor/rubyexts/script/spec +12 -0
  1077. data/vendor/rubyexts/spec/rubyexts/array_spec.rb +19 -0
  1078. data/vendor/rubyexts/spec/rubyexts/attribute_spec.rb +37 -0
  1079. data/vendor/rubyexts/spec/rubyexts/class_spec.rb +1 -0
  1080. data/{spec/rango/helpers/spec/fixture/app/controllers/delete_button_spec.rb → vendor/rubyexts/spec/rubyexts/cli_spec.rb} +0 -0
  1081. data/vendor/rubyexts/spec/rubyexts/colored_string_spec.rb +9 -0
  1082. data/vendor/rubyexts/spec/rubyexts/enumerable_spec.rb +52 -0
  1083. data/vendor/rubyexts/spec/rubyexts/file_spec.rb +78 -0
  1084. data/vendor/rubyexts/spec/rubyexts/hash_spec.rb +91 -0
  1085. data/vendor/rubyexts/spec/rubyexts/kernel_spec.rb +9 -0
  1086. data/{spec/rango/helpers/spec/fixture/app/controllers/exceptions_spec.rb → vendor/rubyexts/spec/rubyexts/module_spec.rb} +0 -0
  1087. data/vendor/rubyexts/spec/rubyexts/object_space_spec.rb +17 -0
  1088. data/vendor/rubyexts/spec/rubyexts/object_spec.rb +57 -0
  1089. data/vendor/rubyexts/spec/rubyexts/os_spec.rb +121 -0
  1090. data/{spec/rango/helpers/spec/fixture/app/controllers/field_set_spec.rb → vendor/rubyexts/spec/rubyexts/platform_spec.rb} +0 -0
  1091. data/vendor/rubyexts/spec/rubyexts/random_spec.rb +31 -0
  1092. data/vendor/rubyexts/spec/rubyexts/string_spec.rb +23 -0
  1093. data/vendor/rubyexts/spec/rubyexts/time_dsl_spec.rb +88 -0
  1094. data/vendor/rubyexts/spec/rubyexts/time_spec.rb +11 -0
  1095. data/{spec/rango/helpers/spec/fixture/app/controllers/fields_for_spec.rb → vendor/rubyexts/spec/rubyexts/unique_array_spec.rb} +0 -0
  1096. data/vendor/rubyexts/spec/rubyexts_spec.rb +182 -0
  1097. data/vendor/rubyexts/spec/spec.opts +5 -0
  1098. data/vendor/rubyexts/spec/spec_helper.rb +16 -0
  1099. data/vendor/simple-templater/CHANGELOG +10 -0
  1100. data/vendor/simple-templater/LICENSE +20 -0
  1101. data/vendor/simple-templater/README.textile +136 -0
  1102. data/vendor/simple-templater/Rakefile +61 -0
  1103. data/vendor/simple-templater/TODO.txt +15 -0
  1104. data/vendor/simple-templater/bin/simple-templater +66 -0
  1105. data/vendor/simple-templater/deps.rip +7 -0
  1106. data/vendor/simple-templater/lib/simple-templater.rb +97 -0
  1107. data/vendor/simple-templater/lib/simple-templater/argv_parsing.rb +27 -0
  1108. data/vendor/simple-templater/lib/simple-templater/builder.rb +134 -0
  1109. data/vendor/simple-templater/lib/simple-templater/discoverer.rb +20 -0
  1110. data/vendor/simple-templater/lib/simple-templater/discoverers/gems.rb +79 -0
  1111. data/vendor/simple-templater/lib/simple-templater/discoverers/plain.rb +1 -0
  1112. data/vendor/simple-templater/lib/simple-templater/discoverers/rip.rb +1 -0
  1113. data/vendor/simple-templater/lib/simple-templater/dsl.rb +27 -0
  1114. data/vendor/simple-templater/lib/simple-templater/generator.rb +129 -0
  1115. data/vendor/simple-templater/lib/simple-templater/generator_set.rb +45 -0
  1116. data/vendor/simple-templater/lib/simple-templater/helpers.rb +34 -0
  1117. data/vendor/simple-templater/lib/simple-templater/hooks/hook.rb +76 -0
  1118. data/vendor/simple-templater/lib/simple-templater/hooks/postprocess/git_repository.rb +25 -0
  1119. data/vendor/simple-templater/lib/simple-templater/hooks/postprocess/github.rb +20 -0
  1120. data/vendor/simple-templater/lib/simple-templater/hooks/preprocess/full_name.rb +17 -0
  1121. data/vendor/simple-templater/lib/simple-templater/hooks/preprocess/github.rb +25 -0
  1122. data/vendor/simple-templater/script/spec +14 -0
  1123. data/vendor/simple-templater/simple-templater.gemspec +45 -0
  1124. data/vendor/simple-templater/simple-templater.scope +6 -0
  1125. data/vendor/simple-templater/spec/simple-templater/argv_parsing_spec.rb +41 -0
  1126. data/{features/shared/given_steps.rb → vendor/simple-templater/spec/simple-templater/builder_spec.rb} +0 -0
  1127. data/{spec/rango/helpers/spec/fixture/app/controllers/file_field_spec.rb → vendor/simple-templater/spec/simple-templater/discoverers/gems_spec.rb} +0 -0
  1128. data/{spec/rango/helpers/spec/fixture/app/controllers/foo_spec.rb → vendor/simple-templater/spec/simple-templater/discoverers/plain_spec.rb} +0 -0
  1129. data/{spec/rango/helpers/spec/fixture/app/controllers/form_for_spec.rb → vendor/simple-templater/spec/simple-templater/discoverers/rip_spec.rb} +0 -0
  1130. data/vendor/simple-templater/spec/simple-templater/generator_set_spec.rb +55 -0
  1131. data/vendor/simple-templater/spec/simple-templater/generator_spec.rb +30 -0
  1132. data/vendor/simple-templater/spec/simple-templater/helpers_spec.rb +81 -0
  1133. data/vendor/simple-templater/spec/simple-templater/hooks/hook_spec.rb +100 -0
  1134. data/vendor/simple-templater/spec/simple-templater/hooks/postprocess/git_repository_spec.rb +25 -0
  1135. data/vendor/simple-templater/spec/simple-templater/hooks/postprocess/github_spec.rb +8 -0
  1136. data/vendor/simple-templater/spec/simple-templater_spec.rb +112 -0
  1137. data/vendor/simple-templater/spec/spec.opts +5 -0
  1138. data/vendor/simple-templater/spec/spec_helper.rb +19 -0
  1139. data/vendor/simple-templater/spec/stubs/gems/cache/test_generator-0.0.1.gem +0 -0
  1140. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/simple-generator.scope +8 -0
  1141. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/simple-templater.scope +8 -0
  1142. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/%name%1_test.rb.rbt +1 -0
  1143. data/{spec/rango/helpers/spec/fixture/app/controllers/form_spec.rb → vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/%name%_test.rb} +0 -0
  1144. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/README.textile +3 -0
  1145. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/script.rb.rbt +1 -0
  1146. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/%name%1_test.rb.rbt +1 -0
  1147. data/{spec/rango/helpers/spec/fixture/app/controllers/hacker_spec.rb → vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/%name%_test.rb} +0 -0
  1148. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/README.textile +3 -0
  1149. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/script.rb.rbt +1 -0
  1150. data/vendor/simple-templater/spec/stubs/gems/gems/test_generator-0.0.1/test_generator.gemspec +19 -0
  1151. data/vendor/simple-templater/spec/stubs/gems/specifications/test_generator-0.0.1.gemspec +28 -0
  1152. data/vendor/simple-templater/spec/stubs/simple-templater.scope +8 -0
  1153. data/vendor/simple-templater/spec/stubs/test_generator/simple-templater.scope +8 -0
  1154. data/vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/%name%1_test.rb.rbt +1 -0
  1155. data/{spec/rango/helpers/spec/fixture/app/controllers/hidden_field_spec.rb → vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/%name%_test.rb} +0 -0
  1156. data/vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/README.textile +3 -0
  1157. data/vendor/simple-templater/spec/stubs/test_generator/stubs/test/content/script.rb.rbt +1 -0
  1158. data/vendor/simple-templater/spec/stubs/test_generator/test_generator-0.0.1.gem +0 -0
  1159. data/vendor/simple-templater/spec/stubs/test_generator/test_generator.gemspec +19 -0
  1160. data/vendor/simple-templater/stubs/project/content/%name%.gemspec.rbt +37 -0
  1161. data/vendor/simple-templater/stubs/project/content/CHANGELOG +2 -0
  1162. data/vendor/simple-templater/stubs/project/content/LICENSE.rbt +20 -0
  1163. data/vendor/simple-templater/stubs/project/content/README.textile.rbt +19 -0
  1164. data/vendor/simple-templater/stubs/project/content/Rakefile +39 -0
  1165. data/{spec/rango/helpers/spec/fixture/app/controllers/label_spec.rb → vendor/simple-templater/stubs/project/content/TODO.txt} +0 -0
  1166. data/vendor/simple-templater/stubs/project/content/bin/%name%.rbt +14 -0
  1167. data/vendor/simple-templater/stubs/project/content/deps.rip +5 -0
  1168. data/vendor/simple-templater/stubs/project/content/lib/%name%.rb.rbt +5 -0
  1169. data/vendor/simple-templater/stubs/project/content/spec/%name%_spec.rb.rbt +10 -0
  1170. data/vendor/simple-templater/stubs/project/content/spec/spec.opts +5 -0
  1171. data/vendor/simple-templater/stubs/project/content/spec/spec_helper.rb.rbt +11 -0
  1172. data/vendor/simple-templater/stubs/project/metadata.yml +3 -0
  1173. data/vendor/simple-templater/stubs/project/postprocess.rb +13 -0
  1174. data/vendor/simple-templater/stubs/project/setup.rb +13 -0
  1175. data/vendor/simple-templater/stubs/stub/content/metadata.yml.rbt +3 -0
  1176. data/vendor/simple-templater/stubs/stub/content/postprocess.rb +11 -0
  1177. data/vendor/simple-templater/stubs/stub/content/setup.rb +10 -0
  1178. data/vendor/simple-templater/stubs/stub/metadata.yml +3 -0
  1179. data/vendor/simple-templater/stubs/stub/postprocess.rb +9 -0
  1180. data/vendor/simple-templater/stubs/stub/setup.rb +15 -0
  1181. data/vendor/simple-templater/vendor/abstract/ChangeLog +3 -0
  1182. data/vendor/simple-templater/vendor/abstract/README.txt +57 -0
  1183. data/vendor/simple-templater/vendor/abstract/abstract.gemspec +48 -0
  1184. data/vendor/simple-templater/vendor/abstract/doc/classes/Kernel.html +134 -0
  1185. data/vendor/simple-templater/vendor/abstract/doc/classes/Kernel.src/M000002.html +24 -0
  1186. data/vendor/simple-templater/vendor/abstract/doc/classes/Module.html +140 -0
  1187. data/vendor/simple-templater/vendor/abstract/doc/classes/Module.src/M000001.html +20 -0
  1188. data/vendor/simple-templater/vendor/abstract/doc/created.rid +1 -0
  1189. data/vendor/simple-templater/vendor/abstract/doc/files/README_txt.html +173 -0
  1190. data/vendor/simple-templater/vendor/abstract/doc/files/lib/abstract_rb.html +137 -0
  1191. data/vendor/simple-templater/vendor/abstract/doc/fr_class_index.html +28 -0
  1192. data/vendor/simple-templater/vendor/abstract/doc/fr_file_index.html +28 -0
  1193. data/vendor/simple-templater/vendor/abstract/doc/fr_method_index.html +28 -0
  1194. data/vendor/simple-templater/vendor/abstract/doc/index.html +24 -0
  1195. data/vendor/simple-templater/vendor/abstract/doc/rdoc-style.css +208 -0
  1196. data/vendor/simple-templater/vendor/abstract/lib/abstract.rb +75 -0
  1197. data/vendor/simple-templater/vendor/abstract/setup.rb +1331 -0
  1198. data/vendor/simple-templater/vendor/abstract/test/test.rb +91 -0
  1199. data/vendor/thor/CHANGELOG.rdoc +82 -0
  1200. data/vendor/thor/LICENSE +20 -0
  1201. data/vendor/thor/README.rdoc +234 -0
  1202. data/vendor/thor/Thorfile +63 -0
  1203. data/vendor/thor/bin/rake2thor +86 -0
  1204. data/vendor/thor/bin/thor +7 -0
  1205. data/vendor/thor/lib/thor.rb +242 -0
  1206. data/vendor/thor/lib/thor/actions.rb +273 -0
  1207. data/vendor/thor/lib/thor/actions/create_file.rb +103 -0
  1208. data/vendor/thor/lib/thor/actions/directory.rb +93 -0
  1209. data/vendor/thor/lib/thor/actions/empty_directory.rb +134 -0
  1210. data/vendor/thor/lib/thor/actions/file_manipulation.rb +219 -0
  1211. data/vendor/thor/lib/thor/actions/inject_into_file.rb +101 -0
  1212. data/vendor/thor/lib/thor/base.rb +517 -0
  1213. data/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +75 -0
  1214. data/vendor/thor/lib/thor/core_ext/ordered_hash.rb +100 -0
  1215. data/vendor/thor/lib/thor/error.rb +27 -0
  1216. data/vendor/thor/lib/thor/group.rb +263 -0
  1217. data/vendor/thor/lib/thor/invocation.rb +178 -0
  1218. data/vendor/thor/lib/thor/parser.rb +4 -0
  1219. data/vendor/thor/lib/thor/parser/argument.rb +67 -0
  1220. data/vendor/thor/lib/thor/parser/arguments.rb +145 -0
  1221. data/vendor/thor/lib/thor/parser/option.rb +132 -0
  1222. data/vendor/thor/lib/thor/parser/options.rb +142 -0
  1223. data/vendor/thor/lib/thor/rake_compat.rb +66 -0
  1224. data/vendor/thor/lib/thor/runner.rb +299 -0
  1225. data/vendor/thor/lib/thor/shell.rb +78 -0
  1226. data/vendor/thor/lib/thor/shell/basic.rb +219 -0
  1227. data/vendor/thor/lib/thor/shell/color.rb +108 -0
  1228. data/vendor/thor/lib/thor/task.rb +122 -0
  1229. data/vendor/thor/lib/thor/util.rb +251 -0
  1230. data/vendor/thor/lib/thor/version.rb +3 -0
  1231. data/vendor/thor/spec/actions/create_file_spec.rb +170 -0
  1232. data/vendor/thor/spec/actions/directory_spec.rb +130 -0
  1233. data/vendor/thor/spec/actions/empty_directory_spec.rb +91 -0
  1234. data/vendor/thor/spec/actions/file_manipulation_spec.rb +249 -0
  1235. data/vendor/thor/spec/actions/inject_into_file_spec.rb +106 -0
  1236. data/vendor/thor/spec/actions_spec.rb +291 -0
  1237. data/vendor/thor/spec/base_spec.rb +236 -0
  1238. data/vendor/thor/spec/core_ext/hash_with_indifferent_access_spec.rb +43 -0
  1239. data/vendor/thor/spec/core_ext/ordered_hash_spec.rb +115 -0
  1240. data/vendor/thor/spec/fixtures/application.rb +2 -0
  1241. data/vendor/thor/spec/fixtures/bundle/execute.rb +6 -0
  1242. data/vendor/thor/spec/fixtures/bundle/main.thor +1 -0
  1243. data/vendor/thor/spec/fixtures/doc/%file_name%.rb.tt +1 -0
  1244. data/vendor/thor/spec/fixtures/doc/README +3 -0
  1245. data/vendor/thor/spec/fixtures/doc/config.rb +1 -0
  1246. data/vendor/thor/spec/fixtures/group.thor +83 -0
  1247. data/vendor/thor/spec/fixtures/invoke.thor +112 -0
  1248. data/vendor/thor/spec/fixtures/script.thor +126 -0
  1249. data/vendor/thor/spec/fixtures/task.thor +10 -0
  1250. data/vendor/thor/spec/group_spec.rb +177 -0
  1251. data/vendor/thor/spec/invocation_spec.rb +107 -0
  1252. data/vendor/thor/spec/parser/argument_spec.rb +47 -0
  1253. data/vendor/thor/spec/parser/arguments_spec.rb +64 -0
  1254. data/vendor/thor/spec/parser/option_spec.rb +212 -0
  1255. data/vendor/thor/spec/parser/options_spec.rb +255 -0
  1256. data/vendor/thor/spec/rake_compat_spec.rb +68 -0
  1257. data/vendor/thor/spec/runner_spec.rb +204 -0
  1258. data/vendor/thor/spec/shell/basic_spec.rb +211 -0
  1259. data/vendor/thor/spec/shell/color_spec.rb +41 -0
  1260. data/vendor/thor/spec/shell_spec.rb +25 -0
  1261. data/vendor/thor/spec/spec.opts +1 -0
  1262. data/vendor/thor/spec/spec_helper.rb +52 -0
  1263. data/vendor/thor/spec/task_spec.rb +88 -0
  1264. data/vendor/thor/spec/thor_spec.rb +234 -0
  1265. data/vendor/thor/spec/util_spec.rb +196 -0
  1266. metadata +1208 -899
  1267. data/cucumber.yml +0 -1
  1268. data/doc/0.0.3/Array.html +0 -354
  1269. data/doc/0.0.3/AttributeMixin.html +0 -697
  1270. data/doc/0.0.3/Class.html +0 -102
  1271. data/doc/0.0.3/ColoredString.html +0 -476
  1272. data/doc/0.0.3/Enumerable.html +0 -256
  1273. data/doc/0.0.3/File.html +0 -909
  1274. data/doc/0.0.3/Hash.html +0 -1586
  1275. data/doc/0.0.3/Kernel.html +0 -956
  1276. data/doc/0.0.3/OS.html +0 -740
  1277. data/doc/0.0.3/Object.html +0 -466
  1278. data/doc/0.0.3/ObjectSpace.html +0 -184
  1279. data/doc/0.0.3/Path.html +0 -2499
  1280. data/doc/0.0.3/Range.html +0 -190
  1281. data/doc/0.0.3/Rango.html +0 -379
  1282. data/doc/0.0.3/Rango/ApplicationMixin.html +0 -396
  1283. data/doc/0.0.3/Rango/Bundling.html +0 -23
  1284. data/doc/0.0.3/Rango/Bundling/RequireStrategy.html +0 -283
  1285. data/doc/0.0.3/Rango/Bundling/Strategy.html +0 -703
  1286. data/doc/0.0.3/Rango/CLI.html +0 -23
  1287. data/doc/0.0.3/Rango/CLI/Generator.html +0 -762
  1288. data/doc/0.0.3/Rango/CLI/Templater.html +0 -258
  1289. data/doc/0.0.3/Rango/CallableStrategy.html +0 -300
  1290. data/doc/0.0.3/Rango/Chainable.html +0 -181
  1291. data/doc/0.0.3/Rango/Configurable.html +0 -199
  1292. data/doc/0.0.3/Rango/Controller.html +0 -962
  1293. data/doc/0.0.3/Rango/ControllerMixin.html +0 -860
  1294. data/doc/0.0.3/Rango/ControllerStrategy.html +0 -264
  1295. data/doc/0.0.3/Rango/DependencyStrategy.html +0 -116
  1296. data/doc/0.0.3/Rango/Dispatcher.html +0 -305
  1297. data/doc/0.0.3/Rango/Form.html +0 -162
  1298. data/doc/0.0.3/Rango/GemDependencyStrategy.html +0 -210
  1299. data/doc/0.0.3/Rango/Generator.html +0 -93
  1300. data/doc/0.0.3/Rango/GenericViews.html +0 -128
  1301. data/doc/0.0.3/Rango/GitDependencyStrategy.html +0 -224
  1302. data/doc/0.0.3/Rango/GithubDependencyStrategy.html +0 -118
  1303. data/doc/0.0.3/Rango/Handler.html +0 -474
  1304. data/doc/0.0.3/Rango/Helpers.html +0 -1335
  1305. data/doc/0.0.3/Rango/Hookable.html +0 -202
  1306. data/doc/0.0.3/Rango/ImportMixin.html +0 -755
  1307. data/doc/0.0.3/Rango/Logger.html +0 -920
  1308. data/doc/0.0.3/Rango/Mini.html +0 -117
  1309. data/doc/0.0.3/Rango/ModelForm.html +0 -42
  1310. data/doc/0.0.3/Rango/Project.html +0 -516
  1311. data/doc/0.0.3/Rango/RenderMixin.html +0 -23
  1312. data/doc/0.0.3/Rango/Request.html +0 -1177
  1313. data/doc/0.0.3/Rango/Route.html +0 -751
  1314. data/doc/0.0.3/Rango/Router.html +0 -42
  1315. data/doc/0.0.3/Rango/Router/Dispatcher.html +0 -311
  1316. data/doc/0.0.3/Rango/RouterStrategy.html +0 -258
  1317. data/doc/0.0.3/Rango/Session.html +0 -23
  1318. data/doc/0.0.3/Rango/Settings.html +0 -23
  1319. data/doc/0.0.3/Rango/Settings/Erubis.html +0 -23
  1320. data/doc/0.0.3/Rango/Settings/Framework.html +0 -254
  1321. data/doc/0.0.3/Rango/Settings/Haml.html +0 -23
  1322. data/doc/0.0.3/Rango/Settings/Template.html +0 -23
  1323. data/doc/0.0.3/Rango/SimpleTemplate.html +0 -187
  1324. data/doc/0.0.3/Rango/StrategyMixin.html +0 -261
  1325. data/doc/0.0.3/Rango/Tasks.html +0 -219
  1326. data/doc/0.0.3/Rango/Template.html +0 -95
  1327. data/doc/0.0.3/Rango/Template/Adapter.html +0 -90
  1328. data/doc/0.0.3/Rango/Templates.html +0 -116
  1329. data/doc/0.0.3/Rango/Templates/Adapter.html +0 -128
  1330. data/doc/0.0.3/Rango/Templates/Template.html +0 -636
  1331. data/doc/0.0.3/Rango/Templates/TemplateHelpers.html +0 -328
  1332. data/doc/0.0.3/RangoThor.html +0 -205
  1333. data/doc/0.0.3/String.html +0 -307
  1334. data/doc/0.0.3/Time.html +0 -193
  1335. data/doc/0.0.3/TimeDSL.html +0 -601
  1336. data/doc/0.0.3/all-methods.html +0 -1908
  1337. data/doc/0.0.3/all-namespaces.html +0 -114
  1338. data/doc/0.0.3/app.js +0 -18
  1339. data/doc/0.0.3/head/Array.html +0 -354
  1340. data/doc/0.0.3/head/AttributeMixin.html +0 -697
  1341. data/doc/0.0.3/head/Class.html +0 -102
  1342. data/doc/0.0.3/head/ColoredString.html +0 -476
  1343. data/doc/0.0.3/head/Enumerable.html +0 -256
  1344. data/doc/0.0.3/head/File.html +0 -909
  1345. data/doc/0.0.3/head/Hash.html +0 -1586
  1346. data/doc/0.0.3/head/Kernel.html +0 -956
  1347. data/doc/0.0.3/head/OS.html +0 -740
  1348. data/doc/0.0.3/head/Object.html +0 -466
  1349. data/doc/0.0.3/head/ObjectSpace.html +0 -184
  1350. data/doc/0.0.3/head/Path.html +0 -2499
  1351. data/doc/0.0.3/head/Range.html +0 -190
  1352. data/doc/0.0.3/head/Rango.html +0 -379
  1353. data/doc/0.0.3/head/Rango/ApplicationMixin.html +0 -396
  1354. data/doc/0.0.3/head/Rango/Bundling.html +0 -23
  1355. data/doc/0.0.3/head/Rango/Bundling/RequireStrategy.html +0 -283
  1356. data/doc/0.0.3/head/Rango/Bundling/Strategy.html +0 -703
  1357. data/doc/0.0.3/head/Rango/CLI.html +0 -23
  1358. data/doc/0.0.3/head/Rango/CLI/Generator.html +0 -762
  1359. data/doc/0.0.3/head/Rango/CLI/Templater.html +0 -258
  1360. data/doc/0.0.3/head/Rango/CallableStrategy.html +0 -300
  1361. data/doc/0.0.3/head/Rango/Chainable.html +0 -181
  1362. data/doc/0.0.3/head/Rango/Configurable.html +0 -199
  1363. data/doc/0.0.3/head/Rango/Controller.html +0 -962
  1364. data/doc/0.0.3/head/Rango/ControllerMixin.html +0 -860
  1365. data/doc/0.0.3/head/Rango/ControllerStrategy.html +0 -264
  1366. data/doc/0.0.3/head/Rango/DependencyStrategy.html +0 -116
  1367. data/doc/0.0.3/head/Rango/Dispatcher.html +0 -305
  1368. data/doc/0.0.3/head/Rango/Form.html +0 -162
  1369. data/doc/0.0.3/head/Rango/GemDependencyStrategy.html +0 -210
  1370. data/doc/0.0.3/head/Rango/Generator.html +0 -93
  1371. data/doc/0.0.3/head/Rango/GenericViews.html +0 -128
  1372. data/doc/0.0.3/head/Rango/GitDependencyStrategy.html +0 -224
  1373. data/doc/0.0.3/head/Rango/GithubDependencyStrategy.html +0 -118
  1374. data/doc/0.0.3/head/Rango/Handler.html +0 -474
  1375. data/doc/0.0.3/head/Rango/Helpers.html +0 -1335
  1376. data/doc/0.0.3/head/Rango/Hookable.html +0 -202
  1377. data/doc/0.0.3/head/Rango/ImportMixin.html +0 -755
  1378. data/doc/0.0.3/head/Rango/Logger.html +0 -920
  1379. data/doc/0.0.3/head/Rango/Mini.html +0 -117
  1380. data/doc/0.0.3/head/Rango/ModelForm.html +0 -42
  1381. data/doc/0.0.3/head/Rango/Project.html +0 -516
  1382. data/doc/0.0.3/head/Rango/RenderMixin.html +0 -23
  1383. data/doc/0.0.3/head/Rango/Request.html +0 -1177
  1384. data/doc/0.0.3/head/Rango/Route.html +0 -751
  1385. data/doc/0.0.3/head/Rango/Router.html +0 -42
  1386. data/doc/0.0.3/head/Rango/Router/Dispatcher.html +0 -311
  1387. data/doc/0.0.3/head/Rango/RouterStrategy.html +0 -258
  1388. data/doc/0.0.3/head/Rango/Session.html +0 -23
  1389. data/doc/0.0.3/head/Rango/Settings.html +0 -23
  1390. data/doc/0.0.3/head/Rango/Settings/Erubis.html +0 -23
  1391. data/doc/0.0.3/head/Rango/Settings/Framework.html +0 -254
  1392. data/doc/0.0.3/head/Rango/Settings/Haml.html +0 -23
  1393. data/doc/0.0.3/head/Rango/Settings/Template.html +0 -23
  1394. data/doc/0.0.3/head/Rango/SimpleTemplate.html +0 -187
  1395. data/doc/0.0.3/head/Rango/StrategyMixin.html +0 -261
  1396. data/doc/0.0.3/head/Rango/Tasks.html +0 -219
  1397. data/doc/0.0.3/head/Rango/Template.html +0 -95
  1398. data/doc/0.0.3/head/Rango/Template/Adapter.html +0 -90
  1399. data/doc/0.0.3/head/Rango/Templates.html +0 -116
  1400. data/doc/0.0.3/head/Rango/Templates/Adapter.html +0 -128
  1401. data/doc/0.0.3/head/Rango/Templates/Template.html +0 -636
  1402. data/doc/0.0.3/head/Rango/Templates/TemplateHelpers.html +0 -328
  1403. data/doc/0.0.3/head/RangoThor.html +0 -205
  1404. data/doc/0.0.3/head/String.html +0 -307
  1405. data/doc/0.0.3/head/Time.html +0 -193
  1406. data/doc/0.0.3/head/TimeDSL.html +0 -601
  1407. data/doc/0.0.3/head/all-methods.html +0 -1908
  1408. data/doc/0.0.3/head/all-namespaces.html +0 -114
  1409. data/doc/0.0.3/head/app.js +0 -18
  1410. data/doc/0.0.3/head/index.html +0 -18
  1411. data/doc/0.0.3/head/jquery.js +0 -11
  1412. data/doc/0.0.3/head/readme.html +0 -36
  1413. data/doc/0.0.3/head/style.css +0 -68
  1414. data/doc/0.0.3/head/syntax_highlight.css +0 -21
  1415. data/doc/0.0.3/index.html +0 -18
  1416. data/doc/0.0.3/jquery.js +0 -11
  1417. data/doc/0.0.3/readme.html +0 -36
  1418. data/doc/0.0.3/style.css +0 -68
  1419. data/doc/0.0.3/syntax_highlight.css +0 -21
  1420. data/doc/0.0.4/Array.html +0 -354
  1421. data/doc/0.0.4/AttributeMixin.html +0 -697
  1422. data/doc/0.0.4/Class.html +0 -102
  1423. data/doc/0.0.4/ColoredString.html +0 -476
  1424. data/doc/0.0.4/Enumerable.html +0 -256
  1425. data/doc/0.0.4/File.html +0 -909
  1426. data/doc/0.0.4/Hash.html +0 -1586
  1427. data/doc/0.0.4/Kernel.html +0 -956
  1428. data/doc/0.0.4/OS.html +0 -740
  1429. data/doc/0.0.4/Object.html +0 -466
  1430. data/doc/0.0.4/ObjectSpace.html +0 -184
  1431. data/doc/0.0.4/Path.html +0 -2499
  1432. data/doc/0.0.4/Range.html +0 -190
  1433. data/doc/0.0.4/Rango.html +0 -379
  1434. data/doc/0.0.4/Rango/ApplicationMixin.html +0 -396
  1435. data/doc/0.0.4/Rango/Bundling.html +0 -23
  1436. data/doc/0.0.4/Rango/Bundling/RequireStrategy.html +0 -283
  1437. data/doc/0.0.4/Rango/Bundling/Strategy.html +0 -703
  1438. data/doc/0.0.4/Rango/CLI.html +0 -23
  1439. data/doc/0.0.4/Rango/CLI/Generator.html +0 -762
  1440. data/doc/0.0.4/Rango/CLI/Templater.html +0 -258
  1441. data/doc/0.0.4/Rango/CallableStrategy.html +0 -300
  1442. data/doc/0.0.4/Rango/Chainable.html +0 -181
  1443. data/doc/0.0.4/Rango/Configurable.html +0 -199
  1444. data/doc/0.0.4/Rango/Controller.html +0 -962
  1445. data/doc/0.0.4/Rango/ControllerMixin.html +0 -860
  1446. data/doc/0.0.4/Rango/ControllerStrategy.html +0 -264
  1447. data/doc/0.0.4/Rango/DependencyStrategy.html +0 -116
  1448. data/doc/0.0.4/Rango/Dispatcher.html +0 -305
  1449. data/doc/0.0.4/Rango/Form.html +0 -162
  1450. data/doc/0.0.4/Rango/GemDependencyStrategy.html +0 -210
  1451. data/doc/0.0.4/Rango/Generator.html +0 -93
  1452. data/doc/0.0.4/Rango/GenericViews.html +0 -128
  1453. data/doc/0.0.4/Rango/GitDependencyStrategy.html +0 -224
  1454. data/doc/0.0.4/Rango/GithubDependencyStrategy.html +0 -118
  1455. data/doc/0.0.4/Rango/Handler.html +0 -474
  1456. data/doc/0.0.4/Rango/Helpers.html +0 -1335
  1457. data/doc/0.0.4/Rango/Hookable.html +0 -202
  1458. data/doc/0.0.4/Rango/ImportMixin.html +0 -755
  1459. data/doc/0.0.4/Rango/Logger.html +0 -920
  1460. data/doc/0.0.4/Rango/Mini.html +0 -117
  1461. data/doc/0.0.4/Rango/ModelForm.html +0 -42
  1462. data/doc/0.0.4/Rango/Project.html +0 -516
  1463. data/doc/0.0.4/Rango/RenderMixin.html +0 -23
  1464. data/doc/0.0.4/Rango/Request.html +0 -1177
  1465. data/doc/0.0.4/Rango/Route.html +0 -751
  1466. data/doc/0.0.4/Rango/Router.html +0 -42
  1467. data/doc/0.0.4/Rango/Router/Dispatcher.html +0 -311
  1468. data/doc/0.0.4/Rango/RouterStrategy.html +0 -258
  1469. data/doc/0.0.4/Rango/Session.html +0 -23
  1470. data/doc/0.0.4/Rango/Settings.html +0 -23
  1471. data/doc/0.0.4/Rango/Settings/Erubis.html +0 -23
  1472. data/doc/0.0.4/Rango/Settings/Framework.html +0 -254
  1473. data/doc/0.0.4/Rango/Settings/Haml.html +0 -23
  1474. data/doc/0.0.4/Rango/Settings/Template.html +0 -23
  1475. data/doc/0.0.4/Rango/SimpleTemplate.html +0 -187
  1476. data/doc/0.0.4/Rango/StrategyMixin.html +0 -261
  1477. data/doc/0.0.4/Rango/Tasks.html +0 -219
  1478. data/doc/0.0.4/Rango/Template.html +0 -95
  1479. data/doc/0.0.4/Rango/Template/Adapter.html +0 -90
  1480. data/doc/0.0.4/Rango/Templates.html +0 -116
  1481. data/doc/0.0.4/Rango/Templates/Adapter.html +0 -128
  1482. data/doc/0.0.4/Rango/Templates/Template.html +0 -636
  1483. data/doc/0.0.4/Rango/Templates/TemplateHelpers.html +0 -328
  1484. data/doc/0.0.4/RangoThor.html +0 -205
  1485. data/doc/0.0.4/String.html +0 -307
  1486. data/doc/0.0.4/Time.html +0 -193
  1487. data/doc/0.0.4/TimeDSL.html +0 -601
  1488. data/doc/0.0.4/all-methods.html +0 -1908
  1489. data/doc/0.0.4/all-namespaces.html +0 -114
  1490. data/doc/0.0.4/app.js +0 -18
  1491. data/doc/0.0.4/head/Array.html +0 -354
  1492. data/doc/0.0.4/head/AttributeMixin.html +0 -697
  1493. data/doc/0.0.4/head/Class.html +0 -102
  1494. data/doc/0.0.4/head/ColoredString.html +0 -476
  1495. data/doc/0.0.4/head/Enumerable.html +0 -256
  1496. data/doc/0.0.4/head/File.html +0 -909
  1497. data/doc/0.0.4/head/Hash.html +0 -1586
  1498. data/doc/0.0.4/head/Kernel.html +0 -956
  1499. data/doc/0.0.4/head/OS.html +0 -740
  1500. data/doc/0.0.4/head/Object.html +0 -466
  1501. data/doc/0.0.4/head/ObjectSpace.html +0 -184
  1502. data/doc/0.0.4/head/Path.html +0 -2499
  1503. data/doc/0.0.4/head/Range.html +0 -190
  1504. data/doc/0.0.4/head/Rango.html +0 -379
  1505. data/doc/0.0.4/head/Rango/ApplicationMixin.html +0 -396
  1506. data/doc/0.0.4/head/Rango/Bundling.html +0 -23
  1507. data/doc/0.0.4/head/Rango/Bundling/RequireStrategy.html +0 -283
  1508. data/doc/0.0.4/head/Rango/Bundling/Strategy.html +0 -703
  1509. data/doc/0.0.4/head/Rango/CLI.html +0 -23
  1510. data/doc/0.0.4/head/Rango/CLI/Generator.html +0 -762
  1511. data/doc/0.0.4/head/Rango/CLI/Templater.html +0 -258
  1512. data/doc/0.0.4/head/Rango/CallableStrategy.html +0 -300
  1513. data/doc/0.0.4/head/Rango/Chainable.html +0 -181
  1514. data/doc/0.0.4/head/Rango/Configurable.html +0 -199
  1515. data/doc/0.0.4/head/Rango/Controller.html +0 -962
  1516. data/doc/0.0.4/head/Rango/ControllerMixin.html +0 -860
  1517. data/doc/0.0.4/head/Rango/ControllerStrategy.html +0 -264
  1518. data/doc/0.0.4/head/Rango/DependencyStrategy.html +0 -116
  1519. data/doc/0.0.4/head/Rango/Dispatcher.html +0 -305
  1520. data/doc/0.0.4/head/Rango/Form.html +0 -162
  1521. data/doc/0.0.4/head/Rango/GemDependencyStrategy.html +0 -210
  1522. data/doc/0.0.4/head/Rango/Generator.html +0 -93
  1523. data/doc/0.0.4/head/Rango/GenericViews.html +0 -128
  1524. data/doc/0.0.4/head/Rango/GitDependencyStrategy.html +0 -224
  1525. data/doc/0.0.4/head/Rango/GithubDependencyStrategy.html +0 -118
  1526. data/doc/0.0.4/head/Rango/Handler.html +0 -474
  1527. data/doc/0.0.4/head/Rango/Helpers.html +0 -1335
  1528. data/doc/0.0.4/head/Rango/Hookable.html +0 -202
  1529. data/doc/0.0.4/head/Rango/ImportMixin.html +0 -755
  1530. data/doc/0.0.4/head/Rango/Logger.html +0 -920
  1531. data/doc/0.0.4/head/Rango/Mini.html +0 -117
  1532. data/doc/0.0.4/head/Rango/ModelForm.html +0 -42
  1533. data/doc/0.0.4/head/Rango/Project.html +0 -516
  1534. data/doc/0.0.4/head/Rango/RenderMixin.html +0 -23
  1535. data/doc/0.0.4/head/Rango/Request.html +0 -1177
  1536. data/doc/0.0.4/head/Rango/Route.html +0 -751
  1537. data/doc/0.0.4/head/Rango/Router.html +0 -42
  1538. data/doc/0.0.4/head/Rango/Router/Dispatcher.html +0 -311
  1539. data/doc/0.0.4/head/Rango/RouterStrategy.html +0 -258
  1540. data/doc/0.0.4/head/Rango/Session.html +0 -23
  1541. data/doc/0.0.4/head/Rango/Settings.html +0 -23
  1542. data/doc/0.0.4/head/Rango/Settings/Erubis.html +0 -23
  1543. data/doc/0.0.4/head/Rango/Settings/Framework.html +0 -254
  1544. data/doc/0.0.4/head/Rango/Settings/Haml.html +0 -23
  1545. data/doc/0.0.4/head/Rango/Settings/Template.html +0 -23
  1546. data/doc/0.0.4/head/Rango/SimpleTemplate.html +0 -187
  1547. data/doc/0.0.4/head/Rango/StrategyMixin.html +0 -261
  1548. data/doc/0.0.4/head/Rango/Tasks.html +0 -219
  1549. data/doc/0.0.4/head/Rango/Template.html +0 -95
  1550. data/doc/0.0.4/head/Rango/Template/Adapter.html +0 -90
  1551. data/doc/0.0.4/head/Rango/Templates.html +0 -116
  1552. data/doc/0.0.4/head/Rango/Templates/Adapter.html +0 -128
  1553. data/doc/0.0.4/head/Rango/Templates/Template.html +0 -636
  1554. data/doc/0.0.4/head/Rango/Templates/TemplateHelpers.html +0 -328
  1555. data/doc/0.0.4/head/RangoThor.html +0 -205
  1556. data/doc/0.0.4/head/String.html +0 -307
  1557. data/doc/0.0.4/head/Time.html +0 -193
  1558. data/doc/0.0.4/head/TimeDSL.html +0 -601
  1559. data/doc/0.0.4/head/all-methods.html +0 -1908
  1560. data/doc/0.0.4/head/all-namespaces.html +0 -114
  1561. data/doc/0.0.4/head/app.js +0 -18
  1562. data/doc/0.0.4/head/index.html +0 -18
  1563. data/doc/0.0.4/head/jquery.js +0 -11
  1564. data/doc/0.0.4/head/readme.html +0 -36
  1565. data/doc/0.0.4/head/style.css +0 -68
  1566. data/doc/0.0.4/head/syntax_highlight.css +0 -21
  1567. data/doc/0.0.4/index.html +0 -18
  1568. data/doc/0.0.4/jquery.js +0 -11
  1569. data/doc/0.0.4/readme.html +0 -36
  1570. data/doc/0.0.4/style.css +0 -68
  1571. data/doc/0.0.4/syntax_highlight.css +0 -21
  1572. data/doc/head/Array.html +0 -354
  1573. data/doc/head/AttributeMixin.html +0 -697
  1574. data/doc/head/Class.html +0 -102
  1575. data/doc/head/ColoredString.html +0 -476
  1576. data/doc/head/Enumerable.html +0 -256
  1577. data/doc/head/File.html +0 -909
  1578. data/doc/head/Hash.html +0 -1586
  1579. data/doc/head/Kernel.html +0 -956
  1580. data/doc/head/OS.html +0 -740
  1581. data/doc/head/Object.html +0 -466
  1582. data/doc/head/ObjectSpace.html +0 -184
  1583. data/doc/head/Path.html +0 -2499
  1584. data/doc/head/Range.html +0 -190
  1585. data/doc/head/Rango.html +0 -379
  1586. data/doc/head/Rango/ApplicationMixin.html +0 -396
  1587. data/doc/head/Rango/Bundling.html +0 -23
  1588. data/doc/head/Rango/Bundling/RequireStrategy.html +0 -283
  1589. data/doc/head/Rango/Bundling/Strategy.html +0 -703
  1590. data/doc/head/Rango/CLI.html +0 -23
  1591. data/doc/head/Rango/CLI/Generator.html +0 -762
  1592. data/doc/head/Rango/CLI/Templater.html +0 -258
  1593. data/doc/head/Rango/CallableStrategy.html +0 -300
  1594. data/doc/head/Rango/Chainable.html +0 -181
  1595. data/doc/head/Rango/Configurable.html +0 -199
  1596. data/doc/head/Rango/Controller.html +0 -962
  1597. data/doc/head/Rango/ControllerMixin.html +0 -860
  1598. data/doc/head/Rango/ControllerStrategy.html +0 -264
  1599. data/doc/head/Rango/DependencyStrategy.html +0 -116
  1600. data/doc/head/Rango/Dispatcher.html +0 -305
  1601. data/doc/head/Rango/Form.html +0 -162
  1602. data/doc/head/Rango/GemDependencyStrategy.html +0 -210
  1603. data/doc/head/Rango/Generator.html +0 -93
  1604. data/doc/head/Rango/GenericViews.html +0 -128
  1605. data/doc/head/Rango/GitDependencyStrategy.html +0 -224
  1606. data/doc/head/Rango/GithubDependencyStrategy.html +0 -118
  1607. data/doc/head/Rango/Handler.html +0 -474
  1608. data/doc/head/Rango/Helpers.html +0 -1335
  1609. data/doc/head/Rango/Hookable.html +0 -202
  1610. data/doc/head/Rango/ImportMixin.html +0 -755
  1611. data/doc/head/Rango/Logger.html +0 -920
  1612. data/doc/head/Rango/Mini.html +0 -117
  1613. data/doc/head/Rango/ModelForm.html +0 -42
  1614. data/doc/head/Rango/Project.html +0 -516
  1615. data/doc/head/Rango/RenderMixin.html +0 -23
  1616. data/doc/head/Rango/Request.html +0 -1177
  1617. data/doc/head/Rango/Route.html +0 -751
  1618. data/doc/head/Rango/Router.html +0 -42
  1619. data/doc/head/Rango/Router/Dispatcher.html +0 -311
  1620. data/doc/head/Rango/RouterStrategy.html +0 -258
  1621. data/doc/head/Rango/Session.html +0 -23
  1622. data/doc/head/Rango/Settings.html +0 -23
  1623. data/doc/head/Rango/Settings/Erubis.html +0 -23
  1624. data/doc/head/Rango/Settings/Framework.html +0 -254
  1625. data/doc/head/Rango/Settings/Haml.html +0 -23
  1626. data/doc/head/Rango/Settings/Template.html +0 -23
  1627. data/doc/head/Rango/SimpleTemplate.html +0 -187
  1628. data/doc/head/Rango/StrategyMixin.html +0 -261
  1629. data/doc/head/Rango/Tasks.html +0 -219
  1630. data/doc/head/Rango/Template.html +0 -95
  1631. data/doc/head/Rango/Template/Adapter.html +0 -90
  1632. data/doc/head/Rango/Templates.html +0 -116
  1633. data/doc/head/Rango/Templates/Adapter.html +0 -128
  1634. data/doc/head/Rango/Templates/Template.html +0 -636
  1635. data/doc/head/Rango/Templates/TemplateHelpers.html +0 -328
  1636. data/doc/head/RangoThor.html +0 -205
  1637. data/doc/head/String.html +0 -307
  1638. data/doc/head/Time.html +0 -193
  1639. data/doc/head/TimeDSL.html +0 -601
  1640. data/doc/head/all-methods.html +0 -1908
  1641. data/doc/head/all-namespaces.html +0 -114
  1642. data/doc/head/app.js +0 -18
  1643. data/doc/head/index.html +0 -18
  1644. data/doc/head/jquery.js +0 -11
  1645. data/doc/head/readme.html +0 -36
  1646. data/doc/head/style.css +0 -68
  1647. data/doc/head/syntax_highlight.css +0 -21
  1648. data/doc/versions/0.0.1/Rango.html +0 -1025
  1649. data/doc/versions/0.0.1/Rango/CallableStrategy.html +0 -166
  1650. data/doc/versions/0.0.1/Rango/ControllerStrategy.html +0 -180
  1651. data/doc/versions/0.0.1/Rango/Route.html +0 -340
  1652. data/doc/versions/0.0.1/Rango/Router.html +0 -502
  1653. data/doc/versions/0.0.1/Rango/RouterStrategy.html +0 -94
  1654. data/doc/versions/0.0.1/Rango/Template.html +0 -28
  1655. data/doc/versions/0.0.1/Rango/Template/Adapter.html +0 -90
  1656. data/doc/versions/0.0.1/all-methods.html +0 -228
  1657. data/doc/versions/0.0.1/all-namespaces.html +0 -36
  1658. data/doc/versions/0.0.1/app.js +0 -18
  1659. data/doc/versions/0.0.1/index.html +0 -18
  1660. data/doc/versions/0.0.1/jquery.js +0 -11
  1661. data/doc/versions/0.0.1/readme.html +0 -137
  1662. data/doc/versions/0.0.1/style.css +0 -68
  1663. data/doc/versions/0.0.1/syntax_highlight.css +0 -21
  1664. data/features/TODO.txt +0 -5
  1665. data/features/generators/app.feature +0 -11
  1666. data/features/generators_steps.rb +0 -26
  1667. data/features/shared/then_steps.rb +0 -1
  1668. data/features/shared/when_steps.rb +0 -1
  1669. data/features/support/env.rb +0 -64
  1670. data/lib/rango/bundling/dependency.rb +0 -61
  1671. data/lib/rango/bundling/strategies/copy.rb +0 -36
  1672. data/lib/rango/bundling/strategies/gem.rb +0 -55
  1673. data/lib/rango/bundling/strategies/git.rb +0 -71
  1674. data/lib/rango/bundling/strategies/hg.rb +0 -9
  1675. data/lib/rango/bundling/strategy.rb +0 -85
  1676. data/lib/rango/cli/generator.rb +0 -122
  1677. data/lib/rango/cli/templater.rb +0 -89
  1678. data/lib/rango/ext.rb +0 -85
  1679. data/lib/rango/ext/attribute.rb +0 -152
  1680. data/lib/rango/ext/colored_string.rb +0 -105
  1681. data/lib/rango/ext/kernel.rb +0 -91
  1682. data/lib/rango/ext/platform.rb +0 -27
  1683. data/lib/rango/ext/string.rb +0 -30
  1684. data/lib/rango/ext/thor.rb +0 -32
  1685. data/lib/rango/ext/unique_array.rb +0 -16
  1686. data/lib/rango/generic_views.rb +0 -18
  1687. data/lib/rango/mixins/controller.rb +0 -114
  1688. data/lib/rango/orm/adapters/datamapper/setup.rb +0 -16
  1689. data/lib/rango/orm/adapters/datamapper/tasks.thor +0 -41
  1690. data/lib/rango/orm/adapters/datamapper/types/unicode_string.rb +0 -15
  1691. data/lib/rango/tasks/bundle.thor +0 -28
  1692. data/lib/rango/tasks/stats.thor +0 -1
  1693. data/rango.gemspec.erb +0 -43
  1694. data/spec/rango/ext/array_spec.rb +0 -19
  1695. data/spec/rango/ext/attribute_spec.rb +0 -37
  1696. data/spec/rango/ext/colored_string_spec.rb +0 -9
  1697. data/spec/rango/ext/enumerable_spec.rb +0 -52
  1698. data/spec/rango/ext/file_spec.rb +0 -78
  1699. data/spec/rango/ext/hash_spec.rb +0 -91
  1700. data/spec/rango/ext/kernel_spec.rb +0 -9
  1701. data/spec/rango/ext/object_space_spec.rb +0 -17
  1702. data/spec/rango/ext/object_spec.rb +0 -57
  1703. data/spec/rango/ext/os_spec.rb +0 -121
  1704. data/spec/rango/ext/random_spec.rb +0 -31
  1705. data/spec/rango/ext/string_spec.rb +0 -23
  1706. data/spec/rango/ext/thor_spec.rb +0 -26
  1707. data/spec/rango/ext/time_dsl_spec.rb +0 -86
  1708. data/spec/rango/ext/time_spec.rb +0 -11
  1709. data/spec/rango/ext_spec.rb +0 -182
  1710. data/spec/rango/helpers/spec/fixture/app/controllers/numeric_ext_spec.rb +0 -0
  1711. data/spec/rango/helpers/spec/fixture/app/controllers/option_tag_spec.rb +0 -0
  1712. data/spec/rango/helpers/spec/fixture/app/controllers/password_field_spec.rb +0 -0
  1713. data/spec/rango/helpers/spec/fixture/app/controllers/radio_button_spec.rb +0 -0
  1714. data/spec/rango/helpers/spec/fixture/app/controllers/radio_group_spec.rb +0 -0
  1715. data/spec/rango/helpers/spec/fixture/app/controllers/relative_date_span_spec.rb +0 -0
  1716. data/spec/rango/helpers/spec/fixture/app/controllers/relative_date_spec.rb +0 -0
  1717. data/spec/rango/helpers/spec/fixture/app/controllers/select_spec.rb +0 -0
  1718. data/spec/rango/helpers/spec/fixture/app/controllers/specs_controller_spec.rb +0 -0
  1719. data/spec/rango/helpers/spec/fixture/app/controllers/submit_spec.rb +0 -0
  1720. data/spec/rango/helpers/spec/fixture/app/controllers/tag_helper_spec.rb +0 -0
  1721. data/spec/rango/helpers/spec/fixture/app/controllers/text_area_spec.rb +0 -0
  1722. data/spec/rango/helpers/spec/fixture/app/controllers/text_field_spec.rb +0 -0
  1723. data/spec/rango/helpers/spec/fixture/app/helpers/global_helpers_spec.rb +0 -0
  1724. data/spec/rango/helpers/spec/fixture/app/models/fake_dm_model_spec.rb +0 -0
  1725. data/spec/rango/helpers/spec/fixture/app/models/first_generic_fake_model_spec.rb +0 -0
  1726. data/spec/rango/helpers/spec/fixture/app/models/hacker_generic_model_spec.rb +0 -0
  1727. data/spec/rango/helpers/spec/fixture/app/models/second_generic_fake_model_spec.rb +0 -0
  1728. data/spec/rango/helpers/spec/fixture/app/models/third_generic_fake_model_spec.rb +0 -0
  1729. data/spec/rango/helpers/spec/fixture/config/environments/development_spec.rb +0 -0
  1730. data/spec/rango/helpers/spec/fixture/config/environments/production_spec.rb +0 -0
  1731. data/spec/rango/helpers/spec/fixture/config/environments/test_spec.rb +0 -0
  1732. data/spec/rango/helpers/spec/fixture/config/init_spec.rb +0 -0
  1733. data/spec/rango/helpers/spec/fixture/config/rack_spec.rb +0 -0
  1734. data/spec/rango/helpers/spec/merb_helpers_config_spec_spec.rb +0 -0
  1735. data/spec/rango/helpers/spec/merb_helpers_date_time_spec_spec.rb +0 -0
  1736. data/spec/rango/helpers/spec/merb_helpers_form_spec_spec.rb +0 -0
  1737. data/spec/rango/helpers/spec/merb_helpers_tag_helper_spec_spec.rb +0 -0
  1738. data/spec/rango/helpers/spec/merb_helpers_text_spec_spec.rb +0 -0
  1739. data/spec/rango/helpers/spec/numeric_extlib_spec_spec.rb +0 -0
  1740. data/spec/rango/helpers/spec/ordinalize_spec_spec.rb +0 -0
  1741. data/spec/rango/helpers/spec/spec_helper_spec.rb +0 -0
  1742. data/spec/rango/helpers/spec/time_dsl_spec_spec.rb +0 -0
  1743. data/spec/rango/mixins/controller_spec.rb +0 -0
  1744. data/spec/rango/orm/adapters/datamapper/setup_spec.rb +0 -0
  1745. data/spec/rango/orm/adapters/datamapper/types/unicode_string_spec.rb +0 -0
  1746. data/spec/rango/router/adapters/basic_spec.rb +0 -0
  1747. data/spec/rango/router/adapters/rack-router_spec.rb +0 -0
  1748. data/spec/rango/router/dispatcher_spec.rb +0 -0
  1749. data/stubs/app/preprocess.rb +0 -14
  1750. data/stubs/bigapp/preprocess.rb +0 -5
  1751. data/stubs/flat/preprocess.rb +0 -5
  1752. data/stubs/project/content/TODO +0 -0
  1753. data/stubs/project/content/Thorfile +0 -12
  1754. data/stubs/project/content/config.ru +0 -33
  1755. data/stubs/project/content/init.rb +0 -24
  1756. data/stubs/project/content/settings.rb.rbt +0 -10
  1757. data/stubs/pupu/content/CHANGELOG +0 -0
  1758. data/stubs/pupu/content/LICENSE.rbt +0 -20
  1759. data/stubs/pupu/content/README.textile.rbt +0 -7
  1760. data/stubs/pupu/content/TODO +0 -5
  1761. data/stubs/pupu/content/Thorfile.rbt +0 -21
  1762. data/stubs/pupu/content/config.rb.rbt +0 -14
  1763. data/stubs/pupu/content/initializers/%name%.css +0 -0
  1764. data/stubs/pupu/content/initializers/%name%.js +0 -3
  1765. data/stubs/pupu/content/javascripts/%name%.js +0 -0
  1766. data/stubs/pupu/content/stylesheets/%name%.css +0 -0
  1767. data/stubs/pupu/metadata.yml +0 -4
  1768. data/stubs/pupu/preprocess.rb +0 -7
  1769. data/stubs/stub/content/metadata.yml +0 -4
  1770. data/stubs/stub/content/postprocess.rb +0 -5
  1771. data/stubs/stub/content/preprocess.rb +0 -5
  1772. data/stubs/stub/metadata.yml +0 -4
  1773. data/templates.txt +0 -39
@@ -0,0 +1,442 @@
1
+ class Hash
2
+ class << self
3
+ # Converts valid XML into a Ruby Hash structure.
4
+ #
5
+ # Mixed content is treated as text and any tags in it are left unparsed
6
+ #
7
+ # Any attributes other than type on a node containing a text node will be
8
+ # discarded
9
+ #
10
+ # [Typecasting is performed on elements that have a +type+ attribute:]
11
+ # integer:: Returns an Integer
12
+ # boolean:: Anything other than "true" evaluates to false.
13
+ # datetime::
14
+ # Returns a Time object. See Time documentation for valid Time strings.
15
+ # date::
16
+ # Returns a Date object. See Date documentation for valid Date strings.
17
+ #
18
+ # Keys are automatically converted to +snake_case+
19
+ #
20
+ # [Simple]
21
+ #
22
+ # <user gender='m'>
23
+ # <age type='integer'>35</age>
24
+ # <name>Home Simpson</name>
25
+ # <dob type='date'>1988-01-01</dob>
26
+ # <joined-at type='datetime'>2000-04-28 23:01</joined-at>
27
+ # <is-cool type='boolean'>true</is-cool>
28
+ # </user>
29
+ #
30
+ # Becomes:
31
+ #
32
+ # { "user" => {
33
+ # "gender" => "m",
34
+ # "age" => 35,
35
+ # "name" => "Home Simpson",
36
+ # "dob" => DateObject( 1998-01-01 ),
37
+ # "joined_at" => TimeObject( 2000-04-28 23:01),
38
+ # "is_cool" => true
39
+ # }
40
+ # }
41
+ #
42
+ # [Mixed Content]
43
+ #
44
+ # <story>
45
+ # A Quick <em>brown</em> Fox
46
+ # </story>
47
+ #
48
+ # Evaluates to:
49
+ #
50
+ # { "story" => "A Quick <em>brown</em> Fox" }
51
+ #
52
+ # [Attributes other than type on a node containing text]
53
+ #
54
+ # <story is-good='false'>
55
+ # A Quick <em>brown</em> Fox
56
+ # </story>
57
+ #
58
+ # Are ignored:
59
+ #
60
+ # { "story" => "A Quick <em>brown</em> Fox" }
61
+ #
62
+ # [Other attributes in addition to +type+]
63
+ #
64
+ # <bicep unit='inches' type='integer'>60</bicep>
65
+ #
66
+ # Evaluates with a typecast to an integer. But unit attribute is ignored:
67
+ #
68
+ # { "bicep" => 60 }
69
+ #
70
+ # @param [String] xml A string representation of valid XML.
71
+ #
72
+ # @return [Hash] A hash created by parsing +xml+
73
+ def from_xml( xml )
74
+ ToHashParser.from_xml(xml)
75
+ end
76
+ end
77
+
78
+ # Convert to Mash. This class has semantics of ActiveSupport's
79
+ # HashWithIndifferentAccess and we only have it so that people can write
80
+ # params[:key] instead of params['key'].
81
+ #
82
+ # @return [Mash] This hash as a Mash for string or symbol key access.
83
+ def to_mash
84
+ hash = Mash.new(self)
85
+ hash.default = default
86
+ hash
87
+ end
88
+
89
+ ##
90
+ # Convert to URL query param string
91
+ #
92
+ # { :name => "Bob",
93
+ # :address => {
94
+ # :street => '111 Ruby Ave.',
95
+ # :city => 'Ruby Central',
96
+ # :phones => ['111-111-1111', '222-222-2222']
97
+ # }
98
+ # }.to_params
99
+ # #=> "name=Bob&address[city]=Ruby Central&address[phones][]=111-111-1111&address[phones][]=222-222-2222&address[street]=111 Ruby Ave."
100
+ #
101
+ # @return [String] This hash as a query string
102
+ #
103
+ # @api public
104
+ def to_params
105
+ params = self.map { |k,v| normalize_param(k,v) }.join
106
+ params.chop! # trailing &
107
+ params
108
+ end
109
+
110
+ ##
111
+ # Convert a key, value pair into a URL query param string
112
+ #
113
+ # normalize_param(:name, "Bob") #=> "name=Bob&"
114
+ #
115
+ # @param [Object] key The key for the param.
116
+ # @param [Object] value The value for the param.
117
+ #
118
+ # @return <String> This key value pair as a param
119
+ #
120
+ # @api public
121
+ def normalize_param(key, value)
122
+ param = ''
123
+ stack = []
124
+
125
+ if value.is_a?(Array)
126
+ param << value.map { |element| normalize_param("#{key}[]", element) }.join
127
+ elsif value.is_a?(Hash)
128
+ stack << [key,value]
129
+ else
130
+ param << "#{key}=#{value}&"
131
+ end
132
+
133
+ stack.each do |parent, hash|
134
+ hash.each do |k, v|
135
+ if v.is_a?(Hash)
136
+ stack << ["#{parent}[#{k}]", v]
137
+ else
138
+ param << normalize_param("#{parent}[#{k}]", v)
139
+ end
140
+ end
141
+ end
142
+
143
+ param
144
+ end
145
+
146
+ ##
147
+ # Create a hash with *only* key/value pairs in receiver and +allowed+
148
+ #
149
+ # { :one => 1, :two => 2, :three => 3 }.only(:one) #=> { :one => 1 }
150
+ #
151
+ # @param [Array[String, Symbol]] *allowed The hash keys to include.
152
+ #
153
+ # @return [Hash] A new hash with only the selected keys.
154
+ #
155
+ # @api public
156
+ def only(*allowed)
157
+ hash = {}
158
+ allowed.each {|k| hash[k] = self[k] if self.has_key?(k) }
159
+ hash
160
+ end
161
+
162
+ ##
163
+ # Create a hash with all key/value pairs in receiver *except* +rejected+
164
+ #
165
+ # { :one => 1, :two => 2, :three => 3 }.except(:one)
166
+ # #=> { :two => 2, :three => 3 }
167
+ #
168
+ # @param [Array[String, Symbol]] *rejected The hash keys to exclude.
169
+ #
170
+ # @return [Hash] A new hash without the selected keys.
171
+ #
172
+ # @api public
173
+ def except(*rejected)
174
+ hash = self.dup
175
+ rejected.each {|k| hash.delete(k) }
176
+ hash
177
+ end
178
+
179
+ # @return <String> The hash as attributes for an XML tag.
180
+ #
181
+ # @example
182
+ # { :one => 1, "two"=>"TWO" }.to_xml_attributes
183
+ # #=> 'one="1" two="TWO"'
184
+ def to_xml_attributes
185
+ map do |k,v|
186
+ %{#{k.to_s.snake_case.sub(/^(.{1,1})/) { |m| m.downcase }}="#{v}"}
187
+ end.join(' ')
188
+ end
189
+
190
+ alias_method :to_html_attributes, :to_xml_attributes
191
+
192
+ # @param html_class<#to_s>
193
+ # The HTML class to add to the :class key. The html_class will be
194
+ # concatenated to any existing classes.
195
+ #
196
+ # @example hash[:class] #=> nil
197
+ # @example hash.add_html_class!(:selected)
198
+ # @example hash[:class] #=> "selected"
199
+ # @example hash.add_html_class!("class1 class2")
200
+ # @example hash[:class] #=> "selected class1 class2"
201
+ def add_html_class!(html_class)
202
+ if self[:class]
203
+ self[:class] = "#{self[:class]} #{html_class}"
204
+ else
205
+ self[:class] = html_class.to_s
206
+ end
207
+ end
208
+
209
+ # Converts all keys into string values. This is used during reloading to
210
+ # prevent problems when classes are no longer declared.
211
+ #
212
+ # @return <Array> An array of they hash's keys
213
+ #
214
+ # @example
215
+ # hash = { One => 1, Two => 2 }.proctect_keys!
216
+ # hash # => { "One" => 1, "Two" => 2 }
217
+ def protect_keys!
218
+ keys.each {|key| self[key.to_s] = delete(key) }
219
+ end
220
+
221
+ # Attempts to convert all string keys into Class keys. We run this after
222
+ # reloading to convert protected hashes back into usable hashes.
223
+ #
224
+ # @example
225
+ # # Provided that classes One and Two are declared in this scope:
226
+ # hash = { "One" => 1, "Two" => 2 }.unproctect_keys!
227
+ # hash # => { One => 1, Two => 2 }
228
+ def unprotect_keys!
229
+ keys.each do |key|
230
+ (self[Object.full_const_get(key)] = delete(key)) rescue nil
231
+ end
232
+ end
233
+
234
+ # Destructively and non-recursively convert each key to an uppercase string,
235
+ # deleting nil values along the way.
236
+ #
237
+ # @return <Hash> The newly environmentized hash.
238
+ #
239
+ # @example
240
+ # { :name => "Bob", :contact => { :email => "bob@bob.com" } }.environmentize_keys!
241
+ # #=> { "NAME" => "Bob", "CONTACT" => { :email => "bob@bob.com" } }
242
+ def environmentize_keys!
243
+ keys.each do |key|
244
+ val = delete(key)
245
+ next if val.nil?
246
+ self[key.to_s.upcase] = val
247
+ end
248
+ self
249
+ end
250
+ end
251
+
252
+ require 'rexml/parsers/streamparser'
253
+ require 'rexml/parsers/baseparser'
254
+ require 'rexml/light/node'
255
+
256
+ # This is a slighly modified version of the XMLUtilityNode from
257
+ # http://merb.devjavu.com/projects/merb/ticket/95 (has.sox@gmail.com)
258
+ # It's mainly just adding vowels, as I ht cd wth n vwls :)
259
+ # This represents the hard part of the work, all I did was change the
260
+ # underlying parser.
261
+ class REXMLUtilityNode
262
+ attr_accessor :name, :attributes, :children, :type
263
+ cattr_accessor :typecasts, :available_typecasts
264
+
265
+ self.typecasts = {}
266
+ self.typecasts["integer"] = lambda{|v| v.nil? ? nil : v.to_i}
267
+ self.typecasts["boolean"] = lambda{|v| v.nil? ? nil : (v.strip != "false")}
268
+ self.typecasts["datetime"] = lambda{|v| v.nil? ? nil : Time.parse(v).utc}
269
+ self.typecasts["date"] = lambda{|v| v.nil? ? nil : Date.parse(v)}
270
+ self.typecasts["dateTime"] = lambda{|v| v.nil? ? nil : Time.parse(v).utc}
271
+ self.typecasts["decimal"] = lambda{|v| BigDecimal(v)}
272
+ self.typecasts["double"] = lambda{|v| v.nil? ? nil : v.to_f}
273
+ self.typecasts["float"] = lambda{|v| v.nil? ? nil : v.to_f}
274
+ self.typecasts["symbol"] = lambda{|v| v.to_sym}
275
+ self.typecasts["string"] = lambda{|v| v.to_s}
276
+ self.typecasts["yaml"] = lambda{|v| v.nil? ? nil : YAML.load(v)}
277
+ self.typecasts["base64Binary"] = lambda{|v| v.unpack('m').first }
278
+
279
+ self.available_typecasts = self.typecasts.keys
280
+
281
+ def initialize(name, attributes = {})
282
+ @name = name.tr("-", "_")
283
+ # leave the type alone if we don't know what it is
284
+ @type = self.class.available_typecasts.include?(attributes["type"]) ? attributes.delete("type") : attributes["type"]
285
+
286
+ @nil_element = attributes.delete("nil") == "true"
287
+ @attributes = undasherize_keys(attributes)
288
+ @children = []
289
+ @text = false
290
+ end
291
+
292
+ def add_node(node)
293
+ @text = true if node.is_a? String
294
+ @children << node
295
+ end
296
+
297
+ def to_hash
298
+ if @type == "file"
299
+ f = StringIO.new((@children.first || '').unpack('m').first)
300
+ class << f
301
+ attr_accessor :original_filename, :content_type
302
+ end
303
+ f.original_filename = attributes['name'] || 'untitled'
304
+ f.content_type = attributes['content_type'] || 'application/octet-stream'
305
+ return {name => f}
306
+ end
307
+
308
+ if @text
309
+ return { name => typecast_value( translate_xml_entities( inner_html ) ) }
310
+ else
311
+ #change repeating groups into an array
312
+ groups = @children.inject({}) { |s,e| (s[e.name] ||= []) << e; s }
313
+
314
+ out = nil
315
+ if @type == "array"
316
+ out = []
317
+ groups.each do |k, v|
318
+ if v.size == 1
319
+ out << v.first.to_hash.entries.first.last
320
+ else
321
+ out << v.map{|e| e.to_hash[k]}
322
+ end
323
+ end
324
+ out = out.flatten
325
+
326
+ else # If Hash
327
+ out = {}
328
+ groups.each do |k,v|
329
+ if v.size == 1
330
+ out.merge!(v.first)
331
+ else
332
+ out.merge!( k => v.map{|e| e.to_hash[k]})
333
+ end
334
+ end
335
+ out.merge! attributes unless attributes.empty?
336
+ out = out.empty? ? nil : out
337
+ end
338
+
339
+ if @type && out.nil?
340
+ { name => typecast_value(out) }
341
+ else
342
+ { name => out }
343
+ end
344
+ end
345
+ end
346
+
347
+ # Typecasts a value based upon its type. For instance, if
348
+ # +node+ has #type == "integer",
349
+ # {{[node.typecast_value("12") #=> 12]}}
350
+ #
351
+ # @param value<String> The value that is being typecast.
352
+ #
353
+ # @details [:type options]
354
+ # "integer"::
355
+ # converts +value+ to an integer with #to_i
356
+ # "boolean"::
357
+ # checks whether +value+, after removing spaces, is the literal
358
+ # "true"
359
+ # "datetime"::
360
+ # Parses +value+ using Time.parse, and returns a UTC Time
361
+ # "date"::
362
+ # Parses +value+ using Date.parse
363
+ #
364
+ # @return <Integer, TrueClass, FalseClass, Time, Date, Object>
365
+ # The result of typecasting +value+.
366
+ #
367
+ # @note
368
+ # If +self+ does not have a "type" key, or if it's not one of the
369
+ # options specified above, the raw +value+ will be returned.
370
+ def typecast_value(value)
371
+ return value unless @type
372
+ proc = self.class.typecasts[@type]
373
+ proc.nil? ? value : proc.call(value)
374
+ end
375
+
376
+ # Convert basic XML entities into their literal values.
377
+ #
378
+ # @param value<#gsub> An XML fragment.
379
+ #
380
+ # @return <#gsub> The XML fragment after converting entities.
381
+ def translate_xml_entities(value)
382
+ value.gsub(/&lt;/, "<").
383
+ gsub(/&gt;/, ">").
384
+ gsub(/&quot;/, '"').
385
+ gsub(/&apos;/, "'").
386
+ gsub(/&amp;/, "&")
387
+ end
388
+
389
+ # Take keys of the form foo-bar and convert them to foo_bar
390
+ def undasherize_keys(params)
391
+ params.keys.each do |key, value|
392
+ params[key.tr("-", "_")] = params.delete(key)
393
+ end
394
+ params
395
+ end
396
+
397
+ # Get the inner_html of the REXML node.
398
+ def inner_html
399
+ @children.join
400
+ end
401
+
402
+ # Converts the node into a readable HTML node.
403
+ #
404
+ # @return <String> The HTML node in text form.
405
+ def to_html
406
+ attributes.merge!(:type => @type ) if @type
407
+ "<#{name}#{attributes.to_xml_attributes}>#{@nil_element ? '' : inner_html}</#{name}>"
408
+ end
409
+
410
+ # @alias #to_html #to_s
411
+ def to_s
412
+ to_html
413
+ end
414
+ end
415
+
416
+ class ToHashParser
417
+
418
+ def self.from_xml(xml)
419
+ stack = []
420
+ parser = REXML::Parsers::BaseParser.new(xml)
421
+
422
+ while true
423
+ event = parser.pull
424
+ case event[0]
425
+ when :end_document
426
+ break
427
+ when :end_doctype, :start_doctype
428
+ # do nothing
429
+ when :start_element
430
+ stack.push REXMLUtilityNode.new(event[1], event[2])
431
+ when :end_element
432
+ if stack.size > 1
433
+ temp = stack.pop
434
+ stack.last.add_node(temp)
435
+ end
436
+ when :text, :cdata
437
+ stack.last.add_node(event[1]) unless event[1].strip.length == 0
438
+ end
439
+ end
440
+ stack.pop.to_hash
441
+ end
442
+ end
@@ -0,0 +1,401 @@
1
+ module Extlib
2
+ #
3
+ # TODO: Write more documentation!
4
+ #
5
+ # Overview
6
+ # ========
7
+ #
8
+ # The Hook module is a very simple set of AOP helpers. Basically, it
9
+ # allows the developer to specify a method or block that should run
10
+ # before or after another method.
11
+ #
12
+ # Usage
13
+ # =====
14
+ #
15
+ # Halting The Hook Stack
16
+ #
17
+ # Inheritance
18
+ #
19
+ # Other Goodies
20
+ #
21
+ # Please bring up any issues regarding Hooks with carllerche on IRC
22
+ #
23
+ module Hook
24
+
25
+ def self.included(base)
26
+ base.extend(ClassMethods)
27
+ base.const_set("CLASS_HOOKS", {}) unless base.const_defined?("CLASS_HOOKS")
28
+ base.const_set("INSTANCE_HOOKS", {}) unless base.const_defined?("INSTANCE_HOOKS")
29
+ base.class_eval do
30
+ class << self
31
+ def method_added(name)
32
+ process_method_added(name, :instance)
33
+ end
34
+
35
+ def singleton_method_added(name)
36
+ process_method_added(name, :class)
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ module ClassMethods
43
+ include Extlib::Assertions
44
+ # Inject code that executes before the target class method.
45
+ #
46
+ # @param target_method<Symbol> the name of the class method to inject before
47
+ # @param method_sym<Symbol> the name of the method to run before the
48
+ # target_method
49
+ # @param block<Block> the code to run before the target_method
50
+ #
51
+ # @note
52
+ # Either method_sym or block is required.
53
+ # -
54
+ # @api public
55
+ def before_class_method(target_method, method_sym = nil, &block)
56
+ install_hook :before, target_method, method_sym, :class, &block
57
+ end
58
+
59
+ #
60
+ # Inject code that executes after the target class method.
61
+ #
62
+ # @param target_method<Symbol> the name of the class method to inject after
63
+ # @param method_sym<Symbol> the name of the method to run after the target_method
64
+ # @param block<Block> the code to run after the target_method
65
+ #
66
+ # @note
67
+ # Either method_sym or block is required.
68
+ # -
69
+ # @api public
70
+ def after_class_method(target_method, method_sym = nil, &block)
71
+ install_hook :after, target_method, method_sym, :class, &block
72
+ end
73
+
74
+ #
75
+ # Inject code that executes before the target instance method.
76
+ #
77
+ # @param target_method<Symbol> the name of the instance method to inject before
78
+ # @param method_sym<Symbol> the name of the method to run before the
79
+ # target_method
80
+ # @param block<Block> the code to run before the target_method
81
+ #
82
+ # @note
83
+ # Either method_sym or block is required.
84
+ # -
85
+ # @api public
86
+ def before(target_method, method_sym = nil, &block)
87
+ install_hook :before, target_method, method_sym, :instance, &block
88
+ end
89
+
90
+ #
91
+ # Inject code that executes after the target instance method.
92
+ #
93
+ # @param target_method<Symbol> the name of the instance method to inject after
94
+ # @param method_sym<Symbol> the name of the method to run after the
95
+ # target_method
96
+ # @param block<Block> the code to run after the target_method
97
+ #
98
+ # @note
99
+ # Either method_sym or block is required.
100
+ # -
101
+ # @api public
102
+ def after(target_method, method_sym = nil, &block)
103
+ install_hook :after, target_method, method_sym, :instance, &block
104
+ end
105
+
106
+ # Register a class method as hookable. Registering a method means that
107
+ # before hooks will be run immediately before the method is invoked and
108
+ # after hooks will be called immediately after the method is invoked.
109
+ #
110
+ # @param hookable_method<Symbol> The name of the class method that should
111
+ # be hookable
112
+ # -
113
+ # @api public
114
+ def register_class_hooks(*hooks)
115
+ hooks.each { |hook| register_hook(hook, :class) }
116
+ end
117
+
118
+ # Register aninstance method as hookable. Registering a method means that
119
+ # before hooks will be run immediately before the method is invoked and
120
+ # after hooks will be called immediately after the method is invoked.
121
+ #
122
+ # @param hookable_method<Symbol> The name of the instance method that should
123
+ # be hookable
124
+ # -
125
+ # @api public
126
+ def register_instance_hooks(*hooks)
127
+ hooks.each { |hook| register_hook(hook, :instance) }
128
+ end
129
+
130
+ # Not yet implemented
131
+ def reset_hook!(target_method, scope)
132
+ raise NotImplementedError
133
+ end
134
+
135
+ # --- Alright kids... the rest is internal stuff ---
136
+
137
+ # Returns the correct HOOKS Hash depending on whether we are
138
+ # working with class methods or instance methods
139
+ def hooks_with_scope(scope)
140
+ case scope
141
+ when :class then class_hooks
142
+ when :instance then instance_hooks
143
+ else raise ArgumentError, 'You need to pass :class or :instance as scope'
144
+ end
145
+ end
146
+
147
+ def class_hooks
148
+ self.const_get("CLASS_HOOKS")
149
+ end
150
+
151
+ def instance_hooks
152
+ self.const_get("INSTANCE_HOOKS")
153
+ end
154
+
155
+ # Registers a method as hookable. Registering hooks involves the following
156
+ # process
157
+ #
158
+ # * Create a blank entry in the HOOK Hash for the method.
159
+ # * Define the methods that execute the before and after hook stack.
160
+ # These methods will be no-ops at first, but everytime a new hook is
161
+ # defined, the methods will be redefined to incorporate the new hook.
162
+ # * Redefine the method that is to be hookable so that the hook stacks
163
+ # are invoked approprietly.
164
+ def register_hook(target_method, scope)
165
+ if scope == :instance && !method_defined?(target_method)
166
+ raise ArgumentError, "#{target_method} instance method does not exist"
167
+ elsif scope == :class && !respond_to?(target_method)
168
+ raise ArgumentError, "#{target_method} class method does not exist"
169
+ end
170
+
171
+ hooks = hooks_with_scope(scope)
172
+
173
+ if hooks[target_method].nil?
174
+ hooks[target_method] = {
175
+ # We need to keep track of which class in the Inheritance chain the
176
+ # method was declared hookable in. Every time a child declares a new
177
+ # hook for the method, the hook stack invocations need to be redefined
178
+ # in the original Class. See #define_hook_stack_execution_methods
179
+ :before => [], :after => [], :in => self
180
+ }
181
+
182
+ define_hook_stack_execution_methods(target_method, scope)
183
+ define_advised_method(target_method, scope)
184
+ end
185
+ end
186
+
187
+ # Is the method registered as a hookable in the given scope.
188
+ def registered_as_hook?(target_method, scope)
189
+ ! hooks_with_scope(scope)[target_method].nil?
190
+ end
191
+
192
+ # Generates names for the various utility methods. We need to do this because
193
+ # the various utility methods should not end in = so, while we're at it, we
194
+ # might as well get rid of all punctuation.
195
+ def hook_method_name(target_method, prefix, suffix)
196
+ target_method = target_method.to_s
197
+
198
+ case target_method[-1,1]
199
+ when '?' then "#{prefix}_#{target_method[0..-2]}_ques_#{suffix}"
200
+ when '!' then "#{prefix}_#{target_method[0..-2]}_bang_#{suffix}"
201
+ when '=' then "#{prefix}_#{target_method[0..-2]}_eq_#{suffix}"
202
+ # I add a _nan_ suffix here so that we don't ever encounter
203
+ # any naming conflicts.
204
+ else "#{prefix}_#{target_method[0..-1]}_nan_#{suffix}"
205
+ end
206
+ end
207
+
208
+ # This will need to be refactored
209
+ def process_method_added(method_name, scope)
210
+ hooks_with_scope(scope).each do |target_method, hooks|
211
+ if hooks[:before].any? { |hook| hook[:name] == method_name }
212
+ define_hook_stack_execution_methods(target_method, scope)
213
+ end
214
+
215
+ if hooks[:after].any? { |hook| hook[:name] == method_name }
216
+ define_hook_stack_execution_methods(target_method, scope)
217
+ end
218
+ end
219
+ end
220
+
221
+ # Defines two methods. One method executes the before hook stack. The other executes
222
+ # the after hook stack. This method will be called many times during the Class definition
223
+ # process. It should be called for each hook that is defined. It will also be called
224
+ # when a hook is redefined (to make sure that the arity hasn't changed).
225
+ def define_hook_stack_execution_methods(target_method, scope)
226
+ unless registered_as_hook?(target_method, scope)
227
+ raise ArgumentError, "#{target_method} has not be registered as a hookable #{scope} method"
228
+ end
229
+
230
+ hooks = hooks_with_scope(scope)
231
+
232
+ before_hooks = hooks[target_method][:before]
233
+ before_hooks = before_hooks.map{ |info| inline_call(info, scope) }.join("\n")
234
+
235
+ after_hooks = hooks[target_method][:after]
236
+ after_hooks = after_hooks.map{ |info| inline_call(info, scope) }.join("\n")
237
+
238
+ before_hook_name = hook_method_name(target_method, 'execute_before', 'hook_stack')
239
+ after_hook_name = hook_method_name(target_method, 'execute_after', 'hook_stack')
240
+
241
+ hooks[target_method][:in].class_eval <<-RUBY, __FILE__, __LINE__ + 1
242
+ #{scope == :class ? 'class << self' : ''}
243
+
244
+ private
245
+
246
+ remove_method :#{before_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{before_hook_name} }
247
+ def #{before_hook_name}(*args)
248
+ #{before_hooks}
249
+ end
250
+
251
+ remove_method :#{after_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{after_hook_name} }
252
+ def #{after_hook_name}(*args)
253
+ #{after_hooks}
254
+ end
255
+
256
+ #{scope == :class ? 'end' : ''}
257
+ RUBY
258
+ end
259
+
260
+ # Returns ruby code that will invoke the hook. It checks the arity of the hook method
261
+ # and passes arguments accordingly.
262
+ def inline_call(method_info, scope)
263
+ name = method_info[:name]
264
+
265
+ if scope == :instance
266
+ args = method_defined?(name) && instance_method(name).arity != 0 ? '*args' : ''
267
+ %(#{name}(#{args}) if self.class <= ObjectSpace._id2ref(#{method_info[:from].object_id}))
268
+ else
269
+ args = respond_to?(name) && method(name).arity != 0 ? '*args' : ''
270
+ %(#{name}(#{args}) if self <= ObjectSpace._id2ref(#{method_info[:from].object_id}))
271
+ end
272
+ end
273
+
274
+ def define_advised_method(target_method, scope)
275
+ args = args_for(method_with_scope(target_method, scope))
276
+
277
+ renamed_target = hook_method_name(target_method, 'hookable_', 'before_advised')
278
+
279
+ source = <<-EOD
280
+ def #{target_method}(#{args})
281
+ retval = nil
282
+ catch(:halt) do
283
+ #{hook_method_name(target_method, 'execute_before', 'hook_stack')}(#{args})
284
+ retval = #{renamed_target}(#{args})
285
+ #{hook_method_name(target_method, 'execute_after', 'hook_stack')}(retval, #{args})
286
+ retval
287
+ end
288
+ end
289
+ EOD
290
+
291
+ if scope == :instance && !instance_methods(false).any? { |m| m.to_sym == target_method }
292
+ send(:alias_method, renamed_target, target_method)
293
+
294
+ proxy_module = Module.new
295
+ proxy_module.class_eval(source, __FILE__, __LINE__)
296
+ self.send(:include, proxy_module)
297
+ else
298
+ source = %{alias_method :#{renamed_target}, :#{target_method}\n#{source}}
299
+ source = %{class << self\n#{source}\nend} if scope == :class
300
+ class_eval(source, __FILE__, __LINE__)
301
+ end
302
+ end
303
+
304
+ # --- Add a hook ---
305
+
306
+ def install_hook(type, target_method, method_sym, scope, &block)
307
+ assert_kind_of 'target_method', target_method, Symbol
308
+ assert_kind_of 'method_sym', method_sym, Symbol unless method_sym.nil?
309
+ assert_kind_of 'scope', scope, Symbol
310
+
311
+ if !block_given? and method_sym.nil?
312
+ raise ArgumentError, "You need to pass 2 arguments to \"#{type}\"."
313
+ end
314
+
315
+ if method_sym.to_s[-1,1] == '='
316
+ raise ArgumentError, "Methods ending in = cannot be hooks"
317
+ end
318
+
319
+ unless [ :class, :instance ].include?(scope)
320
+ raise ArgumentError, 'You need to pass :class or :instance as scope'
321
+ end
322
+
323
+ if registered_as_hook?(target_method, scope)
324
+ hooks = hooks_with_scope(scope)
325
+
326
+ #if this hook is previously declared in a sibling or cousin we must move the :in class
327
+ #to the common ancestor to get both hooks to run.
328
+ if !(hooks[target_method][:in] <=> self)
329
+ before_hook_name = hook_method_name(target_method, 'execute_before', 'hook_stack')
330
+ after_hook_name = hook_method_name(target_method, 'execute_after', 'hook_stack')
331
+
332
+ hooks[target_method][:in].class_eval <<-RUBY, __FILE__, __LINE__ + 1
333
+ remove_method :#{before_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{before_hook_name} }
334
+ def #{before_hook_name}(*args)
335
+ super
336
+ end
337
+
338
+ remove_method :#{after_hook_name} if instance_methods(false).any? { |m| m.to_sym == :#{before_hook_name} }
339
+ def #{after_hook_name}(*args)
340
+ super
341
+ end
342
+ RUBY
343
+
344
+ while !(hooks[target_method][:in] <=> self) do
345
+ hooks[target_method][:in] = hooks[target_method][:in].superclass
346
+ end
347
+
348
+ define_hook_stack_execution_methods(target_method, scope)
349
+ hooks[target_method][:in].class_eval{define_advised_method(target_method, scope)}
350
+ end
351
+ else
352
+ register_hook(target_method, scope)
353
+ hooks = hooks_with_scope(scope)
354
+ end
355
+
356
+ #if we were passed a block, create a method out of it.
357
+ if block
358
+ method_sym = "__hooks_#{type}_#{quote_method(target_method)}_#{hooks[target_method][type].length}".to_sym
359
+ if scope == :class
360
+ meta_class.instance_eval do
361
+ define_method(method_sym, &block)
362
+ end
363
+ else
364
+ define_method(method_sym, &block)
365
+ end
366
+ end
367
+
368
+ # Adds method to the stack an redefines the hook invocation method
369
+ hooks[target_method][type] << { :name => method_sym, :from => self }
370
+ define_hook_stack_execution_methods(target_method, scope)
371
+ end
372
+
373
+ # --- Helpers ---
374
+
375
+ def args_for(method)
376
+ if method.arity == 0
377
+ "&block"
378
+ elsif method.arity > 0
379
+ "_" << (1 .. method.arity).to_a.join(", _") << ", &block"
380
+ elsif (method.arity + 1) < 0
381
+ "_" << (1 .. (method.arity).abs - 1).to_a.join(", _") << ", *args, &block"
382
+ else
383
+ "*args, &block"
384
+ end
385
+ end
386
+
387
+ def method_with_scope(name, scope)
388
+ case scope
389
+ when :class then method(name)
390
+ when :instance then instance_method(name)
391
+ else raise ArgumentError, 'You need to pass :class or :instance as scope'
392
+ end
393
+ end
394
+
395
+ def quote_method(name)
396
+ name.to_s.gsub(/\?$/, '_q_').gsub(/!$/, '_b_').gsub(/=$/, '_eq_')
397
+ end
398
+ end
399
+
400
+ end
401
+ end