class ExternalFileDataSource
Public Instance Methods
global_values()
click to toggle source
# File lib/tiller/data/external_file.rb, line 20 def global_values return @merged_values end
parse_file(filename)
click to toggle source
# File lib/tiller/data/external_file.rb, line 24 def parse_file(filename) raise("External file '#{filename}' could not be loaded") unless File.file?(filename) Tiller::log.debug("#{self} : Loading #{filename}") parse = nil # First try to load it as JSON if ! parse begin parse = JSON.parse(File.read(filename)) Tiller::log.debug("#{self} : #{filename} is in JSON format") rescue JSON::ParserError end end # Then YAML if ! parse begin parse = YAML.load(File.read(filename)) Tiller::log.debug("#{self} : #{filename} is in YAML format") rescue Psych::SyntaxError end end # Unknown / unparsable format, bail out... if ! parse raise("External file '#{filename}' is in an unknown format") end return parse end
setup()
click to toggle source
# File lib/tiller/data/external_file.rb, line 8 def setup @merged_values = Hash.new if Tiller::config.has_key?('external_files') files = Tiller::config['external_files'] files.each do |file| @merged_values.merge!(parse_file(file)) do |key, old, new| warn_merge(key, old, new, 'external file data', file) end end end end