On Sep 17, 11:05 pm, John Do <[EMAIL PROTECTED]> wrote:
> [code]records = YAML.load_file("myfile.yml")
> records.each do |record|
> puts record.inspect
> end[/code]
>
> I want to be able to read an arbitrary yml file, then print out each of
> the element one by one.
>
> In the above example, my output is
> #<RmEnv label_label_id: 8, data_id: 27, data_val: "MJP-PR2">
> #<RmEnv label_label_id: 8, data_id: 28, data_val: "MJP-QA2">
>
> I know I can do
> puts record.label_label_id
> puts record.data_id
> puts record.data_val
>
> but that only works when reading myfile.yml. If reading other yml, it'll
> be a different object.
>
> I was hoping something like this would work
> [code]
> record.each do |key|
> puts record[key]
> end[/code]
>
> But RoR throw an error, undefined method 'each' for #<RmEnv ... >
In the most general case there is not much you can do. While you can
list all methods on an object, you can't tell ahead of time whether
these are just accessors or methods that do stuff. Methods might also
be added only when needed (eg activerecord objects).
You can dump the instance variables from the object, but it may not
always be obvious which ones are important and which ones not.
If you can make the assumption that all your object share some
property (eg all descend from some base class etc...) then your life
will be easier
Fred (PS this is a pure ruby thing - no rails magic happening here)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---