2

我正在调用第三方 API,它产生一个块并返回一个数组:

my.api.all arg: value do |ret|
  #block
end

我想以某种方式调用该方法来获取数组的大小:

array = my.api.all(arg: value)

if array.size > minValue
  #avoid calling all again, but how?
  my.api.all arg: value do |ret|
    #block
  end
end

然后我想避免再次调用该方法,但让生成的块中的代码执行。

这是否有可能,或者有什么方法可以避免all两次调用该方法?

4

1 回答 1

0

如何将块存储在字符串中,eval然后再存储

str = ""

array = my.api.all arg: value do |ret|
    str = <<-eos
        #code e.g.
        puts "block executed with arg: #{ret}"
    eos
  end

if array.size > minValue
  eval str
end
于 2013-10-07T20:30:06.827 回答