Sha256: 5b9393be8ab5a65532eb50a9cbe2673f3ffc164515ca81d117609da44759b890

Contents?: true

Size: 613 Bytes

Versions: 124

Compression:

Stored size: 613 Bytes

Contents

# frozen_string_literal: true

class ReeDate::EndOfQuarter
  include Ree::FnDSL

  fn :end_of_quarter do
    link :today
    link :change
    link :days_in_month
  end

  doc(<<~DOC)
    Returns a new date/time at the end of the quarter.
    
      today = Date.today # => Fri, 10 Jul 2015
      today.end_of_quarter # => Wed, 30 Sep 2015
  DOC
  contract(Nilor[Date] => Date)
  def call(date = nil)
    date = date || today
    last_quarter_month = date.month + (12 - date.month) % 3
    last_day = days_in_month(last_quarter_month, date.year)
    change(date, day: last_day, month: last_quarter_month)
  end
end

Version data entries

124 entries across 124 versions & 1 rubygems

Version Path
ree_lib-1.0.23 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.22 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.21 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.20 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.19 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.18 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.17 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.16 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.15 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.14 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.13 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.12 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.11 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.10 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.9 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.8 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.7 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.6 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.5 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb
ree_lib-1.0.4 lib/ree_lib/packages/ree_date/package/ree_date/functions/end_of_quarter.rb