Class: Conjur::Policy::YAML::Loader

Inherits:
Object
  • Object
show all
Defined in:
lib/conjur/policy/yaml/loader.rb

Class Method Summary collapse

Class Method Details

.load(yaml, filename = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/conjur/policy/yaml/loader.rb', line 8

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

.load_file(filename) ⇒ Object



32
33
34
# File 'lib/conjur/policy/yaml/loader.rb', line 32

def load_file filename
  load File.read(filename), filename
end