Sha256: 0317854abdb2479cd46372b3aa920f4c7729bf40a9b8243cec74c0c1ac1794f7

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

module Festivity
  module Extensions
    module SiteExtensions

      def self.included(base)
        base.class_eval {
          has_many :festivity_category_types
          include Festivity::Extensions::SiteExtensions::SiteMethods
        }
      end

      module SiteMethods

        def festivity_start_date=(value)
          super(Chronic.parse(value))
        end

        def festivity_end_date=(value)
          super(Chronic.parse(value))
        end

        def festivity_active_category_types
          self.festivity_category_types.where(["inactive = false"])
        end

        def date_during_festival?(date)
          self.festival_datetimes.include?(date)
        end

        def festival_datetimes
          @festival_datetimes ||= calculate_festival_datetimes
        end

        def calculate_festival_datetimes
          dates = [self.festivity_start_date]
          advance_by = date_filter? ? {days: 1} : {hours: 1}
          until dates.last >= self.festivity_end_date do
            dates << dates.last.advance(advance_by)
          end
          FestivityDatetimeFilterPresenter.new(dates, self.festivity_filter_type)
        rescue
          []
        end

        def date_filter?
          self.festivity_filter_type == "date"
        end

      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trusty-festivity-extension-2.2.6 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.2.5 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.2.4 lib/festivity/extensions/site_extensions.rb