Class: Okapi::PersistentVariables

Inherits:
Object
  • Object
show all
Defined in:
lib/okapi/cli/config.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PersistentVariables

Returns a new instance of PersistentVariables.



50
51
52
53
# File 'lib/okapi/cli/config.rb', line 50

def initialize(config)
  @config = config
  @variables = {}
end

Instance Method Details

#delete_all!(list) ⇒ Object



82
83
84
85
86
# File 'lib/okapi/cli/config.rb', line 82

def delete_all!(list)
  original = @variables
  @variables = @variables.reject { |k| list.include? k }
  original.length - @variables.length
end

#filenameObject



55
56
57
# File 'lib/okapi/cli/config.rb', line 55

def filename
  @config.filename
end

#load!Object



71
72
73
74
75
76
# File 'lib/okapi/cli/config.rb', line 71

def load!
  read!
  @variables.each_pair do |k,v|
    ENV[k] = v
  end
end

#merge(lines) ⇒ Object



78
79
80
# File 'lib/okapi/cli/config.rb', line 78

def merge(lines)
  @variables = @variables.merge lines.map { |l| l.split("=") }.to_h
end

#read!(force: false) ⇒ Object



59
60
61
62
# File 'lib/okapi/cli/config.rb', line 59

def read!(force: false)
  lines = @config.read!(force: force).split(/\n+/).map(&:strip).reject(&:empty?)
  @variables = lines.map { |l| l.split("=") }.to_h
end

#write!Object



64
65
66
67
68
69
# File 'lib/okapi/cli/config.rb', line 64

def write!
  @config.write! do |file|
    file.write(@variables.entries.map { |entry| "#{entry.first}=#{entry.last}"}.join("\n"))
    file.write("\n")
  end
end