Sha256: f6435e6c7b3cfc81d83acdf7db409a76fb7a165b2711b9f5a2b5dba7360dbea3

Contents?: true

Size: 564 Bytes

Versions: 2

Compression:

Stored size: 564 Bytes

Contents

class WorkingCalendar
  class WeekDay

    include CastHelper

    attr_reader :day_name, :hours_ranges

    def initialize(day_name, hours_ranges)
      @day_name = cast_day_name day_name
      @hours_ranges = cast_hours_ranges hours_ranges
    end

    def include?(time)
      hms = Timing::HourMinutesSeconds.new time.hour, time.min, time.sec
      time.public_send("#{day_name}?") && hours_ranges.any? { |from, to| hms.between? from, to }
    end

    def to_s
      "#{day_name.capitalize} #{hours_ranges}"
    end
    alias_method :inspect, :to_s

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
working_calendar-0.1.1 lib/working_calendar/week_day.rb
working_calendar-0.1.0 lib/working_calendar/week_day.rb