Class: Date
- Inherits:
-
Object
- Object
- Date
- Defined in:
- lib/gb_work_day/core_ext/date.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#free?(week = default_week) ⇒ boolean
Check if it is a work day.
- #minus_with_work_duration(other) ⇒ Object (also: #-)
-
#next_work_day(week = default_week) ⇒ Time
Return next working day.
- #plus_with_work_duration(other) ⇒ Object (also: #+)
-
#previous_work_day(week = default_week) ⇒ Time
Return previous working day.
-
#work?(week = default_week) ⇒ boolean
Check if it is a work day.
-
#work_date(week = nil) ⇒ Object
(also: #to_work, #to_work_date)
Get date object for calculating working days.
Instance Method Details
#free?(week = default_week) ⇒ boolean
Check if it is a work day.
34 35 36 |
# File 'lib/gb_work_day/core_ext/date.rb', line 34 def free?(week = default_week) week.free_day? self end |
#minus_with_work_duration(other) ⇒ Object Also known as: -
14 15 16 17 18 19 20 21 22 |
# File 'lib/gb_work_day/core_ext/date.rb', line 14 def minus_with_work_duration(other) if GBWorkDay::Duration === other plus_with_work_duration(- other) elsif GBWorkDay::Date === other - (other - self) else minus_without_work_duration(other) end end |
#next_work_day(week = default_week) ⇒ Time
Return next working day
40 41 42 43 44 45 46 |
# File 'lib/gb_work_day/core_ext/date.rb', line 40 def next_work_day(week = default_week) if week.free_day? self self.beginning_of_week + 7.days else self + GBWorkDay::Duration.new(1, week) end end |
#plus_with_work_duration(other) ⇒ Object Also known as: +
4 5 6 7 8 9 10 |
# File 'lib/gb_work_day/core_ext/date.rb', line 4 def plus_with_work_duration(other) if GBWorkDay::Duration === other other.since(self) else plus_without_work_duration(other) end end |
#previous_work_day(week = default_week) ⇒ Time
Return previous working day
50 51 52 53 54 55 56 |
# File 'lib/gb_work_day/core_ext/date.rb', line 50 def previous_work_day(week = default_week) if week.free_day? self next_work_day(week) - (week.free_days_per_week + 1).days else self - GBWorkDay::Duration.new(1, week) end end |
#work?(week = default_week) ⇒ boolean
Check if it is a work day.
28 29 30 |
# File 'lib/gb_work_day/core_ext/date.rb', line 28 def work?(week = default_week) week.work_day? self end |