Sha256: 5189b98b42ff026dd16bce0b10b5ce21944f7112d7f8f5dc026ff1abb6d67394

Contents?: true

Size: 824 Bytes

Versions: 54

Compression:

Stored size: 824 Bytes

Contents

module Bmg
  module Sql
    class Processor
      class OrderBy < Processor

        def initialize(ordering, builder)
          super(builder)
          @ordering = ordering
        end
        attr_reader :ordering

        def on_set_operator(sexpr)
          call(builder.from_self(sexpr))
        end
        alias :on_union     :on_set_operator
        alias :on_except    :on_set_operator
        alias :on_intersect :on_set_operator

        def on_select_exp(sexpr)
          if obc = sexpr.order_by_clause
            sexpr = builder.from_self(sexpr)
            call(sexpr)
          else
            needed = builder.order_by_clause(ordering, &sexpr.desaliaser)
            sexpr.dup.push(needed)
          end
        end

      end # class OrderBy
    end # class Processor
  end # module Sql
end # module Bmg

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
bmg-0.19.3 lib/bmg/sql/processor/order_by.rb
bmg-0.20.1 lib/bmg/sql/processor/order_by.rb
bmg-0.20.0 lib/bmg/sql/processor/order_by.rb
bmg-0.19.2 lib/bmg/sql/processor/order_by.rb
bmg-0.19.1 lib/bmg/sql/processor/order_by.rb
bmg-0.19.0 lib/bmg/sql/processor/order_by.rb
bmg-0.18.15 lib/bmg/sql/processor/order_by.rb
bmg-0.18.14 lib/bmg/sql/processor/order_by.rb
bmg-0.18.13 lib/bmg/sql/processor/order_by.rb
bmg-0.18.12 lib/bmg/sql/processor/order_by.rb
bmg-0.18.11 lib/bmg/sql/processor/order_by.rb
bmg-0.18.10 lib/bmg/sql/processor/order_by.rb
bmg-0.18.9 lib/bmg/sql/processor/order_by.rb
bmg-0.18.8 lib/bmg/sql/processor/order_by.rb
bmg-0.18.7 lib/bmg/sql/processor/order_by.rb
bmg-0.18.6 lib/bmg/sql/processor/order_by.rb
bmg-0.18.5 lib/bmg/sql/processor/order_by.rb
bmg-0.18.4 lib/bmg/sql/processor/order_by.rb
bmg-0.18.3 lib/bmg/sql/processor/order_by.rb
bmg-0.18.2 lib/bmg/sql/processor/order_by.rb