I have array of objects form AR
I want to rarefy them, with limit.
Current method looks like:
def rarefied_values(limit = 200)
all_values = self.values.all
rarefied_values = []
chunk_size = (all_values.size / limit.to_f).ceil
if all_values.size > limit
all_values.each_slice(chunk_size) do |chunk|
rarefied_values.push(chunk.first)
end
return rarefied_values
else
return all_values
end
end
Any hints for refactoring?
Some general points in refactoring in ruby
selfcan be omitted usually. In a few cases, you cannot, for exampleself.class. In this case,self.values.all=>values.allreturn. In this case,return all_values unless all_values.size > limitrarefied_values = []is not necessary ifall_values.size > limit. So put that in the conditioned section.