Module: LuckyParam
- Defined in:
- lib/lucky_param.rb,
lib/lucky_param/checker.rb,
lib/lucky_param/version.rb
Overview
An easy and extendable controller validator helper for Rails.
Defined Under Namespace
Classes: ParamFormatError, ParamMissError, UnknownCheckerError
Constant Summary collapse
- CHECKER =
{ NONE: [ ->(params, column) { true } ], String: [ ->(params, column) { params[column].is_a?(String) }, "must be valid String" ], Boolean: [ ->(params, column) { %w[true false 1 0].include?(params[column].to_s) }, "must be one of [true false 1 0]" ], Integer: [ ->(params, column) { params[column].to_s =~ /\A(0|[1-9]\d*)\Z$/ }, "must be valid Integer" ], Float: [ ->(params, column) { params[column].to_s =~ /\A^[-+]?[0-9]+([,.][0-9]+)?\Z$/ }, "must be valid Float" ], Number: [ lambda do |params, column| begin Float(params[column]) rescue StandardError false end end ], Email: [ ->(params, column) { params[column].to_s =~ /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ }, "must be valid Email" ], Timestamp: [ ->(params, column) { params[column].to_s =~ /^(\+|\-)?\d+$/ }, "must be valid Timestamp" ], ArrayJSON: [ lambda do |params, column| begin params[column] = JSON.parse(params[column]) if params[column].is_a?(String) params[column].is_a?(Array) rescue StandardError false end end, "must be valid Array JSON" ], HashJSON: [ lambda do |params, column| begin params[column] = JSON.parse(params[column]) if params[column].is_a?(String) params[column].respond_to?(:to_hash) rescue StandardError false end end, "must be valid Hash JSON" ] }.freeze
- VERSION =
"1.0.0"
Instance Method Summary collapse
Instance Method Details
#optional(column, checker_type) ⇒ Object
20 21 22 23 24 |
# File 'lib/lucky_param.rb', line 20 def optional(column, checker_type) return if params[column].blank? check_param_format(column, checker_type) end |
#required(column, checker_type) ⇒ Object
14 15 16 17 18 |
# File 'lib/lucky_param.rb', line 14 def required(column, checker_type) raise ParamMissError.new("Missing Params: #{column}") if params[column].blank? check_param_format(column, checker_type) end |