gscraper 0.1.7 → 0.2.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 (46) hide show
  1. data/COPYING.txt +339 -0
  2. data/History.txt +21 -0
  3. data/Manifest.txt +23 -10
  4. data/README.txt +17 -21
  5. data/Rakefile +3 -6
  6. data/lib/gscraper.rb +22 -0
  7. data/lib/gscraper/extensions.rb +22 -0
  8. data/lib/gscraper/extensions/uri.rb +22 -0
  9. data/lib/gscraper/extensions/uri/http.rb +25 -71
  10. data/lib/gscraper/extensions/uri/query_params.rb +96 -0
  11. data/lib/gscraper/gscraper.rb +30 -0
  12. data/lib/gscraper/has_pages.rb +114 -0
  13. data/lib/gscraper/licenses.rb +22 -0
  14. data/lib/gscraper/page.rb +64 -0
  15. data/lib/gscraper/search.rb +24 -0
  16. data/lib/gscraper/search/ajax_query.rb +176 -0
  17. data/lib/gscraper/search/page.rb +27 -72
  18. data/lib/gscraper/search/query.rb +46 -457
  19. data/lib/gscraper/search/result.rb +32 -29
  20. data/lib/gscraper/search/search.rb +44 -3
  21. data/lib/gscraper/search/web_query.rb +472 -0
  22. data/lib/gscraper/sponsored_ad.rb +26 -2
  23. data/lib/gscraper/sponsored_links.rb +77 -8
  24. data/lib/gscraper/version.rb +23 -1
  25. data/spec/extensions/uri/http_spec.rb +9 -0
  26. data/spec/extensions/uri/query_params_spec.rb +38 -0
  27. data/spec/gscraper_spec.rb +29 -0
  28. data/spec/has_pages_examples.rb +19 -0
  29. data/spec/has_sponsored_links_examples.rb +57 -0
  30. data/spec/helpers/query.rb +1 -0
  31. data/spec/helpers/uri.rb +8 -0
  32. data/spec/page_has_results_examples.rb +13 -0
  33. data/spec/search/ajax_query_spec.rb +124 -0
  34. data/spec/search/page_has_results_examples.rb +51 -0
  35. data/spec/search/query_spec.rb +103 -0
  36. data/spec/search/web_query_spec.rb +74 -0
  37. data/spec/spec_helper.rb +6 -0
  38. data/tasks/spec.rb +7 -0
  39. metadata +34 -20
  40. data/LICENSE.txt +0 -23
  41. data/lib/gscraper/web_agent.rb +0 -38
  42. data/test/search/page_results.rb +0 -103
  43. data/test/search/query_from_url.rb +0 -50
  44. data/test/search/query_pages.rb +0 -32
  45. data/test/search/query_result.rb +0 -30
  46. data/test/test_gscraper.rb +0 -4
@@ -1,50 +0,0 @@
1
- require 'test/unit'
2
- require 'gscraper/search/query'
3
-
4
- class QueryFromURL < Test::Unit::TestCase
5
-
6
- include GScraper
7
-
8
- QUERY_URL = 'http://www.google.com/search?as_q=test&hl=en&num=20&btnG=Google+Search&as_epq=what+if&as_oq=dog&as_eq=haha&lr=&cr=&as_ft=i&as_filetype=&as_qdr=w&as_nlo=&as_nhi=&as_occt=body&as_dt=i&as_sitesearch=&as_rights=&safe=images'
9
-
10
- def setup
11
- @query = Search::Query.from_url(QUERY_URL)
12
- end
13
-
14
- def test_query
15
- assert_equal @query.query, 'test'
16
- end
17
-
18
- def test_exact_phrase
19
- assert_equal @query.exact_phrase, 'what+if'
20
- end
21
-
22
- def test_with_words
23
- assert_equal @query.with_words, 'dog'
24
- end
25
-
26
- def test_without_words
27
- assert_equal @query.without_words, 'haha'
28
- end
29
-
30
- def test_within_past_week
31
- assert_equal @query.within_past_week, true
32
- end
33
-
34
- def test_occurrs_within
35
- assert_equal @query.occurrs_within, :body
36
- end
37
-
38
- def test_similar_to
39
- assert_nil @query.similar_to
40
- end
41
-
42
- def test_links_to
43
- assert_nil @query.links_to
44
- end
45
-
46
- def teardown
47
- @query = nil
48
- end
49
-
50
- end
@@ -1,32 +0,0 @@
1
- require 'test/unit'
2
- require 'gscraper/search/query'
3
-
4
- class QueryPages < Test::Unit::TestCase
5
-
6
- include GScraper
7
-
8
- def setup
9
- @query = Search::Query.new(:query => 'ruby')
10
- end
11
-
12
- def test_first_page
13
- page = @query.first_page
14
-
15
- assert_not_nil page
16
- assert_equal page.empty?, false, "Query of 'ruby' has zero results"
17
- assert_equal page.length, @query.results_per_page
18
- end
19
-
20
- def test_second_page
21
- page = @query.page(2)
22
-
23
- assert_not_nil page
24
- assert_equal page.empty?, false, "Query of 'ruby' has zero results"
25
- assert_equal page.length, @query.results_per_page
26
- end
27
-
28
- def teardown
29
- @query = nil
30
- end
31
-
32
- end
@@ -1,30 +0,0 @@
1
- require 'test/unit'
2
- require 'gscraper/search/query'
3
-
4
- class QueryResult < Test::Unit::TestCase
5
-
6
- include GScraper
7
-
8
- def setup
9
- @query = Search::Query.new(:query => 'ruby')
10
- end
11
-
12
- def test_first_result
13
- result = @query.top_result
14
-
15
- assert_not_nil result, "The Query for 'ruby' has no first-result"
16
- assert_equal result.rank, 1, "The first result for the Query 'ruby' does not have the rank of 1"
17
- end
18
-
19
- def test_second_result
20
- result = @query.result_at(2)
21
-
22
- assert_not_nil result, "The Query for 'ruby' has no second-result"
23
- assert_equal result.rank, 2, "The second result for the Query 'ruby' does not have the rank of 2"
24
- end
25
-
26
- def teardown
27
- @query = nil
28
- end
29
-
30
- end
@@ -1,4 +0,0 @@
1
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'..','lib')))
2
-
3
- require 'test/unit'
4
- require 'search'