Sha256: cf2dd0d64be4a4ca0a1a6d20cc9057932e43be45aa7a1ab5a0ad16900f21081d

Contents?: true

Size: 661 Bytes

Versions: 5

Compression:

Stored size: 661 Bytes

Contents

module Piglet
  module Relation
    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
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
piglet-0.2.4 lib/piglet/relation/order.rb
piglet-0.2.3 lib/piglet/relation/order.rb
piglet-0.2.2 lib/piglet/relation/order.rb
piglet-0.2.0 lib/piglet/relation/order.rb
piglet-0.1.2 lib/piglet/relation/order.rb