google-search 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/History.rdoc +8 -0
  2. data/Manifest +70 -0
  3. data/README.rdoc +95 -0
  4. data/Rakefile +16 -0
  5. data/examples/image.rb +21 -0
  6. data/examples/images.html +1 -0
  7. data/examples/web.rb +28 -0
  8. data/google-search.gemspec +33 -0
  9. data/lib/google-search.rb +29 -0
  10. data/lib/google-search/item.rb +10 -0
  11. data/lib/google-search/item/base.rb +78 -0
  12. data/lib/google-search/item/blog.rb +34 -0
  13. data/lib/google-search/item/book.rb +40 -0
  14. data/lib/google-search/item/image.rb +40 -0
  15. data/lib/google-search/item/local.rb +107 -0
  16. data/lib/google-search/item/news.rb +46 -0
  17. data/lib/google-search/item/patent.rb +40 -0
  18. data/lib/google-search/item/video.rb +46 -0
  19. data/lib/google-search/item/web.rb +22 -0
  20. data/lib/google-search/response.rb +92 -0
  21. data/lib/google-search/search.rb +11 -0
  22. data/lib/google-search/search/base.rb +212 -0
  23. data/lib/google-search/search/blog.rb +14 -0
  24. data/lib/google-search/search/book.rb +8 -0
  25. data/lib/google-search/search/image.rb +93 -0
  26. data/lib/google-search/search/local.rb +8 -0
  27. data/lib/google-search/search/mixins.rb +4 -0
  28. data/lib/google-search/search/mixins/filter.rb +26 -0
  29. data/lib/google-search/search/mixins/order_by.rb +36 -0
  30. data/lib/google-search/search/mixins/safety_level.rb +40 -0
  31. data/lib/google-search/search/news.rb +66 -0
  32. data/lib/google-search/search/patent.rb +37 -0
  33. data/lib/google-search/search/video.rb +15 -0
  34. data/lib/google-search/search/web.rb +15 -0
  35. data/lib/google-search/version.rb +6 -0
  36. data/spec/fixtures/400-response.json +1 -0
  37. data/spec/fixtures/blog-response.json +1 -0
  38. data/spec/fixtures/book-response.json +1 -0
  39. data/spec/fixtures/image-response.json +1 -0
  40. data/spec/fixtures/invalid-response.json +1 -0
  41. data/spec/fixtures/local-response.json +1 -0
  42. data/spec/fixtures/news-response.json +1 -0
  43. data/spec/fixtures/patent-response.json +1 -0
  44. data/spec/fixtures/video-response.json +1 -0
  45. data/spec/fixtures/web-2-response.json +1 -0
  46. data/spec/fixtures/web-response.json +1 -0
  47. data/spec/item_blog_spec.rb +26 -0
  48. data/spec/item_book_spec.rb +18 -0
  49. data/spec/item_image_spec.rb +21 -0
  50. data/spec/item_local_spec.rb +30 -0
  51. data/spec/item_news_spec.rb +19 -0
  52. data/spec/item_patent_spec.rb +19 -0
  53. data/spec/item_spec.rb +10 -0
  54. data/spec/item_video_spec.rb +20 -0
  55. data/spec/item_web_spec.rb +18 -0
  56. data/spec/response_spec.rb +63 -0
  57. data/spec/search_blog_spec.rb +0 -0
  58. data/spec/search_book_spec.rb +0 -0
  59. data/spec/search_image_spec.rb +71 -0
  60. data/spec/search_local_spec.rb +0 -0
  61. data/spec/search_news_spec.rb +33 -0
  62. data/spec/search_patent_spec.rb +27 -0
  63. data/spec/search_spec.rb +89 -0
  64. data/spec/search_video_spec.rb +42 -0
  65. data/spec/search_web_spec.rb +42 -0
  66. data/spec/spec.opts +2 -0
  67. data/spec/spec_helper.rb +13 -0
  68. data/tasks/docs.rake +18 -0
  69. data/tasks/gemspec.rake +3 -0
  70. data/tasks/spec.rake +25 -0
  71. metadata +168 -0
@@ -0,0 +1,42 @@
1
+
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe Google::Search::Video do
5
+ before :each do
6
+ @search = Google::Search::Video.new :query => 'foo'
7
+ end
8
+
9
+ describe "#get_uri" do
10
+ describe "order_by" do
11
+ it "should validate" do
12
+ @search.order_by = :date
13
+ lambda { @search.get_uri }.should_not raise_error
14
+ end
15
+
16
+ it "should raise an error when invalid" do
17
+ @search.order_by = :foo
18
+ lambda { @search.get_uri }.should raise_error(Google::Search::Error, /order/)
19
+ end
20
+ end
21
+
22
+ describe "filter" do
23
+ it "should default to 1" do
24
+ @search.get_uri.should include('filter=1')
25
+ end
26
+
27
+ it "should consider anything positive as 1" do
28
+ @search.filter = true
29
+ @search.get_uri.should include('filter=1')
30
+ @search.filter = 123
31
+ @search.get_uri.should include('filter=1')
32
+ end
33
+
34
+ it "should consider anything negative as 0" do
35
+ @search.filter = false
36
+ @search.get_uri.should include('filter=0')
37
+ @search.filter = nil
38
+ @search.get_uri.should include('filter=0')
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe Google::Search::Web do
5
+ before :each do
6
+ @search = Google::Search::Web.new :query => 'foo'
7
+ end
8
+
9
+ describe "#get_uri" do
10
+ describe "safety_level" do
11
+ it "should validate" do
12
+ @search.safety_level = :moderate
13
+ lambda { @search.get_uri }.should_not raise_error
14
+ end
15
+
16
+ it "should raise an error when invalid" do
17
+ @search.safety_level = :foo
18
+ lambda { @search.get_uri }.should raise_error(Google::Search::Error, /safety/)
19
+ end
20
+ end
21
+
22
+ describe "filter" do
23
+ it "should default to 1" do
24
+ @search.get_uri.should include('filter=1')
25
+ end
26
+
27
+ it "should consider anything positive as 1" do
28
+ @search.filter = true
29
+ @search.get_uri.should include('filter=1')
30
+ @search.filter = 123
31
+ @search.get_uri.should include('filter=1')
32
+ end
33
+
34
+ it "should consider anything negative as 0" do
35
+ @search.filter = false
36
+ @search.get_uri.should include('filter=0')
37
+ @search.filter = nil
38
+ @search.get_uri.should include('filter=0')
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format specdoc
@@ -0,0 +1,13 @@
1
+
2
+ $:.unshift File.dirname(__FILE__) + '/../lib'
3
+ require 'pp'
4
+ require 'rubygems'
5
+ require 'google-search'
6
+
7
+ def fixture path
8
+ File.read File.dirname(__FILE__) + "/fixtures/#{path}"
9
+ end
10
+
11
+ def json_fixture name
12
+ Google::Search.json_decode fixture("#{name}.json")
13
+ end
@@ -0,0 +1,18 @@
1
+
2
+ namespace :docs do
3
+
4
+ desc 'Build sdoc'
5
+ task :build do
6
+ sh "sdoc -d -N -i lib -x spec -x examples -x doc -x Manifest -x Rakefile"
7
+ end
8
+
9
+ desc 'Remove rdoc products'
10
+ task :remove => [:clobber_docs]
11
+
12
+ desc 'Build docs, and open in browser for viewing (specify BROWSER)'
13
+ task :open => ['docs:build'] do
14
+ browser = ENV["BROWSER"] || "safari"
15
+ sh "open -a #{browser} doc/index.html"
16
+ end
17
+
18
+ end
@@ -0,0 +1,3 @@
1
+
2
+ desc 'Build gemspec file'
3
+ task :gemspec => [:build_gemspec]
@@ -0,0 +1,25 @@
1
+
2
+ require 'spec/rake/spectask'
3
+
4
+ desc "Run all specifications"
5
+ Spec::Rake::SpecTask.new(:spec) do |t|
6
+ t.libs << "lib"
7
+ t.spec_opts = ["--color", "--require", "spec/spec_helper.rb"]
8
+ end
9
+
10
+ namespace :spec do
11
+
12
+ desc "Run all specifications verbosely"
13
+ Spec::Rake::SpecTask.new(:verbose) do |t|
14
+ t.libs << "lib"
15
+ t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
16
+ end
17
+
18
+ desc "Run specific specification verbosely (specify SPEC)"
19
+ Spec::Rake::SpecTask.new(:select) do |t|
20
+ t.libs << "lib"
21
+ t.spec_files = [ENV["SPEC"]]
22
+ t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
23
+ end
24
+
25
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: google-search
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - TJ Holowaychuk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-07-30 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: json
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ description: Google Search API
26
+ email: tj@vision-media.ca
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - lib/google-search/item/base.rb
33
+ - lib/google-search/item/blog.rb
34
+ - lib/google-search/item/book.rb
35
+ - lib/google-search/item/image.rb
36
+ - lib/google-search/item/local.rb
37
+ - lib/google-search/item/news.rb
38
+ - lib/google-search/item/patent.rb
39
+ - lib/google-search/item/video.rb
40
+ - lib/google-search/item/web.rb
41
+ - lib/google-search/item.rb
42
+ - lib/google-search/response.rb
43
+ - lib/google-search/search/base.rb
44
+ - lib/google-search/search/blog.rb
45
+ - lib/google-search/search/book.rb
46
+ - lib/google-search/search/image.rb
47
+ - lib/google-search/search/local.rb
48
+ - lib/google-search/search/mixins/filter.rb
49
+ - lib/google-search/search/mixins/order_by.rb
50
+ - lib/google-search/search/mixins/safety_level.rb
51
+ - lib/google-search/search/mixins.rb
52
+ - lib/google-search/search/news.rb
53
+ - lib/google-search/search/patent.rb
54
+ - lib/google-search/search/video.rb
55
+ - lib/google-search/search/web.rb
56
+ - lib/google-search/search.rb
57
+ - lib/google-search/version.rb
58
+ - lib/google-search.rb
59
+ - README.rdoc
60
+ - tasks/docs.rake
61
+ - tasks/gemspec.rake
62
+ - tasks/spec.rake
63
+ files:
64
+ - examples/image.rb
65
+ - examples/images.html
66
+ - examples/web.rb
67
+ - google-search.gemspec
68
+ - History.rdoc
69
+ - lib/google-search/item/base.rb
70
+ - lib/google-search/item/blog.rb
71
+ - lib/google-search/item/book.rb
72
+ - lib/google-search/item/image.rb
73
+ - lib/google-search/item/local.rb
74
+ - lib/google-search/item/news.rb
75
+ - lib/google-search/item/patent.rb
76
+ - lib/google-search/item/video.rb
77
+ - lib/google-search/item/web.rb
78
+ - lib/google-search/item.rb
79
+ - lib/google-search/response.rb
80
+ - lib/google-search/search/base.rb
81
+ - lib/google-search/search/blog.rb
82
+ - lib/google-search/search/book.rb
83
+ - lib/google-search/search/image.rb
84
+ - lib/google-search/search/local.rb
85
+ - lib/google-search/search/mixins/filter.rb
86
+ - lib/google-search/search/mixins/order_by.rb
87
+ - lib/google-search/search/mixins/safety_level.rb
88
+ - lib/google-search/search/mixins.rb
89
+ - lib/google-search/search/news.rb
90
+ - lib/google-search/search/patent.rb
91
+ - lib/google-search/search/video.rb
92
+ - lib/google-search/search/web.rb
93
+ - lib/google-search/search.rb
94
+ - lib/google-search/version.rb
95
+ - lib/google-search.rb
96
+ - Manifest
97
+ - Rakefile
98
+ - README.rdoc
99
+ - spec/fixtures/400-response.json
100
+ - spec/fixtures/blog-response.json
101
+ - spec/fixtures/book-response.json
102
+ - spec/fixtures/image-response.json
103
+ - spec/fixtures/invalid-response.json
104
+ - spec/fixtures/local-response.json
105
+ - spec/fixtures/news-response.json
106
+ - spec/fixtures/patent-response.json
107
+ - spec/fixtures/video-response.json
108
+ - spec/fixtures/web-2-response.json
109
+ - spec/fixtures/web-response.json
110
+ - spec/item_blog_spec.rb
111
+ - spec/item_book_spec.rb
112
+ - spec/item_image_spec.rb
113
+ - spec/item_local_spec.rb
114
+ - spec/item_news_spec.rb
115
+ - spec/item_patent_spec.rb
116
+ - spec/item_spec.rb
117
+ - spec/item_video_spec.rb
118
+ - spec/item_web_spec.rb
119
+ - spec/response_spec.rb
120
+ - spec/search_blog_spec.rb
121
+ - spec/search_book_spec.rb
122
+ - spec/search_image_spec.rb
123
+ - spec/search_local_spec.rb
124
+ - spec/search_news_spec.rb
125
+ - spec/search_patent_spec.rb
126
+ - spec/search_spec.rb
127
+ - spec/search_video_spec.rb
128
+ - spec/search_web_spec.rb
129
+ - spec/spec.opts
130
+ - spec/spec_helper.rb
131
+ - tasks/docs.rake
132
+ - tasks/gemspec.rake
133
+ - tasks/spec.rake
134
+ has_rdoc: true
135
+ homepage: http://github.com/visionmedia/google-search
136
+ licenses: []
137
+
138
+ post_install_message:
139
+ rdoc_options:
140
+ - --line-numbers
141
+ - --inline-source
142
+ - --title
143
+ - Google-search
144
+ - --main
145
+ - README.rdoc
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: "0"
153
+ version:
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: "1.2"
159
+ version:
160
+ requirements: []
161
+
162
+ rubyforge_project: google-search
163
+ rubygems_version: 1.3.5
164
+ signing_key:
165
+ specification_version: 3
166
+ summary: Google Search API
167
+ test_files: []
168
+