Sha256: f06a88af052179630d590d553d6064d121b4b5f7aee4d8c53c2d1219e39debdb

Contents?: true

Size: 648 Bytes

Versions: 12

Compression:

Stored size: 648 Bytes

Contents

# frozen_string_literal: true

class MiniDefender::Rules::String < MiniDefender::Rule
  def initialize(mode = 'strict')
    @mode = mode
  end

  def self.signature
    'string'
  end

  def self.make(args)
    new(args[0] || 'strict')
  end

  def coerce(value)
    value.to_s
  end

  def passes?(attribute, value, validator)
    if @mode == 'relaxed'
      value.is_a?(String) ||
        value.is_a?(Integer) ||
        value.is_a?(Float) ||
        value.is_a?(FalseClass) ||
        value.is_a?(TrueClass)
    else
      value.is_a?(String)
    end
  end

  def message(attribute, value, validator)
    "The value must be a string."
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mini_defender-0.6.8 lib/mini_defender/rules/string.rb
mini_defender-0.6.7 lib/mini_defender/rules/string.rb
mini_defender-0.6.5 lib/mini_defender/rules/string.rb
mini_defender-0.6.4 lib/mini_defender/rules/string.rb
mini_defender-0.6.3 lib/mini_defender/rules/string.rb
mini_defender-0.6.2 lib/mini_defender/rules/string.rb
mini_defender-0.6.1 lib/mini_defender/rules/string.rb
mini_defender-0.6.0 lib/mini_defender/rules/string.rb
mini_defender-0.5.8 lib/mini_defender/rules/string.rb
mini_defender-0.5.7 lib/mini_defender/rules/string.rb
mini_defender-0.5.6 lib/mini_defender/rules/string.rb
mini_defender-0.5.5 lib/mini_defender/rules/string.rb