Sha256: 3336072af8bb6b7de228df9139634ad3f00139d6e660ee54cfa10883acee3146

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

module Grape
  module Validations
    class AllowBlankValidator < Base
      def validate_param!(attr_name, params)
        return if (options_key?(:value) ? @option[:value] : @option) || !params.is_a?(Hash)

        value = params[attr_name]
        value = value.strip if value.respond_to?(:strip)

        key_exists = params.key?(attr_name)

        should_validate = if @scope.root?
                            # root scope. validate if it's a required param. if it's optional, validate only if key exists in hash
                            @required || key_exists
                          else # nested scope
                            (@required && params.present?) ||
                              # optional param but key inside scoping element exists
                              (!@required && params.key?(attr_name))
                          end

        return unless should_validate

        return if false == value || value.present?

        raise Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: message(:blank)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
grape-0.17.0 lib/grape/validations/validators/allow_blank.rb