diff --git a/lib/time_ext/iterations.rb b/lib/time_ext/iterations.rb index 3601ed1..6cd4112 100644 --- a/lib/time_ext/iterations.rb +++ b/lib/time_ext/iterations.rb @@ -60,6 +60,7 @@ module TimeExt def map_each(unit, options = {}, &block) iterate(unit, options.merge(:map_result => true), &block) end + alias :map :map_each # Executes passed block for each "unit" of time specified, returning an array with the return values from passed block. Additionally the time object passed into the block is set to the beginning of specified "unit". def map_beginning_of_each(unit, options = {}, &block) @@ -68,7 +69,7 @@ module TimeExt # Dynamically define convenience methods, like #each_hour instead of #each(:hour). [:year, :month, :day, :hour, :min, :sec].each do |unit| - [:each, :beginning_of_each, :map_each, :map_beginning_of_each].each do |method| + [:each, :beginning_of_each, :map_each, :map_beginning_of_each, :map].each do |method| define_method "#{method}_#{unit}" do |*args, &block| send(method, unit, *args, &block) end diff --git a/spec/time_iterations_spec.rb b/spec/time_iterations_spec.rb index ce07002..b9e0b5e 100644 --- a/spec/time_iterations_spec.rb +++ b/spec/time_iterations_spec.rb @@ -52,6 +52,8 @@ describe "Time Iterations" do match = (1..6).map { |i| @now + i.hours } @now.map_each_hour.until(@now + 6.hours) { |time| time }.should == match @now.until(@now + 6.hours).map_each(:hour) { |time| time }.should == match + # check so the #map alias for #map_each works + @now.map_hour.until(@now + 6.hours) { |time| time }.should == match end it "should iterate over time objects backwards with #until set in the past" do