class Remenv::IO

Attributes

adapter[R]

Public Class Methods

new(adapter) click to toggle source
# File lib/remenv/io.rb, line 5
def initialize(adapter)
  @adapter = adapter
end

Public Instance Methods

dump(filename) click to toggle source
# File lib/remenv/io.rb, line 9
def dump(filename)
  write(File.open(filename, 'w+'))
end
load(filename) click to toggle source
# File lib/remenv/io.rb, line 13
def load(filename)
  adapter.clear!

  File.open(filename, 'r') do |file|
    read(file)
  end
end
read(handle) click to toggle source
# File lib/remenv/io.rb, line 21
def read(handle)
  pairs = handle.each_with_object({}) do |line, hash|
    raw_key, raw_val  = line.split(/\s*=\s*/)

    next if raw_key.nil? || raw_val.nil?

    key = raw_key.sub(/^export /i, '')
    val = raw_val.strip.gsub(/'|"/, '')

    hash[key] = val
  end

  adapter.set(pairs)
end
write(handle, leader: 'export') click to toggle source
# File lib/remenv/io.rb, line 36
def write(handle, leader: 'export')
  handle.tap do |io|
    adapter.show.each do |key, value|
      io << %(#{leader} #{key}="#{value}"\n)
    end

    io.rewind
  end
end