Sha256: 93ebc049bdb27b38aa4bec2947f0e527fa349a6e25e6ff431d8dccbc877432d9

Contents?: true

Size: 701 Bytes

Versions: 3

Compression:

Stored size: 701 Bytes

Contents

# frozen_string_literal: true
require 'active_support/inflector'
require 'active_support/core_ext/numeric/time'

%w[day week month quarter half year].each { |f| require_relative "./calendar/#{f}" }
%w[waypoints period parser].each { |f| require_relative "./calendar/#{f}" }
require_relative './calendar/support/month_basis'

module TimeBoss
  class Calendar
    include Waypoints
    delegate :parse, to: :parser

    def name
      self.class.to_s.demodulize.underscore
    end

    def title
      name.titleize
    end

    protected

    attr_reader :basis

    def initialize(basis:)
      @basis = basis
    end

    private

    def parser
      @_parser ||= Parser.new(self)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
timeboss-0.0.10 lib/timeboss/calendar.rb
timeboss-0.0.9 lib/timeboss/calendar.rb
timeboss-0.0.8 lib/timeboss/calendar.rb