Sha256: 36f01ed4b03007624169ab4dbd662655d27ec651d973f9323017bc65c82854d6

Contents?: true

Size: 634 Bytes

Versions: 4

Compression:

Stored size: 634 Bytes

Contents

# frozen_string_literal: true

module Leftovers
  class ConfigLoader
    class RegexpSchema < StringSchema
      class << self
        def validate(node)
          validate_string(node) && validate_regexp(node)
        end

        def validate_string(node)
          error(node, 'be a string with a valid ruby regexp') unless node.string?

          node.valid?
        end

        def validate_regexp(node)
          /#{node.to_ruby}/
        rescue ::RegexpError, ::ArgumentError => e
          error(node, "be a string with a valid ruby regexp (#{e.message})")
        else
          true
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
leftovers-0.12.2 lib/leftovers/config_loader/regexp_schema.rb
leftovers-0.12.1 lib/leftovers/config_loader/regexp_schema.rb
leftovers-0.12.0 lib/leftovers/config_loader/regexp_schema.rb
leftovers-0.11.2 lib/leftovers/config_loader/regexp_schema.rb