使用ruby调整动画GIF图像的大小?

我正在尝试将GIF图像调整为不同大小。 我在ruby中使用RMagick库。 但是对于一些gif图像来说,即使我缩小GIF,文件大小也会增加。 我正在以相同的宽高比调整图像图像的大小。 这是我的代码。 require ‘rmagick’ path = “/path/to/file/” s_image = “image.gif” # image is 320*320 t_image = “t.gif” file_name = path+s_image file = File.new(file_name) list = Magick::ImageList.new.from_blob file.read list = list.coalesce.remap list.each do |x| x.resize_to_fill!(256,256) end File.open(“#{path+t_image}”, ‘wb’) { |f| f.write list.to_blob } 我错过了什么?

使用rvm离线安装Ruby

我需要使用rvm在离线机器上安装Ruby-1.9.2。 我尝试将ruby-1.9.2-p180.tar.gz复制到./rvm/archives并运行rvm install ruby​​-1.9.2。 但是rvm仍然试图从ftp.ruby-lang.org下载Ruby。 任何意见是极大的赞赏…

为什么Fortran中的unit testing框架依赖于Ruby而不是Fortran本身?

总结: FRUIT只能用于Fortran编译器,尽管使用Ruby可以增强其function。 请查看以下作者Andrew Chen的答案。 =========================================== 似乎Fortran的可用unit testing框架(XUnit)包括: フニツ http://nasarb.rubyforge.org/ 水果 http://sourceforge.net/projects/fortranxunit/ flibs http://flibs.sourceforge.net/ ObjexxFTK(商业) http://www.objexx.com/ObjexxFTK.html 在他们的网页,funit,fruit和flibs中提到他们依靠Ruby来运行。 我不知道ObjexxFTK。 在我看来,Java,C#和Delphi等中的XUnit框架只依赖于相应的语言本身。 那为什么Fortran框架选择依赖Ruby而不是Fortran呢?

使用自签名证书

我只是试图了解SSL。 我在localhost上设置了一个Jetty服务器,并使用Keytool生成了我自己的证书。 现在,当我去https:// localhost:8443 /我得到了不能相信这个证书错误。 我用 keytool -export -alias pongus -keystore keystore -file certfile.cer 创建我认为是客户端需要对服务器进行身份validation的证书。 (这是我可能非常错的地方!) 我有以下ruby代码: require ‘net/https’ require ‘openssl’ require ‘open-uri’ puts ‘yay’ if File.exists?(‘certfile.cer’) uri = URI.parse(“https://localhost:8443/”) http_session = Net::HTTP.new(uri.host, uri.port) http_session.use_ssl = true http_session.verify_mode = OpenSSL::SSL::VERIFY_PEER http_session.ca_file = ‘certfile.cer’ res = http_session.start do |http| # do some requests here http.get(‘/’) end […]

与heroku一起使用的统计引擎

我有一个heroku rails应用程序,需要处理一些严重的数字,我需要使用像R这样的统计库(更糟糕的是更糟糕的MatLab)。 我正在寻找这些问题的答案: 是否有任何function齐全的统计软件包GEM不需要二进制文件? 是否有可能将R二进制文件作为heroku堆栈的一部分? 是否有任何统计云服务(我看到的唯一一个是Cloudnumbers – 但是在封闭的测试版中)

获取当前时间的unit testing代码

为当前时间的代码编写unit testing的最佳方法是什么? 例如,某些对象可能仅在工作日创建,其他对象在检查执行某些操作的权限时会考虑当前时间等。 我想我应该嘲笑Date.today和Time.now。 这是正确的方法吗? 更新:两种解决方案(a)Time.is和(b)Time.stubs(:now).returns(t)工作。 (a)是非常好的方法,但(b)解决方案将与其他测试代码更加一致。 在这个问题上 ,作者要求提供一般解决方案。 对于Ruby,在我的选项中,上述两个解决方案更简单 ,因此比提取获取当前日期/时间的代码更好。 顺便说一下,我建议使用慢性来获得所需的时间,例如 require ‘Chronic’ mon = Chronic.parse(“next week monday”) Time.stubs(:now).returns(mon)

hpricot与firebug的XPath

我正在尝试使用hpricot从基于表的网站中提取一些信息。 我用FireBug获得了XPath。 /html/body/div/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table[3]/tbody/tr 这不起作用……显然,FireBug的XPath是呈现HTML的路径,而不是网站的实际HTML。 我读到删除tbody可能会解决问题。 我试着用: /html/body/div/table/tr/td/table/tr[2]/td/table/tr/td[2]/table/tr[3]/td/table[3]/tr 并且仍然无法工作…我做了一些研究,有些人报告他们让他们的XPath删除数字,所以我试试这个: /html/body/div/table/tr/td/table/tr/td/table/tr/td/table/tr/td/table/tr 还是没有运气…… 所以我决定一步一步这样做: (doc/”html/body/div/table/tr”).each do |aaa | (aaa/”td”).each do | bbb| pp bbb (bbb/”table/tr”).each do | ccc| pp ccc end end end 我在bbb中找到了我需要的信息,但在ccc中找不到。 我做错了什么,或者有更好的工具来废弃使用长/复杂XPath的HTML。

将哈希转换为对象

我试图将哈希和嵌套哈希转换为对象。 到目前为止,第一个哈希对象由此代码成功转换: class Hashit def initialize(hash) hash.each do |k,v| self.instance_variable_set(“@#{k}”, v) self.class.send(:define_method, k, proc{self.instance_variable_get(“@#{k}”)}) self.class.send(:define_method, “#{k}=”, proc{|v| self.instance_variable_set(“@#{k}”, v)}) end end end 但问题是,我还想转换嵌套的哈希对象。 但无法成功。 h = Hashit.new({a: ‘123r’, b: {c: ‘sdvs’}}) => #”sdvs”}> 在输出中看到@b={:c=>”sdvs”}这部分。 我也想将它转换为对象。 有可能,如果是,那么如何?

如何(大规模)减少Rails应用程序中的SQL查询数量?

在我的Rails应用程序中,我的users可以拥有许多invoices ,而这些invoices又可以payments很多payments 。 现在,在dashboard视图中,我想总结user收到的所有payments ,按年,季度或月份订购。 payments还细分为总额 , 净额和税额 。 user.rb : class User :items).all payments_with_invoice.select { |x| range.cover? x.date }.sum(&:”#{kind}_amount”) end end invoice.rb : class Invoice < ActiveRecord::Base belongs_to :user has_many :items has_many :payments def total items.sum(&:total) end def subtotal items.sum(&:subtotal) end def total_tax items.sum(&:total_tax) end end payment.rb : class Payment < ActiveRecord::Base belongs_to :user […]

覆盖Ruby中的实例变量数组的运算符

抱歉这个糟糕的头衔,我真的不知道怎么称呼它。 我在Ruby中有这样的东西: class Test def initialize @my_array = [] end attr_accessor :my_array end test = Test.new test.my_array << "Hello, World!" 对于@my_array实例变量,我想覆盖<<运算符,以便我可以先处理插入到它的任何内容。 我已经尝试过@my_array.<<(value)作为类中的一个方法,但它没有用。