Sha256: 0e59b16bc861895dec16c6c304b02ea482a764b8995c191b7ec56afc926db311
Contents?: true
Size: 1.01 KB
Versions: 3
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true require "active_model/errors" require "active_record/errors" class Gutentag::TagValidations DEFAULTS = { :presence => true, :uniqueness => {:case_sensitive => false} }.freeze DATABASE_ERROR_CLASSES = lambda { classes = [] if ActiveRecord::VERSION::STRING.to_f > 4.0 classes << ActiveRecord::NoDatabaseError end classes << Mysql2::Error if defined?(::Mysql2) classes << PG::ConnectionBad if defined?(::PG) classes }.call.freeze def self.call(klass) new(klass).call end def initialize(klass) @klass = klass end def call klass.validates :name, validation_options.dup end private attr_reader :klass def add_length_validation? klass.table_exists? && limit.present? rescue *DATABASE_ERROR_CLASSES false end def limit @limit ||= klass.columns_hash["name"].limit end def validation_options return DEFAULTS unless add_length_validation? DEFAULTS.merge :length => {:maximum => limit} end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gutentag-2.3.2 | lib/gutentag/tag_validations.rb |
gutentag-2.3.1 | lib/gutentag/tag_validations.rb |
gutentag-2.3.0 | lib/gutentag/tag_validations.rb |