Sha256: cf00b28843fd73514149c925c1d771fe453d969863aa59bced28583bc976e50f

Contents?: true

Size: 650 Bytes

Versions: 4

Compression:

Stored size: 650 Bytes

Contents

# frozen_string_literal: true

module Leftovers
  class ConfigLoader
    class ValueOrArraySchema < ArraySchema
      def validate(node)
        if node.array?
          validate_length(node) && validate_values(node)
        else
          validate_or_schema(node)
        end
      end

      def to_ruby(node)
        if node.array?
          Leftovers.unwrap_array(super)
        else
          value_schema.to_ruby(node)
        end
      end

      private

      def validate_or_schema(node)
        value_schema.validate(node)
        return true if node.valid?

        node.error += ' or an array'

        false
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
leftovers-0.11.1 lib/leftovers/config_loader/value_or_array_schema.rb
leftovers-0.11.0 lib/leftovers/config_loader/value_or_array_schema.rb
leftovers-0.10.0 lib/leftovers/config_loader/value_or_array_schema.rb
leftovers-0.9.0 lib/leftovers/config_loader/value_or_array_schema.rb