class Bmg::Sql::Processor::Reorder

Public Class Methods

new(attr_list, builder) click to toggle source
Calls superclass method Bmg::Sql::Processor::new
# File lib/bmg/sql/processor/reorder.rb, line 6
def initialize(attr_list, builder)
  super(builder)
  @indexes = Hash[attr_list.to_a.map(&:to_s).each_with_index.to_a]
end

Public Instance Methods

on_select_list(sexpr) click to toggle source
# File lib/bmg/sql/processor/reorder.rb, line 11
def on_select_list(sexpr)
  reordered = sexpr.sexpr_body.sort{|i1,i2|
    @indexes[i1.as_name] <=> @indexes[i2.as_name]
  }
  reordered.unshift(:select_list)
end