Sha256: e0df3f261f9482a1bde8805b71cb185b42a25512394da77aa2049cf9a8b893e4

Contents?: true

Size: 652 Bytes

Versions: 4

Compression:

Stored size: 652 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.12.2 lib/leftovers/config_loader/value_or_array_schema.rb
leftovers-0.12.1 lib/leftovers/config_loader/value_or_array_schema.rb
leftovers-0.12.0 lib/leftovers/config_loader/value_or_array_schema.rb
leftovers-0.11.2 lib/leftovers/config_loader/value_or_array_schema.rb