2013-10-07 48 views
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方法吗?

+0

你有机会获得在执行您块返回数组? – fotanus

+0

@fotanus我无法访问块中的返回数组 – dagda1

回答

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