dblack / wobblini.net wrote: > Hi -- > > On Thu, 1 Mar 2007, Niko wrote: > >> >> Hi all, >> >> I'm trying to define the missing block given in the context of the >> method to avoid the block_given? test on each iteration for yield call. >> >> def self.list_of_relationships(relations, source) >> # missing_block_that_yield_would_call = lambda { || true } unless >> block_given? >> relations.map do |relation| >> if yield(peer = relation.send(source)) >> [peer.display_name, peer.id] >> end >> end.compact >> end > > You would want to do: > > def self.list(relations,source,&block) > block ||= lambda { true } # no need for empty || > relations.map do |relation| > if block.call(peer = .... > > etc. You'd have to do some benchmarks to find out whether the > slowdown from call is worse than the slowdown from block_given?. > > > David > it works like a charm i'll do some benchmarks to check the slowdown thanks for the help