Sha256: 6881a8c74881c033a15d68634057a10278ea98e634bc6b957d391696ed116984

Contents?: true

Size: 760 Bytes

Versions: 1

Compression:

Stored size: 760 Bytes

Contents

module MistralClient
  module Mixins
    module Definable
      # rubocop:disable Metrics/MethodLength
      def parse_definition(definition)
        return YAML.dump(definition) if definition.is_a?(Hash) || definition.is_a?(Array)

        definition = File.read(definition) if File.exist?(definition)
        # Called outside the if/else to validate the YAML.
        parsed = YAML.safe_load(definition, aliases: true)
        if defined? massage_definition
          massage_definition(parsed)
        else
          definition
        end
      rescue Psych::SyntaxError
        raise ConfigurationError,
              'Only filenames or raw or parsed strings of YAML are supported.'
      end
      # rubocop:enable Metrics/MethodLength
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mistral_client-3.0.0 lib/mistral_client/mixins/definable.rb