Sha256: e468ca882b108159e5406fbaed7d6d56cc6448794652843dd99d883e0f3ab565

Contents?: true

Size: 1.33 KB

Versions: 16

Compression:

Stored size: 1.33 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.any? {|festival_date| festival_date.datetime == 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.advance(advance_by) >= 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

16 entries across 16 versions & 1 rubygems

Version Path
trusty-festivity-extension-2.4.6 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.4.5 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.4.4 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.4.3 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.4.2 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.4.1 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.4.0 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.30 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.29 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.28 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.27 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.26 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.25 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.24 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.23 lib/festivity/extensions/site_extensions.rb
trusty-festivity-extension-2.3.22 lib/festivity/extensions/site_extensions.rb