module StrictOptions

Public Instance Methods

strict_options!(*opts, exception_class: ArgumentError, exception_message: nil) click to toggle source
# File lib/strict_options.rb, line 2
def strict_options!(*opts, exception_class: ArgumentError,
                           exception_message: nil)
  @missings = []
  opts.each { |opt| @missings << ":#{opt}" unless @options[opt] }
  msg = exception_message || "option#{s} #{@missings.join(', ')} #{is_or_are} missing"
  raise exception_class, msg if @missings.size > 0
end

Private Instance Methods

is_or_are() click to toggle source
# File lib/strict_options.rb, line 12
def is_or_are
  return if @missings.empty?

  @missings.size > 1 ? 'are' : 'is'
end
s() click to toggle source
# File lib/strict_options.rb, line 18
def s
  return if @missings.empty?

  @missings.size > 1 ? 's' : ''
end