require './lib/timeboss/calendars'

namespace :timeboss do
  namespace :calendars do
    TimeBoss::Calendars.each do |entry|
      namespace entry.name do
        desc "Evaluate an expression for the #{entry.name} calendar"
        task :evaluate, %i[expression] => ['timeboss:init'] do |_, args|
          puts entry.calendar.parse(args[:expression])
        end

        desc "Open a shell with the #{entry.name} calendar"
        task shell: ['timeboss:init'] do
          require 'timeboss/support/shellable'
          TimeBoss::Support::Shellable.open(entry.calendar)
        end
      end
    end
  end
end