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

livr2

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

livr2

  • 2.0.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

LIVR Validator

LIVR.Validator - Lightweight validator supporting Language Independent Validation Rules Specification (LIVR)

SYNOPSIS

Common usage:

gem 'livr2'
require 'livr'

validator = LIVR::Validator.new({
    'name'      => 'required',
    'email'     => [ 'required', 'email' ],
    'gender'    => { 'one_of' => ['male', 'female'] },
    'phone'     => { 'max_length' => 10 },
    'password'  => [ 'required', {min_length : 10} ],
    'password2' => { 'equal_to_field' => 'password' }
});

valid_data = validator.validate(user_data)

if (valid_data) {
    save_user(validData)
} else {
    handle_errors(validator.get_errors)
}

You can use modifiers separately or can combine them with validation:

var validator = LIVR::Validator.new({
    email: [ 'required', 'trim', 'email', 'to_lc' ]
});

Feel free to register your own rules:

You can use aliases(prefferable, syntax covered by the specification) for a lot of cases:

var validator = LIVR::Validator.new({
    password: ['required', 'strong_password']
});

validator.register_aliased_rule({
    name: 'strong_password',
    rules: {min_length: 6},
    error: 'WEAK_PASSWORD'
});

Or you can write more sophisticated rules directly:

validator = LIVR::Validator.new({
    password: ['required', 'strong_password']
})

class StrongPassword
    def call(value, *other_args)
        # We already have "required" rule to check that the value is present
        return if value == nil || value == ""
        if value.length < 6
            return 'WEAK_PASSWORD'
        end
    end
end

DESCRIPTION

This ruby gem is an implementation of LIVR Specification. See 'LIVR Specification' for detailed documentation and list of supported rules.

Features:

  • Rules are declarative and language independent
  • Any number of rules for each field
  • Return together errors for all fields
  • Excludes all fields that do not have validation rules described
  • Has possibility to validatate complex hierarchical structures
  • Easy to describe and undersand rules
  • Returns understandable error codes(not error messages)
  • Easy to add own rules
  • Rules are be able to change results output ("trim", "nested_object", for example)
  • Multipurpose (user input validation, configs validation, contracts programming etc)

INSTALL

as a gem
gem install livr2
in rails

Add to Gemfile

gem "livr2"

AUTHORS

Ruby implementation

Vitaliy Yanchuk (@fuksito)

Idea and specification

Viktor Turskyi (@koorchik)

FAQs

Package last updated on 29 Dec 2017

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