rango 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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