运行gem specific_install时出错

我正在尝试运行’gem specific_install’( https://github.com/rdp/specific_install )从Github存储库安装另一个gem: sudo gem specific_install https://github.com/RemoteRepository/foo_gem.git 在提示我的Github用户名和密码后,我可以下载gem。 但是,我收到以下错误: ERROR: While executing gem … (NoMethodError) undefined method `build’ for Gem::Package:Module 显然,其他人根据对这个问题的specific_install相关答案的评论有相同的错误: 如何从GitHub源安装gem? 如何解决这个错误?

为什么Pik不会安装Ruby?

尝试从这里安装Ruby on Rails失败后: http : //railsinstaller.org/ ,我现在正尝试手动安装。 我以为我会首先安装Pik,然后从命令提示符下击“pik install ruby​​”。 看起来,没有什么比这简单。 但是,我收到消息“未找到Ruby”。 怎么会这样?

以任何方式捕获声明中常量的名称?

我上课了。 我们称之为SomeClass: class SomeClass end 我不想用常规方法定义这个类的实例,而是使用常量来定义它们: MyConstant = SomeClass.new 我希望能够捕获某些类设置的常量的名称,这与标准ruby类使用.class方法的方式非常相似。 MyConstant.name #-> “MyConstant” 我希望能够这样做以从某些类的所有实例呈现更好的错误消息,如下所示: class SomeClass def display_error_message “Error, some class #{self.name} has a problem” end end MyConstant.display_error_message #-> “Error, some class MyConstant has a problem” 有没有办法实现这个目标? 编辑 这是一个澄清我正在拍摄的例子。 (Enum是我正在创建的类的名称,它的作用类似于Swifts的Enum’类型。基本上它设置了一个预定义的选项列表(:pepperoni,:sausage,:mushroom)和raw_value(“Pepperoni” “,”“香肠”,“蘑菇”。)显然在这个例子中,用于将符号转换为UpperCamel案例字符串的哈希或简单算法可以工作,但实际上enum类会做更多,但是这个例子显示了它的要点。 class Pizza attr_reader :topping Toppings = Enum.new do option(:pepperoni).set(“Pepperoni”) option(:sausage).set(“Sausage”) option(:mushrooms).set(“Mushrooms”) end def set_topping(symbol) […]

如果空格不存在,请在某个字符前插入空格

如果有一个字符串,如: “_test_teste2 _test3” 如何在_之前添加一个空格,之前没有空格并且不在字符串的开头? 例如: “_test _teste2 _test3” 我试过这个: todo.desc = todo.desc.gsub /_/, ” _” 它工作,但每_后添加空格。 提前致谢。

合并数组,如果它们包含一个或多个相同的值

我有一个数组数组: a = [[1, 2, 3], [3, 4, 5], [6, 7, 8], [8, 9], [9, 10]] 我想合并包含一个或多个相同值的所有数组。 所以: a = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]] 我正在努力为此找到一个简洁的方法。 有任何想法吗?

活动记录方法与否

我似乎无法在任何地方找到答案。 我知道我能做到: Item.where(:color => ‘red’) 获取所有红色物品,但我如何获得颜色不是红色的所有物品?

如何使用Ruby Savon编写SOAP身份validation标头

我是第一次调用基于SOAP的API,我从文档中获得以下信息: 在您的客户端中,构建您的授权标头,如下所示: 1连接用户名和密码,例如:ExampleUsername:ExamplePassword 2在base 64中编码字符串,例如:RXhhbXBsZVVzZXJOYW1lOVV4YW1wbGVQYXNzd29yZA == 3在代码中,输入值为Basic的Authorization标头。 示例Web服务标头,带有编码的用户名和密码 POST https://api.five9.com/wsadmin/AdminWebService HTTP / 1.1 Accept-Encoding:gzip,deflate Content-Type:text / xml; charset = UTF-8 SOAPAction:“” 授权:基本RXhhbXBsZVVzZXJOYW1lOkV4YW1wbGVQYXNzd29yZA == 我正在使用Savongem来打电话。 在给定上述信息的情况下,如何使用Ruby 1.9.3和Savon gemvalidationAPI调用api_call ? 这就是我用来设置WSDL或client 。 client = Savon.client(wsdl: “https://api.five9.com/wsadmin/v2/AdminWebService?wsdl&user=luigi@apitest.com”)

我可以更快地制作这个Ruby代码和/或使用更少的内存吗?

我在Ruby中有一个String对象Array ,它们由下面的单词组成: animals = [“cat horse”, “dog”, “cat dog bird”, “dog sheep”, “chicken cow”] 我想将其转换为另一个String对象Array ,但每个元素只有一个动物,只有唯一的元素。 我找到了一种方法,如下所示: class Array def process() self.join(” “).split().uniq end end 但是,如果输入数组是巨大的,让我们说数百万个条目然后执行这将是非常糟糕的因为我将创建一个巨大的字符串,然后一个巨大的数组然后uniq必须处理该巨大的数组以删除重复的元素。 我考虑加快速度的一种方法是为每个单词创建一个带有条目的Hash ,这样我只会在第一遍中处理每个单词一次。 有没有更好的办法?

在ruby中创建哈希数组

我想在ruby中创建一个哈希数组: arr[0] “name”: abc “mobile_num” :9898989898 “email” :abc@xyz.com arr[1] “name”: xyz “mobile_num” :9698989898 “email” :abcd@xyz.com 我见过哈希和数组文档。 在我发现的所有内容中,我必须做类似的事情 c = {} c[“name”] = “abc” c[“mobile_num”] = 9898989898 c[“email”] = “abc@xyz.com” arr << c 循环中的上述语句中的迭代允许我填充arr 。 我实际上有一行像[“abc”,9898989898,”abc@xyz.com”] 。 有没有更好的方法来做到这一点?

在Yosemite 10.10.3上安装Nokogiri

我有: Mac OS X Yosemite 10.10.3 MacPorts(不是Brew) 系统中的Ruby 2(不是RVM) 我想安装Nokogiri并尝试: port install nokogiri 得到了: Building native extensions. This could take a while… ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20150323-30174-1mqhl4i.rb extconf.rb checking if the C compiler accepts … yes checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future… no Building nokogiri […]