sax-machine 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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>