Class: Axiom::Relation::Empty

Inherits:
Materialized show all
Defined in:
lib/axiom/relation/empty.rb

Overview

An empty relation

Constant Summary collapse

ZERO_TUPLE =
EMPTY_ARRAY

Instance Attribute Summary

Attributes inherited from Materialized

#directions

Attributes inherited from Axiom::Relation

#header

Instance Method Summary collapse

Methods inherited from Materialized

#materialize, #materialized?

Methods inherited from Axiom::Relation

#==, #[], #directions, #empty?, #include?, #materialize, #materialized?, new, #one, #replace

Methods included from Visitable

#accept

Constructor Details

#initialize(_header, _tuples = ZERO_TUPLE) ⇒ undefined

Initialize an empty Relation

Parameters:

  • _header (Header)

    the header for the empty relation

  • _tuples (#each) (defaults to: ZERO_TUPLE)

    optional original tuples



20
21
22
# File 'lib/axiom/relation/empty.rb', line 20

def initialize(_header, _tuples = ZERO_TUPLE)
  super
end

Instance Method Details

#eachself

Noop #each method

Examples:

empty = Empty.new(header)
empty.each { ... }

Returns:

  • (self)


33
34
35
36
# File 'lib/axiom/relation/empty.rb', line 33

def each
  return to_enum unless block_given?
  self
end

#size0

Return the number of tuples

Examples:

empty.size  # => 0

Returns:

  • (0)


46
47
48
# File 'lib/axiom/relation/empty.rb', line 46

def size
  0
end