Sha256: cae28bf6c29cc590495a442935fb525104b558f4f54462cca26666fe974091cc
Contents?: true
Size: 882 Bytes
Versions: 1
Compression:
Stored size: 882 Bytes
Contents
# frozen_string_literal: true require 'action_dispatch' class MiniDefender::Rules::MimeTypes < MiniDefender::Rule def initialize(types) unless types.is_a?(Array) && types.all?{ |t| t.is_a?(String) } raise ArgumentError, 'Expected an array of strings.' end @types = types @file = false end def self.signature 'mime' end def self.make(args) unless args.length > 0 raise ArgumentError, 'Expected at least one MIME type.' end new(args.map(&:downcase).map(&:strip)) end def passes?(attribute, value, validator) @file = value.is_a?(ActionDispatch::Http::UploadedFile) @file && @types.include?(value.content_type) end def message(attribute, value, validator) if @file "The file should be one of the following types #{@types.to_sentence}" else 'The field should be a file.' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mini_defender-0.6.5 | lib/mini_defender/rules/mime_types.rb |