def create_files
files = []
sizes = ['10K', '100K', '500K', '1M', '2M', '5M', '10M', '20M']
sizes.each do |size|
100.times do
files << create_file(size)
end
end
files
end
Refactorings
No refactoring yet !
Fu86
June 23, 2010, June 23, 2010 23:57, permalink
You can use Array#flatten to merge the nested arrays into a big one.
def create_files
%w{ 10K 100K 500K 1M 2M 5M 10M 20M }.map do |size|
100.times.map {|index| create_file(size)}
end.flatten
end
spaghetticode
June 25, 2010, June 25, 2010 18:01, permalink
def create_files
%w{ 10K 100K 500K 1M 2M 5M 10M 20M }.inject([]) do |files, size|
100.times { files << create_file(size) }
files
end
end
Adam
June 26, 2010, June 26, 2010 06:56, permalink
def create_files
(%w{ 10K 100K 500K 1M 2M 5M 10M 20M } * 100).map(&method(:create_file))
end
Tony Schneider
July 20, 2010, July 20, 2010 12:44, permalink
Sorry if this solution has already been submitted, trying not to look above. I think this is pretty readable.
FILE_SIZES = ['10K', '100K', '500K', '1M', '2M', '5M', '10M', '20M']
def create_files
FILE_SIZES.inject([]) do |files, size|
10.times do
files << create_file(size)
end
files
end
end
A simple method to create a bunch of test files of different sizes. create_file creates a file of a given size and returns its name. I'd like to get rid of the temporary 'files' variable