search_logger 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -0
- data/.travis.yml +6 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +36 -0
- data/Guardfile +9 -0
- data/README +0 -0
- data/Rakefile +1 -0
- data/bin/search_logger +12 -0
- data/lib/search_logger/csv_exporter.rb +20 -0
- data/lib/search_logger/exec.rb +131 -0
- data/lib/search_logger/google_parser/result.rb +60 -0
- data/lib/search_logger/google_parser.rb +59 -0
- data/lib/search_logger/persistence.rb +68 -0
- data/lib/search_logger/version.rb +3 -0
- data/lib/search_logger/xml_parser.rb +15 -0
- data/lib/search_logger.rb +11 -0
- data/schema.sql +15 -0
- data/search_logger.gemspec +26 -0
- data/spec/acceptance/google_parser_acceptance_spec.rb +93 -0
- data/spec/acceptance/mysql_to_csv_exportation_acceptance_spec.rb +39 -0
- data/spec/acceptance/persistence_acceptance_spec.rb +26 -0
- data/spec/acceptance/test_acceptance_spec.rb +61 -0
- data/spec/acceptance/xml_parser_acceptance_spec.rb +10 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/file_repository/exported_from_persistence.csv +119 -0
- data/spec/support/file_repository/google_result.html +115 -0
- data/spec/support/file_repository/google_result_2.html +636 -0
- data/spec/support/file_repository/rankabove_test.xml +9 -0
- data/spec/support/file_repository/sample_mysql_data.rb +6 -0
- data/spec/unit/google_parser/google_parser_result_spec.rb +79 -0
- data/spec/unit/google_parser_spec.rb +69 -0
- data/spec/unit/persistence_spec.rb +86 -0
- data/spec/unit/shell_exec_spec.rb +28 -0
- data/spec/unit/xml_parser_spec.rb +22 -0
- metadata +152 -0
@@ -0,0 +1,6 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
class DummyMysql
|
3
|
+
def self.load_data
|
4
|
+
[{:id=>726, :searched_keyword=>"amazon", :title=>"This is a title", :url=>"www.github.com", :description=>"First description.", :position=>1, :created_at=>nil}, {:id=>727, :searched_keyword=>"amazon", :title=>"This is the second title", :url=>"www.github.com", :description=>"Second description.", :position=>2, :created_at=>nil}, {:id=>728, :searched_keyword=>"amazon", :title=>"This is the third title", :url=>"www.github.com", :description=>"Third description.", :position=>3, :created_at=>nil}, {:id=>729, :searched_keyword=>"seo software", :title=>"Free SEO Software | The Best PPC & SEO Management Tool -Traffic ...", :url=>"http://www.traffictravis.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>730, :searched_keyword=>"seo software", :title=>"SEO software - Top 10 ranking guarantee - Search engine ...", :url=>"http://www.ibusinesspromoter.com/seo-tools/top-10-seo-software", :description=>"", :position=>2, :created_at=>nil}, {:id=>731, :searched_keyword=>"seo software", :title=>"SEO Software - Do Your Own Search Engine Optimization | SEO ...", :url=>"http://www.seoscheduler.com/", :description=>"", :position=>3, :created_at=>nil}, {:id=>732, :searched_keyword=>"seo software", :title=>"SEO Software and SEO Tools | Top 10 Rank Guarantee | SEO ...", :url=>"http://www.link-assistant.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>733, :searched_keyword=>"ipad", :title=>"Apple - iPad 2 - Now with iOS 5 and iCloud.", :url=>"http://www.apple.com/ipad/", :description=>"", :position=>1, :created_at=>nil}, {:id=>734, :searched_keyword=>"ipad", :title=>"Buy iPad 2 Now", :url=>"http://store.apple.com/us/browse/home/shop_ipad/family/ipad", :description=>"", :position=>2, :created_at=>nil}, {:id=>735, :searched_keyword=>"ipad", :title=>"", :url=>"", :description=>"", :position=>3, :created_at=>nil}, {:id=>736, :searched_keyword=>"ipad", :title=>"iPad - Wikipedia, the free encyclopedia", :url=>"http://en.wikipedia.org/wiki/IPad", :description=>"", :position=>4, :created_at=>nil}, {:id=>737, :searched_keyword=>"ipad", :title=>"News for ipad", :url=>"/search?q=ipad&num=2&hl=en&ie=UTF-8&prmd=ivnsr&source=univ&tbm=nws&tbo=u&sa=X&ei=KMMxT4zJCsyisQKgq52UBw&ved=0CEkQqAI", :description=>"", :position=>5, :created_at=>nil}, {:id=>738, :searched_keyword=>"ipad", :title=>"Apple iPad tablet: reviews, news, photos, and videos - CNET.com", :url=>"http://www.cnet.com/apple-ipad/", :description=>"", :position=>6, :created_at=>nil}, {:id=>739, :searched_keyword=>"ipad", :title=>"8 Things That Suck About the iPad", :url=>"http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad", :description=>"", :position=>7, :created_at=>nil}, {:id=>740, :searched_keyword=>"muffuletta manhattanization", :title=>"xml - Ruby doesn't treat hebrew letters well - Stack Overflow", :url=>"http://stackoverflow.com/questions/7332107/ruby-doesnt-treat-hebrew-letters-well", :description=>"", :position=>1, :created_at=>nil}, {:id=>741, :searched_keyword=>"muffuletta manhattanization", :title=>"Ruby doesn't treat hebrew letters well | Ruby on Rails", :url=>"http://rubyonrails.resourcezen.com/ruby-doesn-t-treat-hebrew-letters-well", :description=>"", :position=>2, :created_at=>nil}, {:id=>742, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Stack Overflow", :url=>"http://stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>3, :created_at=>nil}, {:id=>743, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Facebook Stack Overflow", :url=>"https://facebook.stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>4, :created_at=>nil}, {:id=>744, :searched_keyword=>"cheap motels", :title=>"Discount Hotels Motels - Cheap Rooms Online - your key to happy ...", :url=>"http://www.motels.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>745, :searched_keyword=>"cheap motels", :title=>"Motels Cheap - Discount Motel Rates, Reservation & Guides", :url=>"http://www.motelplanet.com/", :description=>"", :position=>2, :created_at=>nil}, {:id=>746, :searched_keyword=>"cheap motels", :title=>"Hotels, Motels and Inns - Find Cheap Hotels | Travelocity", :url=>"http://www.travelocity.com/Hotels", :description=>"", :position=>3, :created_at=>nil}, {:id=>747, :searched_keyword=>"cheap motels", :title=>"Motel 6 - Find Discount Motels Nationwide & Book Motel Reservations", :url=>"http://www.motel6.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>748, :searched_keyword=>"שפות תכנות", :title=>"שפת תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>1, :created_at=>nil}, {:id=>749, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%95%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>2, :created_at=>nil}, {:id=>750, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות", :url=>"http://www.underwar.co.il/tag/%D7%A9%D7%A4%D7%95%D7%AA-%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>3, :created_at=>nil}, {:id=>751, :searched_keyword=>"שפות תכנות", :title=>"פורום שפות תכנות - תפוז פורומים", :url=>"http://www.tapuz.co.il/Forums2008/ForumPage.aspx?ForumId=89", :description=>"", :position=>4, :created_at=>nil}, {:id=>752, :searched_keyword=>"seo software", :title=>"Free SEO Software | The Best PPC & SEO Management Tool -Traffic ...", :url=>"http://www.traffictravis.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>753, :searched_keyword=>"seo software", :title=>"SEO software - Top 10 ranking guarantee - Search engine ...", :url=>"http://www.ibusinesspromoter.com/seo-tools/top-10-seo-software", :description=>"", :position=>2, :created_at=>nil}, {:id=>754, :searched_keyword=>"seo software", :title=>"SEO Software - Do Your Own Search Engine Optimization | SEO ...", :url=>"http://www.seoscheduler.com/", :description=>"", :position=>3, :created_at=>nil}, {:id=>755, :searched_keyword=>"seo software", :title=>"SEO Software and SEO Tools | Top 10 Rank Guarantee | SEO ...", :url=>"http://www.link-assistant.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>756, :searched_keyword=>"ipad", :title=>"Apple - iPad 2 - Now with iOS 5 and iCloud.", :url=>"http://www.apple.com/ipad/", :description=>"", :position=>1, :created_at=>nil}, {:id=>757, :searched_keyword=>"ipad", :title=>"Buy iPad 2 Now", :url=>"http://store.apple.com/us/browse/home/shop_ipad/family/ipad", :description=>"", :position=>2, :created_at=>nil}, {:id=>758, :searched_keyword=>"ipad", :title=>"", :url=>"", :description=>"", :position=>3, :created_at=>nil}, {:id=>759, :searched_keyword=>"ipad", :title=>"iPad - Wikipedia, the free encyclopedia", :url=>"http://en.wikipedia.org/wiki/IPad", :description=>"", :position=>4, :created_at=>nil}, {:id=>760, :searched_keyword=>"ipad", :title=>"News for ipad", :url=>"/search?q=ipad&num=2&hl=en&ie=UTF-8&prmd=ivnsr&source=univ&tbm=nws&tbo=u&sa=X&ei=UcMxT5_OPKWlsQL8iKiZBw&ved=0CEkQqAI", :description=>"", :position=>5, :created_at=>nil}, {:id=>761, :searched_keyword=>"ipad", :title=>"Apple iPad tablet: reviews, news, photos, and videos - CNET.com", :url=>"http://www.cnet.com/apple-ipad/", :description=>"", :position=>6, :created_at=>nil}, {:id=>762, :searched_keyword=>"ipad", :title=>"8 Things That Suck About the iPad", :url=>"http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad", :description=>"", :position=>7, :created_at=>nil}, {:id=>763, :searched_keyword=>"muffuletta manhattanization", :title=>"xml - Ruby doesn't treat hebrew letters well - Stack Overflow", :url=>"http://stackoverflow.com/questions/7332107/ruby-doesnt-treat-hebrew-letters-well", :description=>"", :position=>1, :created_at=>nil}, {:id=>764, :searched_keyword=>"muffuletta manhattanization", :title=>"Ruby doesn't treat hebrew letters well | Ruby on Rails", :url=>"http://rubyonrails.resourcezen.com/ruby-doesn-t-treat-hebrew-letters-well", :description=>"", :position=>2, :created_at=>nil}, {:id=>765, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Stack Overflow", :url=>"http://stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>3, :created_at=>nil}, {:id=>766, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Facebook Stack Overflow", :url=>"https://facebook.stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>4, :created_at=>nil}, {:id=>767, :searched_keyword=>"cheap motels", :title=>"Discount Hotels Motels - Cheap Rooms Online - your key to happy ...", :url=>"http://www.motels.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>768, :searched_keyword=>"cheap motels", :title=>"Motels Cheap - Discount Motel Rates, Reservation & Guides", :url=>"http://www.motelplanet.com/", :description=>"", :position=>2, :created_at=>nil}, {:id=>769, :searched_keyword=>"cheap motels", :title=>"Hotels, Motels and Inns - Find Cheap Hotels | Travelocity", :url=>"http://www.travelocity.com/Hotels", :description=>"", :position=>3, :created_at=>nil}, {:id=>770, :searched_keyword=>"cheap motels", :title=>"Motel 6 - Find Discount Motels Nationwide & Book Motel Reservations", :url=>"http://www.motel6.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>771, :searched_keyword=>"שפות תכנות", :title=>"שפת תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>1, :created_at=>nil}, {:id=>772, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%95%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>2, :created_at=>nil}, {:id=>773, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות", :url=>"http://www.underwar.co.il/tag/%D7%A9%D7%A4%D7%95%D7%AA-%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>3, :created_at=>nil}, {:id=>774, :searched_keyword=>"שפות תכנות", :title=>"פורום שפות תכנות - תפוז פורומים", :url=>"http://www.tapuz.co.il/Forums2008/ForumPage.aspx?ForumId=89", :description=>"", :position=>4, :created_at=>nil}, {:id=>775, :searched_keyword=>"seo software", :title=>"Free SEO Software | The Best PPC & SEO Management Tool -Traffic ...", :url=>"http://www.traffictravis.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>776, :searched_keyword=>"seo software", :title=>"SEO software - Top 10 ranking guarantee - Search engine ...", :url=>"http://www.ibusinesspromoter.com/seo-tools/top-10-seo-software", :description=>"", :position=>2, :created_at=>nil}, {:id=>777, :searched_keyword=>"seo software", :title=>"SEO Software - Do Your Own Search Engine Optimization | SEO ...", :url=>"http://www.seoscheduler.com/", :description=>"", :position=>3, :created_at=>nil}, {:id=>778, :searched_keyword=>"seo software", :title=>"SEO Software and SEO Tools | Top 10 Rank Guarantee | SEO ...", :url=>"http://www.link-assistant.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>779, :searched_keyword=>"ipad", :title=>"Apple - iPad 2 - Now with iOS 5 and iCloud.", :url=>"http://www.apple.com/ipad/", :description=>"", :position=>1, :created_at=>nil}, {:id=>780, :searched_keyword=>"ipad", :title=>"Buy iPad 2 Now", :url=>"http://store.apple.com/us/browse/home/shop_ipad/family/ipad", :description=>"", :position=>2, :created_at=>nil}, {:id=>781, :searched_keyword=>"ipad", :title=>"", :url=>"", :description=>"", :position=>3, :created_at=>nil}, {:id=>782, :searched_keyword=>"ipad", :title=>"iPad - Wikipedia, the free encyclopedia", :url=>"http://en.wikipedia.org/wiki/IPad", :description=>"", :position=>4, :created_at=>nil}, {:id=>783, :searched_keyword=>"ipad", :title=>"News for ipad", :url=>"/search?q=ipad&num=2&hl=en&ie=UTF-8&prmd=ivnsr&source=univ&tbm=nws&tbo=u&sa=X&ei=esMxT7CRM6aksQLn49HeBg&ved=0CEkQqAI", :description=>"", :position=>5, :created_at=>nil}, {:id=>784, :searched_keyword=>"ipad", :title=>"Apple iPad tablet: reviews, news, photos, and videos - CNET.com", :url=>"http://www.cnet.com/apple-ipad/", :description=>"", :position=>6, :created_at=>nil}, {:id=>785, :searched_keyword=>"ipad", :title=>"8 Things That Suck About the iPad", :url=>"http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad", :description=>"", :position=>7, :created_at=>nil}, {:id=>786, :searched_keyword=>"muffuletta manhattanization", :title=>"xml - Ruby doesn't treat hebrew letters well - Stack Overflow", :url=>"http://stackoverflow.com/questions/7332107/ruby-doesnt-treat-hebrew-letters-well", :description=>"", :position=>1, :created_at=>nil}, {:id=>787, :searched_keyword=>"muffuletta manhattanization", :title=>"Ruby doesn't treat hebrew letters well | Ruby on Rails", :url=>"http://rubyonrails.resourcezen.com/ruby-doesn-t-treat-hebrew-letters-well", :description=>"", :position=>2, :created_at=>nil}, {:id=>788, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Stack Overflow", :url=>"http://stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>3, :created_at=>nil}, {:id=>789, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Facebook Stack Overflow", :url=>"https://facebook.stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>4, :created_at=>nil}, {:id=>790, :searched_keyword=>"cheap motels", :title=>"Discount Hotels Motels - Cheap Rooms Online - your key to happy ...", :url=>"http://www.motels.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>791, :searched_keyword=>"cheap motels", :title=>"Motels Cheap - Discount Motel Rates, Reservation & Guides", :url=>"http://www.motelplanet.com/", :description=>"", :position=>2, :created_at=>nil}, {:id=>792, :searched_keyword=>"cheap motels", :title=>"Hotels, Motels and Inns - Find Cheap Hotels | Travelocity", :url=>"http://www.travelocity.com/Hotels", :description=>"", :position=>3, :created_at=>nil}, {:id=>793, :searched_keyword=>"cheap motels", :title=>"Motel 6 - Find Discount Motels Nationwide & Book Motel Reservations", :url=>"http://www.motel6.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>794, :searched_keyword=>"שפות תכנות", :title=>"שפת תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>1, :created_at=>nil}, {:id=>795, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%95%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>2, :created_at=>nil}, {:id=>796, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות", :url=>"http://www.underwar.co.il/tag/%D7%A9%D7%A4%D7%95%D7%AA-%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>3, :created_at=>nil}, {:id=>797, :searched_keyword=>"שפות תכנות", :title=>"פורום שפות תכנות - תפוז פורומים", :url=>"http://www.tapuz.co.il/Forums2008/ForumPage.aspx?ForumId=89", :description=>"", :position=>4, :created_at=>nil}, {:id=>798, :searched_keyword=>"seo software", :title=>"Free SEO Software | The Best PPC & SEO Management Tool -Traffic ...", :url=>"http://www.traffictravis.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>799, :searched_keyword=>"seo software", :title=>"SEO software - Top 10 ranking guarantee - Search engine ...", :url=>"http://www.ibusinesspromoter.com/seo-tools/top-10-seo-software", :description=>"", :position=>2, :created_at=>nil}, {:id=>800, :searched_keyword=>"seo software", :title=>"SEO Software - Do Your Own Search Engine Optimization | SEO ...", :url=>"http://www.seoscheduler.com/", :description=>"", :position=>3, :created_at=>nil}, {:id=>801, :searched_keyword=>"seo software", :title=>"SEO Software and SEO Tools | Top 10 Rank Guarantee | SEO ...", :url=>"http://www.link-assistant.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>802, :searched_keyword=>"ipad", :title=>"Apple - iPad 2 - Now with iOS 5 and iCloud.", :url=>"http://www.apple.com/ipad/", :description=>"", :position=>1, :created_at=>nil}, {:id=>803, :searched_keyword=>"ipad", :title=>"Buy iPad 2 Now", :url=>"http://store.apple.com/us/browse/home/shop_ipad/family/ipad", :description=>"", :position=>2, :created_at=>nil}, {:id=>804, :searched_keyword=>"ipad", :title=>"", :url=>"", :description=>"", :position=>3, :created_at=>nil}, {:id=>805, :searched_keyword=>"ipad", :title=>"iPad - Wikipedia, the free encyclopedia", :url=>"http://en.wikipedia.org/wiki/IPad", :description=>"", :position=>4, :created_at=>nil}, {:id=>806, :searched_keyword=>"ipad", :title=>"News for ipad", :url=>"/search?q=ipad&num=2&hl=en&ie=UTF-8&prmd=ivnsr&source=univ&tbm=nws&tbo=u&sa=X&ei=4sMxT4vGGOXjsQLUtriXBw&ved=0CEkQqAI", :description=>"", :position=>5, :created_at=>nil}, {:id=>807, :searched_keyword=>"ipad", :title=>"Apple iPad tablet: reviews, news, photos, and videos - CNET.com", :url=>"http://www.cnet.com/apple-ipad/", :description=>"", :position=>6, :created_at=>nil}, {:id=>808, :searched_keyword=>"ipad", :title=>"8 Things That Suck About the iPad", :url=>"http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad", :description=>"", :position=>7, :created_at=>nil}, {:id=>809, :searched_keyword=>"muffuletta manhattanization", :title=>"xml - Ruby doesn't treat hebrew letters well - Stack Overflow", :url=>"http://stackoverflow.com/questions/7332107/ruby-doesnt-treat-hebrew-letters-well", :description=>"", :position=>1, :created_at=>nil}, {:id=>810, :searched_keyword=>"muffuletta manhattanization", :title=>"Ruby doesn't treat hebrew letters well | Ruby on Rails", :url=>"http://rubyonrails.resourcezen.com/ruby-doesn-t-treat-hebrew-letters-well", :description=>"", :position=>2, :created_at=>nil}, {:id=>811, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Stack Overflow", :url=>"http://stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>3, :created_at=>nil}, {:id=>812, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Facebook Stack Overflow", :url=>"https://facebook.stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>4, :created_at=>nil}, {:id=>813, :searched_keyword=>"cheap motels", :title=>"Discount Hotels Motels - Cheap Rooms Online - your key to happy ...", :url=>"http://www.motels.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>814, :searched_keyword=>"cheap motels", :title=>"Motels Cheap - Discount Motel Rates, Reservation & Guides", :url=>"http://www.motelplanet.com/", :description=>"", :position=>2, :created_at=>nil}, {:id=>815, :searched_keyword=>"cheap motels", :title=>"Hotels, Motels and Inns - Find Cheap Hotels | Travelocity", :url=>"http://www.travelocity.com/Hotels", :description=>"", :position=>3, :created_at=>nil}, {:id=>816, :searched_keyword=>"cheap motels", :title=>"Motel 6 - Find Discount Motels Nationwide & Book Motel Reservations", :url=>"http://www.motel6.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>817, :searched_keyword=>"שפות תכנות", :title=>"שפת תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>1, :created_at=>nil}, {:id=>818, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%95%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>2, :created_at=>nil}, {:id=>819, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות", :url=>"http://www.underwar.co.il/tag/%D7%A9%D7%A4%D7%95%D7%AA-%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>3, :created_at=>nil}, {:id=>820, :searched_keyword=>"שפות תכנות", :title=>"פורום שפות תכנות - תפוז פורומים", :url=>"http://www.tapuz.co.il/Forums2008/ForumPage.aspx?ForumId=89", :description=>"", :position=>4, :created_at=>nil}, {:id=>821, :searched_keyword=>"seo software", :title=>"Free SEO Software | The Best PPC & SEO Management Tool -Traffic ...", :url=>"http://www.traffictravis.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>822, :searched_keyword=>"seo software", :title=>"SEO software - Top 10 ranking guarantee - Search engine ...", :url=>"http://www.ibusinesspromoter.com/seo-tools/top-10-seo-software", :description=>"", :position=>2, :created_at=>nil}, {:id=>823, :searched_keyword=>"seo software", :title=>"SEO Software - Do Your Own Search Engine Optimization | SEO ...", :url=>"http://www.seoscheduler.com/", :description=>"", :position=>3, :created_at=>nil}, {:id=>824, :searched_keyword=>"seo software", :title=>"SEO Software and SEO Tools | Top 10 Rank Guarantee | SEO ...", :url=>"http://www.link-assistant.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>825, :searched_keyword=>"ipad", :title=>"Apple - iPad 2 - Now with iOS 5 and iCloud.", :url=>"http://www.apple.com/ipad/", :description=>"", :position=>1, :created_at=>nil}, {:id=>826, :searched_keyword=>"ipad", :title=>"Buy iPad 2 Now", :url=>"http://store.apple.com/us/browse/home/shop_ipad/family/ipad", :description=>"", :position=>2, :created_at=>nil}, {:id=>827, :searched_keyword=>"ipad", :title=>"", :url=>"", :description=>"", :position=>3, :created_at=>nil}, {:id=>828, :searched_keyword=>"ipad", :title=>"iPad - Wikipedia, the free encyclopedia", :url=>"http://en.wikipedia.org/wiki/IPad", :description=>"", :position=>4, :created_at=>nil}, {:id=>829, :searched_keyword=>"ipad", :title=>"News for ipad", :url=>"/search?q=ipad&num=2&hl=en&ie=UTF-8&prmd=ivnsr&source=univ&tbm=nws&tbo=u&sa=X&ei=8ckxT-62LuOesQLo7_mhBw&ved=0CEkQqAI", :description=>"", :position=>5, :created_at=>nil}, {:id=>830, :searched_keyword=>"ipad", :title=>"Apple iPad tablet: reviews, news, photos, and videos - CNET.com", :url=>"http://www.cnet.com/apple-ipad/", :description=>"", :position=>6, :created_at=>nil}, {:id=>831, :searched_keyword=>"ipad", :title=>"8 Things That Suck About the iPad", :url=>"http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad", :description=>"", :position=>7, :created_at=>nil}, {:id=>832, :searched_keyword=>"muffuletta manhattanization", :title=>"xml - Ruby doesn't treat hebrew letters well - Stack Overflow", :url=>"http://stackoverflow.com/questions/7332107/ruby-doesnt-treat-hebrew-letters-well", :description=>"", :position=>1, :created_at=>nil}, {:id=>833, :searched_keyword=>"muffuletta manhattanization", :title=>"Ruby doesn't treat hebrew letters well | Ruby on Rails", :url=>"http://rubyonrails.resourcezen.com/ruby-doesn-t-treat-hebrew-letters-well", :description=>"", :position=>2, :created_at=>nil}, {:id=>834, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Stack Overflow", :url=>"http://stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>3, :created_at=>nil}, {:id=>835, :searched_keyword=>"muffuletta manhattanization", :title=>"Hottest 'hebrew' Answers - Facebook Stack Overflow", :url=>"https://facebook.stackoverflow.com/tags/hebrew/hot?filter=year", :description=>"", :position=>4, :created_at=>nil}, {:id=>836, :searched_keyword=>"cheap motels", :title=>"Discount Hotels Motels - Cheap Rooms Online - your key to happy ...", :url=>"http://www.motels.com/", :description=>"", :position=>1, :created_at=>nil}, {:id=>837, :searched_keyword=>"cheap motels", :title=>"Motels Cheap - Discount Motel Rates, Reservation & Guides", :url=>"http://www.motelplanet.com/", :description=>"", :position=>2, :created_at=>nil}, {:id=>838, :searched_keyword=>"cheap motels", :title=>"Hotels, Motels and Inns - Find Cheap Hotels | Travelocity", :url=>"http://www.travelocity.com/Hotels", :description=>"", :position=>3, :created_at=>nil}, {:id=>839, :searched_keyword=>"cheap motels", :title=>"Motel 6 - Find Discount Motels Nationwide & Book Motel Reservations", :url=>"http://www.motel6.com/", :description=>"", :position=>4, :created_at=>nil}, {:id=>840, :searched_keyword=>"שפות תכנות", :title=>"שפת תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>1, :created_at=>nil}, {:id=>841, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות \u0096 ויקיפדיה", :url=>"http://he.wikipedia.org/wiki/%D7%A9%D7%A4%D7%95%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>2, :created_at=>nil}, {:id=>842, :searched_keyword=>"שפות תכנות", :title=>"שפות תכנות", :url=>"http://www.underwar.co.il/tag/%D7%A9%D7%A4%D7%95%D7%AA-%D7%AA%D7%9B%D7%A0%D7%95%D7%AA", :description=>"", :position=>3, :created_at=>nil}, {:id=>843, :searched_keyword=>"שפות תכנות", :title=>"פורום שפות תכנות - תפוז פורומים", :url=>"http://www.tapuz.co.il/Forums2008/ForumPage.aspx?ForumId=89", :description=>"", :position=>4, :created_at=>nil}]
|
5
|
+
end
|
6
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SearchLogger::GoogleParser::Result do
|
4
|
+
let(:result_double) { File.open('spec/support/file_repository/google_result_2.html').read }
|
5
|
+
|
6
|
+
describe "parsing a single result", wip: true do
|
7
|
+
before do
|
8
|
+
@node = Nokogiri::HTML.parse(result_double).css('li.g').first
|
9
|
+
end
|
10
|
+
|
11
|
+
subject { SearchLogger::GoogleParser::Result.new(@node, 10, 'amazon').parse_normal_result }
|
12
|
+
|
13
|
+
its(:title) { should == "Xovi: mehr als ein SEO Tool - online Marketing (SEO, SEM, Affiliate ..." }
|
14
|
+
its(:url) { should == "http://www.xovi.de/" }
|
15
|
+
its(:description) { should == "Setzen Sie unsere SEO Software f?r Ihr Online Marketing Budget intelligent und erfolgreich ein. Verlassen Sie sich nicht auf Ihr Bauchgef?hl oder Ihre Erfahrung ..." }
|
16
|
+
its(:position) { should == 10 }
|
17
|
+
its(:searched_keyword) { should == 'amazon' }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#parse" do
|
21
|
+
context "normal result" do
|
22
|
+
before do
|
23
|
+
@node = Nokogiri::HTML.parse(result_double).css('li.g').first
|
24
|
+
end
|
25
|
+
|
26
|
+
subject { SearchLogger::GoogleParser::Result.new(@node, 2, 'amazon').parse }
|
27
|
+
|
28
|
+
its(:title) { should == "Amazon.com: Online Shopping for Electronics, Apparel, Computers ..." }
|
29
|
+
its(:url) { should == "http://www.amazon.com/" }
|
30
|
+
its(:description) { should == "Online retailer of books, movies, music and games along with electronics, toys, apparel, sports, tools, groceries and general home and garden items. Region 1 ..." }
|
31
|
+
its(:position) { should == 2 }
|
32
|
+
its(:searched_keyword) { should == 'amazon' }
|
33
|
+
end
|
34
|
+
|
35
|
+
context "newsbox" do
|
36
|
+
before do
|
37
|
+
@node = Nokogiri::HTML.parse(result_double).css('li#newsbox').first
|
38
|
+
end
|
39
|
+
|
40
|
+
subject { SearchLogger::GoogleParser::Result.new(@node, 6, 'amazon').parse }
|
41
|
+
|
42
|
+
its(:title) { should == "Amazon fourth quarter profit falls on heavy expenses" }
|
43
|
+
its(:url) { should == "http://www.usatoday.com/tech/news/story/2012-01-31/amazon-earnings/52907866/1" }
|
44
|
+
its(:description) { should == "By Roger Yu, USA TODAY Despite rising sales, Amazon, the largest Internet retailer, reported a 57% decline in its fourth-quarter profit due to heavy ..." }
|
45
|
+
its(:position) { should == 6 }
|
46
|
+
its(:searched_keyword) { should == 'amazon' }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "#to_ary" do
|
51
|
+
context "normal result" do
|
52
|
+
before do
|
53
|
+
@node = Nokogiri::HTML.parse(result_double).css('li.g').first
|
54
|
+
end
|
55
|
+
|
56
|
+
subject { SearchLogger::GoogleParser::Result.new(@node, 2, 'amazon').parse.as_ary }
|
57
|
+
|
58
|
+
it "has a title" do
|
59
|
+
subject[:title].should == "Amazon.com: Online Shopping for Electronics, Apparel, Computers ..."
|
60
|
+
end
|
61
|
+
|
62
|
+
it "has an url" do
|
63
|
+
subject[:url].should == "http://www.amazon.com/"
|
64
|
+
end
|
65
|
+
|
66
|
+
it "has a description" do
|
67
|
+
subject[:description].should == "Online retailer of books, movies, music and games along with electronics, toys, apparel, sports, tools, groceries and general home and garden items. Region 1 ..."
|
68
|
+
end
|
69
|
+
|
70
|
+
it "has a position" do
|
71
|
+
subject[:position].should == 2
|
72
|
+
end
|
73
|
+
|
74
|
+
it "has a keyword" do
|
75
|
+
subject[:searched_keyword].should == 'amazon'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "Google parser", wip: true do
|
4
|
+
let(:result_double) { File.open('spec/support/file_repository/google_result_2.html').read }
|
5
|
+
subject { SearchLogger::GoogleParser.new(result_double) }
|
6
|
+
|
7
|
+
it "initialization with a double" do
|
8
|
+
subject.result.size.should == result_double.size
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#per_page" do
|
12
|
+
it "set how many results per page there should be" do
|
13
|
+
subject.per_page(20).num.should == 20
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#page" do
|
18
|
+
subject { SearchLogger::GoogleParser.new }
|
19
|
+
|
20
|
+
it "set the current page" do
|
21
|
+
subject.per_page(5).page(1).position_offset.should == 1
|
22
|
+
subject.per_page(5).page(1).start.should == 0
|
23
|
+
subject.per_page(5).page(2).position_offset.should == 6
|
24
|
+
subject.per_page(5).page(2).start.should == 5
|
25
|
+
subject.per_page(5).page(3).position_offset.should == 11
|
26
|
+
subject.per_page(5).page(3).start.should == 10
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#url" do
|
31
|
+
subject { SearchLogger::GoogleParser.new }
|
32
|
+
|
33
|
+
it "creates the correct url" do
|
34
|
+
subject.query('amazon website').per_page(5).page(1)
|
35
|
+
subject.url.should == "https://www.google.com/search?q=amazon+website&num=5&hl=en&start=0"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "creates the correct url" do
|
39
|
+
subject.query('amazon website').per_page(5).page(2)
|
40
|
+
subject.url.should == "https://www.google.com/search?q=amazon+website&num=5&hl=en&start=5"
|
41
|
+
end
|
42
|
+
|
43
|
+
it "creates the correct url" do
|
44
|
+
subject.query('amazon website').per_page(5).page(3)
|
45
|
+
subject.url.should == "https://www.google.com/search?q=amazon+website&num=5&hl=en&start=10"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#search" do
|
50
|
+
it "calls Result correctly" do
|
51
|
+
result_object = double("Result", parse: nil)
|
52
|
+
result_object.stub(:new).with(anything, an_instance_of(Fixnum), an_instance_of(String)).and_return(result_object)
|
53
|
+
result_object.should_receive(:parse)
|
54
|
+
subject.search(result_object)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "is an array" do
|
58
|
+
subject.search.should be_kind_of Array
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns Result object" do
|
62
|
+
subject.search.first.should be_kind_of SearchLogger::GoogleParser::Result
|
63
|
+
end
|
64
|
+
|
65
|
+
it "has 100 results" do
|
66
|
+
subject.search.size.should == 100
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SearchLogger::Persistence do
|
4
|
+
let(:data_to_save) {
|
5
|
+
[ {searched_keyword: "amazon", title: "This is a title", description: "First description.", url: "www.github.com", position: 1},
|
6
|
+
{searched_keyword: "amazon", title: "This is the second title", description: "Second description.", url: "www.github.com", position: 2},
|
7
|
+
{searched_keyword: "amazon", title: "This is the third title", description: "Third description.", url: "www.github.com", position: 3}
|
8
|
+
]
|
9
|
+
}
|
10
|
+
|
11
|
+
before do
|
12
|
+
@persistence = SearchLogger::Persistence.new
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#data" do
|
16
|
+
it "has the correct value" do
|
17
|
+
@persistence.data(data_to_save).data.should == data_to_save
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#table" do
|
22
|
+
it "sets the table to work with" do
|
23
|
+
@persistence.table("whatever").table.should == "whatever"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#load_data" do
|
28
|
+
it "triggers mysql2" do
|
29
|
+
@mysql2 = double("mysql2")
|
30
|
+
@mysql2.stub_chain(:query, :each)
|
31
|
+
@mysql2.should_receive(:query).with(an_instance_of(String))
|
32
|
+
@persistence.table('my_table').load_data(@mysql2)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#load_to_sql" do
|
37
|
+
it "creates the correct sql query" do
|
38
|
+
@persistence.table('my_table').load_to_sql.should == "SELECT * FROM my_table"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#save" do
|
43
|
+
it "triggers mysql2" do
|
44
|
+
@mysql2 = double("mysql2")
|
45
|
+
@mysql2.should_receive(:query).with(an_instance_of(String))
|
46
|
+
@persistence.table('my_table').save(@mysql2)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "#save_to_sql" do
|
51
|
+
it "creates the correct sql query when one record" do
|
52
|
+
data = {
|
53
|
+
searched_keyword: "amazon",
|
54
|
+
title: "This is a title",
|
55
|
+
description: "First description.",
|
56
|
+
url: "www.github.com",
|
57
|
+
position: 1
|
58
|
+
}
|
59
|
+
|
60
|
+
@persistence.data(data).table('my_table').save_to_sql.should ==
|
61
|
+
"INSERT INTO my_table (searched_keyword, title, description, url, position) VALUES ('amazon', 'This is a title', 'First description.', 'www.github.com', '1')"
|
62
|
+
end
|
63
|
+
|
64
|
+
it "creates the correct sql query when two records" do
|
65
|
+
data = [
|
66
|
+
{
|
67
|
+
searched_keyword: "amazon",
|
68
|
+
title: "This's a title",
|
69
|
+
description: "First description.",
|
70
|
+
url: "www.github.com",
|
71
|
+
position: 1
|
72
|
+
},
|
73
|
+
{
|
74
|
+
searched_keyword: "amazon",
|
75
|
+
title: "This is a title",
|
76
|
+
description: "First description.",
|
77
|
+
url: "www.github.com",
|
78
|
+
position: 1
|
79
|
+
}
|
80
|
+
]
|
81
|
+
|
82
|
+
@persistence.data(data).table('my_table').save_to_sql.should ==
|
83
|
+
"INSERT INTO my_table (searched_keyword, title, description, url, position) VALUES ('amazon', 'This\\'s a title', 'First description.', 'www.github.com', '1'), ('amazon', 'This is a title', 'First description.', 'www.github.com', '1')"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SearchLogger::Exec, wip: true do
|
4
|
+
let(:valid_argv){ [File.expand_path("../../support/file_repository/exported_from_persistence.csv", __FILE__)] }
|
5
|
+
let(:invalid_argv){ ["invalid_file/path.rb"] }
|
6
|
+
|
7
|
+
module Kernel
|
8
|
+
def puts(str); nil; end
|
9
|
+
end
|
10
|
+
|
11
|
+
context "initializing with a valid file" do
|
12
|
+
subject { SearchLogger::Exec.new(valid_argv) }
|
13
|
+
|
14
|
+
it "should initialize if an existent file was specified" do
|
15
|
+
subject.should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should initialize if a file was specified" do
|
19
|
+
subject.argv.should == valid_argv
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "initializing with an invalid file" do
|
24
|
+
it "should not initialize" do
|
25
|
+
lambda { SearchLogger::Exec.new(invalid_argv) }.should raise_error SystemExit
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe "XML parser" do
|
5
|
+
let(:xml_file) { 'spec/support/file_repository/rankabove_test.xml' }
|
6
|
+
|
7
|
+
subject { @parser = SearchLogger::XmlParser.new(xml_file) }
|
8
|
+
|
9
|
+
it "#new" do
|
10
|
+
subject.file.size.should == File.open(xml_file).size
|
11
|
+
end
|
12
|
+
|
13
|
+
context "#parse" do
|
14
|
+
it "without argument" do
|
15
|
+
subject.parse.should == ['seo software', 'ipad', 'muffuletta manhattanization', 'cheap motels', 'שפות תכנות']
|
16
|
+
end
|
17
|
+
|
18
|
+
it "with argument" do
|
19
|
+
subject.parse('keywords keyword').should == ['seo software', 'ipad', 'muffuletta manhattanization', 'cheap motels', 'שפות תכנות']
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: search_logger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- kurko
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &70232194582280 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70232194582280
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: guard
|
27
|
+
requirement: &70232194596560 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70232194596560
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: nokogiri
|
38
|
+
requirement: &70232194593460 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70232194593460
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: httpclient
|
49
|
+
requirement: &70232194604540 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70232194604540
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: mysql2
|
60
|
+
requirement: &70232194602600 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70232194602600
|
69
|
+
description: This gem read a XML file, searching for each one of the keywords. Then,
|
70
|
+
all results are saved into MySQL and later exported to CSV. This is a concept app.
|
71
|
+
email:
|
72
|
+
- chavedomundo@gmail.com
|
73
|
+
executables:
|
74
|
+
- search_logger
|
75
|
+
extensions: []
|
76
|
+
extra_rdoc_files: []
|
77
|
+
files:
|
78
|
+
- .rspec
|
79
|
+
- .travis.yml
|
80
|
+
- Gemfile
|
81
|
+
- Gemfile.lock
|
82
|
+
- Guardfile
|
83
|
+
- README
|
84
|
+
- Rakefile
|
85
|
+
- bin/search_logger
|
86
|
+
- lib/search_logger.rb
|
87
|
+
- lib/search_logger/csv_exporter.rb
|
88
|
+
- lib/search_logger/exec.rb
|
89
|
+
- lib/search_logger/google_parser.rb
|
90
|
+
- lib/search_logger/google_parser/result.rb
|
91
|
+
- lib/search_logger/persistence.rb
|
92
|
+
- lib/search_logger/version.rb
|
93
|
+
- lib/search_logger/xml_parser.rb
|
94
|
+
- schema.sql
|
95
|
+
- search_logger.gemspec
|
96
|
+
- spec/acceptance/google_parser_acceptance_spec.rb
|
97
|
+
- spec/acceptance/mysql_to_csv_exportation_acceptance_spec.rb
|
98
|
+
- spec/acceptance/persistence_acceptance_spec.rb
|
99
|
+
- spec/acceptance/test_acceptance_spec.rb
|
100
|
+
- spec/acceptance/xml_parser_acceptance_spec.rb
|
101
|
+
- spec/spec_helper.rb
|
102
|
+
- spec/support/file_repository/exported_from_persistence.csv
|
103
|
+
- spec/support/file_repository/google_result.html
|
104
|
+
- spec/support/file_repository/google_result_2.html
|
105
|
+
- spec/support/file_repository/rankabove_test.xml
|
106
|
+
- spec/support/file_repository/sample_mysql_data.rb
|
107
|
+
- spec/unit/google_parser/google_parser_result_spec.rb
|
108
|
+
- spec/unit/google_parser_spec.rb
|
109
|
+
- spec/unit/persistence_spec.rb
|
110
|
+
- spec/unit/shell_exec_spec.rb
|
111
|
+
- spec/unit/xml_parser_spec.rb
|
112
|
+
homepage: ''
|
113
|
+
licenses: []
|
114
|
+
post_install_message:
|
115
|
+
rdoc_options: []
|
116
|
+
require_paths:
|
117
|
+
- lib
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
requirements: []
|
131
|
+
rubyforge_project: search_logger
|
132
|
+
rubygems_version: 1.8.11
|
133
|
+
signing_key:
|
134
|
+
specification_version: 3
|
135
|
+
summary: Searches Google and saves results.
|
136
|
+
test_files:
|
137
|
+
- spec/acceptance/google_parser_acceptance_spec.rb
|
138
|
+
- spec/acceptance/mysql_to_csv_exportation_acceptance_spec.rb
|
139
|
+
- spec/acceptance/persistence_acceptance_spec.rb
|
140
|
+
- spec/acceptance/test_acceptance_spec.rb
|
141
|
+
- spec/acceptance/xml_parser_acceptance_spec.rb
|
142
|
+
- spec/spec_helper.rb
|
143
|
+
- spec/support/file_repository/exported_from_persistence.csv
|
144
|
+
- spec/support/file_repository/google_result.html
|
145
|
+
- spec/support/file_repository/google_result_2.html
|
146
|
+
- spec/support/file_repository/rankabove_test.xml
|
147
|
+
- spec/support/file_repository/sample_mysql_data.rb
|
148
|
+
- spec/unit/google_parser/google_parser_result_spec.rb
|
149
|
+
- spec/unit/google_parser_spec.rb
|
150
|
+
- spec/unit/persistence_spec.rb
|
151
|
+
- spec/unit/shell_exec_spec.rb
|
152
|
+
- spec/unit/xml_parser_spec.rb
|