Sha256: e66f49b48d298bc03781fb08dab4dd5d52defaab60230bcfb49ffb1968627e6f

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

module ActiveRecord
  module ConnectionAdapters # :nodoc:
    module SchemaStatements
      alias __type_to_sql_enum type_to_sql

      # Add enumeration support for schema statement creation. This
      # will have to be adapted for every adapter if the type requires
      # anything by a list of allowed values. The overrides the standard
      # type_to_sql method and chains back to the default. This could
      # be done on a per adapter basis, but is generalized here.
      #
      # will generate enum('a', 'b', 'c') for :limit => [:a, :b, :c]
      def type_to_sql(type, limit = nil, precision = nil, scale = nil) #:nodoc:
        if type == :enum
          native = native_database_types[type]
          column_type_sql = !native.blank? && native[:name] ? native[:name] : 'enum'

          column_type_sql << "(#{limit.map { |v| quote(v) }.join(',')})"
          column_type_sql
        else
          # Edge rails fallback for Rails 1.1.6. We can remove the
          # rescue once everyone has upgraded to 1.2.
          begin
            __type_to_sql_enum(type, limit, precision, scale)
          rescue ArgumentError
            __type_to_sql_enum(type, limit)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
enum_column-0.1.6 lib/enum_column/schema_statements.rb
enum_column-0.1.5 lib/enum_column/schema_statements.rb