class Cronut::Parser::Base

Attributes

maximum[R]
minimum[R]
possibilities[R]
segment[R]

Public Class Methods

new(segment:, minimum:, maximum:) click to toggle source
# File lib/cronut/parser/base.rb, line 6
def initialize(segment:, minimum:, maximum:)
  @segment = segment
  @minimum = minimum
  @maximum = maximum

  @possibilities = generate_possibilities
  validate_possibilities!
end

Private Instance Methods

generate_possibilities() click to toggle source
# File lib/cronut/parser/base.rb, line 17
def generate_possibilities
  raise NotImplementedError
end
safely_convert_to_integer(n) click to toggle source
# File lib/cronut/parser/base.rb, line 28
def safely_convert_to_integer(n)
  Integer(n)
rescue ArgumentError
  raise ArgumentError, "Non-numeric value supplied: #{n}"
end
validate_possibilities!() click to toggle source
# File lib/cronut/parser/base.rb, line 21
def validate_possibilities!
  @possibilities.each do |possibility|
    next if (minimum..maximum).cover?(possibility)
    raise ArgumentError, 'Possibilities exceed permitted range'
  end
end