Sha256: 565f1e25dc41533c124a1bd11c60f8f31af478a9aef0ed727d24b3403f90af36

Contents?: true

Size: 727 Bytes

Versions: 7

Compression:

Stored size: 727 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

7 entries across 7 versions & 1 rubygems

Version Path
ridgepole-0.8.0.rc1 lib/ridgepole/default_limit.rb
ridgepole-0.7.7 lib/ridgepole/default_limit.rb
ridgepole-0.7.6 lib/ridgepole/default_limit.rb
ridgepole-0.7.5 lib/ridgepole/default_limit.rb
ridgepole-0.7.5.beta3 lib/ridgepole/default_limit.rb
ridgepole-0.7.5.beta2 lib/ridgepole/default_limit.rb
ridgepole-0.7.5.beta lib/ridgepole/default_limit.rb