sax-machine 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +14 -4
  4. data/Gemfile +5 -1
  5. data/Guardfile +2 -2
  6. data/HISTORY.md +23 -6
  7. data/README.md +111 -40
  8. data/Rakefile +4 -3
  9. data/lib/sax-machine.rb +11 -2
  10. data/lib/sax-machine/{sax_ancestor_config.rb → config/sax_ancestor.rb} +3 -7
  11. data/lib/sax-machine/{sax_attribute_config.rb → config/sax_attribute.rb} +4 -6
  12. data/lib/sax-machine/{sax_collection_config.rb → config/sax_collection.rb} +6 -10
  13. data/lib/sax-machine/{sax_element_config.rb → config/sax_element.rb} +16 -17
  14. data/lib/sax-machine/{sax_element_value_config.rb → config/sax_element_value.rb} +5 -7
  15. data/lib/sax-machine/{sax_handler.rb → handlers/sax_abstract_handler.rb} +28 -32
  16. data/lib/sax-machine/handlers/sax_nokogiri_handler.rb +16 -0
  17. data/lib/sax-machine/handlers/sax_ox_handler.rb +41 -0
  18. data/lib/sax-machine/sax_config.rb +9 -9
  19. data/lib/sax-machine/sax_configure.rb +1 -6
  20. data/lib/sax-machine/sax_document.rb +28 -17
  21. data/lib/sax-machine/version.rb +2 -2
  22. data/sax-machine.gemspec +8 -11
  23. data/spec/fixtures/atom-content.html +15 -0
  24. data/spec/{sax-machine → fixtures}/atom.xml +0 -0
  25. data/spec/sax-machine/sax_activerecord_spec.rb +23 -0
  26. data/spec/sax-machine/sax_configure_spec.rb +48 -0
  27. data/spec/sax-machine/sax_document_spec.rb +333 -280
  28. data/spec/sax-machine/sax_include_spec.rb +43 -0
  29. data/spec/spec_helper.rb +11 -2
  30. metadata +36 -41
  31. data/spec/benchmarks/amazon.xml +0 -40
  32. data/spec/benchmarks/benchmark.rb +0 -158
  33. data/spec/benchmarks/public_timeline.xml +0 -411
  34. data/spec/sax-machine/configure_sax_machine_spec.rb +0 -53
  35. data/spec/sax-machine/include_sax_machine_spec.rb +0 -42
@@ -0,0 +1,43 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ class A
4
+ include SAXMachine
5
+ element :title
6
+ end
7
+
8
+ class B < A
9
+ element :b
10
+ end
11
+
12
+ class C < B
13
+ element :c
14
+ end
15
+
16
+ describe "SAXMachine inheritance" do
17
+ before do
18
+ xml = "<top><title>Test</title><b>Matched!</b><c>And Again</c></top>"
19
+ @a = A.new
20
+ @a.parse xml
21
+ @b = B.new
22
+ @b.parse xml
23
+ @c = C.new
24
+ @c.parse xml
25
+ end
26
+
27
+ it { expect(@a).to be_a(A) }
28
+ it { expect(@a).not_to be_a(B) }
29
+ it { expect(@a).to be_a(SAXMachine) }
30
+ it { expect(@a.title).to eq("Test") }
31
+ it { expect(@b).to be_a(A) }
32
+ it { expect(@b).to be_a(B) }
33
+ it { expect(@b).to be_a(SAXMachine) }
34
+ it { expect(@b.title).to eq("Test") }
35
+ it { expect(@b.b).to eq("Matched!") }
36
+ it { expect(@c).to be_a(A) }
37
+ it { expect(@c).to be_a(B) }
38
+ it { expect(@c).to be_a(C) }
39
+ it { expect(@c).to be_a(SAXMachine) }
40
+ it { expect(@c.title).to eq("Test") }
41
+ it { expect(@c.b).to eq("Matched!") }
42
+ it { expect(@c.c).to eq("And Again") }
43
+ end
@@ -1,15 +1,24 @@
1
1
  begin
2
2
  require 'simplecov'
3
+ require 'coveralls'
4
+
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
6
+ SimpleCov::Formatter::HTMLFormatter,
7
+ Coveralls::SimpleCov::Formatter
8
+ ]
9
+
3
10
  SimpleCov.start do
4
- add_filter "/spec/"
11
+ add_filter '/spec/'
5
12
  end
6
13
  rescue LoadError
7
14
  end
8
15
 
9
16
  require File.expand_path(File.dirname(__FILE__) + '/../lib/sax-machine')
17
+ if ENV['HANDLER'] == 'ox'
18
+ SAXMachine.handler = :ox
19
+ end
10
20
 
11
21
  RSpec.configure do |config|
12
- config.treat_symbols_as_metadata_keys_with_true_values = true
13
22
  config.run_all_when_everything_filtered = true
14
23
  config.filter_run :focus
15
24
  end
metadata CHANGED
@@ -1,115 +1,110 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sax-machine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Paul Dix
9
8
  - Julien Kirch
10
9
  - Ezekiel Templin
10
+ - Dmitry Krasnoukhov
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-10-14 00:00:00.000000000 Z
14
+ date: 2014-07-22 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: nokogiri
18
18
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
19
  requirements:
21
- - - ~>
20
+ - - "~>"
22
21
  - !ruby/object:Gem::Version
23
22
  version: 1.6.0
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
26
  requirements:
29
- - - ~>
27
+ - - "~>"
30
28
  - !ruby/object:Gem::Version
31
29
  version: 1.6.0
32
30
  - !ruby/object:Gem::Dependency
33
31
  name: rspec
34
32
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
33
  requirements:
37
- - - ~>
34
+ - - "~>"
38
35
  - !ruby/object:Gem::Version
39
- version: 2.13.0
36
+ version: '3.0'
40
37
  type: :development
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
40
  requirements:
45
- - - ~>
41
+ - - "~>"
46
42
  - !ruby/object:Gem::Version
47
- version: 2.13.0
43
+ version: '3.0'
48
44
  description:
49
45
  email: paul@pauldix.net
50
46
  executables: []
51
47
  extensions: []
52
48
  extra_rdoc_files: []
53
49
  files:
54
- - .gitignore
55
- - .rspec
56
- - .travis.yml
50
+ - ".gitignore"
51
+ - ".rspec"
52
+ - ".travis.yml"
57
53
  - Gemfile
58
54
  - Guardfile
59
55
  - HISTORY.md
60
56
  - README.md
61
57
  - Rakefile
62
58
  - lib/sax-machine.rb
63
- - lib/sax-machine/sax_ancestor_config.rb
64
- - lib/sax-machine/sax_attribute_config.rb
65
- - lib/sax-machine/sax_collection_config.rb
59
+ - lib/sax-machine/config/sax_ancestor.rb
60
+ - lib/sax-machine/config/sax_attribute.rb
61
+ - lib/sax-machine/config/sax_collection.rb
62
+ - lib/sax-machine/config/sax_element.rb
63
+ - lib/sax-machine/config/sax_element_value.rb
64
+ - lib/sax-machine/handlers/sax_abstract_handler.rb
65
+ - lib/sax-machine/handlers/sax_nokogiri_handler.rb
66
+ - lib/sax-machine/handlers/sax_ox_handler.rb
66
67
  - lib/sax-machine/sax_config.rb
67
68
  - lib/sax-machine/sax_configure.rb
68
69
  - lib/sax-machine/sax_document.rb
69
- - lib/sax-machine/sax_element_config.rb
70
- - lib/sax-machine/sax_element_value_config.rb
71
- - lib/sax-machine/sax_handler.rb
72
70
  - lib/sax-machine/version.rb
73
71
  - sax-machine.gemspec
74
- - spec/benchmarks/amazon.xml
75
- - spec/benchmarks/benchmark.rb
76
- - spec/benchmarks/public_timeline.xml
77
- - spec/sax-machine/atom.xml
78
- - spec/sax-machine/configure_sax_machine_spec.rb
79
- - spec/sax-machine/include_sax_machine_spec.rb
72
+ - spec/fixtures/atom-content.html
73
+ - spec/fixtures/atom.xml
74
+ - spec/sax-machine/sax_activerecord_spec.rb
75
+ - spec/sax-machine/sax_configure_spec.rb
80
76
  - spec/sax-machine/sax_document_spec.rb
77
+ - spec/sax-machine/sax_include_spec.rb
81
78
  - spec/spec_helper.rb
82
79
  homepage: http://github.com/pauldix/sax-machine
83
80
  licenses:
84
81
  - MIT
82
+ metadata: {}
85
83
  post_install_message:
86
84
  rdoc_options: []
87
85
  require_paths:
88
86
  - lib
89
87
  required_ruby_version: !ruby/object:Gem::Requirement
90
- none: false
91
88
  requirements:
92
- - - ! '>='
89
+ - - ">="
93
90
  - !ruby/object:Gem::Version
94
91
  version: '0'
95
92
  required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
93
  requirements:
98
- - - ! '>='
94
+ - - ">="
99
95
  - !ruby/object:Gem::Version
100
96
  version: '0'
101
97
  requirements: []
102
98
  rubyforge_project:
103
- rubygems_version: 1.8.23
99
+ rubygems_version: 2.2.2
104
100
  signing_key:
105
- specification_version: 3
106
- summary: Declarative SAX Parsing with Nokogiri
101
+ specification_version: 4
102
+ summary: Declarative SAX Parsing with Nokogiri or Ox
107
103
  test_files:
108
- - spec/benchmarks/amazon.xml
109
- - spec/benchmarks/benchmark.rb
110
- - spec/benchmarks/public_timeline.xml
111
- - spec/sax-machine/atom.xml
112
- - spec/sax-machine/configure_sax_machine_spec.rb
113
- - spec/sax-machine/include_sax_machine_spec.rb
104
+ - spec/fixtures/atom-content.html
105
+ - spec/fixtures/atom.xml
106
+ - spec/sax-machine/sax_activerecord_spec.rb
107
+ - spec/sax-machine/sax_configure_spec.rb
114
108
  - spec/sax-machine/sax_document_spec.rb
109
+ - spec/sax-machine/sax_include_spec.rb
115
110
  - spec/spec_helper.rb
@@ -1,40 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05">
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
- <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>
31
- <ItemAttributes>
32
- <Author>Michael Hartl</Author>
33
- <Author>Aurelius Prochazka</Author>
34
- <Manufacturer>Addison-Wesley Professional</Manufacturer>
35
- <ProductGroup>Book</ProductGroup>
36
- <Title>RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)</Title>
37
- </ItemAttributes>
38
- </Item>
39
- </Items>
40
- </ItemSearchResponse>
@@ -1,158 +0,0 @@
1
- require 'rubygems'
2
- require 'benchmark'
3
- require 'happymapper'
4
- require 'sax-machine'
5
- require 'rfeedparser'
6
- include Benchmark
7
- benchmark_iterations = 100
8
-
9
- module Feedzirra
10
- class AtomEntry
11
- include SAXMachine
12
- element :title
13
- element :name, :as => :author
14
- element "feedburner:origLink", :as => :url
15
- element :summary
16
- element :content
17
- element :published
18
- end
19
-
20
- # Class for parsing Atom feeds
21
- class Atom
22
- include SAXMachine
23
- element :title
24
- element :link, :value => :href, :as => :url, :with => {:type => "text/html"}
25
- element :link, :value => :href, :as => :feed_url, :with => {:type => "application/atom+xml"}
26
- elements :entry, :as => :entries, :class => AtomEntry
27
- end
28
- end
29
- feed_text = File.read("spec/sax-machine/atom.xml")
30
-
31
- benchmark do |t|
32
- t.report("feedzirra") do
33
- benchmark_iterations.times {
34
- Feedzirra::Atom.new.parse(feed_text)
35
- }
36
- end
37
-
38
- t.report("rfeedparser") do
39
- benchmark_iterations.times {
40
- FeedParser.parse(feed_text)
41
- }
42
- end
43
- end
44
-
45
- # class AtomEntry
46
- # include SAXMachine
47
- # element :title
48
- # element :name, :as => :author
49
- # element :summary
50
- # end
51
- # class Atom
52
- # include SAXMachine
53
- # element :title
54
- # elements :entry, :as => :entries, :class => AtomEntry
55
- # end
56
- #
57
- # class Entry
58
- # include HappyMapper
59
- # element :title, String
60
- # element :name, String
61
- # element :summary, String
62
- # end
63
- # class Feed
64
- # include HappyMapper
65
- # element :title, String
66
- # has_many :entry, Entry
67
- # end
68
- # feed_text = File.read("spec/sax-machine/atom.xml")
69
- #
70
- # benchmark do |t|
71
- # t.report("sax-machine") do
72
- # benchmark_iterations.times {
73
- # Atom.new.parse(feed_text)
74
- # }
75
- # end
76
- #
77
- # t.report("happymapper") do
78
- # benchmark_iterations.times {
79
- # Feed.parse(feed_text)
80
- # }
81
- # end
82
- # end
83
-
84
- # xml = File.read("spec/benchmarks/public_timeline.xml")
85
- # class Status
86
- # include HappyMapper
87
- #
88
- # element :text, String
89
- # element :source, String
90
- # end
91
- #
92
- # class Statuses
93
- # include SAXMachine
94
- #
95
- # elements :status, {:as => :statuses, :class => Class.new do
96
- # include SAXMachine
97
- # element :text
98
- # element :source
99
- # end}
100
- # end
101
- #
102
- # benchmark do |t|
103
- # t.report("happy mapper") do
104
- # benchmark_iterations.times {
105
- # Status.parse(xml)
106
- # }
107
- # end
108
- #
109
- # t.report("sax-machine") do
110
- # benchmark_iterations.times {
111
- # Statuses.parse(xml)
112
- # }
113
- # end
114
- # end
115
-
116
- # xml = File.read("spec/benchmarks/amazon.xml")
117
- # class HItem
118
- # include HappyMapper
119
- #
120
- # tag 'Item' # if you put class in module you need tag
121
- # element :asin, String, :tag => 'ASIN'
122
- # element :detail_page_url, String, :tag => 'DetailPageURL'
123
- # element :manufacturer, String, :tag => 'Manufacturer', :deep => true
124
- # end
125
- # class HItems
126
- # include HappyMapper
127
- #
128
- # tag 'Items' # if you put class in module you need tag
129
- # # element :total_results, Integer, :tag => 'TotalResults'
130
- # # element :total_pages, Integer, :tag => 'TotalPages'
131
- # has_many :items, Item
132
- # end
133
- #
134
- # class Item
135
- # include SAXMachine
136
- #
137
- # element :ASIN, :as => :asin
138
- # element :DetailPageUrl, :as => :detail_page_url
139
- # element :Manufacturer, :as => :manufacturer
140
- # end
141
- # class Items
142
- # include SAXMachine
143
- # elements :Item, :as => :items
144
- # end
145
- #
146
- # benchmark do |t|
147
- # t.report("sax-machine") do
148
- # benchmark_iterations.times {
149
- # Items.new.parse(xml)
150
- # }
151
- # end
152
- #
153
- # t.report("happymapper") do
154
- # benchmark_iterations.times {
155
- # HItems.parse(xml)
156
- # }
157
- # end
158
- # end
@@ -1,411 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <statuses type="array">
3
- <status>
4
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
5
- <id>1122786091</id>
6
- <text>@Ryudokun :-P</text>
7
- <source>web</source>
8
- <truncated>false</truncated>
9
- <in_reply_to_status_id>1122783776</in_reply_to_status_id>
10
- <in_reply_to_user_id>14090866</in_reply_to_user_id>
11
- <favorited>false</favorited>
12
- <user>
13
- <id>2685941</id>
14
- <name>Zafiro Hernández</name>
15
- <screen_name>kethzy</screen_name>
16
- <description>Escritora de la revista Niponia, turistologa y loca enamorada</description>
17
- <location>Mexico</location>
18
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/57794212/candado_normal.jpg</profile_image_url>
19
- <url>http://www.niponia.com.mx</url>
20
- <protected>false</protected>
21
- <followers_count>280</followers_count>
22
- </user>
23
- </status><status>
24
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
25
- <id>1122786090</id>
26
- <text>New blog post: Welcome to Life Sais http://lifesais.com/2009/01/life-sais/</text>
27
- <source>&lt;a href=&quot;http://alexking.org/projects/wordpress&quot;&gt;Twitter Tools&lt;/a&gt;</source>
28
- <truncated>false</truncated>
29
- <in_reply_to_status_id />
30
- <in_reply_to_user_id />
31
- <favorited>false</favorited>
32
- <user>
33
- <id>16279065</id>
34
- <name>Sais</name>
35
- <screen_name>Sais</screen_name>
36
- <description>I'm sort of a big deal hehehehe*</description>
37
- <location>NY</location>
38
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69122175/Picture_2_normal.png</profile_image_url>
39
- <url>http://www.supersais.com/blog</url>
40
- <protected>false</protected>
41
- <followers_count>134</followers_count>
42
- </user>
43
- </status><status>
44
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
45
- <id>1122786089</id>
46
- <text>On Youtube. Youtube.com/TinyHustla</text>
47
- <source>web</source>
48
- <truncated>false</truncated>
49
- <in_reply_to_status_id />
50
- <in_reply_to_user_id />
51
- <favorited>false</favorited>
52
- <user>
53
- <id>19052333</id>
54
- <name>Alonzo Nuno</name>
55
- <screen_name>SouljaSkoolSwag</screen_name>
56
- <description />
57
- <location />
58
- <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
59
- <url />
60
- <protected>false</protected>
61
- <followers_count>0</followers_count>
62
- </user>
63
- </status><status>
64
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
65
- <id>1122786088</id>
66
- <text>@scanhead it will be a well deserved win if it walks away with Best Animated. I can't think of anything that comes close</text>
67
- <source>&lt;a href=&quot;http://www.tweetdeck.com/&quot;&gt;TweetDeck&lt;/a&gt;</source>
68
- <truncated>false</truncated>
69
- <in_reply_to_status_id>1122156627</in_reply_to_status_id>
70
- <in_reply_to_user_id>16721278</in_reply_to_user_id>
71
- <favorited>false</favorited>
72
- <user>
73
- <id>14518496</id>
74
- <name>David Chapman</name>
75
- <screen_name>davechappers</screen_name>
76
- <description></description>
77
- <location>Cambridge</location>
78
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/70439325/Photo_3_normal.jpg</profile_image_url>
79
- <url></url>
80
- <protected>false</protected>
81
- <followers_count>2</followers_count>
82
- </user>
83
- </status><status>
84
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
85
- <id>1122786087</id>
86
- <text>Craps is an interesting game.</text>
87
- <source>&lt;a href=&quot;http://orangatame.com/products/twitterberry/&quot;&gt;TwitterBerry&lt;/a&gt;</source>
88
- <truncated>false</truncated>
89
- <in_reply_to_status_id />
90
- <in_reply_to_user_id />
91
- <favorited>false</favorited>
92
- <user>
93
- <id>16436531</id>
94
- <name>chaser1975</name>
95
- <screen_name>chaser1975</screen_name>
96
- <description></description>
97
- <location>Jacksonville</location>
98
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/63201969/July8_2008_047_normal.jpg</profile_image_url>
99
- <url></url>
100
- <protected>false</protected>
101
- <followers_count>27</followers_count>
102
- </user>
103
- </status><status>
104
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
105
- <id>1122786086</id>
106
- <text>Intel's net profit drops 90 percent... ouch. http://tinyurl.com/8elfpl</text>
107
- <source>&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;twitterrific&lt;/a&gt;</source>
108
- <truncated>false</truncated>
109
- <in_reply_to_status_id />
110
- <in_reply_to_user_id />
111
- <favorited>false</favorited>
112
- <user>
113
- <id>14970813</id>
114
- <name>blobinabottle</name>
115
- <screen_name>blobinabottle</screen_name>
116
- <description></description>
117
- <location></location>
118
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/54912507/domo_normal.jpg</profile_image_url>
119
- <url>http://blobinabottle.blogspot.com</url>
120
- <protected>false</protected>
121
- <followers_count>38</followers_count>
122
- </user>
123
- </status><status>
124
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
125
- <id>1122786083</id>
126
- <text>Re-pinging @Greed32: hahah I'm bored/curious and plus I only respond to good answers and normal people</text>
127
- <source>&lt;a href=&quot;http://twitter.com/twinkleking&quot;&gt;Twinkle&lt;/a&gt;</source>
128
- <truncated>false</truncated>
129
- <in_reply_to_status_id />
130
- <in_reply_to_user_id />
131
- <favorited>false</favorited>
132
- <user>
133
- <id>18010200</id>
134
- <name>lenalover</name>
135
- <screen_name>lenalover</screen_name>
136
- <description>escapism is key in this fantasy world </description>
137
- <location>Pompton Lakes, New Jersey</location>
138
- <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
139
- <url></url>
140
- <protected>false</protected>
141
- <followers_count>31</followers_count>
142
- </user>
143
- </status><status>
144
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
145
- <id>1122786082</id>
146
- <text>And what is the grocery store membership all about anyway?</text>
147
- <source>&lt;a href=&quot;http://www.twittermail.com/&quot;&gt;TwitterMail&lt;/a&gt;</source>
148
- <truncated>false</truncated>
149
- <in_reply_to_status_id />
150
- <in_reply_to_user_id />
151
- <favorited>false</favorited>
152
- <user>
153
- <id>14221234</id>
154
- <name>susbarefoot</name>
155
- <screen_name>susbarefoot</screen_name>
156
- <description>In life, we have poop.</description>
157
- <location>Raleigh, NC</location>
158
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/54048743/avatar_normal.gif</profile_image_url>
159
- <url></url>
160
- <protected>false</protected>
161
- <followers_count>49</followers_count>
162
- </user>
163
- </status><status>
164
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
165
- <id>1122786081</id>
166
- <text>@nfreader I...should be FLYING! NOT SWIMMING!!</text>
167
- <source>&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;twitterrific&lt;/a&gt;</source>
168
- <truncated>false</truncated>
169
- <in_reply_to_status_id>1122783193</in_reply_to_status_id>
170
- <in_reply_to_user_id>10014522</in_reply_to_user_id>
171
- <favorited>false</favorited>
172
- <user>
173
- <id>5723532</id>
174
- <name>Bradley</name>
175
- <screen_name>warbrain</screen_name>
176
- <description></description>
177
- <location>Des Plaines, IL (42.028351,-87</location>
178
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69653184/Photo_112_normal.jpg</profile_image_url>
179
- <url>http://bradleysays.com</url>
180
- <protected>false</protected>
181
- <followers_count>420</followers_count>
182
- </user>
183
- </status><status>
184
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
185
- <id>1122786080</id>
186
- <text>You guys are too funny, do you think we have worn out TWTTRSTRM yet? LOL I'm heading off for the night, not feeling too well * pout *</text>
187
- <source>web</source>
188
- <truncated>false</truncated>
189
- <in_reply_to_status_id />
190
- <in_reply_to_user_id />
191
- <favorited>false</favorited>
192
- <user>
193
- <id>16618589</id>
194
- <name>Pretty Bullet</name>
195
- <screen_name>prettybullet</screen_name>
196
- <description>The prettiest bullet on Squidoo!</description>
197
- <location>Spanish, Ontario Canada</location>
198
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/67497171/1avatar-xmas-78_normal.jpg</profile_image_url>
199
- <url>http://www.squidoo.com/lensmasters/awelldressedbullet</url>
200
- <protected>false</protected>
201
- <followers_count>109</followers_count>
202
- </user>
203
- </status><status>
204
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
205
- <id>1122786079</id>
206
- <text>Thinks her scones are good but a little well done...</text>
207
- <source>&lt;a href=&quot;http://help.twitter.com/index.php?pg=kb.page&amp;id=75&quot;&gt;txt&lt;/a&gt;</source>
208
- <truncated>false</truncated>
209
- <in_reply_to_status_id />
210
- <in_reply_to_user_id />
211
- <favorited>false</favorited>
212
- <user>
213
- <id>15357848</id>
214
- <name>brittymine</name>
215
- <screen_name>brittymine</screen_name>
216
- <description>i make your dreams come true!</description>
217
- <location>at my house!</location>
218
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/56368682/543476751_70398214dc_t_normal.jpg</profile_image_url>
219
- <url></url>
220
- <protected>false</protected>
221
- <followers_count>15</followers_count>
222
- </user>
223
- </status><status>
224
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
225
- <id>1122786078</id>
226
- <text>Mariam N’KASSAI : Togo:
227
-
228
-
229
-
230
-
231
- $0 of $1,025 raised.
232
-
233
- Started raising funds on Jan 1.. http://tinyurl.com/99bx65</text>
234
- <source>&lt;a href=&quot;http://twitterfeed.com&quot;&gt;twitterfeed&lt;/a&gt;</source>
235
- <truncated>false</truncated>
236
- <in_reply_to_status_id />
237
- <in_reply_to_user_id />
238
- <favorited>false</favorited>
239
- <user>
240
- <id>18072695</id>
241
- <name>Microfinance</name>
242
- <screen_name>Microfinance</screen_name>
243
- <description />
244
- <location />
245
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69655320/kiva_normal.jpg</profile_image_url>
246
- <url />
247
- <protected>false</protected>
248
- <followers_count>12</followers_count>
249
- </user>
250
- </status><status>
251
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
252
- <id>1122786077</id>
253
- <text>@VibeMagazine ...jokin.. but nah fo' real i killed it, though!! lol</text>
254
- <source>web</source>
255
- <truncated>false</truncated>
256
- <in_reply_to_status_id>1122779374</in_reply_to_status_id>
257
- <in_reply_to_user_id>14691200</in_reply_to_user_id>
258
- <favorited>false</favorited>
259
- <user>
260
- <id>16541773</id>
261
- <name>Leroy Duncan Jr.</name>
262
- <screen_name>gooduncan</screen_name>
263
- <description>imma music lover, cool and funny in a nerdy way brother, spread peace not hate, get along with one another...</description>
264
- <location>North Carolina</location>
265
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69820903/my_stare_normal.jpg</profile_image_url>
266
- <url></url>
267
- <protected>false</protected>
268
- <followers_count>15</followers_count>
269
- </user>
270
- </status><status>
271
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
272
- <id>1122786076</id>
273
- <text>tonight was great to be a part of. looking forward to sunday to see Gods work in action.</text>
274
- <source>&lt;a href=&quot;http://help.twitter.com/index.php?pg=kb.page&amp;id=75&quot;&gt;txt&lt;/a&gt;</source>
275
- <truncated>false</truncated>
276
- <in_reply_to_status_id />
277
- <in_reply_to_user_id />
278
- <favorited>false</favorited>
279
- <user>
280
- <id>19048879</id>
281
- <name>Erica Rupert</name>
282
- <screen_name>ericarupert</screen_name>
283
- <description>obsessed with Bryson ; )</description>
284
- <location>Gville</location>
285
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/71370743/127_127_normal.JPG</profile_image_url>
286
- <url></url>
287
- <protected>false</protected>
288
- <followers_count>2</followers_count>
289
- </user>
290
- </status><status>
291
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
292
- <id>1122786075</id>
293
- <text>@Crystal_clear I need to update my twitter</text>
294
- <source>web</source>
295
- <truncated>false</truncated>
296
- <in_reply_to_status_id>1122782227</in_reply_to_status_id>
297
- <in_reply_to_user_id>11832612</in_reply_to_user_id>
298
- <favorited>false</favorited>
299
- <user>
300
- <id>16586561</id>
301
- <name>KristinaLeigh</name>
302
- <screen_name>KristinaLeigh</screen_name>
303
- <description>A Momma with a six year old son with Bipolar and one girl on the way....</description>
304
- <location>Mandeville</location>
305
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/61244564/Phillip_normal.jpg</profile_image_url>
306
- <url>http://itrhymeswithbanana.blogspot.com</url>
307
- <protected>false</protected>
308
- <followers_count>42</followers_count>
309
- </user>
310
- </status><status>
311
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
312
- <id>1122786074</id>
313
- <text>RT @BreakingNewsOn: The Minnesota Star Tribune which was founded in 1867 says it has filed for Chapter 11 bankruptcy, according to its w ...</text>
314
- <source>&lt;a href=&quot;http://socialscope.net&quot;&gt;SocialScope&lt;/a&gt;</source>
315
- <truncated>false</truncated>
316
- <in_reply_to_status_id />
317
- <in_reply_to_user_id />
318
- <favorited>false</favorited>
319
- <user>
320
- <id>12332112</id>
321
- <name>Amit Kumar</name>
322
- <screen_name>amitkumar01</screen_name>
323
- <description>CEO Ubiquitous Systems </description>
324
- <location>San Francisco, California 9410</location>
325
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52548135/frameAndServeImage.pl_normal.jpeg</profile_image_url>
326
- <url>http:///www.socialscope.net</url>
327
- <protected>false</protected>
328
- <followers_count>125</followers_count>
329
- </user>
330
- </status><status>
331
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
332
- <id>1122786073</id>
333
- <text>Annie made my birthday cake herself! She is sooooo proud.</text>
334
- <source>&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;twitterrific&lt;/a&gt;</source>
335
- <truncated>false</truncated>
336
- <in_reply_to_status_id />
337
- <in_reply_to_user_id />
338
- <favorited>false</favorited>
339
- <user>
340
- <id>17530527</id>
341
- <name>TimRhodus</name>
342
- <screen_name>TimRhodus</screen_name>
343
- <description>Christ-follower, Husband of Kathi, Dad of Trevor &amp;amp; Annie, Pastor of 400-500 amazing people</description>
344
- <location>Carlinville, IL</location>
345
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/65406330/Tim_2_normal.jpg</profile_image_url>
346
- <url>http://www.timrhodus.com</url>
347
- <protected>false</protected>
348
- <followers_count>70</followers_count>
349
- </user>
350
- </status><status>
351
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
352
- <id>1122786072</id>
353
- <text>Demo de Skate 2 na PSN européia!</text>
354
- <source>&lt;a href=&quot;http://twitterfox.net/&quot;&gt;TwitterFox&lt;/a&gt;</source>
355
- <truncated>false</truncated>
356
- <in_reply_to_status_id />
357
- <in_reply_to_user_id />
358
- <favorited>false</favorited>
359
- <user>
360
- <id>15067571</id>
361
- <name>jcvasc</name>
362
- <screen_name>jcvasc</screen_name>
363
- <description>Um viciado em DVD e BD - DVDBDAddict</description>
364
- <location>Porto Alegre - Brazil</location>
365
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/55257978/avatar_81190_f_normal.jpg</profile_image_url>
366
- <url>http://jcvasc.wordpress.com</url>
367
- <protected>false</protected>
368
- <followers_count>84</followers_count>
369
- </user>
370
- </status><status>
371
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
372
- <id>1122786064</id>
373
- <text>@shortyawards I vote for @StockTwits in the Shorty Awards Finals for #finance because it's the best thing going on Twitter</text>
374
- <source>web</source>
375
- <truncated>false</truncated>
376
- <in_reply_to_status_id>1122785132</in_reply_to_status_id>
377
- <in_reply_to_user_id>17663756</in_reply_to_user_id>
378
- <favorited>false</favorited>
379
- <user>
380
- <id>899941</id>
381
- <name>Sam Huleatt</name>
382
- <screen_name>squasher98</screen_name>
383
- <description>I dream Workstreams and post two interesting links daily on the Twitter</description>
384
- <location>New York, NY</location>
385
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/54138892/newyearsme_normal.jpg</profile_image_url>
386
- <url>http://Leveragingideas.com</url>
387
- <protected>false</protected>
388
- <followers_count>506</followers_count>
389
- </user>
390
- </status><status>
391
- <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
392
- <id>1122786062</id>
393
- <text>Once again, I glance at The Super-Organism in a bookstore display and see the title as... erm... something else. It fools me every time.</text>
394
- <source>web</source>
395
- <truncated>false</truncated>
396
- <in_reply_to_status_id />
397
- <in_reply_to_user_id />
398
- <favorited>false</favorited>
399
- <user>
400
- <id>17876737</id>
401
- <name>Amanda</name>
402
- <screen_name>irreverentmuse</screen_name>
403
- <description></description>
404
- <location>Boston, MA, USA</location>
405
- <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/66363500/amandaMA_normal.jpg</profile_image_url>
406
- <url>http://www.irreverentmusings.com</url>
407
- <protected>false</protected>
408
- <followers_count>11</followers_count>
409
- </user>
410
- </status>
411
- </statuses>