2012-03-08 3 views
0

私は、XMLファイルをルビクラスにマップする方法を探しています。ビルダーを使用してxmlファイルをオブジェクトにマップできますか?

クラス:https://github.com/airbrake/airbrake/blob/master/lib/airbrake/notice.rbルビークラスは、実際にxmlファイルを生成するビルダーを使用してto_xmlメソッドを持ってい

私は逆を行い、xmlをとり、ルビオブジェクトを初期化する必要があります。

これを行うには、どのような方法が最適ですか?

パフォーマンスは考慮事項です。

答えて

0

職場の男の中には、happymapper gemが使われています。それらの例から:

dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')) 
require File.join(dir, 'happymapper') 

file_contents = File.read(dir + '/../spec/fixtures/statuses.xml') 

class User 
    include HappyMapper 

    element :id, Integer 
    element :name, String 
    element :screen_name, String 
    element :location, String 
    element :description, String 
    element :profile_image_url, String 
    element :url, String 
    element :protected, Boolean 
    element :followers_count, Integer 
end 

class Status 
    include HappyMapper 

    element :id, Integer 
    element :text, String 
    element :created_at, Time 
    element :source, String 
    element :truncated, Boolean 
    element :in_reply_to_status_id, Integer 
    element :in_reply_to_user_id, Integer 
    element :favorited, Boolean 
    has_one :user, User 
end 

statuses = Status.parse(file_contents) 
statuses.each do |status| 
    puts status.user.name, status.user.screen_name, status.text, status.source, '' 
end 
関連する問題