Class: Okapi::PersistentVariables
- Inherits:
-
Object
- Object
- Okapi::PersistentVariables
- Defined in:
- lib/okapi/cli/config.rb
Instance Method Summary collapse
- #delete_all!(list) ⇒ Object
- #filename ⇒ Object
-
#initialize(config) ⇒ PersistentVariables
constructor
A new instance of PersistentVariables.
- #load! ⇒ Object
- #merge(lines) ⇒ Object
- #read!(force: false) ⇒ Object
- #write! ⇒ Object
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 |
#filename ⇒ Object
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 |