Sha256: 1c8be5570b6680d25863a8f48c347e2bf592bd88de73a6aab0a926f2ce91553c

Contents?: true

Size: 725 Bytes

Versions: 4

Compression:

Stored size: 725 Bytes

Contents

module Ridgepole
  class DefaultsLimit
    DEFAULTS_LIMITS = {
      mysql2: {
        boolean: 1,
        integer: 4,
        bigint: 8,
        float: 24,
        string: 255,
        text: 65_535,
        binary: 65_535
      }
    }.freeze

    class << self
      def default_limit(column_type, options)
        defaults = DEFAULTS_LIMITS[adapter] || {}
        option_key = :"default_#{column_type}_limit"
        default_limit = options[option_key] || defaults[column_type] || 0
        default_limit.zero? ? nil : default_limit
      end

      def adapter
        ActiveRecord::Base.connection_config.fetch(:adapter).to_sym
      rescue ActiveRecord::ConnectionNotEstablished
        nil
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ridgepole-0.7.4 lib/ridgepole/default_limit.rb
ridgepole-0.7.3 lib/ridgepole/default_limit.rb
ridgepole-0.7.3.beta3 lib/ridgepole/default_limit.rb
ridgepole-0.7.3.beta2 lib/ridgepole/default_limit.rb