Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

validates_lengths_from_database

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

validates_lengths_from_database

  • 0.8.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

{Build Status}[http://travis-ci.org/rubiety/validates_lengths_from_database] {Dependency Status}[https://gemnasium.com/rubiety/validates_lengths_from_database] {}[https://codeclimate.com/github/rubiety/validates_lengths_from_database]

== Validates Lengths from Database

Few people add length validations to fields in their database, and when saving such fields that have exhausted their length, an SQL error occurs. This gem introspects your table schema for maximum lengths on string and text fields and automatically adds length validations to the model.

== Requirements

Due to issues maintaining backwards compatibility, as of v0.8.0 validates_lengths_from_database requires ruby 2 or higher. If you are still using 1.9, please use the v0.7.0 release.

== Installation

Include the gem using bundler in your Gemfile:

gem "validates_lengths_from_database"

== Usage

In your model you can activate validations:

class Post < ActiveRecord::Base validates_lengths_from_database end

It also supports filter-style :only and :except options:

class Post < ActiveRecord::Base validates_lengths_from_database :only => [:title, :contents] end

class Post < ActiveRecord::Base validates_lengths_from_database :except => [:other_field] end

If you'd rather specify the limits explicitly instead of pulling them from the database, you can set it:

class Post < ActiveRecord::Base validates_lengths_from_database :limit => 255 end

Or to set the limit differently for string (VARCHAR) and (TEXT) columns:

class Post < ActiveRecord::Base validates_lengths_from_database :limit => {:string => 255, :text => 4092} end

Since v0.5.2, it's possible to use the validate_lengths_from_database on an abstract parent (without a table), such as +ApplicationRecord+ or ActiveRecord::Base.

class ApplicationRecord < ActiveRecord::Base self.abstract_class = true validates_lengths_from_database :limit => 255 end

This will use the validations with default options (from parent)

class Post < ApplicationRecord end

This will use the validations, with overriding the default options (the limit will not be applied)

class User < ApplicationRecord validates_lengths_from_database :only => [:name] end

This will use the validations, using the default options + adding some class specific customizations

class Comment < ApplicationRecord validate_lengths_from_database_options[:only] << :name end

== Running Tests

This gem uses appraisal to test with different versions of the dependencies. See Appraisal first for which versions are tested.

Just the gems locked in Gemfile.lock

$ rake test

All of the Appraisals:

$ appraisal install $ appraisal rake test

FAQs

Package last updated on 30 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc