Sha256: 17f0eb1c12e46ace2fbd90e10a1466fb79358ff6c25a3e65d98123305111ac9d
Contents?: true
Size: 1.59 KB
Versions: 2
Compression:
Stored size: 1.59 KB
Contents
require 'gb_work_day/duration' require 'gb_work_day/helpers/time' class Time def plus_with_work_duration(other) if GBWorkDay::Duration === other other.since(self) else plus_without_work_duration(other) end end alias_method :plus_without_work_duration, :+ alias_method :+, :plus_with_work_duration def minus_with_work_duration(other) if GBWorkDay::Duration === other plus_with_work_duration(-other) elsif GBWorkDay::Time === other - (other - self) else minus_without_work_duration(other) end end alias_method :minus_without_work_duration, :- alias_method :-, :minus_with_work_duration # Check if it is a work day. # @return [boolean] def work? default_week.work_day? self end # Check if it is a work day. # @return [boolean] def free? default_week.free_day? self end # Return next working day # @return [Time] def next_work_day if default_week.free_day? self next_day = self while default_week.free_day? next_day next_day += GBWorkDay::Duration::SEC_IN_DAY end next_day else self + GBWorkDay::Duration.new(1, default_week) end end # Get time object for calculating working days # # @param week [GBWorkDay::WorkWeek] if not set, it will use week set globally. For more check {GBWorkingDay::WorkWeek#current} def work_time(week=nil) GBWorkDay::Time.from_time self, week end alias_method :to_work, :work_time alias_method :to_work_time, :work_time private # @return [GBWorkDay::WorkWeek] def default_week GBWorkDay::WorkWeek.current end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gb_work_day-0.0.6 | lib/gb_work_day/core_ext/time.rb |
gb_work_day-0.0.4 | lib/gb_work_day/core_ext/time.rb |