Skip to content

Instantly share code, notes, and snippets.

@MikeSilvis
Created July 23, 2012 23:50
Show Gist options
  • Save MikeSilvis/3166988 to your computer and use it in GitHub Desktop.
Save MikeSilvis/3166988 to your computer and use it in GitHub Desktop.
class YamlParser
require 'yaml'
def initialize(file)
YamlParser.access_methods(YAML.load(file))
end
def self.access_methods(data)
data.each do |key, value|
YamlParser.define_method_for_key(key,value)
end
end
def self.define_method_for_key(key, value)
define_method key do
YamlParser.send("handle_#{value.class.to_s.downcase}", value)
end
end
def self.handle_array(data)
data.each do |value|
value.keys.each do |key|
YamlParser.define_method_for_key(key, value[key])
end
end
end
def self.handle_string(value)
value
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment