aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/sql/christener.rb
blob: 894f0303425c76964ab69093bfd00605ece5f828 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
module Arel
  module Sql
    class Christener
      def name_for(relation)
        @used_names ||= Hash.new(0)
        @relation_names ||= Hash.new do |h, k|
          @used_names[k.name] += 1
          h[k] = k.name + (@used_names[k.name] > 1 ? "_#{@used_names[k.name]}" : '')
        end
        @relation_names[relation]
      end
    end
  end
end