Sha256: b4f564a17d2167491b0405d448660516f4c10a3fbdc05c3a5703cfd747835c3f

Contents?: true

Size: 943 Bytes

Versions: 7

Compression:

Stored size: 943 Bytes

Contents

module AgnosticBackend
  module Queryable
    class Executor

      attr_reader :query
      attr_reader :visitor

      def initialize(query, visitor)
        @query, @visitor = query, visitor
      end

      def execute
        raise NotImplementedError, 'Abstract method'
      end

      private

      def order_expression
        query.children.find { |e| e.is_a? Expressions::Order }
      end

      def where_expression
        query.children.find { |e| e.is_a? Expressions::Where }
      end

      def select_expression
        query.children.find { |e| e.is_a? Expressions::Select }
      end

      def limit_expression
        query.children.find { |e| e.is_a? Expressions::Limit }
      end

      def offset_expression
        query.children.find { |e| e.is_a? Expressions::Offset }
      end

      def scroll_cursor_expression
        query.children.find { |e| e.is_a? Expressions::ScrollCursor }
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
agnostic_backend-0.9.9 lib/agnostic_backend/queryable/executor.rb
agnostic_backend-0.9.8 lib/agnostic_backend/queryable/executor.rb
agnostic_backend-0.9.4 lib/agnostic_backend/queryable/executor.rb
agnostic_backend-0.9.3 lib/agnostic_backend/queryable/executor.rb
agnostic_backend-0.9.2 lib/agnostic_backend/queryable/executor.rb
agnostic_backend-0.9.1 lib/agnostic_backend/queryable/executor.rb
agnostic_backend-0.9.0 lib/agnostic_backend/queryable/executor.rb