Tag: sinatra

从Sinatra / Rack应用程序流式传输数据

我试图从Ruby(1.9.1p378)Sinatra(1.0)Rack(1.2.1)应用程序流文本数据(XML / JSON)。 建议的解决方案(例如, 有没有办法将html刷新到Sinatra中的线路 )似乎不起作用 – 当我产生某些无限流的元素时(例如来自%w(foo bar).cycle ), %w(foo bar).cycle 。 我试过webrick和thin作为服务器。 有关完成此任务的任何建议吗? 我应该使用http://sinatra.rubyforge.org/api/classes/Sinatra/Streaming.html ,如果是这样,我将如何在我的应用程序中使用它?

Sinatra即时配置环境

我已成功编写了一个小的Sinatra应用程序,并已成功将其部署在heroku上。 但是我想在我的本地计算机上以开发模式运行该应用程序,并且我希望在将它推送到远程存储库后在heroku上具有生产模式。 目前我可以实现其中一个选项。 当我将config.ru更改为以下值时: require ‘rubygems’ require ‘sinatra’ require ‘sinatra/reloader’ require “./calc.rb” enable :logging set :environment, :development set :port, 4567 我可以通过ruby config.ru在本地(在端口4567上)运行它。 当我将config.ru更改为: require ‘rubygems’ require ‘sinatra’ require ‘sinatra/reloader’ require “./calc.rb” enable :logging set :environment, :production set :port, 4567 run Sinatra::Application 我能够让它在Heroku上运行(在端口80上)。 但我不能在开发和生产中使用相同的配置。 我希望有类似的东西: ruby config.ru dev for development和ruby config.ru for production。 附加信息: 当我尝试在我的本地机器上运行生产config.ru时,我得到: $ […]

为什么要在框架Web服务器前使用http服务器?

Web应用程序框架(如sinatra(ruby),play(scala),lift(scala))生成一个侦听特定端口的Web服务器。 我知道有一些原因,如安全性,群集以及在某些情况下的性能,可能会导致我在我的Web应用程序前使用Apache Web服务器。 根据您的经验,您有任何理由吗?

为什么需要在Rails 3中重新加载代码?

我是一名前PHP开发人员,学习Rails和Sinatra。 在PHP中,每个页面请求都加载了所有必需的文件。 如果我更改了一些代码并刷新了页面,我可以确定代码是新鲜的。 在Rails 3中,Controller代码在每个请求中都是新鲜的。 但是,如果我修改/ lib文件夹中的任何代码,我需要重新启动服务器以使更改生效。 为什么会这样? 这与Ruby的设计方式有关吗? Rails是否进行了一些优化以避免在每个请求上重新加载代码? 谢谢! 编辑:我最感兴趣的是幕后发生的事情。 像Rails和Sinatra这样的框架是否为类做了一些特殊的缓存? 如果是这样,他们做了什么? Ruby中的默认行为是每次请求都重新加载所有代码吗? 为什么我们需要Shotgun for Sinatra等工具( http://sinatra-book.gittr.com/#automatic_code_reloading )?