Sha256: df45c9b320d45d05b1b3fb01fb6e6d944ee91eff6dc00a9308868e8676aedf47

Contents?: true

Size: 757 Bytes

Versions: 23

Compression:

Stored size: 757 Bytes

Contents

# frozen_string_literal: true

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.adapter_name.downcase.to_sym
      rescue ActiveRecord::ConnectionNotEstablished
        nil
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
ridgepole-2.0.0.beta lib/ridgepole/default_limit.rb
ridgepole-1.2.1 lib/ridgepole/default_limit.rb
ridgepole-1.2.0 lib/ridgepole/default_limit.rb
ridgepole-1.1.0 lib/ridgepole/default_limit.rb
ridgepole-1.0.7 lib/ridgepole/default_limit.rb
ridgepole-1.0.6 lib/ridgepole/default_limit.rb
ridgepole-1.0.5 lib/ridgepole/default_limit.rb
ridgepole-1.0.4 lib/ridgepole/default_limit.rb
ridgepole-1.0.3 lib/ridgepole/default_limit.rb
ridgepole-1.0.2 lib/ridgepole/default_limit.rb
ridgepole-1.0.2.beta lib/ridgepole/default_limit.rb
ridgepole-1.0.1 lib/ridgepole/default_limit.rb
ridgepole-1.0.0 lib/ridgepole/default_limit.rb
ridgepole-0.9.6 lib/ridgepole/default_limit.rb
ridgepole-0.9.5 lib/ridgepole/default_limit.rb
ridgepole-0.9.4 lib/ridgepole/default_limit.rb
ridgepole-0.9.3 lib/ridgepole/default_limit.rb
ridgepole-0.9.2 lib/ridgepole/default_limit.rb
ridgepole-0.9.1 lib/ridgepole/default_limit.rb
ridgepole-0.9.0 lib/ridgepole/default_limit.rb