Sha256: f63e713783d2c7757213853090bca8f9df13b64e87fbfbdf406c7f73546c56ef

Contents?: true

Size: 1.31 KB

Versions: 4

Compression:

Stored size: 1.31 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(Time.strptime(value, "%m/%d/%Y %l:%M %P"))
        end

        def festivity_end_date=(value)
          super(Time.strptime(value, "%m/%d/%Y %l:%M %P"))
        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

4 entries across 4 versions & 1 rubygems

Version Path
trusty-festivity-extension-2.2.3 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.2.2 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.2.1 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.2.0 lib/festivity/extensions/site_extensions.rb