Module: UKAcademicCalendar
- Defined in:
- lib/uk_academic_calendar.rb,
lib/uk_academic_calendar/term.rb,
lib/uk_academic_calendar/version.rb,
lib/uk_academic_calendar/autumn_term.rb,
lib/uk_academic_calendar/spring_term.rb,
lib/uk_academic_calendar/summer_term.rb,
lib/uk_academic_calendar/errors/error.rb,
lib/uk_academic_calendar/mixins/succ_slashable.rb,
lib/uk_academic_calendar/errors/invalid_term_end.rb,
lib/uk_academic_calendar/errors/invalid_term_bound.rb,
lib/uk_academic_calendar/errors/invalid_term_start.rb,
lib/uk_academic_calendar/mixins/date_and_time_instance_methods.rb
Overview
Top-level namespace, itself implementing a number of constants and module methods documented below.
Defined Under Namespace
Modules: DateAndTimeInstanceMethods, SuccSlashable Classes: AutumnTerm, Error, InvalidTermBound, InvalidTermEnd, InvalidTermStart, SpringTerm, SummerTerm, Term
Constant Summary collapse
- YEAR_OFFSET_START_MONTH =
The month-number corresponding to the first month within the calendar year that the academic year starts in.
9
- SEASONS =
The season-names designating the 3 terms.
[:autumn, :spring, :summer].freeze
- VERSION =
'1.0.0'
Class Method Summary collapse
-
.all_terms(academic_year) ⇒ Array(UKAcademicCalendar::AutumnTerm, UKAcademicCalendar::SpringTerm, UKAcademicCalendar::SummerTerm)
Array containing ordered instances of Autumn, Spring and Summer term.
-
.autumn_term ⇒ UKAcademicCalendar::AutumnTerm
Instance of Autumn term.
-
.spring_term ⇒ UKAcademicCalendar::SpringTerm
Instance of Spring term.
-
.summer_term ⇒ UKAcademicCalendar::SummerTerm
Instance of Summer term.
-
.term_including(val = Date.today) ⇒ UKAcademicCalendar::AutumnTerm, ...
Instance of Autumn/Spring/Summer term deemed to contain date param.
-
.term_now ⇒ UKAcademicCalendar::AutumnTerm, ...
Convenience method for retrieving the term object including Date.today.
Class Method Details
.all_terms(academic_year) ⇒ Array(UKAcademicCalendar::AutumnTerm, UKAcademicCalendar::SpringTerm, UKAcademicCalendar::SummerTerm)
Returns array containing ordered instances of Autumn, Spring and Summer term.
44 45 46 |
# File 'lib/uk_academic_calendar.rb', line 44 def all_terms(academic_year) SEASONS.map { |term_name| public_send(:"#{term_name}_term", academic_year) } end |
.autumn_term ⇒ UKAcademicCalendar::AutumnTerm
Returns instance of Autumn term.
|
# File 'lib/uk_academic_calendar.rb', line 23
|
.spring_term ⇒ UKAcademicCalendar::SpringTerm
Returns instance of Spring term.
|
# File 'lib/uk_academic_calendar.rb', line 27
|
.summer_term ⇒ UKAcademicCalendar::SummerTerm
Returns instance of Summer term.
34 35 36 37 38 39 |
# File 'lib/uk_academic_calendar.rb', line 34 SEASONS.each do |season| define_method(:"#{season}_term") do |academic_year| klass = Term.descendants.find { |c| c.to_s.demodulize.downcase.start_with? season.to_s } klass.new(academic_year) end end |
.term_including(val = Date.today) ⇒ UKAcademicCalendar::AutumnTerm, ...
Returns instance of Autumn/Spring/Summer term deemed to contain date param.
58 59 60 61 |
# File 'lib/uk_academic_calendar.rb', line 58 def term_including(val = Date.today) date = val.to_date all_terms(date.academic_year).find { |term| date.in? term } end |
.term_now ⇒ UKAcademicCalendar::AutumnTerm, ...
Convenience method for retrieving the term object including Date.today
51 52 53 |
# File 'lib/uk_academic_calendar.rb', line 51 def term_now term_including end |