New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

validation_reflection

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

validation_reflection

  • 1.0.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Validation Reflection

Version 1.0.0, 2010-10-08

This plugin adds reflective access to validations

  • ModelClass.reflect_on_all_validations
  • ModelClass.reflect_on_validations_for(:property)

Both of these methods return arrays containing instances of ActiveRecord::Reflection::MacroReflection. For example

class Person < ActiveRecord::Base validates_presence_of :name validates_numericality_of :size, :only_integer => true end

refl = Person.reflect_on_validations_for(:name) refl[0].macro

=> :validates_presence_of

refl = Person.reflect_on_validations_for(:size) refl[0].macro

=> :validates_numericality_of

refl[0].options

=> { :only_integer => true }

== Customization

Usually, all the standard Rails validations are reflected. You can change this -- add or remove validations -- in an application-specific initializer,

config/initializers/validation_reflection.rb

In that file change config.reflected_validations to suit your needs. Say, you have a custom validation for email addresses, validates_as_email, then you could add it like this

config.reflected_validations << :validates_as_email

If validates_as_email is implemented in terms of other validation methods, these validations are added to the reflection metadata, too. As that may not be what you want, you can disable reflection for these subordinate validations

config.reflected_validations << { :method => :validates_as_email, :ignore_subvalidations => true }

You have to make sure that all reflected validations are defined before this plugin is loaded. To this end, you may have to explicitly set the load order of plugins somewhere in the environment configuration using

config.plugins = [...]

== Special Thanks

To Michael Schuerig, michael@schuerig.de for his initial concept and implementation of this plugin.

== License

ValidationReflection uses the MIT license. Please check the LICENSE file for more details.

FAQs

Package last updated on 08 Oct 2010

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