Sha256: 1f29d3045bbc64c4710778ec7d3661d6cf828edfc2be7cfde749942e39d2a899

Contents?: true

Size: 686 Bytes

Versions: 4

Compression:

Stored size: 686 Bytes

Contents

module Bmg
  module Sql
    class Processor
      class Where < Processor

        def initialize(predicate, builder)
          super(builder)
          @predicate = predicate
        end

        def on_select_exp(sexpr)
          pred = @predicate.rename(sexpr.desaliaser).sexpr
          if sexpr.where_clause
            anded = [:and, sexpr.where_clause.predicate, pred ]
            anded = Predicate::Grammar.sexpr(anded)
            sexpr.with_update(:where_clause, [ :where_clause, anded ])
          else
            sexpr.with_insert(4, [ :where_clause, pred ])
          end
        end

      end # class Where
    end # class Processor
  end # module Sql
end # module Bmg

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bmg-0.12.0 lib/bmg/sql/processor/where.rb
bmg-0.11.0 lib/bmg/sql/processor/where.rb
bmg-0.10.1 lib/bmg/sql/processor/where.rb
bmg-0.10.0 lib/bmg/sql/processor/where.rb