标签: sinatra

自动记录DataMapper查询

我正在使用DataMapper在Sinatra上创建一个简单的应用程序.我希望看到为我的各种链式查找器创建DM的查询等.

我试过了:

DataMapper::Logger.new(STDOUT, :debug)
Run Code Online (Sandbox Code Playgroud)

在我的configure do ... end块中environment.rb,在应用程序启动时加载的文件中.

我也尝试过:

DataMapper::Logger.new('log/my-app.log', :debug)
Run Code Online (Sandbox Code Playgroud)

无论是通过浏览器还是通过irb需要我的应用程序的会话,都可以从应用程序中获取日志语句.我看到应用程序启动消息.

我正在使用rackup config.ru本地运行应用程序.

我错过了什么?

ruby datamapper sinatra

17
推荐指数
1
解决办法
5099
查看次数

你如何在Sinatra进行测试?

我不知道如何测试我的Sinatra应用程序.我跑吧

红宝石

这似乎不起作用.那里的所有文件只讨论如何编写文件的内容,而不是如何让它运行.

谢谢

ruby testing sinatra

17
推荐指数
2
解决办法
5184
查看次数

使用Sinatra上传文件

我正在尝试使用Sinatra上传文件.我在这里有代码,但是我收到错误"方法file_hash不存在"(请参阅​​/lib/mvc/helpers/helpers.rb).

这里发生了什么?我缺少一些依赖吗?

ruby file-upload paperclip sinatra

17
推荐指数
3
解决办法
2万
查看次数

Ruby功能开关/功能翻转器

我受到了FlickrDisqus如何使用功能开关的启发.他们都在博客上写了他们以及他们如何在他们的两个开发博客上工作.

我只是想知道是否有一个Ruby宝石我缺少或者是否有人知道在Ruby中这样做的方法?如果没有任何东西,我希望自己制作并在野外发布.但我只是想在这里问一下,因为我无法找到任何类似于Flickr和Disqus实现的东西.

ruby rubygems ruby-on-rails sinatra

17
推荐指数
1
解决办法
4221
查看次数

使用Ruby Sinatra的HTML5 Server-Sent事件

我是Ruby和Sinatra的新手,我正在尝试用它设置一个简单的HTML5 Server-Sent事件,下面的代码在Chrome开发人员版本中运行良好,但在Windows 7和OSX上的Non Developer Builds和Safari都失败了.

浏览器控制台中的错误消息是"无法加载资源:已取消"

 var source = new EventSource('pull');
        source.addEventListener('message', function(e) {
            console.log(e.data);

        }, false);

        source.addEventListener('open', function(e) {
            // Conn open
        }, false);

        source.addEventListener('error', function(e) {
            if (e.eventPhase == EventSource.CLOSED) {
                // Connection was closed.
            }
        }, false);
Run Code Online (Sandbox Code Playgroud)

以下Sinatra路线

get '/pull' do
   content_type 'text/event-stream'
   newevent   = false
   response = "data: "+newevent.inspect+" \n\n"
end
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用JSP和Tomcat的类似服务器端代码,它在所有浏览器上都能正常工作.

关于Sinatra,我需要了解什么?谢谢!

ruby html5 sinatra server-sent-events

17
推荐指数
1
解决办法
7616
查看次数

Ruby本地化:i18n,g18n,gettext,padrino ...... - 有什么区别?

对于Ruby来说有些新东西我正在探索现有的库来执行我通常在其他脚本语言中所做的事情,而且我对可能用于构建在Sinatra/Sequel(Rails之上)的东西的本地化库感到有点困惑/ AR根据我的口味有点过于自以为是.

现在,我通过这个wiki页面遇到了一对(i18n,r18n,GetText),显然在Padrino中使用了一个额外的库(基于来自Rails的i18n的东西?); 而且显然还有更多.

除了显而易见的(即GetText mo/po样式与yml文件)之外,我对这些选项如何不同感到困惑.除了说它们存在之外,维基在这方面并没有太多指出; 不是他们如何不同.

更令人困惑的是,基本上每一篇文档似乎都涵盖了其中的一篇(通常在RoR上下文中).而且,这些选项在仔细检查时看起来并不完全不相容 - 从某种意义上说,如果我理解这一点,他们可以在很大程度上理解彼此的文件.

这里的任何人都可以对这些库进行快速和简要的解释/概述,并概述它们之间的区别吗?关于性能的一些指示也是受欢迎的,如果你知道任何(除了来自fast_gettext文档的那些,考虑到我对这些选项之间的差异缺乏理解,这没什么意义).

ruby localization internationalization sinatra padrino

17
推荐指数
3
解决办法
4084
查看次数

使用机架安装的多个Sinatra应用程序

我有一个关于在Sinatra上使用机架安装的问题.我有两个经典风格的Sinatra应用程序.让我们调用app.rb中定义的一个App和api.rb中定义的另一个API.

我希望它能让api.rb处理所有以'/ api'开头的路由,而app.rb会处理所有其他请求,包括root('/').

如何使用机架安装进行设置?或者有更好的解决方案吗?

ruby sinatra

17
推荐指数
3
解决办法
1万
查看次数

关于在Sinatra上使用express.js而不是Ruby的想法?

我正在开发一个社交应用程序并考虑使用express.js/nodejs而不是我最初的选择Sinatra/Ruby.

我最担心Ruby中可用的开源项目,以帮助快速完成任务.第二个主要问题是express.js的稳定性/成熟性和完整性.

任何反馈,欢迎评论.

javascript ruby sinatra node.js express

17
推荐指数
2
解决办法
9157
查看次数

如何保护REST服务的"公共"部分免受垃圾邮件侵害?

我有一个相当完整的REST服务,将与iOS应用程序一起使用.它是使用Ruby/Sinatra构建的,但我认为这并不重要.

我正在使用基于SSL的HTTP基本身份验证来处理各种端点,而且这部分工作得非常好.

问题是:如何阻止垃圾邮件发送者等调用未通过HTTP基本身份验证保护的REST服务部分?

示例:用户注册

我们假设REST调用是(POST) .../register_account传递正文中的JSON对象.

出于显而易见的原因,此调用不能指望链接到用户帐户的用户名/密码.

想法是:

1)应用程序有自己的"用户名"/密码,有些调用会检查应用程序凭据.问题:植入设备等可以挖掘出这些凭据.

2)应用程序通过HTTP标头将秘密令牌传递给REST服务以进行这些调用.问题:与(1)相同

是否有任何常用的技术来阻止此类垃圾邮件呼叫?我想也许可以在混合中引入iPhone的设备ID,但还没有找到明确的方法.

谢谢

security authentication rest sinatra

17
推荐指数
2
解决办法
5619
查看次数

sinatra config.ru:配置块是什么?

我正在使用带有"经典"风格的Apache和Phusion-Passenger的Sinatra:

# config.ru
require 'sinatra'

configure do
    ....
end

require './app'

run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

我想定义一些东西.在配置块内部或外部定义它有什么区别?

# config.ru
require 'sinatra'

# A) Defining logger here
rack = File.new("logs/rack.log", "a+") 
use Rack::CommonLogger, rack

# B) Global variables here
LOGGER = Logger.new(...)

# C) Gem configuration here
DataMapper::Property::Boolean.allow_nil(false)

configure do
    # A) Or defining logger here?
    rack = File.new("logs/rack.log", "a+") 
    use Rack::CommonLogger, rack

    # B) Or global variables here?
    LOGGER = Logger.new(...)

    # C) Or gem configuration here?
    DataMapper::Property::Boolean.allow_nil(false)
    ....
end

require './app'

run …
Run Code Online (Sandbox Code Playgroud)

ruby configuration passenger sinatra

17
推荐指数
1
解决办法
8811
查看次数