在Ruby中规范化XML

我正在使用Ruby / Rails开发SAML网关,并且我正在尝试编写一些代码来validation传入SAML响应的xml数字签名与原始服务的x509证书。 我的问题:签名依赖于经过哈希处理然后签名的XML的规范化版本,我无法找到一个ruby lib / gem,它将根据规范规范化XML。 我在rubyforge上发现了一个超级老gem,但是如果像nokogiri这样的function支持这种function我会更感兴趣(来自nokogiri docs,它没有)。 我已经广泛搜索过,但我想在这里问一下是否有人有任何好的见解,然后我去尝试编写我自己的版本或重做现有的c14n-r库。

使用自定义随机数生成器与Ruby Array #shuffle / sample

使用Array #shuffle时,Ruby允许使用自定义随机函数,甚至提供Random类来使用它。 以下示例使用种子值为48的类。 array = [1,2,3,4,5,6,7,8,9,10] array.shuffle(random: Random.new(48)) # => [8,6,3,7,10,9,5,2,4,1] 我写了一个小的单比特测试,看看一个值在洗牌数组中出现的次数。 deck = (1..10).to_a counts = Hash.new(0) rng = Random.new 50000.times do counts[deck.shuffle(random: rng).first] += 1 end 1.upto(10) do |card| puts “#{card}:\t#{counts[card]}” end 输出类似于以下内容: 1: 4942 2: 5100 3: 4938 4: 4960 5: 5024 6: 4992 7: 5184 8: 4930 9: 4916 10: 5014 […]

运行“捆绑安装”失败并要求我运行“捆绑安装”

事实上,当从我从git repo克隆的现有rails应用程序内部运行时,所有与gem相关的命令都会产生相同的错误消息。 $ bundle install Could not find tzinfo-0.3.27 in any of the sources Run `bundle install` to install missing gems. $ gem list Could not find tzinfo-0.3.27 in any of the sources Run `bundle install` to install missing gems. $ bundle update Could not find tzinfo-0.3.27 in any of the sources Run `bundle install` […]

由于“wkhtmltopdf”,PDFKIT显然无法正常工作

我在从HTML页面生成PDF时遇到问题。 我正在使用PDFkit。 在安装它的过程中,我注意到我需要wkhtmltopdf。 所以我也安装了它。 我做了PDFkit的文档所说的所有内容..现在我在尝试加载PDF时遇到此错误。 这是错误: command failed: “/usr/local/bin/wkhtmltopdf” “–margin-right” “0.75in” “–page-size” “Letter” “–margin-top” “0.75in” “–margin-bottom” “0.75in” “–encoding” “UTF-8” “–margin-left” “0.75in” “–quiet” “-” “-” 知道这可能是什么吗? 谢谢

如何通过capistrano 3运行自定义rake任务?

哪种方式,我可以通过远程服务器上的capistrano运行rake命令。 例如,我有一些lib/task/reparse.rake和一些方法 desc “it’s take csv file, makes some changes and fill db with this info” task :example1 => :environment do require ‘csv’ rows_to_insert = [] # some actions # … end 在本地服务器上一切都很好 – 我只是运行rake reparse:example1并且它正常工作(正确填充db)。 所以问题是 – 如何在部署后在真实主机上运行此命令? 我使用rails 4.1 + capistrano 3。 来自网站的PS示例对我不起作用如何从Capistrano运行rake任务? 如果我尝试cap production rake:invoke task=reparse:land它失败了: cap aborted! Don’t know how to […]

如何使用Nokogiri导航DOM

我正在尝试填充变量parent_element_h1和parent_element_h2 。 谁能帮助我使用Nokogiri将我需要的信息输入这些变量? require ‘rubygems’ require ‘nokogiri’ value = Nokogiri::HTML.parse(<<-HTML_END) " A Foo B C Bar D E F ” HTML_END parent = value.css(‘body’).first # start_here is given: A Nokogiri::XML::Element of the with the id ‘X2 start_here = parent.at(‘div.block#X2’) # this should be a Nokogiri::XML::Element of the nearest, previous h1. # in this example it’s […]

如何在rails 4中渲染部分来自.js.erb的文件?

在我的rails应用程序中,我在/ assets / javascript文件夹中有dragdrop.js.erb。 其中我有一个ajax块,它应该在div中使用on click动作呈现部分。 我尝试过很多东西,但是我无法让它发挥作用。 任何帮助,将不胜感激。 这是代码: $.ajax({ type: “GET”, url: “”, success: function(resp){ $(“#property”).load(” ‘recipes/package_form’) %>”) }

如何访问Ruby中的符号表?

有没有办法访问Ruby中符号表中的所有内容? 我希望能够序列化或以其他方式保存程序运行的当前状态。 为此,我似乎需要能够遍历范围内的所有变量。

如何在ruby中制作动态多维数组?

我有一个关于多维数组的初学ruby问题。 我想按年份和月份对条目进行排序。 所以我想创建一个包含年 – >月 – >月份条目的多维数组 所以数组就像: 2009 -> 08 -> Entry 1 -> Entry 2 09 -> Entry 3 2007 -> 10 -> Entry 5 我现在有: @years = [] @entries.each do |entry| timeobj = Time.parse(entry.created_at.to_s) year = timeobj.strftime(“%Y”).to_i month = timeobj.strftime(“%m”).to_i tmparr = [] tmparr <entry} @years.push(year) @years << tmparr end 但是当我尝试遍历岁月数组时,我得到:“未定义的方法`每个’为2009:Fixnum” 也试过: […]

Erlang中的Apple推送通知(或Ruby中的改进?)

我目前在Ruby服务器上运行Apple推送通知。 我想让一个人去Erlang,因为我想用一个主管来监视它。 有没有人有他们可以帮助我的代码? 这是我的Ruby代码。 我不喜欢这个当前实现的一件事是它似乎没有保持连接 – 它每天断开连接2-3次,而且在我重新连接之后,第一次推送似乎不会通过: context = OpenSSL::SSL::SSLContext.new context.cert = OpenSSL::X509::Certificate.new(File.read(cert)) context.key = OpenSSL::PKey::RSA.new(File.read(cert)) def connect_sockets(server, context) sock = TCPSocket.new(server, 2195) ssl = OpenSSL::SSL::SSLSocket.new(sock,context) ssl.connect return sock, ssl end sock, ssl = connect_sockets(server, context) # this is called to initially connect and also reconnect whenever disconnected. 如果Erlang Push不可行,那么我不介意坚持我的Ruby,只要我可以保持我的连接活着,并且可能通过Erlang监督它。 有谁知道这是否可能?