module StrictStruct::Helper

Public Class Methods

assert_keyword_error(type, keywords) click to toggle source
# File lib/strict_struct.rb, line 5
def self.assert_keyword_error type, keywords
  if keywords.length == 1
    raise ArgumentError, "#{type} keyword: " + keywords.first.to_s
  elsif keywords.length > 1
    raise ArgumentError, "#{type} keywords: " + keywords.join(', ')
  end
end
validate_arguments(given, expected) click to toggle source
# File lib/strict_struct.rb, line 13
def self.validate_arguments given, expected
  missing_arguments = expected.reject {|name| given.include? name }
  Helper.assert_keyword_error "missing", missing_arguments

  extra_arguments = given.reject {|name| expected.include? name }
  Helper.assert_keyword_error "unknown", extra_arguments
end