Class: Olyx::Guardrails::Rails::PolicyFile

Inherits:
Object
  • Object
show all
Defined in:
lib/olyx/guardrails/rails/policy_file.rb

Overview

Safely loads direct or environment-keyed policy YAML without ERB.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, environment) ⇒ PolicyFile

Returns a new instance of PolicyFile.



16
17
18
19
# File 'lib/olyx/guardrails/rails/policy_file.rb', line 16

def initialize(path, environment)
  @path = path.to_s
  @environment = environment.to_s
end

Class Method Details

.load(path, environment:) ⇒ Object



12
13
14
# File 'lib/olyx/guardrails/rails/policy_file.rb', line 12

def self.load(path, environment:)
  new(path, environment).load
end

Instance Method Details

#loadObject



21
22
23
24
25
# File 'lib/olyx/guardrails/rails/policy_file.rb', line 21

def load
  Policy.from_h(PolicyDocument.new(@path, @environment).call)
rescue Errno::ENOENT, Errno::EACCES, Psych::Exception, ArgumentError => error
  raise PolicyFileError.call(error, @path)
end