Sha256: 1680569fe3ee72290e29c33dd59506d21b85f0afecfd9bb36ce779e02125a6b5

Contents?: true

Size: 647 Bytes

Versions: 7

Compression:

Stored size: 647 Bytes

Contents

# frozen_string_literal: true

module Bridgetown
  class YAMLParser
    PERMITTED_CLASSES = [Date, Time, Rb].freeze

    class << self
      def load_file(filename, **kwargs)
        YAML.safe_load_file filename, **merge_permitted_classes(kwargs)
      end

      def load(yaml, **kwargs)
        YAML.safe_load yaml, **merge_permitted_classes(kwargs)
      end

      private

      def merge_permitted_classes(kwargs)
        if kwargs.key?(:permitted_classes)
          kwargs[:permitted_classes] |= PERMITTED_CLASSES
        else
          kwargs[:permitted_classes] = PERMITTED_CLASSES
        end

        kwargs
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
bridgetown-core-2.0.0.beta4 lib/bridgetown-core/yaml_parser.rb
bridgetown-core-2.0.0.beta3 lib/bridgetown-core/yaml_parser.rb
bridgetown-core-2.0.0.beta2 lib/bridgetown-core/yaml_parser.rb
bridgetown-core-2.0.0.beta1 lib/bridgetown-core/yaml_parser.rb
bridgetown-core-1.3.4 lib/bridgetown-core/yaml_parser.rb
bridgetown-core-1.3.3 lib/bridgetown-core/yaml_parser.rb
bridgetown-core-1.3.2 lib/bridgetown-core/yaml_parser.rb