Sha256: 005de825428f130ea55f06fe11d9ab76ca7dced2f2e03fdc340dec266b94dd5d

Contents?: true

Size: 759 Bytes

Versions: 1

Compression:

Stored size: 759 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, [], [], 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-2.0.0 lib/mistral_client/mixins/definable.rb