class Climatic::ConfigLayers::GenericLayer

Public Class Methods

new() click to toggle source
# File lib/climatic/config_layers/generic_layer.rb, line 12
def initialize
  rescan
end

Public Instance Methods

possible_config_files(places=possible_sources) click to toggle source
# File lib/climatic/config_layers/generic_layer.rb, line 16
def possible_config_files(places=possible_sources)
  result = {}
  already_found = false
  browse_files(places) do |file|
    exists = File.readable?(file)
    used = false
    already_found = used = true if exists and not already_found
    result[file] = {
        exists: exists,
        used: used,
        layer: [name]
    }
  end
  result
end
rescan() click to toggle source
# File lib/climatic/config_layers/generic_layer.rb, line 8
def rescan
  set_config_file possible_sources
end

Private Instance Methods

browse_files(places) { |file| ... } click to toggle source
# File lib/climatic/config_layers/generic_layer.rb, line 44
def browse_files(places, &block)
  places.each do |path_array|
    begin
      potential_config_file = File.join(path_array.map { |path_part| perform_substitutions path_part })
    rescue
      # do nothing
    end
    return unless potential_config_file
    EXTENSIONS.each do |extension|
      file  = potential_config_file.gsub '##EXTENSION##', extension
      yield file
    end
  end
end
set_config_file(places) click to toggle source
# File lib/climatic/config_layers/generic_layer.rb, line 34
def set_config_file(places)
  @file_name = nil
  browse_files(places) do |file|
    if File.readable? file
      @file_name = file
      return @file_name
    end
  end
end