Sha256: 5ab59b060ba2ca11807dd6b4aca3dce3c17a652ccd10b6c0306c2794360702dc

Contents?: true

Size: 647 Bytes

Versions: 8

Compression:

Stored size: 647 Bytes

Contents

require 'ostruct'

module Almanack
  class Event < OpenStruct
    def formatted_date
      formatted = "#{formatted_day(start_date)} at #{formatted_time(start_date)}"

      if end_date
        formatted << " to "
        formatted << "#{formatted_day(end_date)} at " unless ends_on_same_day?
        formatted << formatted_time(end_date)
      end

      formatted
    end

    private

    def ends_on_same_day?
      [start_date.year, start_date.yday] == [end_date.year, end_date.yday]
    end

    def formatted_time(time)
      time.strftime('%-l:%M%P')
    end

    def formatted_day(time)
      time.strftime('%B %-d %Y')
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
almanack-1.0.5 lib/almanack/event.rb
almanack-1.0.4 lib/almanack/event.rb
almanack-1.0.3 lib/almanack/event.rb
almanack-1.0.2 lib/almanack/event.rb
almanack-1.0.1 lib/almanack/event.rb
almanack-1.0.0 lib/almanack/event.rb
almanack-1.0.0.pre1 lib/almanack/event.rb
almanack-1.0.0.pre lib/almanack/event.rb