Sha256: 320adc78b84c7453548026b7df9037e0e145d9202fee5ced757e34c14a74baed

Contents?: true

Size: 593 Bytes

Versions: 2

Compression:

Stored size: 593 Bytes

Contents

module Piglet
  class Order # :nodoc:
    include Relation
    
    def initialize(relation, fields, options)
      options ||= {}
      @sources, @parallel = [relation], options[:parallel]
      @fields = fields.is_a?(Enumerable) ? fields : [fields]
    end
    
    def to_s
      "ORDER #{@sources.first.alias} BY #{field_strings}"
    end
    
  private
  
    def field_strings
      @fields.map { |f| field_string(f) }.join(', ')
    end
    
    def field_string(f)
      if f.is_a?(Enumerable)
        "#{f[0]} #{f[1].to_s.upcase}"
      else
        f.to_s
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
piglet-0.1.1 lib/piglet/order.rb
piglet-0.1.0 lib/piglet/order.rb