Tag: ruby 1.9

无法在MacOSX 10.6上安装ruby 1.9.1

我似乎无法在我的Mac上安装Ruby。 这是我到目前为止采取的步骤: 从Ruby的网站下载软件包( http://www.ruby-lang.org/en/downloads/ ) 解压缩它运行{tar xzvf ruby​​-1.9.1-p376.tar.gz} 进入新的ruby文件夹,并使用{./configure}进行配置 这是错误发生的地方。 当我运行configure时,它给出了错误: /usr/local/include/fuse/fuse_common.h:32:2: error: #error Please add -D_FILE_OFFSET_BITS=64 to your compile flags! In file included from /usr/local/include/fuse/fuse.h:857, from :0: /usr/local/include/fuse/fuse_compat.h:69:24: error: sys/statfs.h: No such file or directory 因此,我无法制作包装或安装它。 我不知道出了什么问题。 任何帮助是极大的赞赏。 谢谢!

为什么ruby 1.9.2中的?a命令不返回ASCII码

当你做了?a在ruby 1.8.7中你曾经得到’a’的ASCII字符 在ruby 1.9.2中,此代码返回 > ?a > “a” 这有什么意义,1.9.2中的输出意味着什么

rails中的模型命名空间问题

我在Rails 3.1中遇到了名称空间问题。 我有一节课,我们称之为。 #/app/models/a.rb class a #some methods def self.method_from_a #does things end end 但是我还有另一个在不同命名空间中具有相同名称的类。 #/app/models/b/a.rb class b::a def method return a.method_from_a end end 当我调用b :: a.method但我得到: NameError: uninitialized constant b::a::a 我相信这是一个简单的解决方案,我只是错过了它。

来自`ObjectSpace._id2ref`的错误

ObjectSpace._id2ref返回的以下两种错误有什么区别? 0x… is recycled object (RangeError) 0x… is not id value (RangeError)

枚举#with_object与enum#each_with_object的不同之处是什么?

文件说: enum#each_with_object :- 使用任意对象obj迭代每个元素的给定块,并返回obj enum#with_object:- 使用任意对象obj迭代每个元素的给定块,并返回obj 但是当我在这两个结构上尝试下面的内容时,一个人给了我预期的输出,但其他人没有。 所以我怀疑这两种结构之间存在差异。 使用each_with_object %w(foo bar).each_with_object({}) { |str, hsh| hsh[str] = str.upcase } => {“foo”=>”FOO”, “bar”=>”BAR”} 在这里成功! 使用with_object %w(foo bar).with_object({}) { |str, hsh| hsh[str] = str.upcase } => NoMethodError: undefined method `with_object’ for [“foo”, “bar”]:Array from (irb):1 from C:/Ruby193/bin/irb:12:in `’ 失败了! 那么这两种方法有什么区别呢?

Active Directory LDAP将用户移动到不同的OU – Ruby

我在与Active Directory的集成方面遇到了麻烦。 我需要能够将用户从一个OU移动到另一个OU。 我正在使用net-ldap 0.5.0,它位于github master分支上,并在源代码中挖出来,发现你可以做到这一点 $ldap.rename( olddn: “cn=bradford ricechip,ou=agents,ou=ihs,ou=test environment,dc=ctatechs,dc=com”, newrdn: “cn=bradford ricechip”, new_superior: “ou=coach,ou=ihs,ou=test environment,dc=ctatechs,dc=com” ) 我得到: # 。 我想我不明白如何删除旧的RDN然后将用户移动到新的OU。 这是我唯一的问题。 如果我需要提供任何其他信息,请告诉我。 在此先感谢您的帮助!

获取libxml2.2.dylib的错误“文件不是必需的体系结构”

我正在尝试使用rvm在运行Snow Leopard的Mac上安装Ruby 1.9.2。 我的.bash_profile包含 ARCHFLAGS=”-arch x86_64″ 要安装ruby,我运行: rvm install 1.9.2 -C –enable-shared 编译时出错。 这是make.error.log: [2010-01-20 10:03:00] make ld: in /usr/local/lib/libxml2.2.dylib, file is not of required architecture collect2: ld returned 1 exit status make[1]: *** [../../.ext/i386-darwin10.2.0/tcltklib.bundle] Error 1 make: *** [mkmain.sh] Error 1 编辑: 我从源代码安装了readline并尝试了这样的安装: rvm install 1.9.2 -C –enable-shared,–with-readline-dir=/usr/local 这导致了与以前相同的错误。 rcltklib.bundle文件的位置是: /usr/local/lib/ruby/1.8/i686-darwin9.7.0/tcltklib.bundle (我认为这个文件是Ruby OSX安装的一部分)

除了rvm之外,安装多个版本的Ruby的最佳实践?

我已经运行了几个星期的Ruby 1.8.7和Ruby 1.9。 我安装带有后缀19的Ruby 1.9,因此解释器,rake,gem等命令是“ruby19”,“irb19”,“rake19”,“gem19”等.1.8.7当量没有后缀,是因此默认。 我认为这是管理两个版本Ruby的最简单,最透明的方式。 我可以改变#! 我的Ruby脚本行使用一个版本或另一个版本。 我已经阅读了有关动态更改符号链接的更高级解决方案,或者像rvm这样的完整解决方案。 但我更喜欢简单透明的方法。 我只是想知道它是否有任何严重的缺点。

禁用webrick的echo

如何禁用来自webrick的消息回显到终端? 对于出现在开头的INFO消息,我可以通过设置Logger参数来禁用它,以便: s = WEBrick::HTTPServer.new( Port: 3000, BindAddress: “localhost”, Logger: WEBrick::Log.new(“/dev/null”), ) 但我还想禁用看起来像这样的消息: localhost – – [17 / Jun / 2011:10:01:38 EDT]“GET …. HTTP / 1.1”200 0 http:// localhost:3000 / – > ….. 当从Web浏览器发出请求时。

溅上哈希

哈希上的splat将其转换为数组。 [*{foo: :bar}] # => [[:foo, :bar]] 是否有一些隐藏的机制(如隐式类转换)在这里,或者它是一个内置的原始function? 除了一个数组,在Ruby 1.9下使用splat运算符消失/改变的唯一内容是nil和hash吗?