torquebox-console 0.2.5 → 0.3.0

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