将2元素数组的数组转换为散列,其中重复键附加其他值

例如 给定一个数组: array = [[:a,:b],[:a,:c],[:c,:b]] 返回以下哈希: hash = { :a => [:b,:c] , :c => [:b] } hash = Hash[array]覆盖以前的关联,产生: hash = { :a => :c , :c => :b }

你可以在没有源的情况下分发Ruby on Rails应用程序吗?

我想知道是否可以在没有源代码的情况下分发用于生产的RoR应用程序? 我在SO上看过这篇文章 ,但我的情况有点不同。 这将是一个由具有一些线索的人管理的应用程序,所以我很酷,仍然需要在客户端设置Apache / Mongrel / MySQL。 我真正想要的是保护源。 编码似乎是分发PHP应用程序的一种流行方式(例如: Helpspot )。 我发现了这些潜在的解决方案: Zenobfuscate – 然而,并不支持所有类型的Ruby代码,所以这一点很重要 Ruby编码器 – 可能是最好的选择,因为他们的PHP编码器看起来没问题(但我还没有尝试过)但它还没有。 我之前使用过IONcube for PHP并且运行良好,但IONcube似乎并不感兴趣 。 弹弓 – 它在其他SOpost中被提及,但它解决了我的一个不同的问题,源仍然是可见的。 RubyScript2Exe – 来自doco,它不是生产就绪的,所以重要的是。 我听说可能使用JRuby并分发字节码可能是实现这一目的的一种方法,但我从未使用过JRuby所以我不确定涉及到什么。 任何人都可以提供任何想法和/或已知示例吗? 理想情况下,我也喜欢拥有某种自动构建方案。

HEROKU – 无法运行git push heroku master

我运行命令 heroku create –stack cedar git push heroku master 但它给了我一个错误: > Counting objects: 144, done. Delta compression using up to 2 threads. > Compressing objects: 100% (128/128), done. Writing objects: 100% > (144/144), 50.16 KiB, done. Total 144 (delta 23), reused 0 (delta 0) > > —–> Heroku receiving push > —–> Ruby/Rails app detected […]

如何在twitter中实现像url一样的简短url?

如果有一个长url,我想生成一个像twitter中那样的简短url,有没有办法在ruby中实现? 先感谢您。

BUG Bus Error ruby​​ 1.8.7

我在使用Xcode 4.2 GM(新MacBook)在Lion 10.7.1上使用RVM编译Ruby 1.8.7后出现错误。 它编译得很好但是当我尝试安装任何gem我得到以下内容: gem install bundler /Users/me/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/timeout.rb:60: [BUG] Bus Error ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin11.1.0] Abort trap: 6 更新 :最后我希望安装Xcode 4.2,安装了Ruby 1.8.7,1.9.x的RVM,并且一切正常。

在Ruby中重新实现ASP.NET成员资格和用户密码哈希

我有一个庞大的用户数据库(~200,000),我正在从ASP.NET应用程序转移到Ruby on Rails应用程序。 我真的不想让每个用户重置他们的密码,所以我试图在Ruby中重新实现C#密码散列函数。 旧function是这样的: public string EncodePassword(string pass, string saltBase64) { byte[] bytes = Encoding.Unicode.GetBytes(pass); byte[] src = Convert.FromBase64String(saltBase64); byte[] dst = new byte[src.Length + bytes.Length]; Buffer.BlockCopy(src, 0, dst, 0, src.Length); Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length); HashAlgorithm algorithm = HashAlgorithm.Create(“SHA1”); byte[] inArray = algorithm.ComputeHash(dst); return Convert.ToBase64String(inArray); } 示例哈希密码和salt是(并且使用的密码是“password”): 哈希密码:“weEWx4rhyPtd3kec7usysxf7kpk =”盐:“1ptFxHq7ALe7yXIQDdzQ9Q ==”密码:“密码” 现在使用以下Ruby代码: require “base64” […]

访问嵌套哈希时如何避免nil元素的NoMethodError?

如果我尝试访问不存在的哈希元素,我会得到NoMethodError: undefined method ‘[]’ for nil:NilClass 。 但是,我无法预测哪些元素会出现。 @param_info = {} @param_info[“drug”][“name”] # => NoMethodError: undefined method `[]’ for nil:NilClass 当元素意外nil时,如何避免引发此错误?

Ruby:mysql2-Gem无法正常工作(Mac OS X Snow Leopard,Ruby 1.9.2)

我刚刚编译了ruby并安装了rubygems,mysql2和rails,它运行得很好。 但每当我尝试启动rails服务器时,我都会收到以下错误消息: /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in`requiret’:dlopen(/ usr / local / ruby​​ / lib / ruby /gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle,9):未加载库:libmysqlclient.18.dylib(LoadError)引用自:/ usr / local / ruby​​ / lib / ruby / gems / 1.9.1 / gems / mysql2-0.2.6 / lib / mysql2 / mysql2.bundle原因:找不到图像 – /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2- 0.2 / lib / mysql2 / mysql2.bundle来自/usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6/lib/mysql2.rb:7:in`’from / usr / local / ruby​​ / lib / ruby​​ […]

厨师图书馆或定义?

作为Chef的新手,我需要从现有的配方中创建库或定义。 配方使用bash资源,ruby块资源(通过延迟计时通知另一个ruby块资源),再次通知ruby块等的模板资源。 最好的办法是什么? 图书馆或定义? 我已经读过,如果我使用定义,我将无法通知定义中的资源,这是否意味着我可以在不同的定义文件中通知资源? 我还读到,在库中你不能直接使用资源。 如果是这样,我如何在我的库中使用资源?

什么是一些优秀的基于Ruby的Web爬虫?

我正在寻找自己的写作,但我想知道是否有任何用Ruby编写的好的网络爬虫。 如果没有一个完整的网络爬虫,任何可能有助于构建网络爬虫的gem都会很有用。 我知道这个问题的一部分在几个地方都有提及,但适用于构建网络爬虫的gem列表也是一个很好的资源。