Sha256: 168611ef2401b7e3732da7472cb13d97510e54c60700d89bfee9620a9ae33e91

Contents?: true

Size: 1.14 KB

Versions: 23

Compression:

Stored size: 1.14 KB

Contents

module Bmg
  module Sql
    module SelectList
      include Expr

      def desaliaser(for_predicate = false)
        ->(a){
          item = sexpr_body.find{|item| item.as_name.to_s == a.to_s }
          return nil unless left = item && item.left
          return left unless for_predicate
          case left.first
          when :literal
            Predicate::Grammar.sexpr([:literal, left.last])
          when :qualified_name
            Predicate::Grammar.sexpr([:qualified_identifier, left.qualifier.to_sym, left.as_name.to_sym])
          else
            raise "Unexpected select_item `#{left}`"
          end
        }
      end

      def is_table_dee?
        Builder::IS_TABLE_DEE == self
      end

      def knows?(as_name)
        find_child{|child| child.as_name == as_name }
      end

      def to_attr_list
        sexpr_body.map{|a| a.as_name.to_sym }
      end

      def to_sql(buffer, dialect)
        sexpr_body.each_with_index do |item,index|
          buffer << COMMA << SPACE unless index == 0
          item.to_sql(buffer, dialect)
        end
        buffer
      end

    end # module SelectList
  end # module Sql
end # module Bmg

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
bmg-0.17.3 lib/bmg/sql/nodes/select_list.rb
bmg-0.17.2 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.7 lib/bmg/sql/nodes/select_list.rb
bmg-0.17.1 lib/bmg/sql/nodes/select_list.rb
bmg-0.17.0 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.6 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.5 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.4 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.3 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.2 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.1 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.0 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.0.pre.rc2 lib/bmg/sql/nodes/select_list.rb
bmg-0.16.0.pre.rc1 lib/bmg/sql/nodes/select_list.rb
bmg-0.15.0 lib/bmg/sql/nodes/select_list.rb
bmg-0.14.6 lib/bmg/sql/nodes/select_list.rb
bmg-0.14.5 lib/bmg/sql/nodes/select_list.rb
bmg-0.14.4 lib/bmg/sql/nodes/select_list.rb
bmg-0.14.3 lib/bmg/sql/nodes/select_list.rb
bmg-0.14.2 lib/bmg/sql/nodes/select_list.rb