Class: Gondler::Env

Inherits:
Object
  • Object
show all
Defined in:
lib/gondler/env.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEnv

Returns a new instance of Env.



22
23
24
# File 'lib/gondler/env.rb', line 22

def initialize
  reload!
end

Class Method Details

.accessor(name, source) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/gondler/env.rb', line 4

def accessor(name, source)
  original_value = ENV[source.to_s]
  define_method("orig_#{name}") do
    original_value
  end

  define_method(name) do
    @environments[source]
  end

  define_method("#{name}=") do |val|
    val = val.to_s
    ENV[source.to_s] = val
    @environments[source] = val
  end
end

Instance Method Details

#reload!Object



26
27
28
29
30
31
32
# File 'lib/gondler/env.rb', line 26

def reload!
  @environments = {}
  `go env`.each_line do |define|
    matched = define.match(/\A([A-Z]+)="(.*)"\Z/)
    @environments[matched[1].to_sym] = matched[2] if matched
  end
end