Module: Permafrost::ClassMethods

Included in:
Permafrost
Defined in:
lib/permafrost.rb

Instance Method Summary collapse

Instance Method Details

#freeze(env = nil, &block) ⇒ Object

rubocop:disable Metrics/MethodLength



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/permafrost.rb', line 6

def freeze(env = nil, &block) # rubocop:disable Metrics/MethodLength
  reader, writer = IO.pipe
  pid = Process.fork

  if pid.nil?
    reader.close

    freeze_child(writer, env, &block)
  else
    writer.close

    freeze_parent(reader, pid)
  end
ensure
  reader.close
  writer.close
end

#merge(env, &block) ⇒ Object



24
25
26
27
28
# File 'lib/permafrost.rb', line 24

def merge(env, &block)
  freeze_env = ENV.to_h.merge(env)

  freeze(freeze_env, &block)
end