0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Validate parameters like strong-parameters(rails), and parameter formatter for search api
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.16
~> 5.0
~> 10.0
~> 0.16
 Project Readme

monban-params

rubygems: monban-params

Validate parameters like strong-parameters(rails)

require "monban/params"

Monban::Params.new.validate(params) do |v|
  v.hash(
    "name"   => v.combine([v.string, v.not_empty]),
    "token"  => v.combine([v.string, v.allow_empty(v.length(5))]),
    "int"    => v.integer,
    "bool"   => v.bool,
    "key"    => v.equal("KEY"),
    "string" => v.in(["param1","param2"]),
    "tel"    => v.combine([v.string, v.match(%r{\A[0-9]+([0-9-]*)\Z})]),
    "date"   => v.combine([v.string, v.match_date]),
    "number" => v.combine([v.string, v.match_integer]),
    "bool"   => v.combine([v.string, v.match_bool]),
    "data"   => v.not_nil,
    "hash"   => v.hash_strict(
      "array" => v.array(v.string),
      "keys"  => v.array_include(["key1","key2","key3"]),
    ),
  )
end
# => raise Monban::Params::Error if validation failed
Table of Contents
  • Requirements
  • Usage
  • License

Requirements

  • developed on ruby: 2.5.1

Usage

require "monban/params"

Monban::Params.new.validate(params) do |v|
  # argument `params` should be hash
  v.hash(
    # "key" should be String
    "key" => v.string,

    # "key" should be Integer
    "key" => v.integer,

    # "key" should be Boolean
    "key" => v.bool,


    # "key" should not be empty
    "key" => v.not_empty,

    # validate not_nil
    "key" => v.not_nil,


    # "key" should be equal to "value"
    "key" => v.equal("value"),

    # "key" should be equal to "value1" or "value2"
    "key" => v.in(["value1","value2"]),

    # "key" length should be 10,
    "key" => v.length(10),


    # "key" should match %r{example}
    "key" => v.match(%r{example}),

    # "key" should match integer (value is string, but seem to be a Integer)
    "key" => v.match_integer,

    # "key" downcase should be equal to "true" or "false"
    "key" => v.match_bool,

    # "key" should match date
    "key" => v.match_date,


    # "key" should be hash includes :key that value should be string
    "key" => v.hash(
      key: v.string,
    ),

    # "key" should be hash only includes :key that value should be string
    "key" => v.hash_strict(
      key: v.string,
    ),


    # "key" should be array that has string value
    "key" => v.array(v.string),

    # "key" should be array that has "value1" or "value2"
    "key" => v.array_include(["value1","value2"])


    # "key" should be match integer if value is not empty
    "key" => v.allow_empty(v.match_integer),

    # "key" validate string and not_empty
    "key" => v.combine([v.string, v.not_empty]),
  )
end
# => raise Monban::Params::Error if validation failed

Install

Add this line to your application's Gemfile:

gem 'monban-params'

And then execute:

$ bundle

Or install it yourself as:

$ gem install monban-params

License

monban/params is licensed under the MIT license.

Copyright © since 2018 shun@getto.systems