class Authoraise::Check

Attributes

required_keys[R]

Public Class Methods

new(required_keys, procedure) click to toggle source
# File lib/authoraise.rb, line 16
def initialize(required_keys, procedure)
  @required_keys = required_keys.to_set.freeze
  @procedure = procedure
end

Public Instance Methods

call(options) click to toggle source
# File lib/authoraise.rb, line 21
def call(options)
  given_keys = options.keys.to_set

  if required_keys.subset?(given_keys)
    @procedure.call(*required_keys.map{|k| options[k]})
  else
    raise Error, "Check failed, missing keys: #{missing_keys(given_keys)}"
  end
end
missing_keys(given_keys) click to toggle source
# File lib/authoraise.rb, line 31
def missing_keys(given_keys)
  (required_keys - given_keys.to_set).to_a
end