Skip to content

Instantly share code, notes, and snippets.

@akahn
Created January 24, 2012 23:43
Show Gist options
  • Save akahn/1673543 to your computer and use it in GitHub Desktop.
Save akahn/1673543 to your computer and use it in GitHub Desktop.
class AdvancingTimeRange
def initialize(time = '2009-03-01')
@cursor = DateTime.parse(time)
end
def next(increment_by)
range = @cursor..@cursor + increment_by
@cursor = range.end
range
end
end
class AscendingRange
delegate :begin, :end, :to => @range
def initialize(begin = 1, end = 50_000)
@range = begin..end
end
def advance(by = 50_000)
@range = (@range.begin + by)..(@range.end + by)
end
end
class MonthSpan
def initialize(time = '2009-03-01')
@start = DateTime.parse(time)
end
def range
@start..@start + 1.month
end
def next
@start = @start + 1.month
range
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment