Sha256: 64ea2800082b189534713e31e8e730d23cc9cca02373437a360315703a97b14b

Contents?: true

Size: 851 Bytes

Versions: 1

Compression:

Stored size: 851 Bytes

Contents

# encoding: utf-8

module Axiom
  class Relation

    # A class that represents a base relation
    class Base < Relation
      include Equalizer.new(:header, :to_set, :name)

      # The base relation name
      #
      # @example
      #   name = base.name
      #
      # @return [#to_s]
      #
      # @api public
      attr_reader :name

      # Initialize a base relation
      #
      # @param [#to_s] name
      #   the relation name
      # @param [Header, #to_ary] header
      #   the relation header
      # @param [Enumerable] tuples
      #   the relation tuples
      #
      # @return [undefined]
      #
      # @api private
      def initialize(name, header, tuples = Empty::ZERO_TUPLE)
        super(header, tuples)
        @name = freeze_object(name.to_s)
      end

    end # class Base
  end # class Relation
end # module Axiom

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
axiom-0.1.0 lib/axiom/relation/base.rb