Class: RightConf::OverridesLanguage

Inherits:
Object
  • Object
show all
Defined in:
lib/rconf/overrides_language.rb

Overview

Defines ~/.rconf_overrides file DSL

Constant Summary collapse

OVERRIDES_FILE =

Path to overrides file

File.join(ENV['HOME'], '.rconf_overrides')
NIL_LITERAL =

Lexical token used to indicate that the value of an overridden configurator attribute should literally be nil, not the string “nil” or “none”.

/^(nil|none)$/

Class Method Summary collapse

Class Method Details

.loadObject

Load overrides from file

Return

overrides(Hash)

Loaded overrides



41
42
43
44
45
# File 'lib/rconf/overrides_language.rb', line 41

def self.load
  return @overrides if @overrides
  return {} unless File.readable?(OVERRIDES_FILE)
  @overrides = self.parse(IO.read(OVERRIDES_FILE)) || {}
end

.overrides_for(key) ⇒ Object

Return override for given configurator setting if any

Parameters

key(String)

Configurator key

Return

value(String||Nil)

Override values if any, nil otherwise



32
33
34
35
# File 'lib/rconf/overrides_language.rb', line 32

def self.overrides_for(key)
  self.load unless @overrides
  @overrides && @overrides[key] || {}
end

.parse_errorObject

Return parse errors from last call to ‘parse’ if any



63
64
65
# File 'lib/rconf/overrides_language.rb', line 63

def self.parse_error
  @parse_error
end

.saveObject

Persist overrides to overrides file

Return

true

Always return true



51
52
53
54
55
56
57
58
59
60
# File 'lib/rconf/overrides_language.rb', line 51

def self.save
  File.open(OVERRIDES_FILE, 'w') do |f|
    @overrides.each do |key, settings|
      settings.each do |name, value|
        f.puts "#{key}.#{name}=#{value}"
      end
    end
  end
  true
end