class MethodStruct::ArgumentVerifier

Attributes

options[R]

Public Class Methods

new(options) click to toggle source
# File lib/method_struct/argument_verifier.rb, line 3
def initialize(options)
  @options = options
end

Public Instance Methods

call() click to toggle source
# File lib/method_struct/argument_verifier.rb, line 7
def call
  verify_require_all
  verify_require_presence
end

Private Instance Methods

arguments() click to toggle source
# File lib/method_struct/argument_verifier.rb, line 33
def arguments
  options.fetch(:arguments)
end
fields() click to toggle source
# File lib/method_struct/argument_verifier.rb, line 29
def fields
  options.fetch(:fields)
end
verify_require_all() click to toggle source
# File lib/method_struct/argument_verifier.rb, line 15
def verify_require_all
  if options.fetch(:require_all)
    missing_arguments = fields - arguments.keys
    raise ArgumentError.new("missing arguments: #{missing_arguments.sort.inspect}") unless missing_arguments.empty?
  end
end
verify_require_presence() click to toggle source
# File lib/method_struct/argument_verifier.rb, line 22
def verify_require_presence
  if options.fetch(:require_presence)
    nil_arguments = arguments.map{ |k, v| k if v.nil? }.compact
    raise ArgumentError.new("nil arguments: #{nil_arguments.sort.inspect}") unless nil_arguments.empty?
  end
end