Module: Stupidedi::Sets

Defined in:
lib/stupidedi/sets.rb,
lib/stupidedi/sets/null_set.rb,
lib/stupidedi/sets/abstract_set.rb,
lib/stupidedi/sets/relative_set.rb,
lib/stupidedi/sets/absolute_set.rb,
lib/stupidedi/sets/universal_set.rb,
lib/stupidedi/sets/relative_complement.rb

Defined Under Namespace

Classes: AbsoluteSet, AbstractSet, RelativeComplement, RelativeSet

Constant Summary

Constructors (collapse)

Class Method Details

+ (Sets::AbsoluteSet) absolute(other, universe = other)

Returns:



44
45
46
47
48
49
50
# File 'lib/stupidedi/sets.rb', line 44

def absolute(other, universe = other)
  if universe.eql?(other)
    Sets::AbsoluteSet.build(universe)
  else
    Sets::AbsoluteSet.build(universe).intersection(other)
  end
end

+ (Sets::AbstractSet) build(object)

Returns:



17
18
19
20
21
22
23
24
25
26
# File 'lib/stupidedi/sets.rb', line 17

def build(object)
  if object.is_a?(Sets::AbstractSet)
    object
  elsif object.is_a?(Enumerable)
    Sets::RelativeSet.build(object)
  else
    raise TypeError,
      "argument must be an AbstractSet or Enumerable"
  end
end

+ (Sets::AbstractSet) complement(other)

Returns:



29
30
31
# File 'lib/stupidedi/sets.rb', line 29

def complement(other)
  build(other).complement
end

+ (Sets::NullSet) empty

Returns:

  • (Sets::NullSet)


39
40
41
# File 'lib/stupidedi/sets.rb', line 39

def empty
  Sets::NullSet.build
end

+ (Sets::UniversalSet) universal

Returns:

  • (Sets::UniversalSet)


34
35
36
# File 'lib/stupidedi/sets.rb', line 34

def universal
  Sets::UniversalSet.build
end