]> source.dussan.org Git - sonarqube.git/blob
e310a30d92f4d58e1368f7f38ec1d7e3fe30323a
[sonarqube.git] /
1 # AR's 2.2 version of this method is sufficient, but we need it for
2 # older versions
3 if ActiveRecord::VERSION::MAJOR <= 2 && ActiveRecord::VERSION::MINOR < 2
4   module ActiveRecord
5     module ConnectionAdapters # :nodoc:
6       module SchemaStatements
7         # Convert the speficied column type to a SQL string.
8         def type_to_sql(type, limit = nil, precision = nil, scale = nil)
9           if native = native_database_types[type]
10             column_type_sql = (native.is_a?(Hash) ? native[:name] : native).dup
11
12             if type == :decimal # ignore limit, use precision and scale
13               scale ||= native[:scale]
14
15               if precision ||= native[:precision]
16                 if scale
17                   column_type_sql << "(#{precision},#{scale})"
18                 else
19                   column_type_sql << "(#{precision})"
20                 end
21               elsif scale
22                 raise ArgumentError, "Error adding decimal column: precision cannot be empty if scale if specified"
23               end
24
25             elsif limit ||= native.is_a?(Hash) && native[:limit]
26               column_type_sql << "(#{limit})"
27             end
28
29             column_type_sql
30           else
31             type
32           end
33         end
34       end
35     end
36   end
37 end
38
39 module ActiveRecord
40   module ConnectionAdapters
41     module CompatibilityMethods
42       def self.needed?(base)
43         !base.instance_methods.include?("quote_table_name")
44       end
45
46       def quote_table_name(name)
47         quote_column_name(name)
48       end
49     end
50   end
51 end