type = filetype["colon-separated"] { :recordseparator => "\n" :fieldseparator => "\n" :fields = %{name password uid gid ....} :namefield = "name" } passwd = filetype["colon-separated"].new("/etc/passwd") shadow = filetype["colon-separated"].new("/etc/shadow") user = jointype { passwd => "name" shadow => "name" } passwd = type["/etc/passwd"] user.new() passwd["yaytest"] = { :uid => 100 ... }