class CalendariumRomanum::CLI::Querier

“Queries” a Calendar. Builds liturgical calendar according to the specified options and prints calendar entries for the specified period.

@api private

Public Class Methods

new(locale: :en, calendar: 'universal-en') click to toggle source
# File lib/calendarium-romanum/cli/querier.rb, line 11
def initialize(locale: :en, calendar: 'universal-en')
  @locale = locale
  @calendar = calendar
end

Public Instance Methods

call(date_str = nil) click to toggle source
# File lib/calendarium-romanum/cli/querier.rb, line 16
def call(date_str = nil)
  I18n.locale = @locale

  pcal = PerpetualCalendar.new sanctorale: sanctorale

  today = Date.today
  date_range = today..today

  if date_str
    begin
      date_range = DateParser.parse(date_str)
    rescue ArgumentError
      die! 'Invalid date.'
    end
  end

  date_range.each do |day|
    print_single_date(pcal, day)
  end
end

Private Instance Methods

print_single_date(calendar, date) click to toggle source
sanctorale() click to toggle source
# File lib/calendarium-romanum/cli/querier.rb, line 58
def sanctorale
  if File.exist?(@calendar)
    begin
      sanctorale_from_path(@calendar)
    rescue CalendariumRomanum::InvalidDataError
      die! 'Invalid file format.'
    end
  elsif data_file = Data[@calendar]
    data_file.load
  else
    die! "Invalid calendar. Either loading a calendar from filesystem did not succeed, \n or a preinstalled calendar was specified which doesn't exist. See subcommand `calendars` for valid options."
  end
end