Method: Lazier::DateTime::ClassMethods#years

Defined in:
lib/lazier/datetime.rb

#years(offset: 10, also_future: true, reference: nil, as_objects: false) ⇒ Array

Returns a range of years.

Date.years(3, false, 2010)
# => [2007, 2008, 2009, 2010]
Date.years(1, true, 2010, true)
# => [{:value=>2009, :label=>2009}, {:value=>2010, :label=>2010}, {:value=>2011, :label=>2011}]

Parameters:

  • offset (Fixnum) (defaults to: 10)

    The width of the range.

  • also_future (Boolean) (defaults to: true)

    If return also future years.

  • reference (Fixnum) (defaults to: nil)

    The ending (or middle, if also_future is true) value of the range. Defaults to the current year.

  • as_objects (Boolean) (defaults to: false)

    If to return years in hashes with :value and label keys.

Returns:

  • (Array)

    A range of years. Every entry is



53
54
55
56
# File 'lib/lazier/datetime.rb', line 53

def years(offset: 10, also_future: true, reference: nil, as_objects: false)
  y = reference || ::Date.today.year
  (y - offset..(also_future ? y + offset : y)).map { |year| as_objects ? {value: year, label: year} : year }
end