alf-tool/alf-sql

View on GitHub
lib/alf/sql/nodes/inner_join.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Alf
  module Sql
    module InnerJoin
      include Expr

      INNER = "INNER".freeze
      JOIN  = "JOIN".freeze
      ON    = "ON".freeze

      def join?
        true
      end

      def left
        self[1]
      end

      def right
        self[2]
      end

      def predicate
        last
      end

      def to_sql(buffer = "")
        left.to_sql(buffer)
        buffer << SPACE << JOIN << SPACE
        right.to_sql(buffer)
        buffer << SPACE << ON << SPACE
        predicate.to_sql(buffer)
        buffer
      end

    end # module InnerJoin
  end # module Sql
end # module Alf