Sha256: 36cf7f99ca1841578db888961680545d9c10a1153eb0507519501f3b31bed0ea

Contents?: true

Size: 1.01 KB

Versions: 7

Compression:

Stored size: 1.01 KB

Contents

module Montrose
  # Defines the Rule duck type for recurrence rules
  module Rule
    def self.included(base)
      base.extend ClassMethods
    end

    def include?(_time)
      fail "Class must implement #{__method__}"
    end

    def advance!(_time)
      true
    end

    def continue?
      true
    end

    module ClassMethods
      def apply_option(_opts)
        nil
      end

      def apply_options?(opts)
        apply_options(opts)
      end

      def from_options(opts)
        new(apply_options(opts)) if apply_options?(opts)
      end
    end
  end
end

require "montrose/rule/after"
require "montrose/rule/before"
require "montrose/rule/day_of_month"
require "montrose/rule/day_of_week"
require "montrose/rule/day_of_year"
require "montrose/rule/except"
require "montrose/rule/hour_of_day"
require "montrose/rule/month_of_year"
require "montrose/rule/nth_day_of_month"
require "montrose/rule/nth_day_of_year"
require "montrose/rule/time_of_day"
require "montrose/rule/total"
require "montrose/rule/week_of_year"

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
montrose-0.6.0 lib/montrose/rule.rb
montrose-0.5.0 lib/montrose/rule.rb
montrose-0.4.3 lib/montrose/rule.rb
montrose-0.4.2 lib/montrose/rule.rb
montrose-0.4.1 lib/montrose/rule.rb
montrose-0.4.0 lib/montrose/rule.rb
montrose-0.3.0 lib/montrose/rule.rb