Class: TwitterServer::Renderer::NokogiriRenderer
- Inherits:
-
Object
- Object
- TwitterServer::Renderer::NokogiriRenderer
- Defined in:
- lib/renderers/nokogiri_renderer.rb
Overview
Base Renderer classes should possibly store schemas for the objects (status, user, etc). Do some basic ruby type conversions for the format the api expects.
Instance Method Summary collapse
-
#initialize(root) ⇒ NokogiriRenderer
constructor
A new instance of NokogiriRenderer.
- #node(key) ⇒ Object
-
#status(status) ⇒ Object
<created_at>Tue Apr 07 22:52:51 +0000 2009</created_at>
1472669360 At least I can get your humor through tweets. - #to_s ⇒ Object
-
#user(user) ⇒ Object
1401881 Doug Williams <screen_name>dougw</screen_name>San Francisco, CA Twitter API Support.
Constructor Details
#initialize(root) ⇒ NokogiriRenderer
Returns a new instance of NokogiriRenderer.
7 8 9 10 |
# File 'lib/renderers/nokogiri_renderer.rb', line 7 def initialize(root) @xml = Nokogiri::XML::Builder.new node(root) { yield self } end |
Instance Method Details
#node(key) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/renderers/nokogiri_renderer.rb', line 12 def node(key) r = self @xml.send key do yield r end end |
#status(status) ⇒ Object
<created_at>Tue Apr 07 22:52:51 +0000 2009</created_at>
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/renderers/nokogiri_renderer.rb', line 70 def status(status) return if status.nil? || status.empty? [:id, :created_at, :text, :truncated, :in_reply_to_status_id, :in_reply_to_user_id, :favorited, :in_reply_to_screen_name].each do |key| @xml.send("#{key}_", status[key]) if status.key?(key) end if status.key?(:user) node :user do user(status[:user]) end end if status.key?(:source) if status.key?(:source_href) node :source do @xml.a(status[:source], :href => status[:source_href]) end else @xml.source status[:source] end end end |
#to_s ⇒ Object
19 20 21 |
# File 'lib/renderers/nokogiri_renderer.rb', line 19 def to_s @xml.to_xml end |
#user(user) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/renderers/nokogiri_renderer.rb', line 49 def user(user) return if user.nil? || user.empty? [:id, :name, :screen_name].each do |key| @xml.send "#{key}_", user[key] if user.key?(key) end if user.key?(:status) node(:status) do status(user[:status]) end end end |