When working with Ruby, the library/class I use and abuse most often is YAML. YAML stands for YAML Ain’t Markup Language and it is a versatile human friendly data serialization format. It is easier to use and understand than JSON.
A YAML file is much like a Java properties file in that is used to store name/value pairs. YAML is more powerful than simple Java properties file but that is a good way to think of it to begin with. Here is a example of a simple YAM file used to store user name and password.
user: juixe-username pass: juixe-password
The above YAML snippet can go into a file, typically with a yml extension. To load the YAML file in ruby you can do it in with following Ruby code.
require 'yaml' yml = YAML::load(File.open('userinfo.yml')) puts yml['user'] # juixe-username
Just replace userinfo.yml with the name and path of your YAML file. The object that is loaded from the YAML file is a regular Ruby hash object so you can iterate through all the name/value pairs like the following.
require 'yaml' yml = YAML.load_file 'userinfo.yml' yml.each_pair { |key, value| puts "#{key} = #{value}" }
What makes YAML files more powerful than a regular Java properties file is that you can complex object collections, structures, or hierarchies. For example, imagine that I want to log into a series of Twitter accounts and get their most recent at replies. I can keep a collection of twitter account usernames and passwords in a YAML file much like the following.
juixe: user: juixe-user pass: juixe-pass techknow: user: techknow-user pass: techknow-pass
Here is the sample Ruby code that can be used to iterate through each user account from the YAML file.
require 'yaml' yml = YAML.load_file 'userinfo.yml' yml.each_key { |key| username = yml[key]['user'] password = yml[key]['pass'] puts "#{username} => #{password}" # login ... }
You build more complex data structures than this using YAML, but this should be enough to get you going.