module ActiveSubsetValidator

Constants

SET_DIFF_ERROR
VERSION

Public Class Methods

is_a_set?(obj, *args) click to toggle source
# File lib/active_subset_validator.rb, line 10
def self.is_a_set? obj, *args
  if obj.respond_to?(:call)
    obj = obj.call *args
  end
  if obj.is_a?(Set)
    return true
  elsif obj.is_a?(Array)
    return obj.to_set.to_a == obj
  else
    return false
  end
end
set_difference(obj1, obj2) click to toggle source
# File lib/active_subset_validator.rb, line 23
def self.set_difference obj1, obj2
  if obj1.is_a?(Array) && obj2.is_a?(Array)
    (obj1.to_set - obj2.to_set).to_a
  elsif obj1.is_a?(Set) && obj2.is_a?(Set)
    obj1 - obj2
  else
    raise ArgumentError, SET_DIFF_ERROR
  end
end