torquebox-console 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1091) hide show
  1. data/console.rb +7 -0
  2. data/dependencies.rb +7 -7
  3. data/lib/torquebox/console/client.rb +5 -1
  4. data/lib/torquebox/console/version.rb +1 -1
  5. data/public/console.js +22 -12
  6. data/stomplets/torque_box_console.rb +19 -6
  7. data/views/index.haml +8 -3
  8. metadata +1424 -2690
  9. data/vendor/bundle/ruby/1.8/bin/catstomp +0 -23
  10. data/vendor/bundle/ruby/1.8/bin/haml +0 -23
  11. data/vendor/bundle/ruby/1.8/bin/html2haml +0 -23
  12. data/vendor/bundle/ruby/1.8/bin/rackup +0 -23
  13. data/vendor/bundle/ruby/1.8/bin/rake +0 -23
  14. data/vendor/bundle/ruby/1.8/bin/rake2thor +0 -23
  15. data/vendor/bundle/ruby/1.8/bin/stompcat +0 -23
  16. data/vendor/bundle/ruby/1.8/bin/thor +0 -23
  17. data/vendor/bundle/ruby/1.8/bin/tilt +0 -23
  18. data/vendor/bundle/ruby/1.8/cache/haml-3.1.8.gem +0 -0
  19. data/vendor/bundle/ruby/1.8/cache/rack-1.5.2.gem +0 -0
  20. data/vendor/bundle/ruby/1.8/cache/rack-protection-1.4.0.gem +0 -0
  21. data/vendor/bundle/ruby/1.8/cache/rake-10.0.3.gem +0 -0
  22. data/vendor/bundle/ruby/1.8/cache/sinatra-1.3.5.gem +0 -0
  23. data/vendor/bundle/ruby/1.8/cache/stomp-1.2.8.gem +0 -0
  24. data/vendor/bundle/ruby/1.8/cache/thor-0.17.0.gem +0 -0
  25. data/vendor/bundle/ruby/1.8/cache/tilt-1.3.4.gem +0 -0
  26. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/CONTRIBUTING +0 -3
  27. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/MIT-LICENSE +0 -20
  28. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/README.md +0 -133
  29. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/REVISION +0 -1
  30. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/Rakefile +0 -419
  31. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/VERSION +0 -1
  32. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/VERSION_NAME +0 -1
  33. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/bin/haml +0 -9
  34. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/bin/html2haml +0 -7
  35. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/extra/update_watch.rb +0 -13
  36. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/init.rb +0 -18
  37. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml.rb +0 -47
  38. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/buffer.rb +0 -301
  39. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/compiler.rb +0 -453
  40. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/engine.rb +0 -312
  41. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/error.rb +0 -22
  42. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/exec.rb +0 -362
  43. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/filters.rb +0 -385
  44. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/helpers.rb +0 -608
  45. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/helpers/action_view_extensions.rb +0 -57
  46. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/helpers/action_view_mods.rb +0 -260
  47. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/helpers/rails_323_textarea_fix.rb +0 -41
  48. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/helpers/xss_mods.rb +0 -165
  49. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/html.rb +0 -412
  50. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/html/erb.rb +0 -141
  51. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/parser.rb +0 -711
  52. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/railtie.rb +0 -19
  53. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/root.rb +0 -7
  54. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/shared.rb +0 -78
  55. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/template.rb +0 -99
  56. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/template/options.rb +0 -16
  57. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/template/patch.rb +0 -58
  58. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/template/plugin.rb +0 -123
  59. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/util.rb +0 -842
  60. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/haml/version.rb +0 -109
  61. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/sass.rb +0 -8
  62. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/sass/plugin.rb +0 -10
  63. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/sass/rails2_shim.rb +0 -9
  64. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/lib/sass/rails3_shim.rb +0 -16
  65. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/rails/init.rb +0 -1
  66. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/benchmark.rb +0 -91
  67. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.0.x +0 -8
  68. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.0.x.lock +0 -38
  69. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.1.x +0 -8
  70. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.1.x.lock +0 -38
  71. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.2.x +0 -8
  72. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.2.x.lock +0 -38
  73. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.3.x +0 -8
  74. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-2.3.x.lock +0 -40
  75. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-3.0.x +0 -8
  76. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-3.0.x.lock +0 -85
  77. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-3.1.x +0 -8
  78. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-3.1.x.lock +0 -97
  79. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-3.2.x +0 -8
  80. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-3.2.x.lock +0 -95
  81. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-xss-2.3.x +0 -9
  82. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/gemfiles/Gemfile.rails-xss-2.3.x.lock +0 -42
  83. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/engine_test.rb +0 -1950
  84. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/erb/_av_partial_1.erb +0 -12
  85. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/erb/_av_partial_2.erb +0 -8
  86. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/erb/action_view.erb +0 -62
  87. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/erb/standard.erb +0 -55
  88. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/helper_test.rb +0 -467
  89. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/html2haml/erb_tests.rb +0 -440
  90. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/html2haml_test.rb +0 -336
  91. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/markaby/standard.mab +0 -52
  92. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/mocks/article.rb +0 -6
  93. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/content_for_layout.xhtml +0 -12
  94. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/eval_suppressed.xhtml +0 -9
  95. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/filters.xhtml +0 -62
  96. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/helpers.xhtml +0 -70
  97. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/helpful.xhtml +0 -10
  98. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/just_stuff.xhtml +0 -70
  99. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/list.xhtml +0 -12
  100. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/nuke_inner_whitespace.xhtml +0 -40
  101. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/nuke_outer_whitespace.xhtml +0 -148
  102. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/original_engine.xhtml +0 -20
  103. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/partial_layout.xhtml +0 -5
  104. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/partials.xhtml +0 -21
  105. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/render_layout.xhtml +0 -3
  106. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/silent_script.xhtml +0 -74
  107. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/standard.xhtml +0 -162
  108. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/tag_parsing.xhtml +0 -23
  109. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/very_basic.xhtml +0 -5
  110. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/results/whitespace_handling.xhtml +0 -85
  111. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/spec/README.md +0 -97
  112. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/spec/lua_haml_spec.lua +0 -30
  113. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/spec/ruby_haml_test.rb +0 -19
  114. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/spec/tests.json +0 -534
  115. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/spec_test.rb +0 -44
  116. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/template_test.rb +0 -443
  117. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_av_partial_1.haml +0 -9
  118. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_av_partial_1_ugly.haml +0 -9
  119. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_av_partial_2.haml +0 -5
  120. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_av_partial_2_ugly.haml +0 -5
  121. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_layout.erb +0 -3
  122. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_layout_for_partial.haml +0 -3
  123. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_partial.haml +0 -8
  124. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/_text_area.haml +0 -3
  125. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/action_view.haml +0 -47
  126. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/action_view_ugly.haml +0 -47
  127. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/breakage.haml +0 -8
  128. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/content_for_layout.haml +0 -8
  129. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/eval_suppressed.haml +0 -11
  130. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/filters.haml +0 -66
  131. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/helpers.haml +0 -55
  132. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/helpful.haml +0 -11
  133. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/just_stuff.haml +0 -85
  134. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/list.haml +0 -12
  135. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/nuke_inner_whitespace.haml +0 -32
  136. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/nuke_outer_whitespace.haml +0 -144
  137. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/original_engine.haml +0 -17
  138. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/partial_layout.haml +0 -10
  139. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/partialize.haml +0 -1
  140. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/partials.haml +0 -12
  141. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/render_layout.haml +0 -2
  142. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/silent_script.haml +0 -40
  143. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/standard.haml +0 -43
  144. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/standard_ugly.haml +0 -43
  145. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/tag_parsing.haml +0 -21
  146. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/very_basic.haml +0 -4
  147. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/templates/whitespace_handling.haml +0 -87
  148. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/haml/util_test.rb +0 -300
  149. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/linked_rails.rb +0 -42
  150. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/test/test_helper.rb +0 -75
  151. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/CONTRIBUTING +0 -3
  152. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/MIT-LICENSE +0 -20
  153. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/README.md +0 -201
  154. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/Rakefile +0 -339
  155. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/TODO +0 -39
  156. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/VERSION +0 -1
  157. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/VERSION_NAME +0 -1
  158. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/bin/sass +0 -8
  159. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/bin/sass-convert +0 -7
  160. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/bin/scss +0 -8
  161. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/doc-src/FAQ.md +0 -35
  162. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/doc-src/INDENTED_SYNTAX.md +0 -210
  163. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/doc-src/SASS_CHANGELOG.md +0 -2327
  164. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/doc-src/SASS_REFERENCE.md +0 -1965
  165. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/doc-src/SCSS_FOR_SASS_USERS.md +0 -155
  166. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/ext/extconf.rb +0 -10
  167. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/extra/update_watch.rb +0 -13
  168. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/init.rb +0 -18
  169. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass.rb +0 -73
  170. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/cache_stores.rb +0 -15
  171. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/cache_stores/base.rb +0 -86
  172. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/cache_stores/chain.rb +0 -33
  173. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/cache_stores/filesystem.rb +0 -60
  174. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/cache_stores/memory.rb +0 -47
  175. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/cache_stores/null.rb +0 -25
  176. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/callbacks.rb +0 -66
  177. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/css.rb +0 -295
  178. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/engine.rb +0 -878
  179. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/environment.rb +0 -166
  180. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/error.rb +0 -201
  181. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/exec.rb +0 -672
  182. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/importers.rb +0 -22
  183. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/importers/base.rb +0 -139
  184. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/importers/filesystem.rb +0 -149
  185. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/less.rb +0 -382
  186. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/logger.rb +0 -15
  187. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/logger/base.rb +0 -32
  188. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/logger/log_level.rb +0 -49
  189. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin.rb +0 -132
  190. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/compiler.rb +0 -383
  191. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/configuration.rb +0 -123
  192. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/generic.rb +0 -15
  193. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/merb.rb +0 -48
  194. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/rack.rb +0 -60
  195. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/rails.rb +0 -47
  196. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/plugin/staleness_checker.rb +0 -173
  197. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/railtie.rb +0 -9
  198. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/repl.rb +0 -58
  199. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/root.rb +0 -7
  200. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script.rb +0 -40
  201. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/bool.rb +0 -18
  202. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/color.rb +0 -480
  203. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/css_lexer.rb +0 -29
  204. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/css_parser.rb +0 -31
  205. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/funcall.rb +0 -175
  206. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/functions.rb +0 -1386
  207. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/interpolation.rb +0 -79
  208. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/lexer.rb +0 -339
  209. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/list.rb +0 -83
  210. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/literal.rb +0 -250
  211. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/node.rb +0 -99
  212. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/number.rb +0 -452
  213. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/operation.rb +0 -99
  214. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/parser.rb +0 -474
  215. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/string.rb +0 -51
  216. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/string_interpolation.rb +0 -103
  217. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/unary_operation.rb +0 -64
  218. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/script/variable.rb +0 -59
  219. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss.rb +0 -17
  220. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/css_parser.rb +0 -46
  221. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/parser.rb +0 -960
  222. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/rx.rb +0 -128
  223. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/sass_parser.rb +0 -11
  224. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/script_lexer.rb +0 -15
  225. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/script_parser.rb +0 -25
  226. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/scss/static_parser.rb +0 -40
  227. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/selector.rb +0 -361
  228. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/selector/abstract_sequence.rb +0 -62
  229. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/selector/comma_sequence.rb +0 -81
  230. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/selector/sequence.rb +0 -233
  231. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/selector/simple.rb +0 -113
  232. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/selector/simple_sequence.rb +0 -134
  233. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/shared.rb +0 -78
  234. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/charset_node.rb +0 -22
  235. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/comment_node.rb +0 -90
  236. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/debug_node.rb +0 -18
  237. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/directive_node.rb +0 -23
  238. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/each_node.rb +0 -24
  239. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/extend_node.rb +0 -29
  240. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/for_node.rb +0 -36
  241. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/function_node.rb +0 -27
  242. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/if_node.rb +0 -52
  243. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/import_node.rb +0 -68
  244. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/media_node.rb +0 -32
  245. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/mixin_def_node.rb +0 -27
  246. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/mixin_node.rb +0 -32
  247. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/node.rb +0 -201
  248. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/prop_node.rb +0 -148
  249. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/return_node.rb +0 -18
  250. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/root_node.rb +0 -28
  251. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/rule_node.rb +0 -136
  252. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/variable_node.rb +0 -30
  253. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/base.rb +0 -75
  254. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/check_nesting.rb +0 -133
  255. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/convert.rb +0 -260
  256. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/cssize.rb +0 -175
  257. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/deep_copy.rb +0 -87
  258. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/perform.rb +0 -332
  259. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/set_options.rb +0 -97
  260. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/visitors/to_css.rb +0 -210
  261. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/warn_node.rb +0 -18
  262. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/tree/while_node.rb +0 -18
  263. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/util.rb +0 -721
  264. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/util/subset_map.rb +0 -101
  265. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/lib/sass/version.rb +0 -112
  266. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/rails/init.rb +0 -1
  267. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/sass.gemspec +0 -33
  268. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/Gemfile +0 -4
  269. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/Gemfile.lock +0 -19
  270. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/cache_test.rb +0 -89
  271. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/callbacks_test.rb +0 -61
  272. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/conversion_test.rb +0 -1199
  273. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/css2sass_test.rb +0 -373
  274. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/data/hsl-rgb.txt +0 -319
  275. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/engine_test.rb +0 -2567
  276. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/extend_test.rb +0 -1348
  277. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.css +0 -1
  278. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -1
  279. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/functions_test.rb +0 -1038
  280. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/importer_test.rb +0 -192
  281. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/less_conversion_test.rb +0 -653
  282. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/logger_test.rb +0 -58
  283. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/mock_importer.rb +0 -49
  284. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/more_results/more1.css +0 -9
  285. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/more_results/more1_with_line_comments.css +0 -26
  286. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/more_results/more_import.css +0 -29
  287. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/more_templates/_more_partial.sass +0 -2
  288. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/more_templates/more1.sass +0 -23
  289. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/more_templates/more_import.sass +0 -11
  290. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/plugin_test.rb +0 -472
  291. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/alt.css +0 -4
  292. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/basic.css +0 -9
  293. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/compact.css +0 -5
  294. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/complex.css +0 -86
  295. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/compressed.css +0 -1
  296. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/expanded.css +0 -19
  297. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/if.css +0 -3
  298. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/import.css +0 -31
  299. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/import_charset.css +0 -4
  300. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/import_charset_1_8.css +0 -4
  301. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/import_charset_ibm866.css +0 -4
  302. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/line_numbers.css +0 -49
  303. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/mixins.css +0 -95
  304. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/multiline.css +0 -24
  305. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/nested.css +0 -22
  306. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/options.css +0 -1
  307. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/parent_ref.css +0 -13
  308. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/script.css +0 -16
  309. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/scss_import.css +0 -31
  310. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/scss_importee.css +0 -2
  311. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
  312. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/subdir/subdir.css +0 -3
  313. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/units.css +0 -11
  314. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/warn.css +0 -0
  315. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/results/warn_imported.css +0 -0
  316. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/script_conversion_test.rb +0 -285
  317. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/script_test.rb +0 -514
  318. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/scss/css_test.rb +0 -922
  319. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/scss/rx_test.rb +0 -156
  320. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/scss/scss_test.rb +0 -1273
  321. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/scss/test_helper.rb +0 -37
  322. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/_imported_charset_ibm866.sass +0 -4
  323. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/_imported_charset_utf8.sass +0 -4
  324. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/_partial.sass +0 -2
  325. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/alt.sass +0 -16
  326. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/basic.sass +0 -23
  327. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/bork1.sass +0 -2
  328. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/bork2.sass +0 -2
  329. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/bork3.sass +0 -2
  330. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/bork4.sass +0 -2
  331. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/bork5.sass +0 -3
  332. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/compact.sass +0 -17
  333. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/complex.sass +0 -305
  334. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/compressed.sass +0 -15
  335. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/expanded.sass +0 -17
  336. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/if.sass +0 -11
  337. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/import.sass +0 -12
  338. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/import_charset.sass +0 -7
  339. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/import_charset_1_8.sass +0 -4
  340. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/import_charset_ibm866.sass +0 -9
  341. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/importee.less +0 -2
  342. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/importee.sass +0 -19
  343. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/line_numbers.sass +0 -13
  344. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/mixin_bork.sass +0 -5
  345. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/mixins.sass +0 -76
  346. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/multiline.sass +0 -20
  347. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested.sass +0 -25
  348. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_bork1.sass +0 -2
  349. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_bork2.sass +0 -2
  350. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_bork3.sass +0 -2
  351. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_bork4.sass +0 -2
  352. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_bork5.sass +0 -2
  353. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_import.sass +0 -2
  354. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/nested_mixin_bork.sass +0 -6
  355. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/options.sass +0 -2
  356. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/parent_ref.sass +0 -25
  357. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/script.sass +0 -101
  358. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/scss_import.scss +0 -11
  359. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/scss_importee.scss +0 -1
  360. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
  361. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
  362. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/subdir/subdir.sass +0 -6
  363. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/units.sass +0 -11
  364. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/warn.sass +0 -3
  365. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/templates/warn_imported.sass +0 -4
  366. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/test_helper.rb +0 -8
  367. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/util/subset_map_test.rb +0 -91
  368. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/sass/util_test.rb +0 -266
  369. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/test/test_helper.rb +0 -69
  370. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/Gemfile +0 -3
  371. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/LICENSE +0 -20
  372. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/README.markdown +0 -83
  373. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/Rakefile +0 -11
  374. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/example.rb +0 -12
  375. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/fssm.gemspec +0 -24
  376. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm.rb +0 -37
  377. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/backends/fsevents.rb +0 -36
  378. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/backends/inotify.rb +0 -26
  379. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/backends/polling.rb +0 -25
  380. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/backends/rbfsevent.rb +0 -42
  381. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/backends/rubycocoa/fsevents.rb +0 -131
  382. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/monitor.rb +0 -36
  383. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/path.rb +0 -94
  384. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/pathname.rb +0 -36
  385. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/state/directory.rb +0 -75
  386. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/state/file.rb +0 -24
  387. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/support.rb +0 -92
  388. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/tree.rb +0 -176
  389. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/lib/fssm/version.rb +0 -3
  390. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/profile/prof-cache.rb +0 -40
  391. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/profile/prof-fssm-pathname.html +0 -1231
  392. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/profile/prof-pathname-rubinius.rb +0 -35
  393. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/profile/prof-pathname.rb +0 -68
  394. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/profile/prof-plain-pathname.html +0 -988
  395. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/profile/prof.html +0 -2379
  396. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/count_down_latch.rb +0 -151
  397. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/monitor_spec.rb +0 -202
  398. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/path_spec.rb +0 -96
  399. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/root/duck/quack.txt +0 -0
  400. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/root/file.css +0 -0
  401. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/root/file.rb +0 -0
  402. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/root/file.yml +0 -0
  403. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/root/moo/cow.txt +0 -0
  404. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/vendor/fssm/spec/spec_helper.rb +0 -14
  405. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/yard/callbacks.rb +0 -29
  406. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/yard/default/fulldoc/html/css/common.sass +0 -26
  407. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/yard/default/layout/html/footer.erb +0 -12
  408. data/vendor/bundle/ruby/1.8/gems/haml-3.1.8/vendor/sass/yard/inherited_hash.rb +0 -41
  409. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/COPYING +0 -18
  410. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/KNOWN-ISSUES +0 -30
  411. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/README.rdoc +0 -624
  412. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/Rakefile +0 -125
  413. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/SPEC +0 -237
  414. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/bin/rackup +0 -4
  415. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/contrib/rack.png +0 -0
  416. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/contrib/rack.svg +0 -150
  417. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/contrib/rack_logo.svg +0 -111
  418. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/contrib/rdoc.css +0 -412
  419. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/example/lobster.ru +0 -4
  420. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/example/protectedlobster.rb +0 -14
  421. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/example/protectedlobster.ru +0 -8
  422. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack.rb +0 -87
  423. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/abstract/handler.rb +0 -37
  424. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/abstract/request.rb +0 -43
  425. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/basic.rb +0 -58
  426. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/digest/md5.rb +0 -129
  427. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/digest/nonce.rb +0 -51
  428. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/digest/params.rb +0 -53
  429. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/auth/digest/request.rb +0 -41
  430. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/backports/uri/common_18.rb +0 -56
  431. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/backports/uri/common_192.rb +0 -52
  432. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/backports/uri/common_193.rb +0 -29
  433. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/body_proxy.rb +0 -39
  434. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/builder.rb +0 -149
  435. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/cascade.rb +0 -52
  436. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/chunked.rb +0 -58
  437. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/commonlogger.rb +0 -64
  438. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/conditionalget.rb +0 -67
  439. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/config.rb +0 -20
  440. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/content_length.rb +0 -33
  441. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/content_type.rb +0 -29
  442. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/deflater.rb +0 -116
  443. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/directory.rb +0 -161
  444. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/etag.rb +0 -64
  445. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/file.rb +0 -138
  446. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler.rb +0 -107
  447. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/cgi.rb +0 -61
  448. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/evented_mongrel.rb +0 -8
  449. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/fastcgi.rb +0 -98
  450. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/lsws.rb +0 -61
  451. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/mongrel.rb +0 -100
  452. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/scgi.rb +0 -67
  453. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/swiftiplied_mongrel.rb +0 -8
  454. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/thin.rb +0 -27
  455. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/handler/webrick.rb +0 -81
  456. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/head.rb +0 -22
  457. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/lint.rb +0 -699
  458. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/lobster.rb +0 -65
  459. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/lock.rb +0 -26
  460. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/logger.rb +0 -18
  461. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/methodoverride.rb +0 -31
  462. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/mime.rb +0 -677
  463. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/mock.rb +0 -190
  464. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/multipart.rb +0 -34
  465. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/multipart/generator.rb +0 -93
  466. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/multipart/parser.rb +0 -176
  467. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/multipart/uploaded_file.rb +0 -34
  468. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/nulllogger.rb +0 -18
  469. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/recursive.rb +0 -61
  470. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/reloader.rb +0 -109
  471. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/request.rb +0 -380
  472. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/response.rb +0 -155
  473. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/rewindable_input.rb +0 -104
  474. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/runtime.rb +0 -27
  475. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/sendfile.rb +0 -155
  476. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/server.rb +0 -362
  477. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/session/abstract/id.rb +0 -398
  478. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/session/cookie.rb +0 -178
  479. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/session/memcache.rb +0 -93
  480. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/session/pool.rb +0 -79
  481. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/showexceptions.rb +0 -378
  482. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/showstatus.rb +0 -113
  483. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/static.rb +0 -153
  484. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/urlmap.rb +0 -76
  485. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/utils.rb +0 -628
  486. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/lib/rack/utils/okjson.rb +0 -599
  487. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/rack.gemspec +0 -33
  488. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/builder/anything.rb +0 -5
  489. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/builder/comment.ru +0 -4
  490. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/builder/end.ru +0 -5
  491. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/builder/line.ru +0 -1
  492. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/builder/options.ru +0 -2
  493. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/assets/folder/test.js +0 -1
  494. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/assets/fonts/font.eot +0 -1
  495. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/assets/images/image.png +0 -1
  496. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/assets/index.html +0 -1
  497. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/assets/javascripts/app.js +0 -1
  498. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/assets/stylesheets/app.css +0 -1
  499. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/lighttpd.conf +0 -26
  500. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/rackup_stub.rb +0 -6
  501. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/sample_rackup.ru +0 -5
  502. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/test +0 -9
  503. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/test+directory/test+file +0 -1
  504. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/test.fcgi +0 -8
  505. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/cgi/test.ru +0 -5
  506. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/gemloader.rb +0 -10
  507. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/bad_robots +0 -259
  508. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/binary +0 -0
  509. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/content_type_and_no_filename +0 -6
  510. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/empty +0 -10
  511. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/fail_16384_nofile +0 -814
  512. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/file1.txt +0 -1
  513. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_and_modification_param +0 -7
  514. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_escaped_quotes +0 -6
  515. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_escaped_quotes_and_modification_param +0 -7
  516. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_percent_escaped_quotes +0 -6
  517. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_unescaped_percentages +0 -6
  518. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_unescaped_percentages2 +0 -6
  519. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_unescaped_percentages3 +0 -6
  520. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/filename_with_unescaped_quotes +0 -6
  521. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/ie +0 -6
  522. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/mixed_files +0 -21
  523. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/nested +0 -10
  524. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/none +0 -9
  525. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/semicolon +0 -6
  526. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/text +0 -15
  527. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/multipart/webkit +0 -32
  528. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/rackup/config.ru +0 -31
  529. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/registering_handler/rack/handler/registering_myself.rb +0 -8
  530. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_auth_basic.rb +0 -81
  531. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_auth_digest.rb +0 -259
  532. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_body_proxy.rb +0 -69
  533. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_builder.rb +0 -214
  534. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_cascade.rb +0 -61
  535. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_cgi.rb +0 -102
  536. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_chunked.rb +0 -85
  537. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_commonlogger.rb +0 -57
  538. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_conditionalget.rb +0 -102
  539. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_config.rb +0 -22
  540. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_content_length.rb +0 -83
  541. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_content_type.rb +0 -45
  542. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_deflater.rb +0 -204
  543. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_directory.rb +0 -88
  544. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_etag.rb +0 -98
  545. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_fastcgi.rb +0 -107
  546. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_file.rb +0 -213
  547. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_handler.rb +0 -59
  548. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_head.rb +0 -43
  549. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_lint.rb +0 -522
  550. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_lobster.rb +0 -58
  551. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_lock.rb +0 -164
  552. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_logger.rb +0 -23
  553. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_methodoverride.rb +0 -75
  554. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_mime.rb +0 -51
  555. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_mock.rb +0 -269
  556. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_mongrel.rb +0 -182
  557. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_multipart.rb +0 -445
  558. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_nulllogger.rb +0 -20
  559. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_recursive.rb +0 -72
  560. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_request.rb +0 -1078
  561. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_response.rb +0 -313
  562. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_rewindable_input.rb +0 -118
  563. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_runtime.rb +0 -49
  564. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_sendfile.rb +0 -130
  565. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_server.rb +0 -143
  566. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_session_abstract_id.rb +0 -53
  567. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_session_cookie.rb +0 -367
  568. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_session_memcache.rb +0 -321
  569. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_session_pool.rb +0 -209
  570. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_showexceptions.rb +0 -92
  571. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_showstatus.rb +0 -84
  572. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_static.rb +0 -145
  573. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_thin.rb +0 -91
  574. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_urlmap.rb +0 -213
  575. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_utils.rb +0 -573
  576. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/spec_webrick.rb +0 -143
  577. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/static/another/index.html +0 -1
  578. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/static/index.html +0 -1
  579. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/testrequest.rb +0 -78
  580. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
  581. data/vendor/bundle/ruby/1.8/gems/rack-1.5.2/test/unregistered_handler/rack/handler/unregistered_long_one.rb +0 -7
  582. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/License +0 -20
  583. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/README.md +0 -82
  584. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/Rakefile +0 -48
  585. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack-protection.rb +0 -1
  586. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection.rb +0 -40
  587. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/authenticity_token.rb +0 -24
  588. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/base.rb +0 -107
  589. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/escaped_params.rb +0 -87
  590. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/form_token.rb +0 -23
  591. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/frame_options.rb +0 -37
  592. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/http_origin.rb +0 -32
  593. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/ip_spoofing.rb +0 -23
  594. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/json_csrf.rb +0 -35
  595. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/path_traversal.rb +0 -36
  596. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/remote_referrer.rb +0 -20
  597. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/remote_token.rb +0 -22
  598. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/session_hijacking.rb +0 -36
  599. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/version.rb +0 -16
  600. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/lib/rack/protection/xss_header.rb +0 -25
  601. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/rack-protection.gemspec +0 -92
  602. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/authenticity_token_spec.rb +0 -33
  603. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/escaped_params_spec.rb +0 -44
  604. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/form_token_spec.rb +0 -33
  605. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/frame_options_spec.rb +0 -39
  606. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/http_origin_spec.rb +0 -38
  607. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/ip_spoofing_spec.rb +0 -35
  608. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/json_csrf_spec.rb +0 -44
  609. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/path_traversal_spec.rb +0 -28
  610. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/protection_spec.rb +0 -37
  611. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/remote_referrer_spec.rb +0 -31
  612. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/remote_token_spec.rb +0 -42
  613. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/session_hijacking_spec.rb +0 -54
  614. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/spec_helper.rb +0 -163
  615. data/vendor/bundle/ruby/1.8/gems/rack-protection-1.4.0/spec/xss_header_spec.rb +0 -56
  616. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/CHANGES +0 -526
  617. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/MIT-LICENSE +0 -21
  618. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/README.rdoc +0 -187
  619. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/Rakefile +0 -374
  620. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/TODO +0 -21
  621. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/bin/rake +0 -33
  622. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/command_line_usage.rdoc +0 -152
  623. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/example/Rakefile1 +0 -38
  624. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/example/Rakefile2 +0 -35
  625. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/example/a.c +0 -6
  626. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/example/b.c +0 -6
  627. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/example/main.c +0 -11
  628. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/glossary.rdoc +0 -51
  629. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/jamis.rb +0 -591
  630. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/proto_rake.rdoc +0 -127
  631. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/rake.1.gz +0 -0
  632. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/rakefile.rdoc +0 -557
  633. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/rational.rdoc +0 -151
  634. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.4.14.rdoc +0 -23
  635. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.4.15.rdoc +0 -35
  636. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.5.0.rdoc +0 -53
  637. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.5.3.rdoc +0 -78
  638. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.5.4.rdoc +0 -46
  639. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.6.0.rdoc +0 -141
  640. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.7.0.rdoc +0 -119
  641. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.7.1.rdoc +0 -59
  642. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.7.2.rdoc +0 -121
  643. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.7.3.rdoc +0 -47
  644. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.0.rdoc +0 -114
  645. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.2.rdoc +0 -165
  646. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.3.rdoc +0 -112
  647. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.4.rdoc +0 -147
  648. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.5.rdoc +0 -53
  649. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.6.rdoc +0 -55
  650. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.8.7.rdoc +0 -55
  651. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.0.rdoc +0 -112
  652. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.1.rdoc +0 -52
  653. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  654. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.2.rdoc +0 -49
  655. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.3.rdoc +0 -102
  656. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.4.rdoc +0 -110
  657. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.5.rdoc +0 -114
  658. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-0.9.6.rdoc +0 -127
  659. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-10.0.0.rdoc +0 -178
  660. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-10.0.1.rdoc +0 -187
  661. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-10.0.2.rdoc +0 -191
  662. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/doc/release_notes/rake-10.0.3.rdoc +0 -191
  663. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/install.rb +0 -90
  664. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake.rb +0 -71
  665. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/alt_system.rb +0 -109
  666. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/application.rb +0 -669
  667. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/backtrace.rb +0 -18
  668. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/clean.rb +0 -32
  669. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/cloneable.rb +0 -16
  670. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/contrib/compositepublisher.rb +0 -21
  671. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/contrib/ftptools.rb +0 -151
  672. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/contrib/publisher.rb +0 -73
  673. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/contrib/rubyforgepublisher.rb +0 -16
  674. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/contrib/sshpublisher.rb +0 -50
  675. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/contrib/sys.rb +0 -1
  676. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/default_loader.rb +0 -10
  677. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/dsl_definition.rb +0 -156
  678. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/early_time.rb +0 -18
  679. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/ext/core.rb +0 -27
  680. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/ext/module.rb +0 -0
  681. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/ext/string.rb +0 -168
  682. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/ext/time.rb +0 -15
  683. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/file_creation_task.rb +0 -24
  684. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/file_list.rb +0 -410
  685. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/file_task.rb +0 -47
  686. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/file_utils.rb +0 -114
  687. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/file_utils_ext.rb +0 -146
  688. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/gempackagetask.rb +0 -1
  689. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/invocation_chain.rb +0 -51
  690. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/invocation_exception_mixin.rb +0 -16
  691. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/loaders/makefile.rb +0 -40
  692. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/multi_task.rb +0 -13
  693. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/name_space.rb +0 -25
  694. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/packagetask.rb +0 -185
  695. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/pathmap.rb +0 -1
  696. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/phony.rb +0 -15
  697. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/private_reader.rb +0 -20
  698. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/promise.rb +0 -99
  699. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/pseudo_status.rb +0 -24
  700. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/rake_module.rb +0 -37
  701. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/rake_test_loader.rb +0 -22
  702. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/rdoctask.rb +0 -1
  703. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/ruby182_test_unit_fix.rb +0 -25
  704. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/rule_recursion_overflow_error.rb +0 -20
  705. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/runtest.rb +0 -22
  706. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/task.rb +0 -350
  707. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/task_argument_error.rb +0 -7
  708. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/task_arguments.rb +0 -78
  709. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/task_manager.rb +0 -296
  710. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/tasklib.rb +0 -22
  711. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/testtask.rb +0 -198
  712. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/thread_history_display.rb +0 -48
  713. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/thread_pool.rb +0 -155
  714. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/trace_output.rb +0 -19
  715. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/version.rb +0 -13
  716. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/lib/rake/win32.rb +0 -55
  717. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/file_creation.rb +0 -34
  718. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/helper.rb +0 -562
  719. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_private_reader.rb +0 -42
  720. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake.rb +0 -40
  721. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_application.rb +0 -515
  722. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_application_options.rb +0 -443
  723. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_backtrace.rb +0 -89
  724. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_clean.rb +0 -14
  725. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_definitions.rb +0 -80
  726. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_directory_task.rb +0 -57
  727. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_dsl.rb +0 -40
  728. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_early_time.rb +0 -31
  729. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_extension.rb +0 -59
  730. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_file_creation_task.rb +0 -56
  731. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_file_list.rb +0 -628
  732. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_file_list_path_map.rb +0 -8
  733. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_file_task.rb +0 -122
  734. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_file_utils.rb +0 -305
  735. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_ftp_file.rb +0 -59
  736. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_functional.rb +0 -496
  737. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_invocation_chain.rb +0 -52
  738. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_makefile_loader.rb +0 -44
  739. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_multi_task.rb +0 -59
  740. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_name_space.rb +0 -43
  741. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_package_task.rb +0 -79
  742. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_path_map.rb +0 -157
  743. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_path_map_explode.rb +0 -34
  744. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_path_map_partial.rb +0 -18
  745. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_pseudo_status.rb +0 -21
  746. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_rake_test_loader.rb +0 -21
  747. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_reduce_compat.rb +0 -30
  748. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_require.rb +0 -40
  749. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_rules.rb +0 -327
  750. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task.rb +0 -316
  751. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task_argument_parsing.rb +0 -103
  752. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task_arguments.rb +0 -88
  753. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task_lib.rb +0 -9
  754. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task_manager.rb +0 -157
  755. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task_manager_argument_resolution.rb +0 -19
  756. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_task_with_arguments.rb +0 -171
  757. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_test_task.rb +0 -120
  758. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_thread_pool.rb +0 -123
  759. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_top_level_functions.rb +0 -71
  760. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_rake_win32.rb +0 -72
  761. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_thread_history_display.rb +0 -91
  762. data/vendor/bundle/ruby/1.8/gems/rake-10.0.3/test/test_trace_output.rb +0 -43
  763. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/AUTHORS +0 -61
  764. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/CHANGES +0 -1063
  765. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/Gemfile +0 -82
  766. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/LICENSE +0 -22
  767. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.de.rdoc +0 -2097
  768. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.es.rdoc +0 -2078
  769. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.fr.rdoc +0 -2036
  770. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.hu.rdoc +0 -607
  771. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.jp.rdoc +0 -1043
  772. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.ko.rdoc +0 -1926
  773. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.pt-br.rdoc +0 -647
  774. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.pt-pt.rdoc +0 -646
  775. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.rdoc +0 -2017
  776. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.ru.rdoc +0 -1785
  777. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/README.zh.rdoc +0 -1816
  778. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/Rakefile +0 -183
  779. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/examples/chat.rb +0 -61
  780. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/examples/simple.rb +0 -3
  781. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/examples/stream.ru +0 -26
  782. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra.rb +0 -4
  783. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra/base.rb +0 -1728
  784. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra/images/404.png +0 -0
  785. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra/images/500.png +0 -0
  786. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra/main.rb +0 -28
  787. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra/showexceptions.rb +0 -340
  788. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/lib/sinatra/version.rb +0 -3
  789. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/sinatra.gemspec +0 -18
  790. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/base_test.rb +0 -160
  791. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/builder_test.rb +0 -95
  792. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/coffee_test.rb +0 -92
  793. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/contest.rb +0 -98
  794. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/creole_test.rb +0 -65
  795. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/delegator_test.rb +0 -162
  796. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/encoding_test.rb +0 -20
  797. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/erb_test.rb +0 -104
  798. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/extensions_test.rb +0 -100
  799. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/filter_test.rb +0 -428
  800. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/haml_test.rb +0 -101
  801. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/helper.rb +0 -123
  802. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/helpers_test.rb +0 -1783
  803. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/integration/app.rb +0 -62
  804. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/integration_helper.rb +0 -214
  805. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/integration_test.rb +0 -85
  806. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/less_test.rb +0 -67
  807. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/liquid_test.rb +0 -59
  808. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/mapped_error_test.rb +0 -259
  809. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/markaby_test.rb +0 -80
  810. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/markdown_test.rb +0 -82
  811. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/middleware_test.rb +0 -68
  812. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/nokogiri_test.rb +0 -69
  813. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/public/favicon.ico +0 -0
  814. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/rack_test.rb +0 -45
  815. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/radius_test.rb +0 -59
  816. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/rdoc_test.rb +0 -66
  817. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/readme_test.rb +0 -136
  818. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/request_test.rb +0 -45
  819. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/response_test.rb +0 -66
  820. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/result_test.rb +0 -98
  821. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/route_added_hook_test.rb +0 -59
  822. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/routing_test.rb +0 -1126
  823. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/sass_test.rb +0 -116
  824. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/scss_test.rb +0 -89
  825. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/server_test.rb +0 -48
  826. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/settings_test.rb +0 -538
  827. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/sinatra_test.rb +0 -17
  828. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/slim_test.rb +0 -88
  829. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/static_test.rb +0 -178
  830. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/streaming_test.rb +0 -140
  831. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/templates_test.rb +0 -298
  832. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/textile_test.rb +0 -65
  833. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/a/in_a.str +0 -1
  834. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/ascii.erb +0 -2
  835. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/b/in_b.str +0 -1
  836. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/calc.html.erb +0 -1
  837. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/error.builder +0 -3
  838. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/error.erb +0 -3
  839. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/error.haml +0 -3
  840. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/error.sass +0 -2
  841. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/explicitly_nested.str +0 -1
  842. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/foo/hello.test +0 -1
  843. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.builder +0 -1
  844. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.coffee +0 -1
  845. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.creole +0 -1
  846. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.erb +0 -1
  847. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.haml +0 -1
  848. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.less +0 -5
  849. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.liquid +0 -1
  850. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.mab +0 -1
  851. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.md +0 -1
  852. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.nokogiri +0 -1
  853. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.radius +0 -1
  854. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.rdoc +0 -1
  855. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.sass +0 -2
  856. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.scss +0 -3
  857. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.slim +0 -1
  858. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.str +0 -1
  859. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.test +0 -1
  860. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/hello.textile +0 -1
  861. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.builder +0 -3
  862. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.erb +0 -2
  863. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.haml +0 -2
  864. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.liquid +0 -2
  865. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.mab +0 -2
  866. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.nokogiri +0 -3
  867. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.radius +0 -2
  868. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.slim +0 -3
  869. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.str +0 -2
  870. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/layout2.test +0 -1
  871. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/nested.str +0 -1
  872. data/vendor/bundle/ruby/1.8/gems/sinatra-1.3.5/test/views/utf8.erb +0 -2
  873. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/CHANGELOG.rdoc +0 -196
  874. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/LICENSE +0 -202
  875. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/README.rdoc +0 -132
  876. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/Rakefile +0 -80
  877. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/bin/catstomp +0 -74
  878. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/bin/stompcat +0 -75
  879. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/client11_ex1.rb +0 -89
  880. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/client11_putget1.rb +0 -71
  881. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/conn11_ex1.rb +0 -112
  882. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/conn11_ex2.rb +0 -87
  883. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/conn11_hb1.rb +0 -57
  884. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/consumer.rb +0 -34
  885. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/get11conn_ex1.rb +0 -117
  886. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/get11conn_ex2.rb +0 -77
  887. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/logexamp.rb +0 -81
  888. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/logexamp_ssl.rb +0 -81
  889. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/publisher.rb +0 -30
  890. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/put11conn_ex1.rb +0 -56
  891. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/putget11_rh1.rb +0 -93
  892. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/slogger.rb +0 -222
  893. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc1.rb +0 -46
  894. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc1_ciphers.rb +0 -46
  895. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc2.rb +0 -48
  896. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc2_ciphers.rb +0 -47
  897. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc3.rb +0 -50
  898. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc3_ciphers.rb +0 -47
  899. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc4.rb +0 -50
  900. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_uc4_ciphers.rb +0 -48
  901. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/ssl_ucx_default_ciphers.rb +0 -41
  902. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/stomp11_common.rb +0 -48
  903. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/topic_consumer.rb +0 -32
  904. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/examples/topic_publisher.rb +0 -29
  905. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/client/utils.rb +0 -116
  906. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/connection/heartbeats.rb +0 -175
  907. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/connection/netio.rb +0 -360
  908. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/connection/utf8.rb +0 -294
  909. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/connection/utils.rb +0 -239
  910. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp.rb +0 -39
  911. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/client.rb +0 -350
  912. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/codec.rb +0 -44
  913. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/connection.rb +0 -452
  914. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/constants.rb +0 -114
  915. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/errors.rb +0 -195
  916. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/ext/hash.rb +0 -31
  917. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/message.rb +0 -117
  918. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/sslparams.rb +0 -84
  919. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/lib/stomp/version.rb +0 -12
  920. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/spec/client_shared_examples.rb +0 -71
  921. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/spec/client_spec.rb +0 -329
  922. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/spec/connection_spec.rb +0 -431
  923. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/spec/message_spec.rb +0 -58
  924. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/spec/spec_helper.rb +0 -8
  925. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/stomp.gemspec +0 -151
  926. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_client.rb +0 -531
  927. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_codec.rb +0 -119
  928. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_connection.rb +0 -517
  929. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_connection1p.rb +0 -396
  930. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_helper.rb +0 -168
  931. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_message.rb +0 -173
  932. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/test_ssl.rb +0 -81
  933. data/vendor/bundle/ruby/1.8/gems/stomp-1.2.8/test/tlogger.rb +0 -80
  934. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/CHANGELOG.rdoc +0 -142
  935. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/Gemfile +0 -19
  936. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/LICENSE.md +0 -20
  937. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/README.md +0 -28
  938. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/Thorfile +0 -30
  939. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/bin/rake2thor +0 -86
  940. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/bin/thor +0 -6
  941. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor.rb +0 -448
  942. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions.rb +0 -318
  943. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions/create_file.rb +0 -105
  944. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions/create_link.rb +0 -57
  945. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions/directory.rb +0 -117
  946. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions/empty_directory.rb +0 -153
  947. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions/file_manipulation.rb +0 -314
  948. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/actions/inject_into_file.rb +0 -109
  949. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/base.rb +0 -654
  950. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/core_ext/file_binary_read.rb +0 -9
  951. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -80
  952. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/core_ext/ordered_hash.rb +0 -100
  953. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/error.rb +0 -35
  954. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/group.rb +0 -285
  955. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/invocation.rb +0 -170
  956. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/parser.rb +0 -4
  957. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/parser/argument.rb +0 -74
  958. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/parser/arguments.rb +0 -171
  959. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/parser/option.rb +0 -121
  960. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/parser/options.rb +0 -216
  961. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/rake_compat.rb +0 -72
  962. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/runner.rb +0 -321
  963. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/shell.rb +0 -88
  964. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/shell/basic.rb +0 -389
  965. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/shell/color.rb +0 -144
  966. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/shell/html.rb +0 -123
  967. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/task.rb +0 -132
  968. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/util.rb +0 -266
  969. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/lib/thor/version.rb +0 -3
  970. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions/create_file_spec.rb +0 -170
  971. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions/create_link_spec.rb +0 -81
  972. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions/directory_spec.rb +0 -156
  973. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions/empty_directory_spec.rb +0 -130
  974. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions/file_manipulation_spec.rb +0 -382
  975. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions/inject_into_file_spec.rb +0 -135
  976. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/actions_spec.rb +0 -331
  977. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/base_spec.rb +0 -279
  978. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/core_ext/hash_with_indifferent_access_spec.rb +0 -48
  979. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/core_ext/ordered_hash_spec.rb +0 -115
  980. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/exit_condition_spec.rb +0 -19
  981. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/application.rb +0 -2
  982. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/app{1}/README +0 -3
  983. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/bundle/execute.rb +0 -6
  984. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/bundle/main.thor +0 -1
  985. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/doc/%file_name%.rb.tt +0 -1
  986. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/doc/COMMENTER +0 -11
  987. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/doc/README +0 -3
  988. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/doc/block_helper.rb +0 -3
  989. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/doc/config.rb +0 -1
  990. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/doc/config.yaml.tt +0 -1
  991. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/enum.thor +0 -10
  992. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/group.thor +0 -114
  993. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/invoke.thor +0 -112
  994. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/path with spaces b/data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/path with → spaces +0 -0
  995. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/preserve/script.sh +0 -3
  996. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/script.thor +0 -195
  997. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/fixtures/task.thor +0 -10
  998. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/group_spec.rb +0 -216
  999. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/invocation_spec.rb +0 -100
  1000. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/parser/argument_spec.rb +0 -53
  1001. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/parser/arguments_spec.rb +0 -66
  1002. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/parser/option_spec.rb +0 -202
  1003. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/parser/options_spec.rb +0 -395
  1004. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/rake_compat_spec.rb +0 -72
  1005. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/register_spec.rb +0 -197
  1006. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/runner_spec.rb +0 -241
  1007. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/shell/basic_spec.rb +0 -312
  1008. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/shell/color_spec.rb +0 -81
  1009. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/shell/html_spec.rb +0 -32
  1010. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/shell_spec.rb +0 -47
  1011. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/spec_helper.rb +0 -63
  1012. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/task_spec.rb +0 -80
  1013. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/thor_spec.rb +0 -488
  1014. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/spec/util_spec.rb +0 -196
  1015. data/vendor/bundle/ruby/1.8/gems/thor-0.17.0/thor.gemspec +0 -20
  1016. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/COPYING +0 -18
  1017. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/Gemfile +0 -32
  1018. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/HACKING +0 -16
  1019. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/README.md +0 -211
  1020. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/Rakefile +0 -104
  1021. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/TEMPLATES.md +0 -516
  1022. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/bin/tilt +0 -112
  1023. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt.rb +0 -204
  1024. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/asciidoc.rb +0 -34
  1025. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/builder.rb +0 -40
  1026. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/coffee.rb +0 -54
  1027. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/css.rb +0 -80
  1028. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/csv.rb +0 -71
  1029. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/erb.rb +0 -110
  1030. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/etanni.rb +0 -27
  1031. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/haml.rb +0 -64
  1032. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/liquid.rb +0 -45
  1033. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/markaby.rb +0 -52
  1034. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/markdown.rb +0 -214
  1035. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/nokogiri.rb +0 -43
  1036. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/plain.rb +0 -20
  1037. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/radius.rb +0 -55
  1038. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/rdoc.rb +0 -47
  1039. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/string.rb +0 -21
  1040. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/template.rb +0 -246
  1041. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/textile.rb +0 -30
  1042. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/wiki.rb +0 -58
  1043. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/lib/tilt/yajl.rb +0 -94
  1044. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/contest.rb +0 -68
  1045. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/markaby/locals.mab +0 -1
  1046. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/markaby/markaby.mab +0 -1
  1047. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/markaby/markaby_other_static.mab +0 -1
  1048. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/markaby/render_twice.mab +0 -1
  1049. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/markaby/scope.mab +0 -1
  1050. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/markaby/yielding.mab +0 -2
  1051. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_asciidoctor_test.rb +0 -44
  1052. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_blueclothtemplate_test.rb +0 -45
  1053. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_buildertemplate_test.rb +0 -59
  1054. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_cache_test.rb +0 -32
  1055. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_coffeescripttemplate_test.rb +0 -114
  1056. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_compilesite_test.rb +0 -51
  1057. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_creoletemplate_test.rb +0 -28
  1058. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_csv_test.rb +0 -73
  1059. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_erbtemplate_test.rb +0 -239
  1060. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_erubistemplate_test.rb +0 -151
  1061. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_etannitemplate_test.rb +0 -173
  1062. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_fallback_test.rb +0 -122
  1063. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_hamltemplate_test.rb +0 -144
  1064. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_kramdown_test.rb +0 -42
  1065. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_lesstemplate_test.less +0 -1
  1066. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_lesstemplate_test.rb +0 -42
  1067. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_liquidtemplate_test.rb +0 -78
  1068. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_markaby_test.rb +0 -88
  1069. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_markdown_test.rb +0 -172
  1070. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_marukutemplate_test.rb +0 -48
  1071. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_nokogiritemplate_test.rb +0 -87
  1072. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_radiustemplate_test.rb +0 -75
  1073. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_rdiscounttemplate_test.rb +0 -55
  1074. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_rdoctemplate_test.rb +0 -31
  1075. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_redcarpettemplate_test.rb +0 -71
  1076. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_redclothtemplate_test.rb +0 -36
  1077. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_sasstemplate_test.rb +0 -41
  1078. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_stringtemplate_test.rb +0 -170
  1079. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_template_test.rb +0 -167
  1080. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_test.rb +0 -65
  1081. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_wikiclothtemplate_test.rb +0 -32
  1082. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/test/tilt_yajltemplate_test.rb +0 -101
  1083. data/vendor/bundle/ruby/1.8/gems/tilt-1.3.4/tilt.gemspec +0 -119
  1084. data/vendor/bundle/ruby/1.8/specifications/haml-3.1.8.gemspec +0 -34
  1085. data/vendor/bundle/ruby/1.8/specifications/rack-1.5.2.gemspec +0 -36
  1086. data/vendor/bundle/ruby/1.8/specifications/rack-protection-1.4.0.gemspec +0 -34
  1087. data/vendor/bundle/ruby/1.8/specifications/rake-10.0.3.gemspec +0 -34
  1088. data/vendor/bundle/ruby/1.8/specifications/sinatra-1.3.5.gemspec +0 -37
  1089. data/vendor/bundle/ruby/1.8/specifications/stomp-1.2.8.gemspec +0 -31
  1090. data/vendor/bundle/ruby/1.8/specifications/thor-0.17.0.gemspec +0 -30
  1091. data/vendor/bundle/ruby/1.8/specifications/tilt-1.3.4.gemspec +0 -98
@@ -1,2078 +0,0 @@
1
- = Sinatra
2
- <i>Atención: Este documento es una traducción de la versión en inglés y puede estar desactualizado.</i>
3
-
4
- Sinatra es un DSL para crear aplicaciones web rápidamente en Ruby con un mínimo
5
- esfuerzo:
6
-
7
- # miapp.rb
8
- require 'sinatra'
9
-
10
- get '/' do
11
- 'Hola mundo!'
12
- end
13
-
14
- Instalá la gem y ejecutá la aplicación con:
15
-
16
- gem install sinatra
17
- ruby -rubygems miapp.rb
18
-
19
- Podés verla en: http://localhost:4567
20
-
21
- Es recomendable además ejecutar <tt>gem install thin</tt>, ya que Sinatra lo va
22
- a utilizar cuando esté disponible.
23
-
24
- == Rutas
25
-
26
- En Sinatra, una ruta está compuesta por un método HTTP y un patrón de una URL.
27
- Cada ruta se asocia con un bloque:
28
-
29
- get '/' do
30
- .. mostrar algo ..
31
- end
32
-
33
- post '/' do
34
- .. crear algo ..
35
- end
36
-
37
- put '/' do
38
- .. reemplazar algo ..
39
- end
40
-
41
- patch '/' do
42
- .. modificar algo ..
43
- end
44
-
45
- delete '/' do
46
- .. aniquilar algo ..
47
- end
48
-
49
- options '/' do
50
- .. informar algo ..
51
- end
52
-
53
-
54
- Las rutas son comparadas en el orden en el que son definidas. La primer ruta
55
- que coincide con la petición es invocada.
56
-
57
- Los patrones de las rutas pueden incluir parámetros nombrados, accesibles a
58
- través de el hash <tt>params</tt>:
59
-
60
- get '/hola/:nombre' do
61
- # coincide con "GET /hola/foo" y "GET /hola/bar"
62
- # params[:nombre] es 'foo' o 'bar'
63
- "Hola #{params[:nombre]}!"
64
- end
65
-
66
- También podés acceder a los parámetros nombrados usando parámetros de bloque:
67
-
68
- get '/hola/:nombre' do |n|
69
- "Hola #{n}!"
70
- end
71
-
72
- Los patrones de ruta también pueden incluir parámetros splat (o wildcard),
73
- accesibles a través del arreglo <tt>params[:splat]</tt>:
74
-
75
- get '/decir/*/al/*' do
76
- # coincide con /decir/hola/al/mundo
77
- params[:splat] # => ["hola", "mundo"]
78
- end
79
-
80
- get '/descargar/*.*' do
81
- # coincide con /descargar/path/al/archivo.xml
82
- params[:splat] # => ["path/al/archivo", "xml"]
83
- end
84
-
85
- O, con parámetros de bloque:
86
-
87
- get '/descargar/*.*' do |path, ext|
88
- [path, ext] # => ["path/al/archivo", "xml"]
89
- end
90
-
91
- Rutas con Expresiones Regulares:
92
-
93
- get %r{/hola/([\w]+)} do
94
- "Hola, #{params[:captures].first}!"
95
- end
96
-
97
- O con un parámetro de bloque:
98
-
99
- get %r{/hola/([\w]+)} do |c|
100
- "Hola, #{c}!"
101
- end
102
-
103
- Los patrones de ruta pueden contener parámetros opcionales:
104
-
105
- get '/posts.?:formato?' do
106
- # coincide con "GET /posts" y además admite cualquier extensión, por
107
- # ejemplo, "GET /posts.json", "GET /posts.xml", etc.
108
- end
109
-
110
- A propósito, a menos que desactivés la protección para el ataque <em>path
111
- traversal</em> (ver más abajo), el path de la petición puede ser modificado
112
- antes de que se compare con los de tus rutas.
113
-
114
- === Condiciones
115
-
116
- Las rutas pueden incluir una variedad de condiciones de selección, como por
117
- ejemplo el user agent:
118
-
119
- get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
120
- "Estás usando la versión de Songbird #{params[:agent][0]}"
121
- end
122
-
123
- get '/foo' do
124
- # Coincide con browsers que no sean songbird
125
- end
126
-
127
- Otras condiciones disponibles son +host_name+ y +provides+:
128
-
129
- get '/', :host_name => /^admin\./ do
130
- "Área de Administración, Acceso denegado!"
131
- end
132
-
133
- get '/', :provides => 'html' do
134
- haml :index
135
- end
136
-
137
- get '/', :provides => ['rss', 'atom', 'xml'] do
138
- builder :feed
139
- end
140
-
141
- Podés definir tus propias condiciones fácilmente:
142
-
143
- set(:probabilidad) { |valor| condition { rand <= valor } }
144
-
145
- get '/gana_un_auto', :probabilidad => 0.1 do
146
- "Ganaste!"
147
- end
148
-
149
- get '/gana_un_auto' do
150
- "Lo siento, perdiste."
151
- end
152
-
153
- Si tu condición acepta más de un argumento, podés pasarle un arreglo. Al
154
- definir la condición puede resultarte conveniente utilizar el operador splat en
155
- la lista de parámetros:
156
-
157
- set(:autorizar) do |*roles| # <- mirá el splat
158
- condition do
159
- unless sesion_iniciada? && roles.any? {|rol| usuario_actual.tiene_rol? rol }
160
- redirect "/iniciar_sesion/", 303
161
- end
162
- end
163
- end
164
-
165
- get "/mi/cuenta/", :autorizar => [:usuario, :administrador] do
166
- "Detalles de mi cuenta"
167
- end
168
-
169
- get "/solo/administradores/", :autorizar => :administrador do
170
- "Únicamente para administradores!"
171
- end
172
-
173
- === Valores de Retorno
174
-
175
- El valor de retorno de un bloque de ruta determina al menos el cuerpo de la
176
- respuesta que se le pasa al cliente HTTP o al siguiente middleware en la pila
177
- de Rack. Lo más común es que sea un string, como en los ejemplos anteriores.
178
- Sin embargo, otros valor también son aceptados.
179
-
180
- Podés devolver cualquier objeto que sea una respuesta Rack válida, un objeto
181
- que represente el cuerpo de una respuesta Rack o un código de estado HTTP:
182
-
183
- * Un arreglo con tres elementos: <tt>[estado (Fixnum), cabeceras (Hash), cuerpo de la respuesta (responde a #each)]</tt>
184
- * Un arreglo con dos elementos: <tt>[estado (Fixnum), cuerpo de la respuesta (responde a #each)]</tt>
185
- * Un objeto que responde a <tt>#each</tt> y que le pasa únicamente strings al bloque dado
186
- * Un Fixnum representando el código de estado
187
-
188
- De esa manera podemos, por ejemplo, implementar fácilmente un streaming:
189
-
190
- class Stream
191
- def each
192
- 100.times { |i| yield "#{i}\n" }
193
- end
194
- end
195
-
196
- get('/') { Stream.new }
197
-
198
- === Comparadores de Rutas Personalizados
199
-
200
- Como se mostró anteriormente, Sinatra permite utilizar Strings y expresiones
201
- regulares para definir las rutas. Sin embargo, la cosa no termina ahí. Podés
202
- definir tus propios comparadores muy fácilmente:
203
-
204
- class PattronCualquieraMenos
205
- Match = Struct.new(:captures)
206
-
207
- def initialize(excepto)
208
- @excepto = excepto
209
- @capturas = Match.new([])
210
- end
211
-
212
- def match(str)
213
- @capturas unless @excepto === str
214
- end
215
- end
216
-
217
- def cualquiera_menos(patron)
218
- PatronCualquieraMenos.new(patron)
219
- end
220
-
221
- get cualquiera_menos("/index") do
222
- # ...
223
- end
224
-
225
- Tené en cuenta que el ejemplo anterior es un poco rebuscado. Un resultado
226
- similar puede conseguirse más sencillamente:
227
-
228
- get // do
229
- pass if request.path_info == "/index"
230
- # ...
231
- end
232
-
233
- O, usando un lookahead negativo:
234
-
235
- get %r{^(?!/index$)} do
236
- # ...
237
- end
238
-
239
- == Archivos Estáticos
240
-
241
- Los archivos estáticos son servidos desde el directorio público
242
- <tt>./public</tt>. Podés especificar una ubicación diferente ajustando la
243
- opción <tt>:public_folder</tt>:
244
-
245
- set :public_folder, File.dirname(__FILE__) + '/estaticos'
246
-
247
- Notá que el nombre del directorio público no está incluido en la URL. Por
248
- ejemplo, el archivo <tt>./public/css/style.css</tt> se accede a través de
249
- <tt>http://ejemplo.com/css/style.css</tt>.
250
-
251
- Usá la configuración <tt>:static_cache_control</tt> para agregar el encabezado
252
- <tt>Cache-Control</tt> (ver la sección de configuración para más detalles).
253
-
254
- == Vistas / Plantillas
255
-
256
- Cada lenguaje de plantilla se expone a través de un método de renderizado que
257
- lleva su nombre. Estos métodos simplemente devuelven un string:
258
-
259
- get '/' do
260
- erb :index
261
- end
262
-
263
- Renderiza <tt>views/index.erb</tt>.
264
-
265
- En lugar del nombre de la plantilla podés proporcionar directamente el
266
- contenido de la misma:
267
-
268
- get '/' do
269
- codigo = "<%= Time.now %>"
270
- erb codigo
271
- end
272
-
273
- Los métodos de renderizado, aceptan además un segundo argumento, el hash de
274
- opciones:
275
-
276
- get '/' do
277
- erb :index, :layout => :post
278
- end
279
-
280
- Renderiza <tt>views/index.erb</tt> embebido en <tt>views/post.erb</tt> (por
281
- defecto, la plantilla :index es embebida en <tt>views/layout.erb</tt> siempre y
282
- cuando este último archivo exista).
283
-
284
- Cualquier opción que Sinatra no entienda le será pasada al motor de renderizado
285
- de la plantilla:
286
-
287
- get '/' do
288
- haml :index, :format => :html5
289
- end
290
-
291
- Además podés definir las opciones para un lenguaje de plantillas de forma
292
- general:
293
-
294
- set :haml, :format => :html5
295
-
296
- get '/' do
297
- haml :index
298
- end
299
-
300
- Las opciones pasadas al método de renderizado tienen precedencia sobre las
301
- definidas mediante +set+.
302
-
303
- Opciones disponibles:
304
-
305
- [locals]
306
- Lista de variables locales pasadas al documento. Resultan muy útiles cuando
307
- se combinan con parciales.
308
- Ejemplo: <tt>erb "<%= foo %>", :locals => {:foo => "bar"}</tt>
309
-
310
- [default_encoding]
311
- Encoding utilizado cuando el de un string es dudoso. Por defecto toma el
312
- valor de <tt>settings.default_encoding</tt>.
313
-
314
- [views]
315
- Directorio desde donde se cargan las vistas. Por defecto toma el valor de
316
- <tt>settings.views</tt>.
317
-
318
- [layout]
319
- Si es +true+ o +false+ indica que se debe usar, o nó, un layout,
320
- respectivamente. También puede ser un símbolo que especifique qué plantilla
321
- usar. Ejemplo: <tt>erb :index, :layout => !request.xhr?</tt>
322
-
323
- [content_type]
324
- Content-Type que produce la plantilla. El valor por defecto depende de cada
325
- lenguaje de plantillas.
326
-
327
- [scope]
328
- Ámbito en el que se renderiza la plantilla. Por defecto utiliza la instancia
329
- de la aplicación. Tené en cuenta que si cambiás esta opción las variables de
330
- instancia y los helpers van a dejar de estar disponibles.
331
-
332
- [layout_engine]
333
- Motor de renderizado de plantillas que usa para el layout. Resulta
334
- conveniente para lenguajes que no soportan layouts. Por defecto toma el valor
335
- del motor usado para renderizar la plantilla.
336
- Ejemplo: <tt>set :rdoc, :layout_engine => :erb</tt>
337
-
338
- Se asume que las plantillas están ubicadas directamente bajo el directorio
339
- <tt>./views</tt>. Para usar un directorio de vistas diferente:
340
-
341
- set :views, settings.root + '/plantillas'
342
-
343
- Es importante acordarse que siempre tenés que referenciar a las plantillas con
344
- símbolos, incluso cuando se encuentran en un subdirectorio (en este caso tenés
345
- que usar <tt>:'subdir/plantilla'</tt>). Tenés que usar un símbolo porque los
346
- métodos de renderización van a renderizar directamente cualquier string que se
347
- les pase como argumento.
348
-
349
- === Lenguajes de Plantillas Disponibles
350
-
351
- Algunos lenguajes tienen varias implementaciones. Para especificar que
352
- implementación usar (y para ser thread-safe), deberías requerirla antes de
353
- usarla:
354
-
355
- require 'rdiscount' # o require 'bluecloth'
356
- get('/') { markdown :index }
357
-
358
- === Plantillas Haml
359
-
360
- Dependencias:: {haml}[http://haml.info/]
361
- Extensiones de Archivo:: <tt>.haml</tt>
362
- Ejemplo:: <tt>haml :index, :format => :html5</tt>
363
-
364
- === Plantillas Erb
365
-
366
- Dependencias:: {erubis}[http://www.kuwata-lab.com/erubis/] o
367
- erb (incluida en Ruby)
368
- Extensiones de Archivo:: <tt>.erb</tt>, <tt>.rhtml</tt> o <tt>.erubis</tt>
369
- (solamente con Erubis)
370
- Ejemplo:: <tt>erb :index</tt>
371
-
372
- === Plantillas Builder
373
-
374
- Dependencias:: {builder}[http://builder.rubyforge.org/]
375
- Extensiones de Archivo:: <tt>.builder</tt>
376
- Ejemplo:: <tt>builder { |xml| xml.em "hola" }</tt>
377
-
378
- Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
379
-
380
- === Plantillas Nokogiri
381
-
382
- Dependencias:: {nokogiri}[http://nokogiri.org/]
383
- Extensiones de Archivo:: <tt>.nokogiri</tt>
384
- Ejemplo:: <tt>nokogiri { |xml| xml.em "hola" }</tt>
385
-
386
- Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
387
-
388
- === Plantillas Sass
389
-
390
- Dependencias:: {sass}[http://sass-lang.com/]
391
- Extensiones de Archivo:: <tt>.sass</tt>
392
- Ejemplo:: <tt>sass :stylesheet, :style => :expanded</tt>
393
-
394
- === Plantillas SCSS
395
-
396
- Dependencias:: {scss}[http://sass-lang.com/]
397
- Extensiones de Archivo:: <tt>.scss</tt>
398
- Ejemplo:: <tt>scss :stylesheet, :style => :expanded</tt>
399
-
400
- === Plantillas Less
401
-
402
- Dependencias:: {less}[http://www.lesscss.org/]
403
- Extensiones de Archivo:: <tt>.less</tt>
404
- Ejemplo:: <tt>less :stylesheet</tt>
405
-
406
- === Plantillas Liquid
407
-
408
- Dependencias:: {liquid}[http://www.liquidmarkup.org/]
409
- Extensiones de Archivo:: <tt>.liquid</tt>
410
- Ejemplo:: <tt>liquid :index, :locals => { :clave => 'valor' }</tt>
411
-
412
- Como no vas a poder llamar a métodos de Ruby (excepto por +yield+) desde una
413
- plantilla Liquid, casi siempre vas a querer pasarle locales.
414
-
415
- === Plantillas Markdown
416
-
417
- Dependencias:: {rdiscount}[https://github.com/rtomayko/rdiscount],
418
- {redcarpet}[https://github.com/tanoku/redcarpet],
419
- {bluecloth}[http://deveiate.org/projects/BlueCloth],
420
- {kramdown}[http://kramdown.rubyforge.org/] *o*
421
- {maruku}[http://maruku.rubyforge.org/]
422
- Extensiones de Archivo:: <tt>.markdown</tt>, <tt>.mkd</tt> y <tt>.md</tt>
423
- Ejemplo:: <tt>markdown :index, :layout_engine => :erb</tt>
424
-
425
- No es posible llamar métodos desde markdown, ni pasarle locales. Por lo tanto,
426
- generalmente vas a usarlo en combinación con otro motor de renderizado:
427
-
428
- erb :resumen, :locals => { :texto => markdown(:introduccion) }
429
-
430
- Tené en cuenta que también podés llamar al método +markdown+ desde otras
431
- plantillas:
432
-
433
- %h1 Hola Desde Haml!
434
- %p= markdown(:saludos)
435
-
436
- Como no podés utilizar Ruby desde Markdown, no podés usar layouts escritos en
437
- Markdown. De todos modos, es posible usar un motor de renderizado para el
438
- layout distinto al de la plantilla pasando la opción <tt>:layout_engine</tt>.
439
-
440
- === Plantillas Textile
441
-
442
- Dependencias:: {RedCloth}[http://redcloth.org/]
443
- Extensiones de Archivo:: <tt>.textile</tt>
444
- Ejemplo:: <tt>textile :index, :layout_engine => :erb</tt>
445
-
446
- No es posible llamar métodos desde textile, ni pasarle locales. Por lo tanto,
447
- generalmente vas a usarlo en combinación con otro motor de renderizado:
448
-
449
- erb :resumen, :locals => { :texto => textile(:introduccion) }
450
-
451
- Tené en cuenta que también podés llamar al método +textile+ desde otras
452
- plantillas:
453
-
454
- %h1 Hola Desde Haml!
455
- %p= textile(:saludos)
456
-
457
- Como no podés utilizar Ruby desde Textile, no podés usar layouts escritos en
458
- Textile. De todos modos, es posible usar un motor de renderizado para el
459
- layout distinto al de la plantilla pasando la opción <tt>:layout_engine</tt>.
460
-
461
- === Plantillas RDoc
462
-
463
- Dependencias:: {rdoc}[http://rdoc.rubyforge.org/]
464
- Extensiones de Archivo:: <tt>.rdoc</tt>
465
- Ejemplo:: <tt>rdoc :LEEME, :layout_engine => :erb</tt>
466
-
467
- No es posible llamar métodos desde rdoc, ni pasarle locales. Por lo tanto,
468
- generalmente vas a usarlo en combinación con otro motor de renderizado:
469
-
470
- erb :resumen, :locals => { :texto => rdoc(:introduccion) }
471
-
472
- Tené en cuenta que también podés llamar al método +rdoc+ desde otras
473
- plantillas:
474
-
475
- %h1 Hola Desde Haml!
476
- %p= rdoc(:saludos)
477
-
478
- Como no podés utilizar Ruby desde RDoc, no podés usar layouts escritos en RDoc.
479
- De todos modos, es posible usar un motor de renderizado para el layout distinto
480
- al de la plantilla pasando la opción <tt>:layout_engine</tt>.
481
-
482
- === Plantillas Radius
483
-
484
- Dependencias:: {radius}[http://radius.rubyforge.org/]
485
- Extensiones de Archivo:: <tt>.radius</tt>
486
- Ejemplo:: <tt>radius :index, :locals => { :clave => 'valor' }</tt>
487
-
488
- Como no vas a poder llamar a métodos de Ruby (excepto por +yield+) desde una
489
- plantilla Radius, casi siempre vas a querer pasarle locales.
490
-
491
- === Plantillas Markaby
492
-
493
- Dependencias:: {markaby}[http://markaby.github.com/]
494
- Extensiones de Archivo:: <tt>.mab</tt>
495
- Ejemplos:: <tt>markaby { h1 "Bienvenido!" }</tt>
496
-
497
- Además, acepta un bloque con la definición de la plantilla (ver el ejemplo).
498
-
499
- === Plantillas Slim
500
-
501
- Dependencias:: {slim}[http://slim-lang.com/]
502
- Extensiones de Archivo:: <tt>.slim</tt>
503
- Ejemplo:: <tt>slim :index</tt>
504
-
505
- === Plantillas Creole
506
-
507
- Dependencias:: {creole}[https://github.com/minad/creole]
508
- Extensiones de Archivo:: <tt>.creole</tt>
509
- Ejemplo:: <tt>creole :wiki, :layout_engine => :erb</tt>
510
-
511
- No es posible llamar métodos desde creole, ni pasarle locales. Por lo tanto,
512
- generalmente vas a usarlo en combinación con otro motor de renderizado:
513
-
514
- erb :resumen, :locals => { :texto => cerole(:introduccion) }
515
-
516
- Tené en cuenta que también podés llamar al método +creole+ desde otras
517
- plantillas:
518
-
519
- %h1 Hola Desde Haml!
520
- %p= creole(:saludos)
521
-
522
- Como no podés utilizar Ruby desde Creole, no podés usar layouts escritos en
523
- Creloe. De todos modos, es posible usar un motor de renderizado para el layout
524
- distinto al de la plantilla pasando la opción <tt>:layout_engine</tt>.
525
-
526
- === Plantillas CoffeeScript
527
-
528
- Dependencias:: {coffee-script}[https://github.com/josh/ruby-coffee-script]
529
- y un {mecanismo para ejecutar javascript}[https://github.com/sstephenson/execjs/blob/master/README.md#readme]
530
- Extensiones de Archivo:: <tt>.coffee</tt>
531
- Ejemplo:: <tt>coffee :index</tt>
532
-
533
- === Plantillas Embebidas
534
-
535
- get '/' do
536
- haml '%div.titulo Hola Mundo'
537
- end
538
-
539
- Renderiza el template embebido en el string.
540
-
541
- === Accediendo a Variables en Plantillas
542
-
543
- Las plantillas son evaluadas dentro del mismo contexto que los manejadores de
544
- ruta. Las variables de instancia asignadas en los manejadores de ruta son
545
- accesibles directamente por las plantillas:
546
-
547
- get '/:id' do
548
- @foo = Foo.find(params[:id])
549
- haml '%h1= @foo.nombre'
550
- end
551
-
552
- O es posible especificar un Hash de variables locales explícitamente:
553
-
554
- get '/:id' do
555
- foo = Foo.find(params[:id])
556
- haml '%h1= bar.nombre', :locals => { :bar => foo }
557
- end
558
-
559
- Esto es usado típicamente cuando se renderizan plantillas como parciales desde
560
- adentro de otras plantillas.
561
-
562
- === Plantillas Inline
563
-
564
- Las plantillas pueden ser definidas al final del archivo fuente:
565
-
566
- require 'rubygems'
567
- require 'sinatra'
568
-
569
- get '/' do
570
- haml :index
571
- end
572
-
573
- __END__
574
-
575
- @@ layout
576
- %html
577
- = yield
578
-
579
- @@ index
580
- %div.titulo Hola mundo!!!!!
581
-
582
- NOTA: únicamente las plantillas inline definidas en el archivo fuente que
583
- requiere sinatra son cargadas automáticamente. Llamá <tt>enable
584
- :inline_templates</tt> explícitamente si tenés plantillas inline en otros
585
- archivos fuente.
586
-
587
- === Plantillas Nombradas
588
-
589
- Las plantillas también pueden ser definidas usando el método top-level
590
- <tt>template</tt>:
591
-
592
- template :layout do
593
- "%html\n =yield\n"
594
- end
595
-
596
- template :index do
597
- '%div.titulo Hola Mundo!'
598
- end
599
-
600
- get '/' do
601
- haml :index
602
- end
603
-
604
- Si existe una plantilla con el nombre "layout", va a ser usada cada vez que
605
- una plantilla es renderizada. Podés desactivar los layouts individualmente
606
- pasando <tt>:layout => false</tt> o globalmente con
607
- <tt>set :haml, :layout => false</tt>:
608
-
609
- get '/' do
610
- haml :index, :layout => !request.xhr?
611
- end
612
-
613
- === Asociando Extensiones de Archivo
614
-
615
- Para asociar una extensión de archivo con un motor de renderizado, usá
616
- <tt>Tilt.register</tt>. Por ejemplo, si querés usar la extensión +tt+ para
617
- las plantillas Textile, podés hacer lo siguiente:
618
-
619
- Tilt.register :tt, Tilt[:textile]
620
-
621
- === Agregando Tu Propio Motor de Renderizado
622
-
623
- Primero, registrá tu motor con Tilt, y después, creá tu método de renderizado:
624
-
625
- Tilt.register :mipg, MiMotorParaPlantillaGenial
626
-
627
- helpers do
628
- def mypg(*args) render(:mypg, *args) end
629
- end
630
-
631
- get '/' do
632
- mypg :index
633
- end
634
-
635
- Renderiza <tt>./views/index.mypg</tt>. Mirá https://github.com/rtomayko/tilt
636
- para aprender más de Tilt.
637
-
638
- == Filtros
639
-
640
- Los filtros +before+ son evaluados antes de cada petición dentro del mismo
641
- contexto que las rutas. Pueden modificar la petición y la respuesta. Las
642
- variables de instancia asignadas en los filtros son accesibles por las rutas y
643
- las plantillas:
644
-
645
- before do
646
- @nota = 'Hey!'
647
- request.path_info = '/foo/bar/baz'
648
- end
649
-
650
- get '/foo/*' do
651
- @nota #=> 'Hey!'
652
- params[:splat] #=> 'bar/baz'
653
- end
654
-
655
- Los filtros +after+ son evaluados después de cada petición dentro del mismo
656
- contexto y también pueden modificar la petición y la respuesta. Las variables
657
- de instancia asignadas en los filtros +before+ y en las rutas son accesibles por
658
- los filtros +after+:
659
-
660
- after do
661
- puts response.status
662
- end
663
-
664
- Nota: A menos que usés el método +body+ en lugar de simplemente devolver un
665
- string desde una ruta, el cuerpo de la respuesta no va a estar disponible en
666
- un filtro after, debido a que todavía no se ha generado.
667
-
668
- Los filtros aceptan un patrón opcional, que cuando está presente causa que los
669
- mismos sean evaluados únicamente si el path de la petición coincide con ese
670
- patrón:
671
-
672
- before '/protegido/*' do
673
- autenticar!
674
- end
675
-
676
- after '/crear/:slug' do |slug|
677
- session[:ultimo_slug] = slug
678
- end
679
-
680
- Al igual que las rutas, los filtros también pueden aceptar condiciones:
681
-
682
- before :agent => /Songbird/ do
683
- # ...
684
- end
685
-
686
- after '/blog/*', :host_name => 'ejemplo.com' do
687
- # ...
688
- end
689
-
690
- == Ayudantes
691
-
692
- Usá el método top-level <tt>helpers</tt> para definir métodos ayudantes que
693
- pueden ser utilizados dentro de los manejadores de rutas y las plantillas:
694
-
695
- helpers do
696
- def bar(nombre)
697
- "#{nombre}bar"
698
- end
699
- end
700
-
701
- get '/:nombre' do
702
- bar(params[:nombre])
703
- end
704
-
705
- Por cuestiones organizativas, puede resultar conveniente organizar los métodos
706
- ayudantes en distintos módulos:
707
-
708
- module FooUtils
709
- def foo(nombre) "#{nombre}foo" end
710
- end
711
-
712
- module BarUtils
713
- def bar(nombre) "#{nombre}bar" end
714
- end
715
-
716
- helpers FooUtils, BarUtils
717
-
718
- El efecto de utilizar <tt>helpers</tt> de esta manera es el mismo que resulta de
719
- incluir los módulos en la clase de la aplicación.
720
-
721
- === Usando Sesiones
722
-
723
- Una sesión es usada para mantener el estado a través de distintas peticiones.
724
- Cuando están activadas, tenés un hash de sesión para cada sesión de usuario:
725
-
726
- enable :sessions
727
-
728
- get '/' do
729
- "valor = " << session[:valor].inspect
730
- end
731
-
732
- get '/:valor' do
733
- session[:valor] = params[:valor]
734
- end
735
-
736
- Tené en cuenta que <tt>enable :sessions</tt> guarda todos los datos en una
737
- cookie, lo que no es siempre deseable (guardar muchos datos va a incrementar
738
- tu tráfico, por citar un ejemplo). Podés usar cualquier middleware Rack para
739
- manejar sesiones, de la misma manera que usarías cualquier otro middleware,
740
- pero con la salvedad de que *no* tenés que llamar a <tt>enable :sessions</tt>:
741
-
742
- use Rack::Session::Pool, :expire_after => 2592000
743
-
744
- get '/' do
745
- "valor = " << session[:valor].inspect
746
- end
747
-
748
- get '/:valor' do
749
- session[:valor] = params[:valor]
750
- end
751
-
752
- Para incrementar la seguridad, los datos de la sesión almacenados en
753
- la cookie son firmados con un secreto de sesión. Este secreto, es
754
- generado aleatoriamente por Sinatra. De cualquier manera, hay que
755
- tener en cuenta que cada vez que inicies la aplicación se va a generar
756
- uno nuevo. Así, si querés que todas las instancias de tu aplicación
757
- compartan un único secreto, tenés que definirlo vos:
758
-
759
- set :session_secret, 'super secreto'
760
-
761
- Si necesitás una configuración más específica, +sessions+ acepta un
762
- Hash con opciones:
763
-
764
- set :sessions, :domain => 'foo.com'
765
-
766
- === Interrupción
767
-
768
- Para detener inmediatamente una petición dentro de un filtro o una ruta usá:
769
-
770
- halt
771
-
772
- También podés especificar el estado:
773
-
774
- halt 410
775
-
776
- O el cuerpo:
777
-
778
- halt 'esto va a ser el cuerpo'
779
-
780
- O los dos:
781
-
782
- halt 401, 'salí de acá!'
783
-
784
- Con cabeceras:
785
-
786
- halt 402, { 'Content-Type' => 'text/plain' }, 'venganza'
787
-
788
- Obviamente, es posible utilizar +halt+ con una plantilla:
789
-
790
- halt erb(:error)
791
-
792
- === Paso
793
-
794
- Una ruta puede pasarle el procesamiento a la siguiente ruta que coincida con
795
- la petición usando <tt>pass</tt>:
796
-
797
- get '/adivina/:quien' do
798
- pass unless params[:quien] == 'Franco'
799
- 'Adivinaste!'
800
- end
801
-
802
- get '/adivina/*' do
803
- 'Erraste!'
804
- end
805
-
806
- Se sale inmediatamente del bloque de la ruta y se le pasa el control a la
807
- siguiente ruta que coincida. Si no coincide ninguna ruta, se devuelve un 404.
808
-
809
- === Ejecutando Otra Ruta
810
-
811
- Cuando querés obtener el resultado de la llamada a una ruta, +pass+ no te va a
812
- servir. Para lograr esto, podés usar +call+:
813
-
814
- get '/foo' do
815
- status, headers, body = call env.merge("PATH_INFO" => '/bar')
816
- [status, headers, body.map(&:upcase)]
817
- end
818
-
819
- get '/bar' do
820
- "bar"
821
- end
822
-
823
- Notá que en el ejemplo anterior, es conveniente mover <tt>"bar"</tt> a un
824
- helper, y llamarlo desde <tt>/foo</tt> y <tt>/bar</tt>. Así, vas a simplificar
825
- las pruebas y a mejorar el rendimiento.
826
-
827
- Si querés que la petición se envíe a la misma instancia de la aplicación en
828
- lugar de a otra, usá <tt>call!</tt> en lugar de <tt>call</tt>.
829
-
830
- En la especificación de Rack podés encontrar más información sobre
831
- <tt>call</tt>.
832
-
833
- === Asignando el Código de Estado, los Encabezados y el Cuerpo de una Respuesta
834
-
835
- Es posible, y se recomienda, asignar el código de estado y el cuerpo de una
836
- respuesta con el valor de retorno de una ruta. De cualquier manera, en varios
837
- escenarios, puede que sea conveniente asignar el cuerpo en un punto arbitrario
838
- del flujo de ejecución con el método +body+. A partir de ahí, podés usar ese
839
- mismo método para acceder al cuerpo de la respuesta:
840
-
841
- get '/foo' do
842
- body "bar"
843
- end
844
-
845
- after do
846
- puts body
847
- end
848
-
849
- También es posible pasarle un bloque a +body+, que será ejecutado por el Rack
850
- handler (podés usar esto para implementar streaming, mirá "Valores de retorno").
851
-
852
- De manera similar, también podés asignar el código de estado y encabezados:
853
-
854
- get '/foo' do
855
- status 418
856
- headers \
857
- "Allow" => "BREW, POST, GET, PROPFIND, WHEN",
858
- "Refresh" => "Refresh: 20; http://www.ietf.org/rfc/rfc2324.txt"
859
- body "I'm a tea pot!"
860
- end
861
-
862
- También, al igual que +body+, tanto +status+ como +headers+ pueden utilizarse
863
- para obtener sus valores cuando no se les pasa argumentos.
864
-
865
- === Streaming De Respuestas
866
-
867
- A veces vas a querer empezar a enviar la respuesta a pesar de que todavía no
868
- terminaste de generar su cuerpo. También es posible que, en algunos casos,
869
- quieras seguir enviando información hasta que el cliente cierre la conexión.
870
- Cuando esto ocurra, el +stream+ helper te va a ser de gran ayuda:
871
-
872
- get '/' do
873
- stream do |out|
874
- out << "Esto va a ser legen -\n"
875
- sleep 0.5
876
- out << " (esperalo) \n"
877
- sleep 1
878
- out << "- dario!\n"
879
- end
880
- end
881
-
882
- Podés implementar APIs de streaming,
883
- {Server-Sent Events}[http://dev.w3.org/html5/eventsource/] y puede ser usado
884
- como base para {WebSockets}[http://es.wikipedia.org/wiki/WebSockets]. También
885
- puede ser usado para incrementar el throughput si solo una parte del contenido
886
- depende de un recurso lento.
887
-
888
- Hay que tener en cuenta que el comportamiento del streaming, especialmente el
889
- número de peticiones concurrentes, depende del servidor web utilizado para
890
- servir la aplicación. Puede que algunos servidores, como es el caso de
891
- WEBRick, no soporten streaming directamente, así el cuerpo de la respuesta será
892
- enviado completamente de una vez cuando el bloque pasado a +stream+ finalice su
893
- ejecución. Si estás usando Shotgun, el streaming no va a funcionar.
894
-
895
- Cuando se pasa +keep_open+ como parámetro, no se va a enviar el mensaje
896
- +close+ al objeto de stream. Queda en vos cerrarlo en el punto de ejecución
897
- que quieras. Nuevamente, hay que tener en cuenta que este comportamiento es
898
- posible solo en servidores que soporten eventos, como Thin o Rainbows. El
899
- resto de los servidores van a cerrar el stream de todos modos:
900
-
901
- set :server, :thin
902
- conexiones = []
903
-
904
- get '/' do
905
- # mantenemos abierto el stream
906
- stream(:keep_open) { |salida| conexiones << salida }
907
- end
908
-
909
- post '/' do
910
- # escribimos a todos los streams abiertos
911
- conexiones.each { |salida| salida << params[:mensaje] << "\n" }
912
- "mensaje enviado"
913
- end
914
-
915
- === Log (Registro)
916
-
917
- En el ámbito de la petición, el helper +logger+ (registrador) expone
918
- una instancia de +Logger+:
919
-
920
- get '/' do
921
- logger.info "cargando datos"
922
- # ...
923
- end
924
-
925
- Este logger tiene en cuenta la configuración de logueo de tu Rack
926
- handler. Si el logueo está desactivado, este método va a devolver un
927
- objeto que se comporta como un logger pero que en realidad no hace
928
- nada. Así, no vas a tener que preocuparte por esta situación.
929
-
930
- Tené en cuenta que el logueo está habilitado por defecto únicamente
931
- para <tt>Sinatra::Application</tt>. Si heredaste de
932
- <tt>Sinatra::Base</tt>, probablemente quieras habilitarlo manualmente:
933
-
934
- class MiApp < Sinatra::Base
935
- configure :production, :development do
936
- enable :logging
937
- end
938
- end
939
-
940
- Para evitar que se inicialice cualquier middleware de logging, configurá
941
- +logging+ a +nil+. Tené en cuenta que, cuando hagas esto, +logger+ va a
942
- devolver +nil+. Un caso común es cuando querés usar tu propio logger. Sinatra
943
- va a usar lo que encuentre en <tt>env['rack.logger']</tt>.
944
-
945
- === Tipos Mime
946
-
947
- Cuando usás <tt>send_file</tt> o archivos estáticos tal vez tengas tipos mime
948
- que Sinatra no entiende. Usá +mime_type+ para registrarlos a través de la
949
- extensión de archivo:
950
-
951
- configure do
952
- mime_type :foo, 'text/foo'
953
- end
954
-
955
- También lo podés usar con el ayudante +content_type+:
956
-
957
- get '/' do
958
- content_type :foo
959
- "foo foo foo"
960
- end
961
-
962
- === Generando URLs
963
-
964
- Para generar URLs deberías usar el método +url+. Por ejemplo, en Haml:
965
-
966
- %a{:href => url('/foo')} foo
967
-
968
- Tiene en cuenta proxies inversos y encaminadores de Rack, si están presentes.
969
-
970
- Este método también puede invocarse mediante su alias +to+ (mirá un ejemplo
971
- a continuación).
972
-
973
- === Redirección del Navegador
974
-
975
- Podés redireccionar al navegador con el método +redirect+:
976
-
977
- get '/foo' do
978
- redirect to('/bar')
979
- end
980
-
981
- Cualquier parámetro adicional se utiliza de la misma manera que los argumentos
982
- pasados a +halt+:
983
-
984
- redirect to('/bar'), 303
985
- redirect 'http://google.com', 'te confundiste de lugar, compañero'
986
-
987
- También podés redireccionar fácilmente de vuelta hacia la página desde donde
988
- vino el usuario con +redirect back+:
989
-
990
- get '/foo' do
991
- "<a href='/bar'>hacer algo</a>"
992
- end
993
-
994
- get '/bar' do
995
- hacer_algo
996
- redirect back
997
- end
998
-
999
- Para pasar argumentos con una redirección, podés agregarlos a la cadena de
1000
- búsqueda:
1001
-
1002
- redirect to('/bar?suma=42')
1003
-
1004
- O usar una sesión:
1005
-
1006
- enable :sessions
1007
-
1008
- get '/foo' do
1009
- session[:secreto] = 'foo'
1010
- redirect to('/bar')
1011
- end
1012
-
1013
- get '/bar' do
1014
- session[:secreto]
1015
- end
1016
-
1017
- === Cache Control
1018
-
1019
- Asignar tus encabezados correctamente es el cimiento para realizar un cacheo
1020
- HTTP correcto.
1021
-
1022
- Podés asignar el encabezado Cache-Control fácilmente:
1023
-
1024
- get '/' do
1025
- cache_control :public
1026
- "cachealo!"
1027
- end
1028
-
1029
- Pro tip: configurar el cacheo en un filtro +before+:
1030
-
1031
- before do
1032
- cache_control :public, :must_revalidate, :max_age => 60
1033
- end
1034
-
1035
- Si estás usando el helper +expires+ para definir el encabezado correspondiente,
1036
- <tt>Cache-Control</tt> se va a definir automáticamente:
1037
-
1038
- before do
1039
- expires 500, :public, :must_revalidate
1040
- end
1041
-
1042
- Para usar cachés adecuadamente, deberías considerar usar +etag+ o
1043
- +last_modified+. Es recomendable que llames a estos helpers *antes* de hacer
1044
- cualquier trabajo pesado, ya que van a enviar la respuesta inmediatamente si
1045
- el cliente ya tiene la versión actual en su caché:
1046
-
1047
- get '/articulo/:id' do
1048
- @articulo = Articulo.find params[:id]
1049
- last_modified @articulo.updated_at
1050
- etag @articulo.sha1
1051
- erb :articulo
1052
- end
1053
-
1054
- También es posible usar una
1055
- {weak ETag}[http://en.wikipedia.org/wiki/HTTP_ETag#Strong_and_weak_validation]:
1056
-
1057
- etag @articulo.sha1, :weak
1058
-
1059
- Estos helpers no van a cachear nada por vos, sino que van a facilitar la
1060
- información necesaria para poder hacerlo. Si estás buscando soluciones rápidas
1061
- de cacheo con proxys inversos, mirá
1062
- {rack-cache}[http://rtomayko.github.com/rack-cache/]:
1063
-
1064
- require "rack/cache"
1065
- require "sinatra"
1066
-
1067
- use Rack::Cache
1068
-
1069
- get '/' do
1070
- cache_control :public, :max_age => 36000
1071
- sleep 5
1072
- "hola"
1073
- end
1074
-
1075
- Usá la configuración <tt>:static_cache_control</tt> para agregar el encabezado
1076
- <tt>Cache-Control</tt> a archivos estáticos (ver la sección de configuración
1077
- para más detalles).
1078
-
1079
- De acuerdo con la RFC 2616 tu aplicación debería comportarse diferente si a las
1080
- cabeceras If-Match o If-None-Match se le asigna el valor <tt>*</tt> cuando el
1081
- recurso solicitado ya existe. Sinatra asume para peticiones seguras (como get)
1082
- e idempotentes (como put) que el recurso existe, mientras que para el resto
1083
- (como post), que no. Podes cambiar este comportamiento con la opción
1084
- <tt>:new_resource</tt>:
1085
-
1086
- get '/crear' do
1087
- etag '', :new_resource => true
1088
- Articulo.create
1089
- erb :nuevo_articulo
1090
- end
1091
-
1092
- Si querés seguir usando una weak ETag, indicalo con la opción <tt>:kind</tt>:
1093
-
1094
- etag '', :new_resource => true, :kind => :weak
1095
-
1096
- === Enviando Archivos
1097
-
1098
- Para enviar archivos, podés usar el método <tt>send_file</tt>:
1099
-
1100
- get '/' do
1101
- send_file 'foo.png'
1102
- end
1103
-
1104
- Además acepta un par de opciones:
1105
-
1106
- send_file 'foo.png', :type => :jpg
1107
-
1108
- Estas opciones son:
1109
-
1110
- [filename]
1111
- nombre del archivo devuelto, por defecto es el nombre real del archivo.
1112
-
1113
- [last_modified]
1114
- valor para el encabezado Last-Modified, por defecto toma el mtime del archivo.
1115
-
1116
- [type]
1117
- el content type que se va a utilizar, si no está presente se intenta adivinar
1118
- a partir de la extensión del archivo.
1119
-
1120
- [disposition]
1121
- se utiliza para el encabezado Content-Disposition, y puede tomar alguno de los
1122
- siguientes valores: +nil+ (por defecto), <tt>:attachment</tt> e
1123
- <tt>:inline</tt>
1124
-
1125
- [length]
1126
- encabezado Content-Length, por defecto toma el tamaño del archivo.
1127
-
1128
- Si el Rack handler lo soporta, se intentará no transmitir directamente desde el
1129
- proceso de Ruby. Si usás este método, Sinatra se va a encargar automáticamente
1130
- peticiones de rango.
1131
-
1132
- === Accediendo al objeto de la petición
1133
-
1134
- El objeto de la petición entrante puede ser accedido desde el nivel de la
1135
- petición (filtros, rutas y manejadores de errores) a través del método
1136
- <tt>request</tt>:
1137
-
1138
- # app corriendo en http://ejemplo.com/ejemplo
1139
- get '/foo' do
1140
- t = %w[text/css text/html application/javascript]
1141
- request.accept # ['text/html', '*/*']
1142
- request.accept? 'text/xml' # true
1143
- request.preferred_type(t) # 'text/html'
1144
- request.body # cuerpo de la petición enviado por el cliente (ver más abajo)
1145
- request.scheme # "http"
1146
- request.script_name # "/ejemplo"
1147
- request.path_info # "/foo"
1148
- request.port # 80
1149
- request.request_method # "GET"
1150
- request.query_string # ""
1151
- request.content_length # longitud de request.body
1152
- request.media_type # tipo de medio de request.body
1153
- request.host # "ejemplo.com"
1154
- request.get? # true (hay métodos análogos para los otros verbos)
1155
- request.form_data? # false
1156
- request["UNA_CABECERA"] # valor de la cabecera UNA_CABECERA
1157
- request.referrer # la referencia del cliente o '/'
1158
- request.user_agent # user agent (usado por la condición :agent)
1159
- request.cookies # hash de las cookies del browser
1160
- request.xhr? # es una petición ajax?
1161
- request.url # "http://ejemplo.com/ejemplo/foo"
1162
- request.path # "/ejemplo/foo"
1163
- request.ip # dirección IP del cliente
1164
- request.secure? # false (sería true sobre ssl)
1165
- request.forwarded? # true (si se está corriendo atrás de un proxy inverso)
1166
- requuest.env # hash de entorno directamente entregado por Rack
1167
- end
1168
-
1169
- Algunas opciones, como <tt>script_name</tt> o <tt>path_info</tt> pueden
1170
- también ser escritas:
1171
-
1172
- before { request.path_info = "/" }
1173
-
1174
- get "/" do
1175
- "todas las peticiones llegan acá"
1176
- end
1177
-
1178
- El objeto <tt>request.body</tt> es una instancia de IO o StringIO:
1179
-
1180
- post "/api" do
1181
- request.body.rewind # en caso de que alguien ya lo haya leído
1182
- datos = JSON.parse request.body.read
1183
- "Hola #{datos['nombre']}!"
1184
- end
1185
-
1186
- === Archivos Adjuntos
1187
-
1188
- Podés usar el método helper +attachment+ para indicarle al navegador que
1189
- almacene la respuesta en el disco en lugar de mostrarla en pantalla:
1190
-
1191
- get '/' do
1192
- attachment
1193
- "guardalo!"
1194
- end
1195
-
1196
- También podés pasarle un nombre de archivo:
1197
-
1198
- get '/' do
1199
- attachment "info.txt"
1200
- "guardalo!"
1201
- end
1202
-
1203
- === Fecha y Hora
1204
-
1205
- Sinatra pone a tu disposición el helper +time_for+, que genera un objeto +Time+
1206
- a partir del valor que recibe como argumento. Este valor puede ser un
1207
- +String+, pero también es capaz de convertir objetos +DateTime+, +Date+ y de
1208
- otras clases similares:
1209
-
1210
- get '/' do
1211
- pass if Time.now > time_for('Dec 23, 2012')
1212
- "todavía hay tiempo"
1213
- end
1214
-
1215
- Este método es usado internamente por métodos como +expires+ y +last_modified+,
1216
- entre otros. Por lo tanto, es posible extender el comportamiento de estos
1217
- métodos sobreescribiendo +time_for+ en tu aplicación:
1218
-
1219
- helpers do
1220
- def time_for(value)
1221
- case value
1222
- when :ayer then Time.now - 24*60*60
1223
- when :mañana then Time.now + 24*60*60
1224
- else super
1225
- end
1226
- end
1227
- end
1228
-
1229
- get '/' do
1230
- last_modified :ayer
1231
- expires :mañana
1232
- "hola"
1233
- end
1234
-
1235
- === Buscando los Archivos de las Plantillas
1236
-
1237
- El helper <tt>find_template</tt> se utiliza para encontrar los archivos de las
1238
- plantillas que se van a renderizar:
1239
-
1240
- find_template settings.views, 'foo', Tilt[:haml] do |archivo|
1241
- puts "podría ser #{archivo}"
1242
- end
1243
-
1244
- Si bien esto no es muy útil, lo interesante es que podés sobreescribir este
1245
- método, y así enganchar tu propio mecanismo de búsqueda. Por ejemplo, para
1246
- poder utilizar más de un directorio de vistas:
1247
-
1248
- set :views, ['vistas', 'plantillas']
1249
-
1250
- helpers do
1251
- def find_template(views, name, engine, &block)
1252
- Array(views).each { |v| super(v, name, engine, &block) }
1253
- end
1254
- end
1255
-
1256
- Otro ejemplo consiste en usar directorios diferentes para los distintos motores
1257
- de renderizado:
1258
-
1259
- set :views, :sass => 'vistas/sass', :haml => 'plantillas', :defecto => 'vistas'
1260
-
1261
- helpers do
1262
- def find_template(views, name, engine, &block)
1263
- _, folder = views.detect { |k,v| engine == Tilt[k] }
1264
- folder ||= views[:defecto]
1265
- super(folder, name, engine, &block)
1266
- end
1267
- end
1268
-
1269
- ¡Es muy fácil convertir estos ejemplos en una extensión y compartirla!.
1270
-
1271
- Notá que <tt>find_template</tt> no verifica si un archivo existe realmente, sino
1272
- que llama al bloque que recibe para cada path posible. Esto no representa un
1273
- problema de rendimiento debido a que +render+ va a usar +break+ ni bien
1274
- encuentre un archivo que exista. Además, las ubicaciones de las plantillas (y
1275
- su contenido) se cachean cuando no estás en el modo de desarrollo. Es bueno
1276
- tener en cuenta lo anteiror si escribís un método medio loco.
1277
-
1278
- == Configuración
1279
-
1280
- Ejecutar una vez, en el inicio, en cualquier entorno:
1281
-
1282
- configure do
1283
- # asignando una opción
1284
- set :opcion, 'valor'
1285
-
1286
- # asignando varias opciones
1287
- set :a => 1, :b => 2
1288
-
1289
- # atajo para `set :opcion, true`
1290
- enable :opcion
1291
-
1292
- # atajo para `set :opcion, false`
1293
- disable :opcion
1294
-
1295
- # también podés tener configuraciones dinámicas usando bloques
1296
- set(:css_dir) { File.join(views, 'css') }
1297
- end
1298
-
1299
- Ejecutar únicamente cuando el entorno (la variable de entorno RACK_ENV) es
1300
- <tt>:production</tt>:
1301
-
1302
- configure :production do
1303
- ...
1304
- end
1305
-
1306
- Ejecutar cuando el entorno es <tt>:production</tt> o <tt>:test</tt>:
1307
-
1308
- configure :production, :test do
1309
- ...
1310
- end
1311
-
1312
- Podés acceder a estas opciones utilizando el método <tt>settings</tt>:
1313
-
1314
- configure do
1315
- set :foo, 'bar'
1316
- end
1317
-
1318
- get '/' do
1319
- settings.foo? # => true
1320
- settings.foo # => 'bar'
1321
- ...
1322
- end
1323
-
1324
- === Configurando la Protección de Ataques
1325
-
1326
- Sinatra usa {Rack::Protection}[https://github.com/rkh/rack-protection#readme]
1327
- para defender a tu aplicación de los ataques más comunes. Si por algún motivo,
1328
- querés desactivar esta funcionalidad, podés hacerlo como se indica a
1329
- continuación (tené en cuenta que tu aplicación va a quedar expuesta a un
1330
- montón de vulnerabilidades bien conocidas):
1331
-
1332
- disable :protection
1333
-
1334
- También es posible desactivar una única capa de defensa:
1335
-
1336
- set :protection, :except => :path_traversal
1337
-
1338
- O varias:
1339
-
1340
- set :protection, :except => [:path_traversal, :session_hijacking]
1341
-
1342
- === Configuraciones Disponibles
1343
-
1344
- [absolute_redirects] si está deshabilitada, Sinatra va a permitir
1345
- redirecciones relativas, sin embargo, como consecuencia
1346
- de esto, va a dejar de cumplir con el RFC 2616 (HTTP
1347
- 1.1), que solamente permite redirecciones absolutas.
1348
-
1349
- Activalo si tu apliación está corriendo atrás de un proxy
1350
- inverso que no se ha configurado adecuadamente. Notá que
1351
- el helper +url+ va a seguir produciendo URLs absolutas, a
1352
- menos que le pasés +false+ como segundo parámetro.
1353
-
1354
- Deshabilitada por defecto.
1355
-
1356
- [add_charsets] tipos mime a los que el helper <tt>content_type</tt> les
1357
- añade automáticamente el charset.
1358
-
1359
- En general, no deberías asignar directamente esta opción,
1360
- sino añadirle los charsets que quieras:
1361
-
1362
- settings.add_charsets << "application/foobar"
1363
-
1364
- [app_file] path del archivo principal de la aplicación, se utiliza
1365
- para detectar la raíz del proyecto, el directorio de las
1366
- vistas y el público, así como las plantillas inline.
1367
-
1368
- [bind] dirección IP que utilizará el servidor integrado (por
1369
- defecto: 0.0.0.0).
1370
-
1371
- [default_encoding] encoding utilizado cuando el mismo se desconoce (por
1372
- defecto <tt>"utf-8"</tt>).
1373
-
1374
- [dump_errors] mostrar errores en el log.
1375
-
1376
- [environment] entorno actual, por defecto toma el valor de
1377
- <tt>ENV['RACK_ENV']</tt>, o <tt>"development"</tt> si no
1378
- está disponible.
1379
-
1380
- [logging] define si se utiliza el logger.
1381
-
1382
- [lock] coloca un lock alrededor de cada petición, procesando
1383
- solamente una por proceso.
1384
-
1385
- Habilitá esta opción si tu aplicación no es thread-safe.
1386
- Se encuentra deshabilitada por defecto.
1387
-
1388
- [method_override] utiliza el parámetro <tt>_method</tt> para permtir
1389
- formularios put/delete en navegadores que no los
1390
- soportan.
1391
-
1392
- [port] puerto en el que escuchará el servidor integrado.
1393
-
1394
- [prefixed_redirects] define si inserta <tt>request.script_name</tt> en las
1395
- redirecciones cuando no se proporciona un path absoluto.
1396
- De esta manera, cuando está habilitada,
1397
- <tt>redirect '/foo'</tt> se comporta de la misma manera
1398
- que <tt>redirect to('/foo')</tt>. Se encuentra
1399
- deshabilitada por defecto.
1400
-
1401
- [protection] define si deben activarse las protecciones para los
1402
- ataques web más comunes. Para más detalles mirá la
1403
- sección sobre la configuración de protección de ataques
1404
- más arriba.
1405
-
1406
- [public_folder] path del directorio desde donde se sirven los archivos
1407
- públicos. Solo se utiliza cuando se sirven archivos
1408
- estáticos (ver la opción <tt>static</tt>). Si no
1409
- está presente, se infiere del valor de la opción
1410
- <tt>app_file</tt>.
1411
-
1412
- [reload_templates] define si se recargan las plantillas entre peticiones.
1413
-
1414
- Se encuentra activado en el entorno de desarrollo.
1415
-
1416
- [root] path del directorio raíz del proyecto. Si no está
1417
- presente, se infiere del valor de la opción
1418
- <tt>app_file</tt>.
1419
-
1420
- [raise_errors] elevar excepciones (detiene la aplicación). Se
1421
- encuentra activada por defecto cuando el valor de
1422
- <tt>environment</tt> es <tt>"test"</tt>. En caso
1423
- contrario estará desactivada.
1424
-
1425
- [run] cuando está habilitada, Sinatra se va a encargar de
1426
- iniciar el servidor web, no la habilités cuando estés
1427
- usando rackup o algún otro medio.
1428
-
1429
- [running] indica si el servidor integrado está ejecutandose, ¡no
1430
- cambiés esta configuración!.
1431
-
1432
- [server] servidor, o lista de servidores, para usar como servidor
1433
- integrado. Por defecto: ['thin', 'mongrel', 'webrick'],
1434
- el orden establece la prioridad.
1435
-
1436
- [sessions] habilita el soporte de sesiones basadas en cookies a
1437
- través de <tt>Rack::Session::Cookie</tt>. Ver la
1438
- sección 'Usando Sesiones' para más información.
1439
-
1440
- [show_exceptions] muestra un stack trace en el navegador cuando ocurre una
1441
- excepción. Se encuentra activada por defecto cuando el
1442
- valor de <tt>environment</tt> es <tt>"development"</tt>.
1443
- En caso contrario estará desactivada.
1444
-
1445
- [static] define si Sinatra debe encargarse de servir archivos
1446
- estáticos.
1447
-
1448
- Deshabilitala cuando usés un servidor capaz de
1449
- hacerlo por sí solo, porque mejorará el
1450
- rendimiento. Se encuentra habilitada por
1451
- defecto en el estilo clásico y desactivado en el
1452
- el modular.
1453
-
1454
- [static_cache_control] cuando Sinatra está sirviendo archivos estáticos, y
1455
- está opción está habilitada, les va a agregar encabezados
1456
- <tt>Cache-Control</tt> a las respuestas. Para esto
1457
- utiliza el helper +cache_control+. Se encuentra
1458
- deshabilitada por defecto. Notar que es necesario
1459
- utilizar un array cuando se asignan múltiples valores:
1460
- <tt>set :static_cache_control, [:public, :max_age => 300]</tt>.
1461
-
1462
- [views] path del directorio de las vistas. Si no está presente,
1463
- se infiere del valor de la opción <tt>app_file</tt>.
1464
-
1465
- == Entornos
1466
-
1467
- Existen tres entornos (+environments+) predefinidos: <tt>development</tt>,
1468
- <tt>production</tt> y <tt>test</tt>. El entorno por defecto es
1469
- <tt>development</tt> y tiene algunas particularidades:
1470
-
1471
- * Se recargan las plantillas entre una petición y la siguiente, a diferencia
1472
- de <tt>production</tt> y <tt>test</tt>, donde se cachean.
1473
- * Se instalan manejadores de errores <tt>not_found</tt> y <tt>error</tt>
1474
- especiales que muestran un stack trace en el navegador cuando son disparados.
1475
-
1476
- Para utilizar alguno de los otros entornos puede asignarse el valor
1477
- correspondiente a la variable de entorno +RACK_ENV+, o bien utilizar la opción
1478
- <tt>-e</tt> al ejecutar la aplicación:
1479
-
1480
- ruby mi_app.rb -e <ENTORNO>
1481
-
1482
- Los métodos +development?+, +test?+ y +production?+ te permiten conocer el
1483
- entorno actual.
1484
-
1485
- == Manejo de Errores
1486
-
1487
- Los manejadores de errores se ejecutan dentro del mismo contexto que las rutas
1488
- y los filtros +before+, lo que significa que podés usar, por ejemplo,
1489
- <tt>haml</tt>, <tt>erb</tt>, <tt>halt</tt>, etc.
1490
-
1491
- === No encontrado <em>(Not Found)</em>
1492
-
1493
- Cuando se eleva una excepción <tt>Sinatra::NotFound</tt>, o el código de
1494
- estado de la respuesta es 404, el manejador <tt>not_found</tt> es invocado:
1495
-
1496
- not_found do
1497
- 'No existo'
1498
- end
1499
-
1500
- === Error
1501
-
1502
- El manejador +error+ es invocado cada vez que una excepción es elevada
1503
- desde un bloque de ruta o un filtro. El objeto de la excepción se puede
1504
- obtener de la variable Rack <tt>sinatra.error</tt>:
1505
-
1506
- error do
1507
- 'Disculpá, ocurrió un error horrible - ' + env['sinatra.error'].name
1508
- end
1509
-
1510
- Errores personalizados:
1511
-
1512
- error MiErrorPersonalizado do
1513
- 'Lo que pasó fue...' + env['sinatra.error'].message
1514
- end
1515
-
1516
- Entonces, si pasa esto:
1517
-
1518
- get '/' do
1519
- raise MiErrorPersonalizado, 'algo malo'
1520
- end
1521
-
1522
- Obtenés esto:
1523
-
1524
- Lo que pasó fue... algo malo
1525
-
1526
- También, podés instalar un manejador de errores para un código de estado:
1527
-
1528
- error 403 do
1529
- 'Acceso prohibido'
1530
- end
1531
-
1532
- get '/secreto' do
1533
- 403
1534
- end
1535
-
1536
- O un rango:
1537
-
1538
- error 400..510 do
1539
- 'Boom'
1540
- end
1541
-
1542
- Sinatra instala manejadores <tt>not_found</tt> y <tt>error</ttt> especiales
1543
- cuando se ejecuta dentro del entorno de desarrollo "development".
1544
-
1545
- == Rack Middleware
1546
-
1547
- Sinatra corre sobre Rack[http://rack.rubyforge.org/], una interfaz minimalista
1548
- que es un estándar para frameworks webs escritos en Ruby. Una de las
1549
- capacidades más interesantes de Rack para los desarrolladores de aplicaciones
1550
- es el soporte de "middleware" -- componentes que se ubican entre el servidor y
1551
- tu aplicación, supervisando y/o manipulando la petición/respuesta HTTP para
1552
- proporcionar varios tipos de funcionalidades comunes.
1553
-
1554
- Sinatra hace muy sencillo construir tuberías de Rack middleware a través del
1555
- método top-level +use+:
1556
-
1557
- require 'sinatra'
1558
- require 'mi_middleware_personalizado'
1559
-
1560
- use Rack::Lint
1561
- use MiMiddlewarePersonalizado
1562
-
1563
- get '/hola' do
1564
- 'Hola Mundo'
1565
- end
1566
-
1567
- Las semánticas de +use+ son idénticas a las definidas para el DSL
1568
- Rack::Builder[http://rack.rubyforge.org/doc/classes/Rack/Builder.html] (más
1569
- frecuentemente usado desde archivos rackup). Por ejemplo, el método +use+
1570
- acepta argumentos múltiples/variables así como bloques:
1571
-
1572
- use Rack::Auth::Basic do |nombre_de_usuario, password|
1573
- nombre_de_usuario == 'admin' && password == 'secreto'
1574
- end
1575
-
1576
- Rack es distribuido con una variedad de middleware estándar para logging,
1577
- debugging, enrutamiento URL, autenticación, y manejo de sesiones. Sinatra
1578
- usa muchos de estos componentes automáticamente de acuerdo a su configuración
1579
- para que típicamente no tengas que usarlas (con +use+) explícitamente.
1580
-
1581
- Podés encontrar middleware útil en
1582
- {rack}[https://github.com/rack/rack/tree/master/lib/rack],
1583
- {rack-contrib}[https://github.com/rack/rack-contrib#readme],
1584
- con {CodeRack}[http://coderack.org/] o en la
1585
- {Rack wiki}[https://github.com/rack/rack/wiki/List-of-Middleware].
1586
-
1587
- == Pruebas
1588
-
1589
- Las pruebas para las aplicaciones Sinatra pueden ser escritas utilizando
1590
- cualquier framework o librería de pruebas basada en Rack. Se recomienda usar
1591
- {Rack::Test}[http://rdoc.info/github/brynary/rack-test/master/frames]:
1592
-
1593
- require 'mi_app_sinatra'
1594
- require 'test/unit'
1595
- require 'rack/test'
1596
-
1597
- class MiAppTest < Test::Unit::TestCase
1598
- include Rack::Test::Methods
1599
-
1600
- def app
1601
- Sinatra::Application
1602
- end
1603
-
1604
- def test_mi_defecto
1605
- get '/'
1606
- assert_equal 'Hola Mundo!', last_response.body
1607
- end
1608
-
1609
- def test_con_parametros
1610
- get '/saludar', :name => 'Franco'
1611
- assert_equal 'Hola Frank!', last_response.body
1612
- end
1613
-
1614
- def test_con_entorno_rack
1615
- get '/', {}, 'HTTP_USER_AGENT' => 'Songbird'
1616
- assert_equal "Estás usando Songbird!", last_response.body
1617
- end
1618
- end
1619
-
1620
- == Sinatra::Base - Middleware, Librerías, y Aplicaciones Modulares
1621
-
1622
- Definir tu aplicación en el top-level funciona bien para micro-aplicaciones
1623
- pero trae inconvenientes considerables a la hora de construir componentes
1624
- reutilizables como Rack middleware, Rails metal, simple librerías con un
1625
- componente de servidor, o incluso extensiones de Sinatra. El DSL de top-level
1626
- contamina el espacio de nombres de Object y asume una configuración apropiada
1627
- para micro-aplicaciones (por ejemplo, un único archivo de aplicación, los
1628
- directorios <tt>./public</tt> y <tt>./views</tt>, logging, página con detalles
1629
- de excepción, etc.). Ahí es donde <tt>Sinatra::Base</tt> entra en el juego:
1630
-
1631
- require 'sinatra/base'
1632
-
1633
- class MiApp < Sinatra::Base
1634
- set :sessions, true
1635
- set :foo, 'bar'
1636
-
1637
- get '/' do
1638
- 'Hola Mundo!'
1639
- end
1640
- end
1641
-
1642
- Las subclases de <tt>Sinatra::Base</tt> tienen disponibles exactamente los
1643
- mismos métodos que los provistos por el DSL de top-level. La mayoría de las
1644
- aplicaciones top-level se pueden convertir en componentes
1645
- <tt>Sinatra::Base</tt> con dos modificaciones:
1646
-
1647
- * Tu archivo debe requerir <tt>sinatra/base</tt> en lugar de +sinatra+; de otra
1648
- manera, todos los métodos del DSL de sinatra son importados dentro del
1649
- espacio de nombres principal.
1650
- * Poné las rutas, manejadores de errores, filtros y opciones de tu aplicación
1651
- en una subclase de <tt>Sinatra::Base</tt>.
1652
-
1653
- <tt>Sinatra::Base</tt> es una pizarra en blanco. La mayoría de las opciones están
1654
- desactivadas por defecto, incluyendo el servidor incorporado. Mirá
1655
- {Opciones y Configuraciones}[http://sinatra.github.com/configuration.html]
1656
- para detalles sobre las opciones disponibles y su comportamiento.
1657
-
1658
- === Estilo Modular vs. Clásico
1659
-
1660
- Contrariamente a la creencia popular, no hay nada de malo con el estilo clásico.
1661
- Si se ajusta a tu aplicación, no es necesario que la cambies a una modular.
1662
-
1663
- Existen tan solo dos desventajas en comparación con el estilo modular:
1664
-
1665
- * Solamente podés tener una aplicación Sinatra por proceso Ruby - si tenés
1666
- planificado usar más, cambiá al estilo modular.
1667
-
1668
- * El estilo clásico contamina Object con métodos delegadores - si tenés
1669
- planificado empaquetar tu aplicación en una librería/gem, cambiá al estilo
1670
- modular.
1671
-
1672
- No hay ninguna razón por la cuál no puedas mezclar los estilos modular y
1673
- clásico.
1674
-
1675
- Cuando cambiés de un estilo al otro, tené en cuenta las sutiles diferencias
1676
- entre sus configuraciones:
1677
-
1678
- Configuración Clásica Modular
1679
-
1680
- app_file archivo que carga sinatra archivo con la subclase de Sinatra::Base
1681
- run $0 == app_file false
1682
- logging true false
1683
- method_override true false
1684
- inline_templates true false
1685
- static true false
1686
-
1687
- === Sirviendo una Aplicación Modular
1688
-
1689
- Las dos opciones más comunes para iniciar una aplicación modular son, iniciarla
1690
- activamente con <tt>run!</tt>:
1691
-
1692
- # mi_app.rb
1693
- require 'sinatra/base'
1694
-
1695
- class MiApp < Sinatra::Base
1696
- # ... código de la app ...
1697
-
1698
- # iniciar el servidor si el archivo fue ejecutado directamente
1699
- run! if app_file == $0
1700
- end
1701
-
1702
- Iniciar con:
1703
-
1704
- ruby mi_app.rb
1705
-
1706
- O, con un archivo <tt>config.ru</tt>, que permite usar cualquier handler Rack:
1707
-
1708
- # config.ru
1709
- require './mi_app'
1710
- run MiApp
1711
-
1712
- Después ejecutar:
1713
-
1714
- rackup -p 4567
1715
-
1716
- === Usando una Aplicación Clásica con un Archivo config.ru
1717
-
1718
- Escribí el archivo de tu aplicación:
1719
-
1720
- # app.rb
1721
- require 'sinatra'
1722
-
1723
- get '/' do
1724
- 'Hola mundo!'
1725
- end
1726
-
1727
- Y el <tt>config.ru</tt> correspondiente:
1728
-
1729
- require './app'
1730
- run Sinatra::Application
1731
-
1732
- === ¿Cuándo Usar config.ru?
1733
-
1734
- Indicadores de que probablemente querés usar <tt>config.ru</tt>:
1735
-
1736
- * Querés realizar el deploy con un hanlder Rack distinto (Passenger, Unicorn,
1737
- Heroku, ...).
1738
- * Querés usar más de una subclase de <tt>Sinatra::Base</tt>.
1739
- * Querés usar Sinatra únicamente para middleware, pero no como un endpoint.
1740
-
1741
- <b>No hay necesidad de utilizar un archivo <tt>config.ru</tt> exclusivamente
1742
- porque tenés una aplicación modular, y no necesitás una aplicación modular para
1743
- iniciarla con <tt>config.ru</tt>.</b>
1744
-
1745
- === Utilizando Sinatra como Middleware
1746
-
1747
- Sinatra no solo es capaz de usar otro Rack middleware, sino que a su vez,
1748
- cualquier aplicación Sinatra puede ser agregada delante de un endpoint Rack
1749
- como middleware. Este endpoint puede ser otra aplicación Sinatra, o cualquier
1750
- aplicación basada en Rack (Rails/Ramaze/Camping/...):
1751
-
1752
- require 'sinatra/base'
1753
-
1754
- class PantallaDeLogin < Sinatra::Base
1755
- enable :sessions
1756
-
1757
- get('/login') { haml :login }
1758
-
1759
- post('/login') do
1760
- if params[:nombre] == 'admin' && params[:password] == 'admin'
1761
- session['nombre_de_usuario'] = params[:nombre]
1762
- else
1763
- redirect '/login'
1764
- end
1765
- end
1766
- end
1767
-
1768
- class MiApp < Sinatra::Base
1769
- # el middleware se ejecutará antes que los filtros
1770
- use PantallaDeLogin
1771
-
1772
- before do
1773
- unless session['nombre_de_usuario']
1774
- halt "Acceso denegado, por favor <a href='/login'>iniciá sesión</a>."
1775
- end
1776
- end
1777
-
1778
- get('/') { "Hola #{session['nombre_de_usuario']}." }
1779
- end
1780
-
1781
- === Creación Dinámica de Aplicaciones
1782
-
1783
- Puede que en algunas ocasiones quieras crear nuevas aplicaciones en
1784
- tiempo de ejecución sin tener que asignarlas a una constante. Para
1785
- esto tenés <tt>Sinatra.new</tt>:
1786
-
1787
- require 'sinatra/base'
1788
- mi_app = Sinatra.new { get('/') { "hola" } }
1789
- mi_app.run!
1790
-
1791
- Acepta como argumento opcional una aplicación desde la que se
1792
- heredará:
1793
-
1794
- # config.ru
1795
- require 'sinatra/base'
1796
-
1797
- controller = Sinatra.new do
1798
- enable :logging
1799
- helpers MisHelpers
1800
- end
1801
-
1802
- map('/a') do
1803
- run Sinatra.new(controller) { get('/') { 'a' } }
1804
- end
1805
-
1806
- map('/b') do
1807
- run Sinatra.new(controller) { get('/') { 'b' } }
1808
- end
1809
-
1810
- Construir aplicaciones de esta forma resulta especialmente útil para
1811
- testear extensiones Sinatra o para usar Sinatra en tus librerías.
1812
-
1813
- Por otro lado, hace extremadamente sencillo usar Sinatra como
1814
- middleware:
1815
-
1816
- require 'sinatra/base'
1817
-
1818
- use Sinatra do
1819
- get('/') { ... }
1820
- end
1821
-
1822
- run ProyectoRails::Application
1823
-
1824
- == Ámbitos y Ligaduras
1825
-
1826
- El ámbito en el que te encontrás determina que métodos y variables están
1827
- disponibles.
1828
-
1829
- === Ámbito de Aplicación/Clase
1830
-
1831
- Cada aplicación Sinatra es una subclase de <tt>Sinatra::Base</tt>. Si estás
1832
- usando el DSL de top-level (<tt>require 'sinatra'</tt>), entonces esta clase es
1833
- <tt>Sinatra::Application</tt>, de otra manera es la subclase que creaste
1834
- explícitamente. Al nivel de la clase tenés métodos como +get+ o +before+, pero
1835
- no podés acceder a los objetos +request+ o +session+, ya que hay una única
1836
- clase de la aplicación para todas las peticiones.
1837
-
1838
- Las opciones creadas utilizando +set+ son métodos al nivel de la clase:
1839
-
1840
- class MiApp < Sinatra::Base
1841
- # Ey, estoy en el ámbito de la aplicación!
1842
- set :foo, 42
1843
- foo # => 42
1844
-
1845
- get '/foo' do
1846
- # Hey, ya no estoy en el ámbito de la aplicación!
1847
- end
1848
- end
1849
-
1850
- Tenés la ligadura al ámbito de la aplicación dentro de:
1851
-
1852
- * El cuerpo de la clase de tu aplicación
1853
- * Métodos definidos por extensiones
1854
- * El bloque pasado a +helpers+
1855
- * Procs/bloques usados como el valor para +set+
1856
-
1857
- Este ámbito puede alcanzarse de las siguientes maneras:
1858
-
1859
- * A través del objeto pasado a los bloques de configuración (<tt>configure { |c| ...}</tt>)
1860
- * Llamando a +settings+ desde dentro del ámbito de la petición
1861
-
1862
- === Ámbito de Petición/Instancia
1863
-
1864
- Para cada petición entrante, una nueva instancia de la clase de tu aplicación
1865
- es creada y todos los bloques de rutas son ejecutados en ese ámbito. Desde este
1866
- ámbito podés acceder a los objetos +request+ y +session+ o llamar a los métodos
1867
- de renderización como +erb+ o +haml+. Podés acceder al ámbito de la aplicación
1868
- desde el ámbito de la petición utilizando +settings+:
1869
-
1870
- class MiApp < Sinatra::Base
1871
- # Ey, estoy en el ámbito de la aplicación!
1872
- get '/definir_ruta/:nombre' do
1873
- # Ámbito de petición para '/definir_ruta/:nombre'
1874
- @valor = 42
1875
-
1876
- settings.get("/#{params[:nombre]}") do
1877
- # Ámbito de petición para "/#{params[:nombre]}"
1878
- @valor # => nil (no es la misma petición)
1879
- end
1880
-
1881
- "Ruta definida!"
1882
- end
1883
- end
1884
-
1885
- Tenés la ligadura al ámbito de la petición dentro de:
1886
-
1887
- * bloques pasados a get/head/post/put/delete/options
1888
- * filtros before/after
1889
- * métodos ayudantes
1890
- * plantillas/vistas
1891
-
1892
- === Ámbito de Delegación
1893
-
1894
- El ámbito de delegación solo reenvía métodos al ámbito de clase. De cualquier
1895
- manera, no se comporta 100% como el ámbito de clase porque no tenés la ligadura
1896
- de la clase: únicamente métodos marcados explícitamente para delegación están
1897
- disponibles y no compartís variables/estado con el ámbito de clase (léase:
1898
- tenés un +self+ diferente). Podés agregar delegaciones de método llamando a
1899
- <tt>Sinatra::Delegator.delegate :nombre_del_metodo</tt>.
1900
-
1901
- Tenés la ligadura al ámbito de delegación dentro de:
1902
-
1903
- * La ligadura del top-level, si hiciste <tt>require "sinatra"</tt>
1904
- * Un objeto extendido con el mixin <tt>Sinatra::Delegator</tt>
1905
-
1906
- Pegale una mirada al código: acá está el
1907
- {Sinatra::Delegator mixin}[http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854f606fe5992/lib/sinatra/base.rb#L1128]
1908
- que es {incluido en el espacio de nombres principal}[http://github.com/sinatra/sinatra/blob/ceac46f0bc129a6e994a06100aa854f606fe5992/lib/sinatra/main.rb#L28].
1909
-
1910
- == Línea de Comandos
1911
-
1912
- Las aplicaciones Sinatra pueden ser ejecutadas directamente:
1913
-
1914
- ruby miapp.rb [-h] [-x] [-e ENTORNO] [-p PUERTO] [-o HOST] [-s MANEJADOR]
1915
-
1916
- Las opciones son:
1917
-
1918
- -h # ayuda
1919
- -p # asigna el puerto (4567 es usado por defecto)
1920
- -o # asigna el host (0.0.0.0 es usado por defecto)
1921
- -e # asigna el entorno (development es usado por defecto)
1922
- -s # especifica el servidor/manejador rack (thin es usado por defecto)
1923
- -x # activa el mutex lock (está desactivado por defecto)
1924
-
1925
- == Versiones de Ruby Soportadas
1926
-
1927
- Las siguientes versiones de Ruby son soportadas oficialmente:
1928
-
1929
- [ Ruby 1.8.7 ]
1930
- 1.8.7 es soportado completamente. Sin embargo, si no hay nada que te lo
1931
- prohíba, te recomendamos que usés 1.9.2 o cambies a JRuby o Rubinius. No se
1932
- dejará de dar soporte a 1.8.7 hasta Sinatra 2.0 y Ruby 2.0, aunque si se
1933
- libera la versión 1.8.8 de Ruby las cosas podrían llegar a cambiar. Sin
1934
- embargo, que eso ocurra es muy poco probable, e incluso el caso de que lo
1935
- haga, puede que se siga dando soporte a 1.8.7. <b>Hemos dejado de soportar
1936
- Ruby 1.8.6.</b> Si querés ejecutar Sinatra sobre 1.8.6, podés utilizar la
1937
- versión 1.2, pero tené en cuenta que una vez que Sinatra 1.4.0 sea liberado,
1938
- ya no se corregirán errores por más que se reciban reportes de los mismos.
1939
-
1940
- [ Ruby 1.9.2 ]
1941
- 1.9.2 es soportado y recomendado. Tené en cuenta que Radius y Markaby no son
1942
- compatibles con 1.9 actualmente. Además, no usés 1.9.2p0, porque se producen
1943
- fallos de segmentación cuando se ejecuta Sinatra. El soporte se mantendrá al
1944
- menos hasta que se libere la versión 1.9.4/2.0 de Ruby. El soporte para la
1945
- última versión de la serie 1.9 se mantendrá mientras lo haga el core team de
1946
- Ruby.
1947
-
1948
- [ Ruby 1.9.3 ]
1949
- 1.9.3 es soportado completamente. De todas maneras, recomendamos esperar a
1950
- que se liberen niveles de parche superiores (el actual es p0) antes de usarlo
1951
- en producción. Es importante notar que el cambio desde una versión anterior a
1952
- 1.9.3 va a invalidar todas las sesiones.
1953
-
1954
- [ Rubinius ]
1955
- Rubinius es soportado oficialmente (Rubinius >= 1.2.4). Todo funciona
1956
- correctamente, incluyendo los lenguajes de plantillas. La próxima versión,
1957
- 2.0, también es soportada.
1958
-
1959
- [ JRuby ]
1960
- JRuby es soportado oficialmente (JRuby >= 1.6.5). No se conocen problemas
1961
- con librerías de plantillas de terceras partes. Sin embargo, si elegís usar
1962
- JRuby, deberías examinar sus Rack handlers porque el servidor web Thin no es
1963
- soportado completamente. El soporte de JRuby para extensiones C se encuentra
1964
- en una etapa experimental, sin embargo, de momento solamente RDiscount,
1965
- Redcarpet y RedCloth se ven afectadas.
1966
-
1967
- Siempre le prestamos atención a las nuevas versiones de Ruby.
1968
-
1969
- Las siguientes implementaciones de Ruby no se encuentran soportadas
1970
- oficialmente. De cualquier manera, pueden ejecutar Sinatra:
1971
-
1972
- * Versiones anteriores de JRuby y Rubinius
1973
- * Ruby Enterprise Edition
1974
- * MacRuby, Maglev e IronRuby
1975
- * Ruby 1.9.0 y 1.9.1 (pero no te recomendamos que los usés)
1976
-
1977
- No estar soportada oficialmente, significa que si las cosas solamente se rompen
1978
- ahí y no en una plataforma soportada, asumimos que no es nuestro problema sino
1979
- el suyo.
1980
-
1981
- Nuestro servidor CI también se ejecuta sobre ruby-head (que será la próxima
1982
- versión 2.0.0) y la rama 1.9.4. Como están en movimiento constante, no podemos
1983
- garantizar nada. De todas formas, podés contar con que tanto 1.9.4-p0 como
1984
- 2.0.0-p0 sea soportadas.
1985
-
1986
- Sinatra debería funcionar en cualquier sistema operativo soportado por la
1987
- implementación de Ruby elegida.
1988
-
1989
- En este momento, no vas a poder ejecutar Sinatra en Cardinal, SmallRuby,
1990
- BlueRuby o cualquier versión de Ruby anterior a 1.8.7.
1991
-
1992
- == A la Vanguardia
1993
-
1994
- Si querés usar el código de Sinatra más reciente, sentite libre de ejecutar
1995
- tu aplicación sobre la rama master, en general es bastante estable.
1996
-
1997
- También liberamos prereleases de vez en cuando, así, podés hacer
1998
-
1999
- gem install sinatra --pre
2000
-
2001
- Para obtener algunas de las últimas características.
2002
-
2003
- === Con Bundler
2004
-
2005
- Esta es la manera recomendada para ejecutar tu aplicación sobre la última
2006
- versión de Sinatra usando {Bundler}[http://gembundler.com/].
2007
-
2008
- Primero, instalá bundler si no lo hiciste todavía:
2009
-
2010
- gem install bundler
2011
-
2012
- Después, en el directorio de tu proyecto, creá un archivo +Gemfile+:
2013
-
2014
- source :rubygems
2015
- gem 'sinatra', :git => "git://github.com/sinatra/sinatra.git"
2016
-
2017
- # otras dependencias
2018
- gem 'haml' # por ejemplo, si usás haml
2019
- gem 'activerecord', '~> 3.0' # quizás también necesités ActiveRecord 3.x
2020
-
2021
- Tené en cuenta que tenés que listar todas las dependencias directas de tu
2022
- aplicación. No es necesario listar las dependencias de Sinatra (Rack y Tilt)
2023
- porque Bundler las agrega directamente.
2024
-
2025
- Ahora podés arrancar tu aplicación así:
2026
-
2027
- bundle exec ruby miapp.rb
2028
-
2029
- === Con Git
2030
-
2031
- Cloná el repositorio localmente y ejecutá tu aplicación, asegurándote que el
2032
- directorio <tt>sinatra/lib</tt> esté en el <tt>$LOAD_PATH</tt>:
2033
-
2034
- cd miapp
2035
- git clone git://github.com/sinatra/sinatra.git
2036
- ruby -Isinatra/lib miapp.rb
2037
-
2038
- Para actualizar el código fuente de Sinatra en el futuro:
2039
-
2040
- cd miapp/sinatra
2041
- git pull
2042
-
2043
- === Instalación Global
2044
-
2045
- Podés construir la gem vos mismo:
2046
-
2047
- git clone git://github.com/sinatra/sinatra.git
2048
- cd sinatra
2049
- rake sinatra.gemspec
2050
- rake install
2051
-
2052
- Si instalás tus gems como root, el último paso debería ser
2053
-
2054
- sudo rake install
2055
-
2056
- == Versionado
2057
-
2058
- Sinatra utiliza el {Versionado Semántico}[http://semver.org/],
2059
- siguiendo las especificaciones SemVer y SemVerTag.
2060
-
2061
- == Lecturas Recomendadas
2062
-
2063
- * {Sito web del proyecto}[http://www.sinatrarb.com/] - Documentación
2064
- adicional, noticias, y enlaces a otros recursos.
2065
- * {Contribuyendo}[http://www.sinatrarb.com/contributing] - ¿Encontraste un
2066
- error?. ¿Necesitás ayuda?. ¿Tenés un parche?.
2067
- * {Seguimiento de problemas}[http://github.com/sinatra/sinatra/issues]
2068
- * {Twitter}[http://twitter.com/sinatra]
2069
- * {Lista de Correo}[http://groups.google.com/group/sinatrarb/topics]
2070
- * {IRC: #sinatra}[irc://chat.freenode.net/#sinatra] en http://freenode.net
2071
- * {Sinatra Book}[http://sinatra-book.gittr.com] Tutorial (en inglés).
2072
- * {Sinatra Recipes}[http://recipes.sinatrarb.com/] Recetas contribuidas
2073
- por la comunidad (en inglés).
2074
- * Documentación de la API para la
2075
- {última versión liberada}[http://rubydoc.info/gems/sinatra] o para la
2076
- {rama de desarrollo actual}[http://rubydoc.info/github/sinatra/sinatra]
2077
- en http://rubydoc.info/
2078
- * {Servidor de IC}[http://ci.rkh.im/view/Sinatra/]