Sha256: f0017eef3cabbe4914259d7c1c0fcb5b2fd48c5139cc76cf3a52f3660eb94759
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
require 'conjur-asset-policy' module Conjur module Policy module YAML class Loader class << self def load yaml, filename = nil dirname = if filename File.dirname(filename) else '.' end parser = Psych::Parser.new(handler = Handler.new) handler.filename = filename handler.parser = parser begin parser.parse(yaml) rescue handler.log { $!.message } handler.log { $!.backtrace.join(" \n") } raise Invalid.new($!.message || "(no message)", filename, parser.mark) end records = handler.result parse_includes records, dirname records end def load_file filename load File.read(filename), filename end protected def parse_includes records, dirname records.each_with_index do |record, idx| if record.is_a?(Array) parse_includes record, dirname elsif record.is_a?(Types::Policy) parse_includes record.body, dirname elsif record.is_a?(Types::Include) included = load File.read(File.expand_path(record.file, dirname)), record.file records[idx..idx] = included end end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
conjur-asset-policy-0.13.0 | lib/conjur/policy/yaml/loader.rb |