我正在调用第三方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
方法?
答案 0 :(得分: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