require "erb" require "yaml" module DataAccessible def self.include_data(filename) ERB.new(IO.read("#{filename}")).result end module DataLoader module_function def process_erb(text) ERB.new(text).result end def load_from_file(file) contents = File.read(file) evaluated_contents = process_erb(contents) YAML.load(evaluated_contents) || {} end def load_source(data_source) case data_source when Hash data_source when String load_from_file(data_source) when Symbol load_from_file("#{DataAccessible.data_path}/#{data_source}.yml") else raise("Invalid data source provided: #{data_source}") end end end end