oxmlk 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec/spec_helper')
3
+
4
+ class Item
5
+ include OxMlk
6
+
7
+ ox_elem :asin, :from => 'ASIN'
8
+ ox_elem :detail_page_url, :from => 'DetailPageURL'
9
+ ox_elem :manufacturer, :from => 'Manufacturer', :in => 'ItemAttributes'
10
+ ox_elem :point, :from => 'georss:point'
11
+ end
12
+
13
+ class Response
14
+ include OxMlk
15
+
16
+ ox_tag 'ItemSearchResponse'
17
+
18
+ ox_elem :total_results, :from => 'TotalResults', :as => Integer, :in => 'Items'
19
+ ox_elem :total_pages, :from => 'TotalPages', :as => Integer, :in => 'Items'
20
+ ox_elem :items, :as => [Item], :in => 'Items'
21
+ end
22
+
23
+ response = Response.from_xml(xml_for(:amazon))
24
+
25
+ puts response.total_results, response.total_pages
26
+
27
+ response.items.each do |item|
28
+ puts item.asin, item.detail_page_url, item.manufacturer, item.point,''
29
+ end
data/examples/posts.rb CHANGED
@@ -1,9 +1,35 @@
1
- class Response
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec/spec_helper')
3
+
4
+ class Post
2
5
  include OxMlk
3
6
 
4
- ox_attr :user, :from => '@user'
7
+ ox_tag :post
8
+
9
+ ox_attr :href
10
+ ox_attr :hash
11
+ ox_attr :description
12
+ ox_attr :tag
13
+ ox_attr :created_at, :from => 'time', :as => Time
14
+ ox_attr :other, :as => Integer
15
+ ox_attr :extended
5
16
  end
6
17
 
7
- class Post
18
+ class Response
8
19
  include OxMlk
20
+
21
+ ox_tag :posts
22
+
23
+ ox_attr :user
24
+ ox_attr :tag
25
+
26
+ ox_elem :posts, :as => [Post]
27
+ end
28
+
29
+ response = Response.from_xml(xml_for(:posts))
30
+
31
+ puts response.user
32
+
33
+ response.posts.each do |post|
34
+ puts post.description, post.href, post.extended, ''
9
35
  end
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path(File.dirname(__FILE__) + '/../spec/spec_helper')
3
+
4
+ class User
5
+ include OxMlk
6
+
7
+ ox_tag :user
8
+
9
+ ox_elem :id, :as => Integer
10
+ ox_elem :name
11
+ ox_elem :screen_name
12
+ ox_elem :location
13
+ ox_elem :description
14
+ ox_elem :profile_image_url
15
+ ox_elem :url
16
+ ox_elem :protected?
17
+ ox_elem :followers_count, :as => Integer
18
+ end
19
+
20
+ class Status
21
+ include OxMlk
22
+
23
+ ox_tag :status
24
+
25
+ ox_elem :id, :as => Integer
26
+ ox_elem :text
27
+ ox_elem :created_at, :as => Time
28
+ ox_elem :source
29
+ ox_elem :truncated?
30
+ ox_elem :in_reply_to_status_id, :as => Integer
31
+ ox_elem :in_reply_to_user_id, :as => Integer
32
+ ox_elem :favorited?
33
+ ox_elem :user, :as => User
34
+ end
35
+
36
+ class Response
37
+ include OxMlk
38
+
39
+ ox_tag 'statuses'
40
+
41
+ ox_elem :statuses, :as => [Status]
42
+ end
43
+
44
+ response = Response.from_xml(xml_for(:twitter))
45
+
46
+ response.statuses.each do |status|
47
+ puts "#{status.user.screen_name} - #{status.created_at}", status.text, ''
48
+ end
@@ -0,0 +1,133 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05" xmlns:georss="http://www.georss.org/georss">
3
+ <OperationRequest>
4
+ <HTTPHeaders>
5
+ <Header Name="UserAgent">
6
+ </Header>
7
+ </HTTPHeaders>
8
+ <RequestId>16WRJBVEM155Q026KCV1</RequestId>
9
+ <Arguments>
10
+ <Argument Name="SearchIndex" Value="Books"></Argument>
11
+ <Argument Name="Service" Value="AWSECommerceService"></Argument>
12
+ <Argument Name="Title" Value="Ruby on Rails"></Argument>
13
+ <Argument Name="Operation" Value="ItemSearch"></Argument>
14
+ <Argument Name="AWSAccessKeyId" Value="dontbeaswoosh"></Argument>
15
+ </Arguments>
16
+ <RequestProcessingTime>0.064924955368042</RequestProcessingTime>
17
+ </OperationRequest>
18
+ <Items>
19
+ <Request>
20
+ <IsValid>True</IsValid>
21
+ <ItemSearchRequest>
22
+ <SearchIndex>Books</SearchIndex>
23
+ <Title>Ruby on Rails</Title>
24
+ </ItemSearchRequest>
25
+ </Request>
26
+ <TotalResults>22</TotalResults>
27
+ <TotalPages>3</TotalPages>
28
+ <Item>
29
+ <ASIN>0321480791</ASIN>
30
+ <georss:point>38.5351715088 -121.7948684692</georss:point>
31
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=0321480791%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0321480791%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
32
+ <ItemAttributes>
33
+ <Author>Michael Hartl</Author>
34
+ <Author>Aurelius Prochazka</Author>
35
+ <Manufacturer>Addison-Wesley Professional</Manufacturer>
36
+ <ProductGroup>Book</ProductGroup>
37
+ <Title>RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)</Title>
38
+ </ItemAttributes>
39
+ </Item>
40
+ <Item>
41
+ <ASIN>047022388X</ASIN>
42
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=047022388X%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/047022388X%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
43
+ <ItemAttributes>
44
+ <Author>Noel Rappin</Author>
45
+ <Manufacturer>Wrox</Manufacturer>
46
+ <ProductGroup>Book</ProductGroup>
47
+ <Title>Professional Ruby on Rails</Title>
48
+ </ItemAttributes>
49
+ </Item>
50
+ <Item>
51
+ <ASIN>1590598814</ASIN>
52
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=1590598814%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/1590598814%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
53
+ <ItemAttributes>
54
+ <Author>Ola Bini</Author>
55
+ <Manufacturer>Apress</Manufacturer>
56
+ <ProductGroup>Book</ProductGroup>
57
+ <Title>Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java</Title>
58
+ </ItemAttributes>
59
+ </Item>
60
+ <Item>
61
+ <ASIN>0596101325</ASIN>
62
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=0596101325%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0596101325%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
63
+ <ItemAttributes>
64
+ <Author>Bruce Tate</Author>
65
+ <Author>Curt Hibbs</Author>
66
+ <Manufacturer>O'Reilly Media, Inc.</Manufacturer>
67
+ <ProductGroup>Book</ProductGroup>
68
+ <Title>Ruby on Rails: Up and Running</Title>
69
+ </ItemAttributes>
70
+ </Item>
71
+ <Item>
72
+ <ASIN>0470081201</ASIN>
73
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=0470081201%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0470081201%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
74
+ <ItemAttributes>
75
+ <Author>Barry Burd</Author>
76
+ <Manufacturer>For Dummies</Manufacturer>
77
+ <ProductGroup>Book</ProductGroup>
78
+ <Title>Ruby on Rails For Dummies (For Dummies (Computer/Tech))</Title>
79
+ </ItemAttributes>
80
+ </Item>
81
+ <Item>
82
+ <ASIN>0975841955</ASIN>
83
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=0975841955%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0975841955%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
84
+ <ItemAttributes>
85
+ <Author>Patrick Lenz</Author>
86
+ <Manufacturer>SitePoint</Manufacturer>
87
+ <ProductGroup>Book</ProductGroup>
88
+ <Title>Build Your Own Ruby on Rails Web Applications</Title>
89
+ </ItemAttributes>
90
+ </Item>
91
+ <Item>
92
+ <ASIN>0470069155</ASIN>
93
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=0470069155%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0470069155%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
94
+ <ItemAttributes>
95
+ <Author>Steve, Ph.D. Holzner</Author>
96
+ <Manufacturer>Wrox</Manufacturer>
97
+ <ProductGroup>Book</ProductGroup>
98
+ <Title>Beginning Ruby on Rails (Wrox Beginning Guides)</Title>
99
+ </ItemAttributes>
100
+ </Item>
101
+ <Item>
102
+ <ASIN>1590597362</ASIN>
103
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=1590597362%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/1590597362%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
104
+ <ItemAttributes>
105
+ <Author>Christian Hellsten</Author>
106
+ <Author>Jarkko Laine</Author>
107
+ <Manufacturer>Apress</Manufacturer>
108
+ <ProductGroup>Book</ProductGroup>
109
+ <Title>Beginning Ruby on Rails E-Commerce: From Novice to Professional (Rails)</Title>
110
+ </ItemAttributes>
111
+ </Item>
112
+ <Item>
113
+ <ASIN>1590597524</ASIN>
114
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=1590597524%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/1590597524%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
115
+ <ItemAttributes>
116
+ <Author>Justin Williams</Author>
117
+ <Manufacturer>friends of ED</Manufacturer>
118
+ <ProductGroup>Book</ProductGroup>
119
+ <Title>Rails Solutions: Ruby on Rails Made Easy (Solutions)</Title>
120
+ </ItemAttributes>
121
+ </Item>
122
+ <Item>
123
+ <ASIN>0321517067</ASIN>
124
+ <DetailPageURL>http://www.amazon.com/gp/redirect.html%3FASIN=0321517067%26tag=ws%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0321517067%253FSubscriptionId=dontbeaswoosh</DetailPageURL>
125
+ <ItemAttributes>
126
+ <Author>Aurelius Prochazka</Author>
127
+ <Manufacturer>Addison-Wesley Professional</Manufacturer>
128
+ <ProductGroup>Book</ProductGroup>
129
+ <Title>RailsSpace Ruby on Rails Tutorial (Video Training) (LiveLessons)</Title>
130
+ </ItemAttributes>
131
+ </Item>
132
+ </Items>
133
+ </ItemSearchResponse>
@@ -1,5 +1,6 @@
1
1
  <person category="meat_popsicle" alt="human">
2
2
  <name>Joe</name>
3
+ <lame>false</lame>
3
4
  <number group="main">3035551212</number>
4
5
  <number group="cell">3035551234</number>
5
6
  <email group="home">test@example.com</email>
@@ -0,0 +1,763 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <statuses type="array">
3
+ <status>
4
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
5
+ <id>3717259426</id>
6
+ <text>@Eujean2 @Purple_Drazi - true blood mania? I'm crushed (being 1 of the maniacs) and still think it is a good show. + True Blood tastes yummy</text>
7
+ <source>web</source>
8
+ <truncated>false</truncated>
9
+ <in_reply_to_status_id>3701885068</in_reply_to_status_id>
10
+ <in_reply_to_user_id>15532647</in_reply_to_user_id>
11
+ <favorited>false</favorited>
12
+ <in_reply_to_screen_name>Eujean2</in_reply_to_screen_name>
13
+ <user>
14
+ <id>15712981</id>
15
+ <name>thadgann</name>
16
+ <screen_name>thadgann</screen_name>
17
+ <location>Tehran</location>
18
+ <description></description>
19
+ <profile_image_url>http://a1.twimg.com/profile_images/133514436/CapWolfeHat_normal.jpg</profile_image_url>
20
+ <url></url>
21
+ <protected>false</protected>
22
+ <followers_count>117</followers_count>
23
+ <profile_background_color>9ae4e8</profile_background_color>
24
+ <profile_text_color>000000</profile_text_color>
25
+ <profile_link_color>0000ff</profile_link_color>
26
+ <profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
27
+ <profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
28
+ <friends_count>126</friends_count>
29
+ <created_at>Sun Aug 03 18:31:43 +0000 2008</created_at>
30
+ <favourites_count>1</favourites_count>
31
+ <utc_offset>12600</utc_offset>
32
+ <time_zone>Tehran</time_zone>
33
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme1/bg.gif</profile_background_image_url>
34
+ <profile_background_tile>false</profile_background_tile>
35
+ <statuses_count>1403</statuses_count>
36
+ <notifications></notifications>
37
+ <verified>false</verified>
38
+ <following></following>
39
+ </user>
40
+ </status>
41
+ <status>
42
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
43
+ <id>3717259423</id>
44
+ <text>NCsoft and DC Comics Unveil &quot;Aiva's Story,&quot; a Limited Edition Comic Based on Lore of Aion http://bit.ly/4BMzI0 www.google4games.com</text>
45
+ <source>&lt;a href=&quot;http://twitterfeed.com&quot; rel=&quot;nofollow&quot;&gt;twitterfeed&lt;/a&gt;</source>
46
+ <truncated>false</truncated>
47
+ <in_reply_to_status_id></in_reply_to_status_id>
48
+ <in_reply_to_user_id></in_reply_to_user_id>
49
+ <favorited>false</favorited>
50
+ <in_reply_to_screen_name></in_reply_to_screen_name>
51
+ <user>
52
+ <id>69305684</id>
53
+ <name>Marc de Ruijter</name>
54
+ <screen_name>gearedgamer</screen_name>
55
+ <location>Beach</location>
56
+ <description>Gamer :)</description>
57
+ <profile_image_url>http://a3.twimg.com/profile_images/394484925/logo002-200x200-tranparent_normal.png</profile_image_url>
58
+ <url>http://www.google4games.com</url>
59
+ <protected>false</protected>
60
+ <followers_count>304</followers_count>
61
+ <profile_background_color>0099B9</profile_background_color>
62
+ <profile_text_color>3C3940</profile_text_color>
63
+ <profile_link_color>0099B9</profile_link_color>
64
+ <profile_sidebar_fill_color>95E8EC</profile_sidebar_fill_color>
65
+ <profile_sidebar_border_color>5ED4DC</profile_sidebar_border_color>
66
+ <friends_count>609</friends_count>
67
+ <created_at>Thu Aug 27 14:32:47 +0000 2009</created_at>
68
+ <favourites_count>0</favourites_count>
69
+ <utc_offset>3600</utc_offset>
70
+ <time_zone>Amsterdam</time_zone>
71
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme4/bg.gif</profile_background_image_url>
72
+ <profile_background_tile>false</profile_background_tile>
73
+ <statuses_count>74</statuses_count>
74
+ <notifications></notifications>
75
+ <verified>false</verified>
76
+ <following></following>
77
+ </user>
78
+ </status>
79
+ <status>
80
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
81
+ <id>3717259422</id>
82
+ <text>@codexwp Get 100 followers a day using http://tinyurl.com/npfzt4 .</text>
83
+ <source>web</source>
84
+ <truncated>false</truncated>
85
+ <in_reply_to_status_id></in_reply_to_status_id>
86
+ <in_reply_to_user_id>60676244</in_reply_to_user_id>
87
+ <favorited>false</favorited>
88
+ <in_reply_to_screen_name>codexwp</in_reply_to_screen_name>
89
+ <user>
90
+ <id>67636508</id>
91
+ <name>Mia </name>
92
+ <screen_name>Miafg89</screen_name>
93
+ <location></location>
94
+ <description></description>
95
+ <profile_image_url>http://a1.twimg.com/profile_images/374132906/30_normal.jpg</profile_image_url>
96
+ <url></url>
97
+ <protected>false</protected>
98
+ <followers_count>1</followers_count>
99
+ <profile_background_color>9ae4e8</profile_background_color>
100
+ <profile_text_color>000000</profile_text_color>
101
+ <profile_link_color>0000ff</profile_link_color>
102
+ <profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
103
+ <profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
104
+ <friends_count>0</friends_count>
105
+ <created_at>Fri Aug 21 15:38:08 +0000 2009</created_at>
106
+ <favourites_count>0</favourites_count>
107
+ <utc_offset></utc_offset>
108
+ <time_zone></time_zone>
109
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme1/bg.gif</profile_background_image_url>
110
+ <profile_background_tile>false</profile_background_tile>
111
+ <statuses_count>31</statuses_count>
112
+ <notifications></notifications>
113
+ <verified>false</verified>
114
+ <following></following>
115
+ </user>
116
+ </status>
117
+ <status>
118
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
119
+ <id>3717259420</id>
120
+ <text>Quero Emblema enso Shora.</text>
121
+ <source>web</source>
122
+ <truncated>false</truncated>
123
+ <in_reply_to_status_id></in_reply_to_status_id>
124
+ <in_reply_to_user_id></in_reply_to_user_id>
125
+ <favorited>false</favorited>
126
+ <in_reply_to_screen_name></in_reply_to_screen_name>
127
+ <user>
128
+ <id>53916320</id>
129
+ <name>tommyhimi</name>
130
+ <screen_name>tommyhimii</screen_name>
131
+ <location></location>
132
+ <description></description>
133
+ <profile_image_url>http://a1.twimg.com/profile_images/372775140/tommyhimi_wlk_spk_2_2_b_normal.gif</profile_image_url>
134
+ <url></url>
135
+ <protected>false</protected>
136
+ <followers_count>45</followers_count>
137
+ <profile_background_color>709397</profile_background_color>
138
+ <profile_text_color>333333</profile_text_color>
139
+ <profile_link_color>FF3300</profile_link_color>
140
+ <profile_sidebar_fill_color>A0C5C7</profile_sidebar_fill_color>
141
+ <profile_sidebar_border_color>86A4A6</profile_sidebar_border_color>
142
+ <friends_count>104</friends_count>
143
+ <created_at>Sun Jul 05 14:09:29 +0000 2009</created_at>
144
+ <favourites_count>0</favourites_count>
145
+ <utc_offset></utc_offset>
146
+ <time_zone></time_zone>
147
+ <profile_background_image_url>http://a1.twimg.com/profile_background_images/30770646/Yessss.png</profile_background_image_url>
148
+ <profile_background_tile>false</profile_background_tile>
149
+ <statuses_count>451</statuses_count>
150
+ <notifications></notifications>
151
+ <verified>false</verified>
152
+ <following></following>
153
+ </user>
154
+ </status>
155
+ <status>
156
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
157
+ <id>3717259415</id>
158
+ <text>FitTalk with ShariFitness this Friday w/ special Guest Jen Hendershott. Click here 4 show details:http://fittalknews.blogspot.com/</text>
159
+ <source>web</source>
160
+ <truncated>false</truncated>
161
+ <in_reply_to_status_id></in_reply_to_status_id>
162
+ <in_reply_to_user_id></in_reply_to_user_id>
163
+ <favorited>false</favorited>
164
+ <in_reply_to_screen_name></in_reply_to_screen_name>
165
+ <user>
166
+ <id>18849359</id>
167
+ <name>ShariFitness</name>
168
+ <screen_name>ShariFitness</screen_name>
169
+ <location>Gwinnett County, GA</location>
170
+ <description>Fitness Professional, Health Advocate, Radio Show Host, On Line Training/Consulting Available. SIGN UP FOR MY NEWSLETTER. CLICK HERE http://eepurl.com/cGVj </description>
171
+ <profile_image_url>http://a1.twimg.com/profile_images/89987246/main_photo_normal.jpg</profile_image_url>
172
+ <url>http://www.sharifitness.com</url>
173
+ <protected>false</protected>
174
+ <followers_count>997</followers_count>
175
+ <profile_background_color>BADFCD</profile_background_color>
176
+ <profile_text_color>0C3E53</profile_text_color>
177
+ <profile_link_color>FF0000</profile_link_color>
178
+ <profile_sidebar_fill_color>FFF7CC</profile_sidebar_fill_color>
179
+ <profile_sidebar_border_color>F2E195</profile_sidebar_border_color>
180
+ <friends_count>195</friends_count>
181
+ <created_at>Sat Jan 10 22:48:47 +0000 2009</created_at>
182
+ <favourites_count>0</favourites_count>
183
+ <utc_offset>-18000</utc_offset>
184
+ <time_zone>Eastern Time (US &amp; Canada)</time_zone>
185
+ <profile_background_image_url>http://s.twimg.com/a/1251747949/images/themes/theme12/bg.gif</profile_background_image_url>
186
+ <profile_background_tile>false</profile_background_tile>
187
+ <statuses_count>2196</statuses_count>
188
+ <notifications></notifications>
189
+ <verified>false</verified>
190
+ <following></following>
191
+ </user>
192
+ </status>
193
+ <status>
194
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
195
+ <id>3717259413</id>
196
+ <text>@pascalsmile How I Met Your Mother, amerikaanse serie ;)</text>
197
+ <source>&lt;a href=&quot;http://www.tweetdeck.com/&quot; rel=&quot;nofollow&quot;&gt;TweetDeck&lt;/a&gt;</source>
198
+ <truncated>false</truncated>
199
+ <in_reply_to_status_id>3717241032</in_reply_to_status_id>
200
+ <in_reply_to_user_id>27201399</in_reply_to_user_id>
201
+ <favorited>false</favorited>
202
+ <in_reply_to_screen_name>pascalsmile</in_reply_to_screen_name>
203
+ <user>
204
+ <id>22898495</id>
205
+ <name>Lois </name>
206
+ <screen_name>LOIIS</screen_name>
207
+ <location>Woerden, Holland</location>
208
+ <description></description>
209
+ <profile_image_url>http://a1.twimg.com/profile_images/377057174/Naamloos_normal.jpg</profile_image_url>
210
+ <url></url>
211
+ <protected>false</protected>
212
+ <followers_count>64</followers_count>
213
+ <profile_background_color>0099B9</profile_background_color>
214
+ <profile_text_color>3C3940</profile_text_color>
215
+ <profile_link_color>0099B9</profile_link_color>
216
+ <profile_sidebar_fill_color>95E8EC</profile_sidebar_fill_color>
217
+ <profile_sidebar_border_color>5ED4DC</profile_sidebar_border_color>
218
+ <friends_count>50</friends_count>
219
+ <created_at>Thu Mar 05 08:43:47 +0000 2009</created_at>
220
+ <favourites_count>1</favourites_count>
221
+ <utc_offset>3600</utc_offset>
222
+ <time_zone>Amsterdam</time_zone>
223
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme4/bg.gif</profile_background_image_url>
224
+ <profile_background_tile>false</profile_background_tile>
225
+ <statuses_count>2968</statuses_count>
226
+ <notifications></notifications>
227
+ <verified>false</verified>
228
+ <following></following>
229
+ </user>
230
+ </status>
231
+ <status>
232
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
233
+ <id>3717259410</id>
234
+ <text>i love you morgan :/</text>
235
+ <source>web</source>
236
+ <truncated>false</truncated>
237
+ <in_reply_to_status_id></in_reply_to_status_id>
238
+ <in_reply_to_user_id></in_reply_to_user_id>
239
+ <favorited>false</favorited>
240
+ <in_reply_to_screen_name></in_reply_to_screen_name>
241
+ <user>
242
+ <id>38285603</id>
243
+ <name>Jonny O'Bryan</name>
244
+ <screen_name>jonny_wonny</screen_name>
245
+ <location></location>
246
+ <description> </description>
247
+ <profile_image_url>http://a3.twimg.com/profile_images/341375757/IMG00191_normal.jpg</profile_image_url>
248
+ <url></url>
249
+ <protected>false</protected>
250
+ <followers_count>18</followers_count>
251
+ <profile_background_color>C6E2EE</profile_background_color>
252
+ <profile_text_color>05ffcd</profile_text_color>
253
+ <profile_link_color>1F98C7</profile_link_color>
254
+ <profile_sidebar_fill_color>DAECF4</profile_sidebar_fill_color>
255
+ <profile_sidebar_border_color>C6E2EE</profile_sidebar_border_color>
256
+ <friends_count>18</friends_count>
257
+ <created_at>Wed May 06 21:49:42 +0000 2009</created_at>
258
+ <favourites_count>0</favourites_count>
259
+ <utc_offset>-18000</utc_offset>
260
+ <time_zone>Quito</time_zone>
261
+ <profile_background_image_url>http://a1.twimg.com/profile_background_images/28361124/HPIM1849.jpg</profile_background_image_url>
262
+ <profile_background_tile>true</profile_background_tile>
263
+ <statuses_count>42</statuses_count>
264
+ <notifications></notifications>
265
+ <verified>false</verified>
266
+ <following></following>
267
+ </user>
268
+ </status>
269
+ <status>
270
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
271
+ <id>3717259409</id>
272
+ <text>@easy_to_please Yeah, I think so too. You just need to find a way to make things work.</text>
273
+ <source>&lt;a href=&quot;http://www.twhirl.org/&quot; rel=&quot;nofollow&quot;&gt;twhirl&lt;/a&gt;</source>
274
+ <truncated>false</truncated>
275
+ <in_reply_to_status_id>3717194644</in_reply_to_status_id>
276
+ <in_reply_to_user_id>58340912</in_reply_to_user_id>
277
+ <favorited>false</favorited>
278
+ <in_reply_to_screen_name>easy_to_please</in_reply_to_screen_name>
279
+ <user>
280
+ <id>17042830</id>
281
+ <name>An Thony</name>
282
+ <screen_name>el_zilcho</screen_name>
283
+ <location>Under the cap</location>
284
+ <description>A caked-in goldmine</description>
285
+ <profile_image_url>http://a1.twimg.com/profile_images/393250692/gallery_enlarged-werewolves_normal.jpg</profile_image_url>
286
+ <url></url>
287
+ <protected>false</protected>
288
+ <followers_count>173</followers_count>
289
+ <profile_background_color>e8d09a</profile_background_color>
290
+ <profile_text_color>333333</profile_text_color>
291
+ <profile_link_color>aa6467</profile_link_color>
292
+ <profile_sidebar_fill_color>fcffcc</profile_sidebar_fill_color>
293
+ <profile_sidebar_border_color>dcadd7</profile_sidebar_border_color>
294
+ <friends_count>186</friends_count>
295
+ <created_at>Wed Oct 29 14:56:11 +0000 2008</created_at>
296
+ <favourites_count>3</favourites_count>
297
+ <utc_offset>-18000</utc_offset>
298
+ <time_zone>Eastern Time (US &amp; Canada)</time_zone>
299
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme1/bg.gif</profile_background_image_url>
300
+ <profile_background_tile>false</profile_background_tile>
301
+ <statuses_count>15983</statuses_count>
302
+ <notifications>false</notifications>
303
+ <verified>false</verified>
304
+ <following>false</following>
305
+ </user>
306
+ </status>
307
+ <status>
308
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
309
+ <id>3717259408</id>
310
+ <text>aint it funny the last game the sox may possibly have to play in that shitty dome and we win? talk about irony.</text>
311
+ <source>&lt;a href=&quot;http://twitterhelp.blogspot.com/2008/05/twitter-via-mobile-web-mtwittercom.html&quot; rel=&quot;nofollow&quot;&gt;mobile web&lt;/a&gt;</source>
312
+ <truncated>false</truncated>
313
+ <in_reply_to_status_id></in_reply_to_status_id>
314
+ <in_reply_to_user_id></in_reply_to_user_id>
315
+ <favorited>false</favorited>
316
+ <in_reply_to_screen_name></in_reply_to_screen_name>
317
+ <user>
318
+ <id>27659712</id>
319
+ <name>Dennis Smith</name>
320
+ <screen_name>DennisSmithJr</screen_name>
321
+ <location>Chicago</location>
322
+ <description>Just some dude tryna find a way... </description>
323
+ <profile_image_url>http://a1.twimg.com/profile_images/386509750/IMG00007_normal.JPG</profile_image_url>
324
+ <url></url>
325
+ <protected>false</protected>
326
+ <followers_count>99</followers_count>
327
+ <profile_background_color>642D8B</profile_background_color>
328
+ <profile_text_color>3D1957</profile_text_color>
329
+ <profile_link_color>FF0000</profile_link_color>
330
+ <profile_sidebar_fill_color>7AC3EE</profile_sidebar_fill_color>
331
+ <profile_sidebar_border_color>65B0DA</profile_sidebar_border_color>
332
+ <friends_count>41</friends_count>
333
+ <created_at>Mon Mar 30 15:31:54 +0000 2009</created_at>
334
+ <favourites_count>0</favourites_count>
335
+ <utc_offset>-21600</utc_offset>
336
+ <time_zone>Central Time (US &amp; Canada)</time_zone>
337
+ <profile_background_image_url>http://a3.twimg.com/profile_background_images/31859461/s1260000054_30060345_785.jpg</profile_background_image_url>
338
+ <profile_background_tile>true</profile_background_tile>
339
+ <statuses_count>2007</statuses_count>
340
+ <notifications></notifications>
341
+ <verified>false</verified>
342
+ <following></following>
343
+ </user>
344
+ </status>
345
+ <status>
346
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
347
+ <id>3717259405</id>
348
+ <text>Leaked on schedule: WSJ says WTO to rule Airbus subsidies illegal http://bit.ly/3FQVup (via @flightblogger)</text>
349
+ <source>&lt;a href=&quot;http://www.atebits.com/&quot; rel=&quot;nofollow&quot;&gt;Tweetie&lt;/a&gt;</source>
350
+ <truncated>false</truncated>
351
+ <in_reply_to_status_id></in_reply_to_status_id>
352
+ <in_reply_to_user_id></in_reply_to_user_id>
353
+ <favorited>false</favorited>
354
+ <in_reply_to_screen_name></in_reply_to_screen_name>
355
+ <user>
356
+ <id>69947015</id>
357
+ <name>CATR - Otago</name>
358
+ <screen_name>otago_catr</screen_name>
359
+ <location>Dunedin, New Zealand</location>
360
+ <description></description>
361
+ <profile_image_url>http://s.twimg.com/a/1251845223/images/default_profile_normal.png</profile_image_url>
362
+ <url>http://catr.otago.ac.nz</url>
363
+ <protected>false</protected>
364
+ <followers_count>4</followers_count>
365
+ <profile_background_color>9ae4e8</profile_background_color>
366
+ <profile_text_color>000000</profile_text_color>
367
+ <profile_link_color>0000ff</profile_link_color>
368
+ <profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
369
+ <profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
370
+ <friends_count>0</friends_count>
371
+ <created_at>Sat Aug 29 19:50:47 +0000 2009</created_at>
372
+ <favourites_count>0</favourites_count>
373
+ <utc_offset>43200</utc_offset>
374
+ <time_zone>Wellington</time_zone>
375
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme1/bg.gif</profile_background_image_url>
376
+ <profile_background_tile>false</profile_background_tile>
377
+ <statuses_count>13</statuses_count>
378
+ <notifications></notifications>
379
+ <verified>false</verified>
380
+ <following></following>
381
+ </user>
382
+ </status>
383
+ <status>
384
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
385
+ <id>3717259404</id>
386
+ <text>#itmightbeover If you take it to heart when i whoop you in any and every video game we've played.</text>
387
+ <source>web</source>
388
+ <truncated>false</truncated>
389
+ <in_reply_to_status_id></in_reply_to_status_id>
390
+ <in_reply_to_user_id></in_reply_to_user_id>
391
+ <favorited>false</favorited>
392
+ <in_reply_to_screen_name></in_reply_to_screen_name>
393
+ <user>
394
+ <id>42823930</id>
395
+ <name>Moriah</name>
396
+ <screen_name>BiancaMoriah</screen_name>
397
+ <location>Bay Area </location>
398
+ <description>To much for 160 chars. </description>
399
+ <profile_image_url>http://a3.twimg.com/profile_images/385858707/l_97cd3c38c9614d22bbbdabedbb0e551b_normal.jpg</profile_image_url>
400
+ <url>http://www.myspace.com/b_mixedbeauty </url>
401
+ <protected>false</protected>
402
+ <followers_count>709</followers_count>
403
+ <profile_background_color>000000</profile_background_color>
404
+ <profile_text_color>050505</profile_text_color>
405
+ <profile_link_color>fa93ca</profile_link_color>
406
+ <profile_sidebar_fill_color>000000</profile_sidebar_fill_color>
407
+ <profile_sidebar_border_color>a822a8</profile_sidebar_border_color>
408
+ <friends_count>119</friends_count>
409
+ <created_at>Wed May 27 05:34:08 +0000 2009</created_at>
410
+ <favourites_count>9</favourites_count>
411
+ <utc_offset>-28800</utc_offset>
412
+ <time_zone>Pacific Time (US &amp; Canada)</time_zone>
413
+ <profile_background_image_url>http://a3.twimg.com/profile_background_images/33613213/25905183.jpg</profile_background_image_url>
414
+ <profile_background_tile>true</profile_background_tile>
415
+ <statuses_count>7704</statuses_count>
416
+ <notifications></notifications>
417
+ <verified>false</verified>
418
+ <following></following>
419
+ </user>
420
+ </status>
421
+ <status>
422
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
423
+ <id>3717259403</id>
424
+ <text>@TeamAddictedfly oooooi :D</text>
425
+ <source>web</source>
426
+ <truncated>false</truncated>
427
+ <in_reply_to_status_id>3717137608</in_reply_to_status_id>
428
+ <in_reply_to_user_id>59911576</in_reply_to_user_id>
429
+ <favorited>false</favorited>
430
+ <in_reply_to_screen_name>TeamAddictedfly</in_reply_to_screen_name>
431
+ <user>
432
+ <id>42391545</id>
433
+ <name>Tha&#237;s Portela</name>
434
+ <screen_name>tatah_flones</screen_name>
435
+ <location>Brazil ;)</location>
436
+ <description>McFLY for life *.* </description>
437
+ <profile_image_url>http://a3.twimg.com/profile_images/393194549/tatah_normal.jpg</profile_image_url>
438
+ <url>http://twitter.com/tatah_flones</url>
439
+ <protected>false</protected>
440
+ <followers_count>181</followers_count>
441
+ <profile_background_color>642D8B</profile_background_color>
442
+ <profile_text_color>3D1957</profile_text_color>
443
+ <profile_link_color>FF0000</profile_link_color>
444
+ <profile_sidebar_fill_color>7AC3EE</profile_sidebar_fill_color>
445
+ <profile_sidebar_border_color>65B0DA</profile_sidebar_border_color>
446
+ <friends_count>150</friends_count>
447
+ <created_at>Mon May 25 11:44:36 +0000 2009</created_at>
448
+ <favourites_count>21</favourites_count>
449
+ <utc_offset>-10800</utc_offset>
450
+ <time_zone>Brasilia</time_zone>
451
+ <profile_background_image_url>http://s.twimg.com/a/1250809294/images/themes/theme10/bg.gif</profile_background_image_url>
452
+ <profile_background_tile>true</profile_background_tile>
453
+ <statuses_count>5216</statuses_count>
454
+ <notifications></notifications>
455
+ <verified>false</verified>
456
+ <following></following>
457
+ </user>
458
+ </status>
459
+ <status>
460
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
461
+ <id>3717259401</id>
462
+ <text>@GunCulture Bruce Robinson writes on ludicrous amounts of red wine. I tried it, was brilliant. Next day, sober, it was complete crap.</text>
463
+ <source>web</source>
464
+ <truncated>false</truncated>
465
+ <in_reply_to_status_id>3717203917</in_reply_to_status_id>
466
+ <in_reply_to_user_id>22664383</in_reply_to_user_id>
467
+ <favorited>false</favorited>
468
+ <in_reply_to_screen_name>GunCulture</in_reply_to_screen_name>
469
+ <user>
470
+ <id>23420769</id>
471
+ <name>Gregg Beaman</name>
472
+ <screen_name>ABRIEFENCOUNTER</screen_name>
473
+ <location>Carnforth, Lancashire</location>
474
+ <description>Libertarian Party parliamentary candidate for Morecambe and Lunesdale.</description>
475
+ <profile_image_url>http://a1.twimg.com/profile_images/96246572/greggbeamannew_normal.jpg</profile_image_url>
476
+ <url>http://abriefencounter.blogspot.com/</url>
477
+ <protected>false</protected>
478
+ <followers_count>699</followers_count>
479
+ <profile_background_color>C6E2EE</profile_background_color>
480
+ <profile_text_color>663B12</profile_text_color>
481
+ <profile_link_color>1F98C7</profile_link_color>
482
+ <profile_sidebar_fill_color>DAECF4</profile_sidebar_fill_color>
483
+ <profile_sidebar_border_color>C6E2EE</profile_sidebar_border_color>
484
+ <friends_count>1236</friends_count>
485
+ <created_at>Mon Mar 09 10:16:22 +0000 2009</created_at>
486
+ <favourites_count>0</favourites_count>
487
+ <utc_offset>0</utc_offset>
488
+ <time_zone>London</time_zone>
489
+ <profile_background_image_url>http://s.twimg.com/a/1250809294/images/themes/theme2/bg.gif</profile_background_image_url>
490
+ <profile_background_tile>false</profile_background_tile>
491
+ <statuses_count>540</statuses_count>
492
+ <notifications></notifications>
493
+ <verified>false</verified>
494
+ <following></following>
495
+ </user>
496
+ </status>
497
+ <status>
498
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
499
+ <id>3717259399</id>
500
+ <text>What you can see from London Eye http://bit.ly/4lhNs</text>
501
+ <source>&lt;a href=&quot;http://apiwiki.twitter.com/&quot; rel=&quot;nofollow&quot;&gt;API&lt;/a&gt;</source>
502
+ <truncated>false</truncated>
503
+ <in_reply_to_status_id></in_reply_to_status_id>
504
+ <in_reply_to_user_id></in_reply_to_user_id>
505
+ <favorited>false</favorited>
506
+ <in_reply_to_screen_name></in_reply_to_screen_name>
507
+ <user>
508
+ <id>70955422</id>
509
+ <name>thornburg</name>
510
+ <screen_name>lariss2</screen_name>
511
+ <location></location>
512
+ <description></description>
513
+ <profile_image_url>http://s.twimg.com/a/1251845223/images/default_profile_normal.png</profile_image_url>
514
+ <url></url>
515
+ <protected>false</protected>
516
+ <followers_count>9</followers_count>
517
+ <profile_background_color>9ae4e8</profile_background_color>
518
+ <profile_text_color>000000</profile_text_color>
519
+ <profile_link_color>0000ff</profile_link_color>
520
+ <profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
521
+ <profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
522
+ <friends_count>0</friends_count>
523
+ <created_at>Wed Sep 02 12:50:21 +0000 2009</created_at>
524
+ <favourites_count>0</favourites_count>
525
+ <utc_offset></utc_offset>
526
+ <time_zone></time_zone>
527
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme1/bg.gif</profile_background_image_url>
528
+ <profile_background_tile>false</profile_background_tile>
529
+ <statuses_count>93</statuses_count>
530
+ <notifications></notifications>
531
+ <verified>false</verified>
532
+ <following></following>
533
+ </user>
534
+ </status>
535
+ <status>
536
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
537
+ <id>3717259394</id>
538
+ <text>@jennifervu, no!!! good thing im not starting school on the 3rd like everyone else or i would be getting another appeal!</text>
539
+ <source>web</source>
540
+ <truncated>false</truncated>
541
+ <in_reply_to_status_id></in_reply_to_status_id>
542
+ <in_reply_to_user_id>24643131</in_reply_to_user_id>
543
+ <favorited>false</favorited>
544
+ <in_reply_to_screen_name>jennifervu</in_reply_to_screen_name>
545
+ <user>
546
+ <id>36242243</id>
547
+ <name>Vicky Pham</name>
548
+ <screen_name>viiiiickysecret</screen_name>
549
+ <location>Renton, WA</location>
550
+ <description>you'll love me.</description>
551
+ <profile_image_url>http://a1.twimg.com/profile_images/361979346/DSC06672_normal.JPG</profile_image_url>
552
+ <url>http://www.myspace.com/babygvickyp</url>
553
+ <protected>false</protected>
554
+ <followers_count>88</followers_count>
555
+ <profile_background_color>5b2cdb</profile_background_color>
556
+ <profile_text_color>781178</profile_text_color>
557
+ <profile_link_color>088253</profile_link_color>
558
+ <profile_sidebar_fill_color>8d8f9e</profile_sidebar_fill_color>
559
+ <profile_sidebar_border_color>ff1981</profile_sidebar_border_color>
560
+ <friends_count>74</friends_count>
561
+ <created_at>Wed Apr 29 01:23:45 +0000 2009</created_at>
562
+ <favourites_count>1</favourites_count>
563
+ <utc_offset>-28800</utc_offset>
564
+ <time_zone>Pacific Time (US &amp; Canada)</time_zone>
565
+ <profile_background_image_url>http://a3.twimg.com/profile_background_images/23281631/home.jpg</profile_background_image_url>
566
+ <profile_background_tile>true</profile_background_tile>
567
+ <statuses_count>261</statuses_count>
568
+ <notifications></notifications>
569
+ <verified>false</verified>
570
+ <following></following>
571
+ </user>
572
+ </status>
573
+ <status>
574
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
575
+ <id>3717259391</id>
576
+ <text>Restaurant Relish Blog -- Lunch @ El Pollo Rico: Post dentist I was in the mood for chicken... http://bit.ly/27xFFf</text>
577
+ <source>web</source>
578
+ <truncated>false</truncated>
579
+ <in_reply_to_status_id></in_reply_to_status_id>
580
+ <in_reply_to_user_id></in_reply_to_user_id>
581
+ <favorited>false</favorited>
582
+ <in_reply_to_screen_name></in_reply_to_screen_name>
583
+ <user>
584
+ <id>61214713</id>
585
+ <name>Restaurant Relish</name>
586
+ <screen_name>RRelishDC</screen_name>
587
+ <location>Washington, DC</location>
588
+ <description>We produce video profiles for restaurants websites. We also love to eat all over DC and talk about it.</description>
589
+ <profile_image_url>http://a3.twimg.com/profile_images/337970247/Relish_Twitter_Image_normal.jpg</profile_image_url>
590
+ <url></url>
591
+ <protected>false</protected>
592
+ <followers_count>109</followers_count>
593
+ <profile_background_color>709397</profile_background_color>
594
+ <profile_text_color>333333</profile_text_color>
595
+ <profile_link_color>FF3300</profile_link_color>
596
+ <profile_sidebar_fill_color>A0C5C7</profile_sidebar_fill_color>
597
+ <profile_sidebar_border_color>86A4A6</profile_sidebar_border_color>
598
+ <friends_count>211</friends_count>
599
+ <created_at>Wed Jul 29 15:03:32 +0000 2009</created_at>
600
+ <favourites_count>0</favourites_count>
601
+ <utc_offset>-18000</utc_offset>
602
+ <time_zone>Quito</time_zone>
603
+ <profile_background_image_url>http://a1.twimg.com/profile_background_images/32723926/Relish_Tweet.png</profile_background_image_url>
604
+ <profile_background_tile>false</profile_background_tile>
605
+ <statuses_count>54</statuses_count>
606
+ <notifications></notifications>
607
+ <verified>false</verified>
608
+ <following></following>
609
+ </user>
610
+ </status>
611
+ <status>
612
+ <created_at>Wed Sep 02 19:42:55 +0000 2009</created_at>
613
+ <id>3717259388</id>
614
+ <text>Mmmm...cheeseburgers. I'm super stuffed. I just ate 2 In and Out burgers. They were so good as always. Now it's time for an afternoon siesta</text>
615
+ <source>&lt;a href=&quot;http://twitterfon.net/&quot; rel=&quot;nofollow&quot;&gt;TwitterFon&lt;/a&gt;</source>
616
+ <truncated>false</truncated>
617
+ <in_reply_to_status_id></in_reply_to_status_id>
618
+ <in_reply_to_user_id></in_reply_to_user_id>
619
+ <favorited>false</favorited>
620
+ <in_reply_to_screen_name></in_reply_to_screen_name>
621
+ <user>
622
+ <id>62229937</id>
623
+ <name>Kitty P</name>
624
+ <screen_name>KittyPatrick</screen_name>
625
+ <location>I'm in Las Vegas, bitch. </location>
626
+ <description>The most real bitch you'll ever meet. That's me, bitches!</description>
627
+ <profile_image_url>http://a3.twimg.com/profile_images/344160197/photo_normal.jpg</profile_image_url>
628
+ <url></url>
629
+ <protected>false</protected>
630
+ <followers_count>7</followers_count>
631
+ <profile_background_color>9ae4e8</profile_background_color>
632
+ <profile_text_color>000000</profile_text_color>
633
+ <profile_link_color>0000ff</profile_link_color>
634
+ <profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
635
+ <profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
636
+ <friends_count>29</friends_count>
637
+ <created_at>Sun Aug 02 09:06:50 +0000 2009</created_at>
638
+ <favourites_count>1</favourites_count>
639
+ <utc_offset>-28800</utc_offset>
640
+ <time_zone>Pacific Time (US &amp; Canada)</time_zone>
641
+ <profile_background_image_url>http://s.twimg.com/a/1251845223/images/themes/theme1/bg.gif</profile_background_image_url>
642
+ <profile_background_tile>false</profile_background_tile>
643
+ <statuses_count>94</statuses_count>
644
+ <notifications></notifications>
645
+ <verified>false</verified>
646
+ <following></following>
647
+ </user>
648
+ </status>
649
+ <status>
650
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
651
+ <id>3717259385</id>
652
+ <text>@Frans_ella come to the beach!! gggrr</text>
653
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75" rel="nofollow"&gt;txt&lt;/a&gt;</source>
654
+ <truncated>false</truncated>
655
+ <in_reply_to_status_id></in_reply_to_status_id>
656
+ <in_reply_to_user_id>38921004</in_reply_to_user_id>
657
+ <favorited>false</favorited>
658
+ <in_reply_to_screen_name>Frans_ella</in_reply_to_screen_name>
659
+ <user>
660
+ <id>64533266</id>
661
+ <name>Josh G</name>
662
+ <screen_name>josherz_g</screen_name>
663
+ <location></location>
664
+ <description></description>
665
+ <profile_image_url>http://s.twimg.com/a/1251493570/images/default_profile_normal.png</profile_image_url>
666
+ <url></url>
667
+ <protected>false</protected>
668
+ <followers_count>15</followers_count>
669
+ <profile_background_color>e8e2ca</profile_background_color>
670
+ <profile_text_color>000000</profile_text_color>
671
+ <profile_link_color>4f4f4f</profile_link_color>
672
+ <profile_sidebar_fill_color>c2c2c2</profile_sidebar_fill_color>
673
+ <profile_sidebar_border_color>c2c2c2</profile_sidebar_border_color>
674
+ <friends_count>28</friends_count>
675
+ <created_at>Mon Aug 10 22:19:36 +0000 2009</created_at>
676
+ <favourites_count>0</favourites_count>
677
+ <utc_offset></utc_offset>
678
+ <time_zone></time_zone>
679
+ <profile_background_image_url>http://a3.twimg.com/profile_background_images/28551563/artist-canvas.jpg</profile_background_image_url>
680
+ <profile_background_tile>false</profile_background_tile>
681
+ <statuses_count>144</statuses_count>
682
+ <notifications></notifications>
683
+ <verified>false</verified>
684
+ <following></following>
685
+ </user>
686
+ </status>
687
+ <status>
688
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
689
+ <id>3717259383</id>
690
+ <text>@LatteLovely_Jo cya xxx</text>
691
+ <source>web</source>
692
+ <truncated>false</truncated>
693
+ <in_reply_to_status_id>3717225135</in_reply_to_status_id>
694
+ <in_reply_to_user_id>47655325</in_reply_to_user_id>
695
+ <favorited>false</favorited>
696
+ <in_reply_to_screen_name>LatteLovely_Jo</in_reply_to_screen_name>
697
+ <user>
698
+ <id>55665747</id>
699
+ <name>Drew Burns</name>
700
+ <screen_name>Drewbert95</screen_name>
701
+ <location>uk</location>
702
+ <description>i am a nerd :) i couldnt live without my technology.. </description>
703
+ <profile_image_url>http://a3.twimg.com/profile_images/387927145/11082009738_normal.jpg</profile_image_url>
704
+ <url></url>
705
+ <protected>false</protected>
706
+ <followers_count>82</followers_count>
707
+ <profile_background_color>1A1B1F</profile_background_color>
708
+ <profile_text_color>666666</profile_text_color>
709
+ <profile_link_color>2FC2EF</profile_link_color>
710
+ <profile_sidebar_fill_color>252429</profile_sidebar_fill_color>
711
+ <profile_sidebar_border_color>181A1E</profile_sidebar_border_color>
712
+ <friends_count>215</friends_count>
713
+ <created_at>Fri Jul 10 21:13:54 +0000 2009</created_at>
714
+ <favourites_count>1</favourites_count>
715
+ <utc_offset>0</utc_offset>
716
+ <time_zone>London</time_zone>
717
+ <profile_background_image_url>http://s.twimg.com/a/1251397346/images/themes/theme9/bg.gif</profile_background_image_url>
718
+ <profile_background_tile>false</profile_background_tile>
719
+ <statuses_count>167</statuses_count>
720
+ <notifications></notifications>
721
+ <verified>false</verified>
722
+ <following></following>
723
+ </user>
724
+ </status>
725
+ <status>
726
+ <created_at>Wed Sep 02 19:42:54 +0000 2009</created_at>
727
+ <id>3717259380</id>
728
+ <text>#itmightbeover if my eyes water wen they meet ur breath</text>
729
+ <source>web</source>
730
+ <truncated>false</truncated>
731
+ <in_reply_to_status_id></in_reply_to_status_id>
732
+ <in_reply_to_user_id></in_reply_to_user_id>
733
+ <favorited>false</favorited>
734
+ <in_reply_to_screen_name></in_reply_to_screen_name>
735
+ <user>
736
+ <id>63349154</id>
737
+ <name>Bryan Perry</name>
738
+ <screen_name>therealsmoothb</screen_name>
739
+ <location>Jersey</location>
740
+ <description>They call me Smooth B....nuff said.</description>
741
+ <profile_image_url>http://a3.twimg.com/profile_images/385051091/bryan_normal.jpg</profile_image_url>
742
+ <url>http://www.myspace.com/therealsmoothb</url>
743
+ <protected>false</protected>
744
+ <followers_count>63</followers_count>
745
+ <profile_background_color>1A1B1F</profile_background_color>
746
+ <profile_text_color>e81236</profile_text_color>
747
+ <profile_link_color>cf0f32</profile_link_color>
748
+ <profile_sidebar_fill_color>361b15</profile_sidebar_fill_color>
749
+ <profile_sidebar_border_color>181A1E</profile_sidebar_border_color>
750
+ <friends_count>63</friends_count>
751
+ <created_at>Thu Aug 06 03:00:54 +0000 2009</created_at>
752
+ <favourites_count>1</favourites_count>
753
+ <utc_offset>-18000</utc_offset>
754
+ <time_zone>Quito</time_zone>
755
+ <profile_background_image_url>http://a3.twimg.com/profile_background_images/28175439/seaside.jpg</profile_background_image_url>
756
+ <profile_background_tile>true</profile_background_tile>
757
+ <statuses_count>750</statuses_count>
758
+ <notifications></notifications>
759
+ <verified>false</verified>
760
+ <following></following>
761
+ </user>
762
+ </status>
763
+ </statuses>
data/lib/oxmlk/elem.rb CHANGED
@@ -5,22 +5,24 @@ module OxMlk
5
5
  Float => :to_f.to_proc,
6
6
  String => :to_s.to_proc,
7
7
  Symbol => :to_sym.to_proc,
8
+ Time => proc {|e| Time.parse(e)},
8
9
  :raw => proc {|e| e},
9
10
  :name => proc {|e| e.name},
10
11
  :value => proc {|e| e.value},
11
- :bool => proc {|e| fetch_bool(e.value)})
12
+ :bool => proc {|e| fetch_bool(e)})
12
13
 
13
14
  attr_reader :accessor, :setter, :collection, :from, :as, :in, :procs, :block, :tag
14
15
 
15
16
  def initialize(name,o={},&blk)
16
- @tag = name.to_s
17
- @accessor = @tag.chomp('?').intern
17
+ @tag = name.to_s.chomp('?')
18
+ @accessor = @tag.intern
18
19
  @setter = "#{@accessor}=".intern
19
20
  @collection = o[:as].is_a?(Array)
20
21
 
21
22
  @from = o[:from]
22
- @as = [*o.delete(:as)].compact
23
- @in = o.delete(:in)
23
+ @as = [*o[:as]].compact
24
+ @as = [:bool] if as.empty? && name.to_s.end_with?('?')
25
+ @in = o[:in]
24
26
 
25
27
  @procs = as.map {|k| PROCS[k]}
26
28
  @procs = [PROCS[:value]] + procs unless [:raw,:name,:value].include?(as.first) || ox?
@@ -38,7 +40,7 @@ module OxMlk
38
40
 
39
41
  def from_xml(data)
40
42
  xml = XML::Node.from(data)
41
- block.call(xml.find(xpath).map do |node|
43
+ block.call(xml.search(xpath).map do |node|
42
44
  procs.inject(node) do |n,p|
43
45
  p.call(n)
44
46
  end
@@ -0,0 +1,5 @@
1
+ class String
2
+ def between(separator, &block)
3
+ split(separator).map(&block).join(separator)
4
+ end
5
+ end
data/lib/oxmlk/xml.rb CHANGED
@@ -11,7 +11,7 @@ module OxMlk
11
11
 
12
12
  class Node
13
13
  alias_method :value, :content
14
-
14
+
15
15
  def self.from(data)
16
16
  case data
17
17
  when XML::Document
@@ -28,6 +28,35 @@ module OxMlk
28
28
  raise 'Invalid XML data'
29
29
  end
30
30
  end
31
+
32
+ def search(xpath)
33
+ begin
34
+ if namespaces.default && !xpath.include?(':')
35
+ find(namespaced(xpath),
36
+ default_namespace(namespaces.default.href))
37
+ else
38
+ find(xpath)
39
+ end
40
+ rescue Exception => ex
41
+ raise ex, xpath
42
+ end
43
+ end
44
+
45
+ def namespaced(xpath)
46
+ xpath.between('|') do |section|
47
+ section.between('/') do |component|
48
+ unspaced?(component) ? default_namespace(component) : component
49
+ end
50
+ end
51
+ end
52
+
53
+ def default_namespace(name)
54
+ "oxdefault:#{name}"
55
+ end
56
+
57
+ def unspaced?(component)
58
+ component =~ /\w+/ && !component.include?(':') && !component.starts_with?('@')
59
+ end
31
60
  end
32
61
  end
33
62
  end
data/lib/oxmlk.rb CHANGED
@@ -3,6 +3,7 @@ dir = File.dirname(__FILE__)
3
3
  require 'rubygems'
4
4
  require 'activesupport'
5
5
 
6
+ require File.join(dir, 'oxmlk/extensions')
6
7
  require File.join(dir, 'oxmlk/xml')
7
8
  require File.join(dir, 'oxmlk/attr')
8
9
  require File.join(dir, 'oxmlk/elem')
@@ -14,7 +15,8 @@ module OxMlk
14
15
  include InstanceMethods
15
16
  extend ClassMethods
16
17
 
17
- @ox_attrs, @ox_elems = [], []
18
+ @ox_attrs = []
19
+ @ox_elems = []
18
20
  end
19
21
  end
20
22
 
@@ -29,13 +31,13 @@ module OxMlk
29
31
 
30
32
  def ox_attr(name,o={})
31
33
  new_attr = Attr.new(name, o)
32
- (@ox_attrs ||= []) << new_attr
34
+ @ox_attrs << new_attr
33
35
  attr_accessor new_attr.accessor
34
36
  end
35
37
 
36
38
  def ox_elem(name,o={})
37
39
  new_elem = Elem.new(name, o)
38
- (@ox_elems ||= []) << new_elem
40
+ @ox_elems << new_elem
39
41
  attr_accessor new_elem.accessor
40
42
  end
41
43
 
data/oxmlk.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{oxmlk}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Josh Robinson"]
12
- s.date = %q{2009-09-01}
12
+ s.date = %q{2009-09-02}
13
13
  s.description = %q{OxMlk gives you a simple way to map you ruby objects to XML and then convert one to the other.}
14
14
  s.email = %q{hexorx@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -18,18 +18,22 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
21
  "LICENSE",
23
22
  "README.rdoc",
24
23
  "Rakefile",
25
24
  "VERSION",
25
+ "examples/amazon.rb",
26
26
  "examples/example.rb",
27
27
  "examples/posts.rb",
28
+ "examples/twitter.rb",
29
+ "examples/xml/amazon.xml",
28
30
  "examples/xml/example.xml",
29
31
  "examples/xml/posts.xml",
32
+ "examples/xml/twitter.xml",
30
33
  "lib/oxmlk.rb",
31
34
  "lib/oxmlk/attr.rb",
32
35
  "lib/oxmlk/elem.rb",
36
+ "lib/oxmlk/extensions.rb",
33
37
  "lib/oxmlk/xml.rb",
34
38
  "oxmlk.gemspec",
35
39
  "spec/oxmlk/attr_spec.rb",
@@ -50,8 +54,10 @@ Gem::Specification.new do |s|
50
54
  "spec/oxmlk_spec.rb",
51
55
  "spec/spec_helper.rb",
52
56
  "spec/xml_spec.rb",
57
+ "examples/amazon.rb",
53
58
  "examples/example.rb",
54
- "examples/posts.rb"
59
+ "examples/posts.rb",
60
+ "examples/twitter.rb"
55
61
  ]
56
62
 
57
63
  if s.respond_to? :specification_version then
@@ -73,6 +73,14 @@ describe OxMlk::Elem do
73
73
  it 'should turn symbol to proc if possible' do
74
74
  ox_elem(:name, :as => :to_i).from_xml(@xml).should be_a(Integer)
75
75
  end
76
+
77
+ it 'should return true || false if :bool is passed to :as' do
78
+ ox_elem(:lame, :as => :bool).from_xml(@xml).should be_false
79
+ end
80
+
81
+ it 'should be bool if name ends with ?' do
82
+ ox_elem(:lame?).from_xml(@xml).should be_false
83
+ end
76
84
  end
77
85
 
78
86
  describe '#to_xml' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxmlk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Robinson
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-01 00:00:00 -06:00
12
+ date: 2009-09-02 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -53,18 +53,22 @@ extra_rdoc_files:
53
53
  - README.rdoc
54
54
  files:
55
55
  - .document
56
- - .gitignore
57
56
  - LICENSE
58
57
  - README.rdoc
59
58
  - Rakefile
60
59
  - VERSION
60
+ - examples/amazon.rb
61
61
  - examples/example.rb
62
62
  - examples/posts.rb
63
+ - examples/twitter.rb
64
+ - examples/xml/amazon.xml
63
65
  - examples/xml/example.xml
64
66
  - examples/xml/posts.xml
67
+ - examples/xml/twitter.xml
65
68
  - lib/oxmlk.rb
66
69
  - lib/oxmlk/attr.rb
67
70
  - lib/oxmlk/elem.rb
71
+ - lib/oxmlk/extensions.rb
68
72
  - lib/oxmlk/xml.rb
69
73
  - oxmlk.gemspec
70
74
  - spec/oxmlk/attr_spec.rb
@@ -107,5 +111,7 @@ test_files:
107
111
  - spec/oxmlk_spec.rb
108
112
  - spec/spec_helper.rb
109
113
  - spec/xml_spec.rb
114
+ - examples/amazon.rb
110
115
  - examples/example.rb
111
116
  - examples/posts.rb
117
+ - examples/twitter.rb
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- *.sw?
2
- .DS_Store
3
- coverage
4
- rdoc
5
- pkg
6
- .rake_tasks~