Sha256: c1fe9f0545a61004d5560673f1606e64cd6fa2098dd18a9f5c3c09e58271ed3a
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
require "auto_data/version" require "yaml" module AutoData class Parse #TODO: Make all methods private def initialize() @gvar=ENV['AUTO_DATA_PATH'].to_s if @gvar.length == 0 raise Exception.new("Variable is not defined : ENV[\'AUTO_DATA_PATH\']") end @files = Hash.new @file_count=0 Dir[ @gvar + '/**/*.yml'].each { |file| begin @files['fullpath_' + @file_count.to_s]=file @files['filename_' + @file_count.to_s]=file.split('/').last @files['name_' + @file_count.to_s]=file.split('/').last.to_s.split('.').first @file_count +=1 end} end def load(file) if @files.value?(file).nil? raise Exception.new("File name is not found #{file}") end key_value= @files.key(file.to_s).to_s key_2find = 'fullpath_' + key_value.split('_').last local_file_path =nil @files.each_pair {|key,value| begin if key == key_2find local_file_path = value break end end} @file = begin YAML.load_file(local_file_path) rescue Exception => e puts "Could not parse auto objects files: #{e.message}" raise Exception.new('Could not parse auto objects files: #{e.message}') end end def method_missing (filename, *args) fileinfo= args[0].to_s.split('.') if fileinfo.size !=2 raise Exception.new('Malformed structure, must be <AutoData.filename(\'key.subkey\')> ') end key= fileinfo[0] subkey= fileinfo[1] load(filename) result= begin @file["#{key}"]["#{subkey}"].nil? ? 'No Value Found' : @file["#{key}"]["#{subkey}"] rescue NoMethodError => e puts "Couldn't find key #{subkey}.#{subkey} #{e.message}" end result end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
auto_data-0.1.1 | lib/auto_data.rb |