I am sorting through a heap of yaml files looking for the following
fields.
yml = YAML.load( File.open( yml_file ) )
feed_list[ yml[‘name’ ] ] = {
‘description’ => yml[ ‘description’ ] || {},
‘active’ => yml[ ‘active’ ],
‘interval’ => yml[ ‘interval’ ],
‘source_net’ => net
}
My problem is that when I encounter a yml file that contains no info (or
worse yaml designed by someone with a limited grasp of yaml) my program
goes splat.
Any ideas or direction for scanning then skipping bad yaml files.
I have captured the ruby exceptions but I want to just skip the files
before it comes to that
Thanks
On May 18, 9:13 am, Kevin A. [email protected] wrote:
My problem is that when I encounter a yml file that contains no info (or
worse yaml designed by someone with a limited grasp of yaml) my program
goes splat.
Any ideas or direction for scanning then skipping bad yaml files.
I have captured the ruby exceptions but I want to just skip the files
before it comes to that
Don’t think there is any way to do this. I suppose it might be nice if
there were a syntax check function, but it won’t be much different
than actually trying to parse it. And if you are going to use the
result if it parses why would you want to waste time doing so twice?
So catching the error is really the best way to go.
~trans
Thomas S. wrote:
Don’t think there is any way to do this. I suppose it might be nice if
there were a syntax check function, but it won’t be much different
than actually trying to parse it. And if you are going to use the
result if it parses why would you want to waste time doing so twice?
So catching the error is really the best way to go.
~trans
That’s what I thought was the case.
Now for my next question
after I capture my error
`sort’: comparison of String with nil failed (ArgumentError)
how can I return to my code with my next yaml file?
aka
rescue
do crap
end
a good site or book would be fine
Thanks
On May 18, 10:19 am, Kevin A. [email protected] wrote:
do crap
end
probably ‘next’ would do if your looping over files. Also there is
‘retry’.
a good site or book would be fine
http://www.ruby-doc.org/docs/ProgrammingRuby/tut_exceptions.html
feeds.compact!
On May 18, 2010 10:11 AM, “Kevin A.” [email protected]
wrote:
Thomas S. wrote:
On May 18, 10:19�am, Kevin A. [email protected] wrote:
�do crap
end
probably ‘next’ would do if your looping over files. Also there is
‘retry’.
a go…
Working (kind of)
I just purged all the nil spaces for the array
feeds.delete_if{|x| x.nil?}
So that ignores the nil spaces of the array. Now I just have to figure
out how to ignore the incorrectly formatted yamls.
Thanks again for your help.
If you show us the code in question we may be able to help more.
~trans
Thomas S. wrote:
If you show us the code in question we may be able to help more.
~trans
Actually the rest of the problem appears to be 1.8.6 on my development
box vs. 1.8.7 on the servers.
I’ll be looking for guides for the conversion process.
Thanks to everyone for your help.
Thomas S. wrote:
On May 18, 10:19�am, Kevin A. [email protected] wrote:
�do crap
end
probably ‘next’ would do if your looping over files. Also there is
‘retry’.
a good site or book would be fine
Programming Ruby: The Pragmatic Programmer's Guide
Working (kind of)
I just purged all the nil spaces for the array
feeds.delete_if{|x| x.nil?}
So that ignores the nil spaces of the array. Now I just have to figure
out how to ignore the incorrectly formatted yamls.
Thanks again for your help.