Sha256: d66cdc8b27603949fb43921c809222659cee3e2aaa178ff856ed7e03d5706f40
Contents?: true
Size: 931 Bytes
Versions: 1
Compression:
Stored size: 931 Bytes
Contents
# frozen_string_literal: true require 'blackcal/time_util' require 'blackcal/array_util' module Blackcal # Week of month range class WeeksOfMonthRange include Enumerable # @return [Array<Integer>] numbers in range attr_reader :numbers # Initialize numbers range # @param [Array<Integer>, Integer, nil] numbers # @example # WeeksOfMonthRange.new(1) # @example # WeeksOfMonthRange.new([1, 2]) def initialize(numbers) @numbers = ArrayUtil.flatten(numbers) if numbers end # Returns true if it covers timestamp # @return [Boolean] def cover?(timestamp) return false if numbers.nil? || numbers.empty? numbers.include?(TimeUtil.week_of_month(timestamp)) end # @return [Array<Integer>] numbers in range alias_method :to_a, :numbers # Iterate over range # @see #to_a def each(&block) to_a.each(&block) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blackcal-0.5.0 | lib/blackcal/range/weeks_of_month_range.rb |