草庐IT

sinatra-assetpack

全部标签

ruby - Sinatra 和 environment.rb

我正在开发一个基于Sinatra的应用程序,并且看到一些应用程序在应用程序的根目录中使用environment.rb文件,代码放置在配置block中。请参阅示例:https://github.com/zapnap/sinatra-template/blob/master/environment.rb;和https://github.com/andrewkolesnikov/sinatra-pro-template/blob/master/environment.rb.我尝试在Google上搜索但找不到关于environment.rb文件如何与Sinatra一起工作以及为什么要将某些内容

ruby - gem_original_require' : no such file to load -- sinatra (LoadError)

我正在我的本地机器上工作。如果我使用Sinatra应用程序,将此行添加到myapp.rb没有问题require'sinatra'当我转到控制台并运行时irb-rmyapp.rb我收到这个错误gem_original_require':nosuchfiletoload--sinatra(LoadError)我知道我的IRB或Ruby路径看起来不正确。我正在使用(简单的Ruby版本管理:rbenv)来管理Ruby环境,不太确定这是否会影响事情?我运行了gemenv并得到了这个。RubyGemsEnvironment:-RUBYGEMSVERSION:1.8.10-RUBYVERSION:1

ruby - 为 Sinatra 生成 JSON

我在将生成的对象的JSON表示法传递到我的Sinatra应用程序时遇到了问题。我的问题是双重的:我有2个使用Sequelgem映射到数据库的类。当他们生成JSON时,它就可以并正确实现。我有一个名为registration的自定义类,它将其中一个类映射到一个附加字段。目标是从中生成JSON并将该JSON传递给使用Cucumber的应用程序(测试目的)负责处理请求的应用程序代码定义了以下函数:post'/users'dobeginhash=JSON.parse(self.request.body.read)registration=Registration.new.from_json(@

ruby - Sinatra 的命令行参数

我有一个正在创建的Sinatra程序,我希望能够在启动该应用程序时将命令行参数传递给它。我遇到的问题是我不确定该怎么做。我试过Trollop并查看了OptParser。Trollop似乎不适用于Sinatra,因为OptParser似乎是Sinatra的“默认”解析器。这是真的?如果是这样,我如何自定义启动我的应用程序时接受的参数类型? 最佳答案 rubyapp.rbhello#app.rbrequire'sinatra'get'/'doARGV[0]end现在,当我访问localhost:4567(Thin托管我的sinatra应

ruby - 如何通过 docker-compose run 使用 Docker 访问 Sinatra 端口

我不确定如何正确地将Sinatra端口4567从Docker公开回主机。在本地运行应用程序没有问题。以下存储库显示了https://gitlab.com/davidhooey/sinatra-docker问题的案例通过搜索,我注意到以下问题RunningRubySinatrainsideaDockercontainernotabletoconnect(viaMachost)orfindcommands(indifferentscenario)?,其中--host0.0.0.0被传递到rackup命令中。但是,我通过使用Site.run!以编程方式启动网站。文件树.├──Dockerfi

ruby - 如何将 sinatra 作为 websocket 服务器运行?

我尝试过使用eventmachine,但我所拥有的只是一个在一侧运行sinatra的应用程序,在另一侧运行一个事件机器服务器。我不知道如何将sinatra应用程序作为websocket运行。例如,我想将其作为websocket提供:get'/'do#pullinfofromDBanddisplayend感谢任何帮助。谢谢! 最佳答案 你检查“sinatra-websocket”了吗?来自维护者:[...]Itlet'syourunthewebsocketserverinthesameprocessandonthesameportas

ruby - 您可以指定用于 Sinatra 重定向的 HTTP 方法吗?

我有这样的东西:post"/login"doendget"/login"doendpost"/register"do...redirect"/login"#Iwouldliketoredirecttoget"/login"insteadofpost"login"end我可以告诉sinatra我想使用get,而不是让它隐式选择“post”吗? 最佳答案 大多数浏览器将使用302(默认)重定向重置为GET。如果您遇到的浏览器实际上在做正确的事情并且没有更改请求方法,您可以使用303强制它进行更改。redirect'/login',303

ruby-on-rails - Rails application.html.erb 的 Sinatra 等价物是什么?

application.html.erb是一个应用于Rails中所有View的文件。在某种程度上,它是主文件,所有子文件的样式/结构都在其后。我如何将它与Sinatra一起使用? 最佳答案 你想要的就叫“布局”;只需放置一个名为layout.haml的文件(或layout.erb,或使用您选择的模板语言)在您的View目录中,默认情况下其他View的内容将包含在其中。把yield的输出在各个View的内容应该去的布局中。例如:哈姆:=yieldErb:如果您希望路由的结果使用不同的布局,您可以像这样指定替代布局View的名称:get

ruby - 如果 'require sinatra' 在另一个文件中,为什么 sinatra 不会加载?

我有工作正常的web.rb文件。我想将所有require文件移动到一个requires.rb文件中,并从我所有的.rb文件中调用此文件,并使用基于调用者文件名的条件来要求所需的内容。我在'requirepp'、'ruby-growl'上对其进行了测试,并且运行良好。但是如果requiresinatra在另一个文件中,sinatra将不会加载。我可以在不同的文件中包含requiresinatra吗?或者更好的是,我可以在不同的文件中要求吗?使用ruby1.8.7(2010-08-16补丁级别302)[i386-mingw32]西纳特拉(1.3.2)gem1.3.7通过rubyscript

ruby - 如何使用 RSpec 在 gem 中测试 Sinatra 应用程序?

我正在编写一个gem,其中包含开发人员可以扩展的Sinatra应用程序。例如:#gemcode:require'sinatra'moduleMygemclassApplication我也开始使用RSpec。我应该如何配置RSpec来测试此功能? 最佳答案 上面的引用资料都是有用的,但主要是特定于rails的。我发现很难找到一个简单的方法来对模块化Sinatra应用程序进行基本测试,所以我希望这能为其他人解答这个问题。这是一个完全简单的、尽可能小的测试。这可能不是唯一的方法,但它适用于模块化应用程序:require'sinatra'c