小编And*_*imm的帖子

哪些Ruby类支持.clone?

Ruby #cloneObject中定义.令我惊讶的是,有些课程在调用时会引发异常.我发现NilClass,TrueClass,FalseClass,Fixnum都有这种行为.

1)是否存在完整的类列表(至少是核心类),哪些不允许#clone?或者有没有办法检测特定类是否支持#clone

2)有什么问题42.clone

ruby clone

8
推荐指数
2
解决办法
2621
查看次数

确定一个数组是否包含ruby中另一个数组的内容

在ruby中,我如何测试一个数组不仅具有另一个数组的元素,而是以特定顺序包含它们?

correct_combination = [1, 2, 3, 4, 5]
[1, 5, 8, 2, 3, 4, 5].function_name(correct_combination) # => false
[8, 10, 1, 2, 3, 4, 5, 9].function_name(correct_combination) # => true
Run Code Online (Sandbox Code Playgroud)

我尝试过使用include,但这用于测试是否[1,2,3].include?(2)真实.

ruby arrays

8
推荐指数
2
解决办法
8390
查看次数

解决红宝石中的旅行商问题(50多个地点)

我在一家快递公司工作.我们目前通过"手"解决了50多个地点的路线.

我一直在考虑使用谷歌地图API解决这个问题,但我已经读到有24点的限制.

目前我们在服务器中使用rails,所以我正在考虑使用ruby脚本来获取50多个位置的坐标并输出合理的解决方案.

你会用什么算法来解决这个问题?

Ruby是一种很好的编程语言来解决这类问题吗?

你知道任何现有的ruby脚本吗?

ruby algorithm google-maps ruby-on-rails traveling-salesman

8
推荐指数
1
解决办法
4502
查看次数

如何在1.9.2中分析Ruby代码?

我可以用什么来分析1.9.2中的代码?所有版本的ruby-prof我都发现了针对1.9.2的段错误.

例如,当我添加

gem "ruby-prof"
Run Code Online (Sandbox Code Playgroud)

到我的Rails项目的Gemfile并运行

bundle
bundle exec ruby-prof config/environment.rb
Run Code Online (Sandbox Code Playgroud)

我得到了一个段错误.

镇上有新的剖析宝石吗?有没有办法让ruby-prof玩得好听?

ruby profiling ruby-prof

8
推荐指数
1
解决办法
6039
查看次数

Ruby的Enumerable#zip是否在内部创建数组?

Ruby中 -有人说,优雅地比较两个枚举器

zip的问题在于它在内部创建数组,无论你通过什么Enumerable.输入参数的长度还有另一个问题

我看了一下YARV中Enumerable#zip的实现,并看到了

static VALUE
enum_zip(int argc, VALUE *argv, VALUE obj)
{
    int i;
    ID conv;
    NODE *memo;
    VALUE result = Qnil;
    VALUE args = rb_ary_new4(argc, argv);
    int allary = TRUE;

    argv = RARRAY_PTR(args);
    for (i=0; i<argc; i++) {
        VALUE ary = rb_check_array_type(argv[i]);
        if (NIL_P(ary)) {
            allary = FALSE;
            break;
        }
        argv[i] = ary;
    }
    if (!allary) {
        CONST_ID(conv, "to_enum");
        for (i=0; i<argc; i++) {
            argv[i] = rb_funcall(argv[i], conv, 1, ID2SYM(id_each));
        }
    }
    if (!rb_block_given_p()) { …
Run Code Online (Sandbox Code Playgroud)

c ruby yarv array-merge

8
推荐指数
1
解决办法
432
查看次数

我可以覆盖用C编写的Ruby方法吗?

是否有可能覆盖属于Ruby本身的方法,例如rb_error_frozen用C语言编写的Ruby代码?

背景:我想知道在修改冻结对象时是否可以使Ruby仅记录警告,而不是引发异常.这样,我可以记录各种状态修改,而不是在第一个修改时停止.

我主要是想用YARV来做这件事,但如果能让它变得更容易,我可以使用另一个实现.

是的,这是一个崭新的项目!不要在生产环境中尝试这个!

c ruby overriding

8
推荐指数
1
解决办法
537
查看次数

所有Ruby文档离线与码

如果我想查看我的宝石上的文档,我可以这样做:

yard server --gems
Run Code Online (Sandbox Code Playgroud)

如何查看Ruby标准库的文档?

ruby yard

8
推荐指数
1
解决办法
758
查看次数

为什么 bitbucket 不会自动更新我的拉取请求?

推送到作为拉取请求主题的分支后,我收到消息

此拉取请求中未包含新提交。现在更新。

为什么我得到这个,而不是自动更新拉取请求?

这个拉取请求和我用 bitbucket 做的其他拉取请求之间的唯一区别是这个拉取请求涉及合并冲突,我已经解决了。这有作用吗?

我尝试搜索错误消息,但只遇到其他有相同问题的人

git bitbucket merge-conflict-resolution

8
推荐指数
1
解决办法
5518
查看次数

在Ruby 1.9.3上使用大括号进行Globbing

如果使用File :: FNM_EXTGLOB选项,则最新版本的Ruby支持在globbing中使用大括号

2.2.0文档

File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB) #=> true  # { } is supported on FNM_EXTGLOB
Run Code Online (Sandbox Code Playgroud)

但是,1.9.3文档说它在1.9.3中不受支持:

File.fnmatch('c{at,ub}s', 'cats')       #=> false # { } isn't supported
Run Code Online (Sandbox Code Playgroud)

(另外,尝试使用File::FNM_EXTGLOB给出了一个名称错误)

有没有办法在Ruby 1.9.3中使用大括号,比如第三方gem?

我想要匹配的字符串来自S3,而不是本地文件系统,所以我不能只是要求操作系统根据我的知识进行通配.

ruby glob ruby-1.9

8
推荐指数
1
解决办法
266
查看次数

要求返回数组而不是布尔值

根据Kernel#require的文档,该方法返回一个布尔值.我在IRB会话中注意到,对于某些文件,require返回一个数组.

ruby-1.8.7-p330 :001 > require 'net/http'
=> true 
ruby-1.8.7-p330 :002 > require 'date'
=> true 
ruby-1.8.7-p330 :003 > require 'lib/data_provider'
=> ["DataProviders"] 
Run Code Online (Sandbox Code Playgroud)

返回的数组包含data_provider.rb中定义的模块的名称:

module DataProviders
  module Cached
    class Foo
    # ...
    end
  end

  class Foo
  # ...
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我做错事或一些无证行为的标志require吗?

ruby require

7
推荐指数
1
解决办法
191
查看次数