我正在嵌入式设备上使用Sinatra编写Web应用程序,需要能够通过Unix套接字向同一设备上运行的嵌入式代码发送和接收数据。我们很可能会使用JSON作为数据格式,但我还没有找到真正说明如何设置它并与Web应用程序通信的示例。我正在寻找一个将在套接字上监听的代码示例,以及一个显示如何将该数据导入Sinatra网页的示例。我已经看到了两者的点点滴滴,但没有任何东西将这些概念联系在一起。 最佳答案 我没有亲自做过,但我知道EventMachine支持使用unix套接字。事件机的优点是您可以让代码监听套接字而不会“干扰”sinatrawe
我有一个在Heroku上运行的Sinatra应用程序,它使用Dalli来启用memcached支持。有时,memcached服务器无法响应,我得到以下信息:Dalli::RingError-Noserveravailable处理这种情况的最佳方法是什么? 最佳答案 我选择通过显式忽略错误来处理此问题,因为如果缓存组件关闭,我的应用程序功能没有理由失败。您当然可以实现日志语句或任何您想要的,但我选择不执行任何操作。我创建了自己的缓存类,并使用它来将我的域代码与Dalli隔离开来。这是相关部分:defCache.get(key)Conf
现在我对Sinatra/Ruby/Apache还很陌生,但是继承了一个要部署的Sinatra应用程序。目前Apache设置为从文档根目录(httpdocs)运行,我需要在文件夹子目录下运行ruby应用程序,例如:/httpdocs/webapp我需要做什么才能在子目录下启动和运行它? 最佳答案 此链接可能会有帮助,它解释了如何使用Passenger(mod_rack)通过Apache部署Sinatra应用程序:DeployingaSinatraAppwithApacheandPhusionPassenger您特别感兴趣的部分是虚
有没有办法运行shotgun以允许运行ruby调试器语句?-d标志似乎只用于调试输出。 最佳答案 为了找到调试sinatra应用程序的最佳方法,我在github上创建了一个repo。最有用的部分是进入方法调试,如下所示。这是repo协议(protocol):https://github.com/hlee/sinatra_debugger_example我还确认此示例也支持shotgun。尝试如下cdsinatra_debugger_examplebundleshotgunconfig.ru然后访问:http://localhos
我有一个小型Sinatra应用程序,它在一台运行Nginx的服务器上同时具有暂存和生产环境。为了部署,我使用Capistrano和capistrano-ext轻松部署到不同的位置。staging环境总是以app.rb文件中指定的生产配置运行的问题。configure:stagingdo#stagingsettingsset:foo,"bar"#willneverbesettothisendconfigure:productiondo#prodsettingsset:foo,"rab"end我得出的结论是deploy.rb文件中的capistrano:environment变量不会以任何
TL;DR-我怎样才能使用类似improved_markdown:some_file的东西来进行自定义渲染,但仍像往常一样渲染布局?通常,要在Sinatra中呈现Markdown,您只需执行以下操作:markdown:some_file但我想添加执行“protected”语法高亮显示的功能,就像您在GithubREADME文件中所做的那样。```rubyclassFoo#etcend```我已经部分工作了。首先,我安装了Redcarpet并添加了一个使用Pygments.rb的自定义渲染类语法高亮:#createacustomrendererthatallowshighlighting
我使用async_sinatragem来实现异步路由,但我在某处看到一篇帖子说可以使用Sinatra的流式API而不是async_sinatra来实现此目的。是否可以使用流式处理来实现与下面相同的功能?require'em-hiredis'require'sinatra/async'classApp 最佳答案 回答我自己的问题:require'em-hiredis'require'sinatra/base'classApp 关于ruby-使用sinatra流API的异步请求,我们在Sta
#Gemfile:source'https://rubygems.org'ruby'1.9.3'gem'sinatra'gem'figaro'gem'octokit'#app.rbrequire'sinatra'require'json'require'cgi'require'octokit'require'figaro'classApplication推送时:----->检测到Ruby/Rails应用但是,如果我删除figarogem并重新推送它就可以正常工作。 最佳答案 你自己回答了:figaro依赖于Rails(参见gemsp
我正在为我的CRM使用Salesforce,但需要查询基于Heroku的Sinatra应用程序的数据(多条记录,因此没有Zapier)。Heroku提供了一项服务,可以定期将Salesforce对象复制到Postgres表中,从而从Salesforce中获取我的数据。我之前编写过一个Sinatra应用程序并将其托管在Heroku上,因此我对在本地设置开发数据库然后通过许多教程将其推送到生产环境的过程有点熟悉。但是,我遇到了一个问题,找不到任何信息,这些信息将允许我连接到现有的生产Postgres数据库,该数据库已经填充了我需要的数据,而无需创建和连接到本地开发数据库。Heroku为我提
我在这里使用示例helloworld应用程序:http://devcenter.heroku.com/articles/rack并收到错误消息“Heroku推送被拒绝,未检测到Rails或Rack应用程序”帮忙? 最佳答案 您缺少一个config.ru文件。你想要做的是创建一个看起来像这样的文件:(它应该在你的repo的根目录中)#config.rurequire'./your/app/file'runMyApp...其中MyApp是您的Sinatra应用程序的类。确保您的应用文件不会在需要时尝试启动(MyApp.run!)您的应用