Class: MyPKI::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/mypki/core.rb

Class Method Summary collapse

Class Method Details

.new(**options) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/mypki/core.rb', line 40

def self.new **options
  if Instance.key.nil? or Instance.cert.nil?
    Configuration.new ENV['MYPKI_CONFIG']||'~/.mypki', **options
  end

  context = Instance.clone
  
  context.instance_eval do
    # make immutable attributes immutable
    @immutable_attributes.each do |getter|
      meta_def("#{getter}=") {|*a,&b| send getter}
    end
    
    # don't allow set_params to bypass setters
    meta_def :set_params do |params|
      params.each {|k,v| send "#{k}=", v}
    end
  end
  
  context
end