我需要在Ruby中为变量创建一个签名字符串,其中变量可以是数字,字符串,散列或数组.散列值和数组元素也可以是这些类型中的任何一种.
此字符串将用于比较数据库中的值(在本例中为Mongo).
我的第一个想法是创建一个JSON编码值的MD5哈希,如下所示:( body是上面提到的变量)
def createsig(body)
Digest::MD5.hexdigest(JSON.generate(body))
end
Run Code Online (Sandbox Code Playgroud)
这几乎可以工作,但JSON.generate不会每次以相同的顺序对哈希的键进行编码,因此createsig({:a=>'a',:b=>'b'})并不总是相等createsig({:b=>'b',:a=>'a'}).
创建符合此需求的签名字符串的最佳方法是什么?
注意:对于我们之间的细节,我知道你不能JSON.generate()是数字或字符串.在这些情况下,我只是MD5.hexdigest()直接打电话.
Firefox有Sandbox和evalInSandbox().Chrome在其内容脚本中具有沙盒执行(它们称之为独立执行).我在IE浏览器扩展中寻找相同的东西.
我可以加载一个javascript文件,然后调用evalScript(),但代码在与页面上存在的javascript相同的环境中执行.我需要一种方法来运行我的库(包括并基于jQuery)在沙盒/隔离环境中,但仍然允许它修改DOM,就好像它在页面上运行一样.
Jint看起来很有前途,但目前无法评估jQuery.(他们可以解析它.)
我怎样才能做到这一点?
我希望能够在一个电话中使用多个Kynetx应用程序(规则集).假设第一个应用程序是电话菜单,第二个应用程序提供菜单选项的功能.如何从一个重定向到另一个?