seo_info 0.0.1
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.
- data/.gitignore +4 -0
- data/.rspec +1 -0
- data/CHANGELOG.MD +4 -0
- data/Gemfile +4 -0
- data/README.md +29 -0
- data/Rakefile +13 -0
- data/lib/seo_info/google.rb +23 -0
- data/lib/seo_info/version.rb +3 -0
- data/lib/seo_info.rb +7 -0
- data/seo_info.gemspec +23 -0
- data/spec/data/google_search.html +407 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/specs/google_spec.rb +15 -0
- metadata +86 -0
data/.gitignore
ADDED
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--colour --format doc
|
data/CHANGELOG.MD
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Description
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
seo_info gem gets different seo information for web-sites.
|
|
5
|
+
|
|
6
|
+
Features
|
|
7
|
+
========
|
|
8
|
+
|
|
9
|
+
Things that you are able to do right now with this gem:
|
|
10
|
+
|
|
11
|
+
* Number of pages indexed by Google
|
|
12
|
+
|
|
13
|
+
Install
|
|
14
|
+
=======
|
|
15
|
+
|
|
16
|
+
`gem install seo_info`
|
|
17
|
+
|
|
18
|
+
OR
|
|
19
|
+
|
|
20
|
+
Put this line in your Gemfile:
|
|
21
|
+
`gem 'seo_info'`
|
|
22
|
+
|
|
23
|
+
Then bundle:
|
|
24
|
+
`$ bundle`
|
|
25
|
+
|
|
26
|
+
Contributing
|
|
27
|
+
============
|
|
28
|
+
|
|
29
|
+
If you consider to contribute to seo_info gem, please try to cover your code with tests
|
data/Rakefile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
2
|
+
require "open-uri"
|
|
3
|
+
|
|
4
|
+
namespace :test do
|
|
5
|
+
desc "Getting fresh page source data for specs"
|
|
6
|
+
task :prepare do
|
|
7
|
+
puts "Getting google search page..."
|
|
8
|
+
page = open("https://www.google.com/search?hl=en&safe=off&q=site%3Aruby-lang.org&btnG=Search").read
|
|
9
|
+
path = 'spec/data/google_search.html'
|
|
10
|
+
File.open(path, 'w') {|f| f.write page}
|
|
11
|
+
puts "Successfully saved google search result page into #{path}"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module SeoInfo
|
|
2
|
+
class Google
|
|
3
|
+
attr_accessor :site_url
|
|
4
|
+
attr_reader :results
|
|
5
|
+
|
|
6
|
+
def initialize(site_url)
|
|
7
|
+
@site_url = site_url
|
|
8
|
+
@results = {}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def indexed_pages
|
|
12
|
+
results[:indexed_pages] ||= begin
|
|
13
|
+
page = Nokogiri::HTML(get_page)
|
|
14
|
+
page.xpath('//div[@id="subform_ctrl"]/div/b/text()')[2].text.gsub(/[^\d]/,'').to_i
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
def get_page
|
|
20
|
+
open("https://www.google.com/search?hl=en&safe=off&q=site%3A#{site_url}&btnG=Search").read
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
data/lib/seo_info.rb
ADDED
data/seo_info.gemspec
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
require "seo_info/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = "seo_info"
|
|
7
|
+
s.version = SeoInfo::VERSION
|
|
8
|
+
s.authors = ["Sergey Parizhskiy", "Dina Zhyliaieva"]
|
|
9
|
+
s.email = ["parizhskiy@gmail.com", "dinaionenko@reevoo.com"]
|
|
10
|
+
s.homepage = ""
|
|
11
|
+
s.summary = %q{SEO information for web-sites}
|
|
12
|
+
s.description = %q{Gets different seo information such as Page Rank, Alexa Rank, number of indexed pages in different search engines and so on.}
|
|
13
|
+
|
|
14
|
+
s.rubyforge_project = "seo_info"
|
|
15
|
+
|
|
16
|
+
s.files = `git ls-files`.split("\n")
|
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
19
|
+
s.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
s.add_development_dependency "rspec"
|
|
22
|
+
s.add_runtime_dependency "nokogiri"
|
|
23
|
+
end
|
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>site:ruby-lang.org - Google Search</title><style>#gbar,#guser{font-size:13px;padding-top:1px !important}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}</style><style>
|
|
2
|
+
body,td,div,.p,a{
|
|
3
|
+
font-family:arial,sans-serif
|
|
4
|
+
}
|
|
5
|
+
body {
|
|
6
|
+
margin:0
|
|
7
|
+
}
|
|
8
|
+
#gbar{
|
|
9
|
+
float:left;
|
|
10
|
+
height:22px;padding-left:2px;
|
|
11
|
+
font-size:13px
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.gssb_c table{
|
|
15
|
+
font-size:1em
|
|
16
|
+
}
|
|
17
|
+
.gsfi,.gsfs{
|
|
18
|
+
font-size:17px
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.j{
|
|
22
|
+
width:34em
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
a:link,.w,.q:active,.q:visited,.tbotu{
|
|
26
|
+
color:#11c
|
|
27
|
+
}
|
|
28
|
+
a.fl,.flc a{
|
|
29
|
+
color:#4272db;text-decoration:none
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
a.gl{
|
|
33
|
+
text-decoration:none
|
|
34
|
+
}
|
|
35
|
+
cite, cite a:link{
|
|
36
|
+
color:#0E774A;
|
|
37
|
+
font-style:normal
|
|
38
|
+
}
|
|
39
|
+
#foot {
|
|
40
|
+
padding:0 8px;
|
|
41
|
+
}
|
|
42
|
+
#foot a{
|
|
43
|
+
white-space:nowrap
|
|
44
|
+
}
|
|
45
|
+
h3{
|
|
46
|
+
font-size:16px;
|
|
47
|
+
font-weight:normal;
|
|
48
|
+
margin:0;
|
|
49
|
+
padding:0
|
|
50
|
+
}
|
|
51
|
+
#res h3{
|
|
52
|
+
display:inline
|
|
53
|
+
}
|
|
54
|
+
.hd{
|
|
55
|
+
height:1px;
|
|
56
|
+
position:absolute;
|
|
57
|
+
top:-1000em
|
|
58
|
+
}
|
|
59
|
+
li.g,body,html,table,.std{
|
|
60
|
+
font-size:13px
|
|
61
|
+
}
|
|
62
|
+
li.g{
|
|
63
|
+
margin-bottom:14px;
|
|
64
|
+
margin-top:0;
|
|
65
|
+
zoom:1;
|
|
66
|
+
}
|
|
67
|
+
ol li,ul li{
|
|
68
|
+
list-style:none
|
|
69
|
+
}
|
|
70
|
+
h1,ol,ul,li{
|
|
71
|
+
margin:0;padding:0
|
|
72
|
+
}
|
|
73
|
+
#mbEnd li{
|
|
74
|
+
margin:1em 0
|
|
75
|
+
}
|
|
76
|
+
#mbEnd h2{
|
|
77
|
+
color:#676767;
|
|
78
|
+
font-family:arial,sans-serif;
|
|
79
|
+
font-size:11px;
|
|
80
|
+
font-weight:normal
|
|
81
|
+
}
|
|
82
|
+
#center_col{
|
|
83
|
+
border-left:1px solid #d3e1f9;
|
|
84
|
+
padding:0 8px
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
#fll a,#bfl a{
|
|
88
|
+
margin:0 10px
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.f{
|
|
92
|
+
color:#767676
|
|
93
|
+
}
|
|
94
|
+
.grn{
|
|
95
|
+
color:#393
|
|
96
|
+
}
|
|
97
|
+
.ds{
|
|
98
|
+
border-right:1px solid #e7e7e7;
|
|
99
|
+
position:relative;
|
|
100
|
+
height:32px;
|
|
101
|
+
|
|
102
|
+
z-index:100
|
|
103
|
+
}
|
|
104
|
+
.e{
|
|
105
|
+
margin:2px 0px 0.75em
|
|
106
|
+
}
|
|
107
|
+
#leftnav a,.slk a{
|
|
108
|
+
text-decoration:none
|
|
109
|
+
}
|
|
110
|
+
#leftnav h2{
|
|
111
|
+
color: #767676;
|
|
112
|
+
font-weight: normal;
|
|
113
|
+
margin:0
|
|
114
|
+
}
|
|
115
|
+
#logo{
|
|
116
|
+
display:block;
|
|
117
|
+
height:49px;
|
|
118
|
+
margin-top:12px;
|
|
119
|
+
margin-left:12px;
|
|
120
|
+
overflow:hidden;
|
|
121
|
+
position:relative;
|
|
122
|
+
width:137px
|
|
123
|
+
}
|
|
124
|
+
#logo img{
|
|
125
|
+
|
|
126
|
+
left:0;
|
|
127
|
+
position:absolute;
|
|
128
|
+
top:-41px
|
|
129
|
+
}
|
|
130
|
+
.lnsec{
|
|
131
|
+
font-size:13px;
|
|
132
|
+
border-top:1px solid #c9d7f1;
|
|
133
|
+
margin-top:5px;
|
|
134
|
+
padding-top:8px
|
|
135
|
+
}
|
|
136
|
+
.lsb,.micon,.csb,.star,.star div{
|
|
137
|
+
background:url(/images/nav_logo_hp2.png) no-repeat;
|
|
138
|
+
overflow:hidden
|
|
139
|
+
}
|
|
140
|
+
.lst{
|
|
141
|
+
background:#fff;
|
|
142
|
+
border:1px solid #ccc;
|
|
143
|
+
border-bottom:none;
|
|
144
|
+
color:#000;
|
|
145
|
+
font:18px arial,sans-serif;
|
|
146
|
+
|
|
147
|
+
float:left;
|
|
148
|
+
height:26px;
|
|
149
|
+
margin:0;
|
|
150
|
+
padding:4px 0 0;
|
|
151
|
+
padding-left:6px;
|
|
152
|
+
padding-right:10px;
|
|
153
|
+
vertical-align:top;
|
|
154
|
+
width:100%;
|
|
155
|
+
|
|
156
|
+
word-break:break-all
|
|
157
|
+
}
|
|
158
|
+
.lst:focus{
|
|
159
|
+
outline:none
|
|
160
|
+
}
|
|
161
|
+
.lst-td{
|
|
162
|
+
border-bottom:1px solid #999;
|
|
163
|
+
padding:0
|
|
164
|
+
}
|
|
165
|
+
.lst-b{
|
|
166
|
+
border:1px solid #CCC;
|
|
167
|
+
border-bottom:none;
|
|
168
|
+
padding-right:0;
|
|
169
|
+
height:29px;
|
|
170
|
+
padding-top:1px
|
|
171
|
+
}
|
|
172
|
+
.tia input{
|
|
173
|
+
border-right:none;
|
|
174
|
+
padding-right:0
|
|
175
|
+
}
|
|
176
|
+
.tia{
|
|
177
|
+
padding-right:0
|
|
178
|
+
}
|
|
179
|
+
.lsbb{
|
|
180
|
+
background:#eee;
|
|
181
|
+
border:1px solid #999;
|
|
182
|
+
border-top-color:#ccc;
|
|
183
|
+
border-left-color:#ccc;
|
|
184
|
+
height:30px
|
|
185
|
+
}
|
|
186
|
+
.lsb{
|
|
187
|
+
background-position:bottom;
|
|
188
|
+
border:none;
|
|
189
|
+
color:#000;
|
|
190
|
+
cursor:pointer;
|
|
191
|
+
font:15px arial,sans-serif;
|
|
192
|
+
height:30px;
|
|
193
|
+
margin:0;
|
|
194
|
+
vertical-align:top
|
|
195
|
+
}
|
|
196
|
+
.lsb:active{
|
|
197
|
+
background:#ccc
|
|
198
|
+
}
|
|
199
|
+
.micon {
|
|
200
|
+
float:left;
|
|
201
|
+
height:19px;
|
|
202
|
+
margin-top:2px;
|
|
203
|
+
margin-right: 6px;
|
|
204
|
+
width:19px;
|
|
205
|
+
}
|
|
206
|
+
#nav{
|
|
207
|
+
|
|
208
|
+
border-collapse:collapse;
|
|
209
|
+
margin-top:17px;
|
|
210
|
+
text-align:left
|
|
211
|
+
}
|
|
212
|
+
#nav td{
|
|
213
|
+
text-align:center;
|
|
214
|
+
}
|
|
215
|
+
.nobr{
|
|
216
|
+
white-space:nowrap
|
|
217
|
+
}
|
|
218
|
+
#showmodes .micon{
|
|
219
|
+
background-position:-150px -114px;
|
|
220
|
+
height:17px;
|
|
221
|
+
margin-left:9px;
|
|
222
|
+
width:17px;
|
|
223
|
+
}
|
|
224
|
+
#subform_ctrl{
|
|
225
|
+
font-size:11px;
|
|
226
|
+
height:26px;
|
|
227
|
+
margin:5px 3px 0;
|
|
228
|
+
margin-left:17px
|
|
229
|
+
}
|
|
230
|
+
.ts{
|
|
231
|
+
border-collapse:collapse
|
|
232
|
+
}
|
|
233
|
+
#mn{
|
|
234
|
+
table-layout:fixed;width:996px
|
|
235
|
+
}
|
|
236
|
+
.mitem{
|
|
237
|
+
font-size:15px;
|
|
238
|
+
line-height:24px;
|
|
239
|
+
margin-bottom:2px;
|
|
240
|
+
padding-left:0
|
|
241
|
+
}
|
|
242
|
+
.msel{
|
|
243
|
+
font-weight:bold;
|
|
244
|
+
margin:-1px 0 0 0;
|
|
245
|
+
border:solid #fff;
|
|
246
|
+
border-width:1px 0
|
|
247
|
+
}
|
|
248
|
+
.r{
|
|
249
|
+
margin:0
|
|
250
|
+
}
|
|
251
|
+
#res{
|
|
252
|
+
padding:4px 8px 0
|
|
253
|
+
}
|
|
254
|
+
.s br{
|
|
255
|
+
display:none
|
|
256
|
+
}
|
|
257
|
+
.spon{
|
|
258
|
+
font-size:11px;
|
|
259
|
+
font-weight:normal;
|
|
260
|
+
color:#767676
|
|
261
|
+
}
|
|
262
|
+
.mitem,.lnsec{
|
|
263
|
+
padding-left:8px
|
|
264
|
+
}
|
|
265
|
+
#showmodes{
|
|
266
|
+
font-size:15px;
|
|
267
|
+
line-height:24px;
|
|
268
|
+
}
|
|
269
|
+
#swr{
|
|
270
|
+
margin-top:4px
|
|
271
|
+
}
|
|
272
|
+
#swr li{
|
|
273
|
+
line-height:1.2;
|
|
274
|
+
margin-bottom:4px
|
|
275
|
+
}
|
|
276
|
+
.csb{
|
|
277
|
+
display:block;
|
|
278
|
+
height:40px;
|
|
279
|
+
}
|
|
280
|
+
.images_table td{line-height:17px;padding-bottom:16px}
|
|
281
|
+
.images_table img{border:1px solid #ccc;padding:1px}
|
|
282
|
+
.taf{
|
|
283
|
+
padding:1px 0 0
|
|
284
|
+
}
|
|
285
|
+
.tam{
|
|
286
|
+
padding:14px 0 0
|
|
287
|
+
}
|
|
288
|
+
.tal{
|
|
289
|
+
padding:14px 0 1px
|
|
290
|
+
}
|
|
291
|
+
#tbd,#abd{
|
|
292
|
+
display:block;
|
|
293
|
+
min-height:1px;
|
|
294
|
+
padding-top:3px
|
|
295
|
+
}
|
|
296
|
+
#tbd li{
|
|
297
|
+
|
|
298
|
+
display:inline
|
|
299
|
+
}
|
|
300
|
+
.tbfo,.tbt,.tbpd{
|
|
301
|
+
margin-bottom:8px
|
|
302
|
+
}
|
|
303
|
+
#tbd .tbt li{
|
|
304
|
+
display:block;
|
|
305
|
+
font-size:13px;
|
|
306
|
+
line-height:1.2;
|
|
307
|
+
padding-bottom:3px;
|
|
308
|
+
padding-left:8px;
|
|
309
|
+
text-indent:-8px
|
|
310
|
+
}
|
|
311
|
+
.tbos,.b{
|
|
312
|
+
font-weight:bold;
|
|
313
|
+
}
|
|
314
|
+
a:hover{
|
|
315
|
+
text-decoration:underline
|
|
316
|
+
}
|
|
317
|
+
#leftnav a:hover {
|
|
318
|
+
text-decoration:underline;
|
|
319
|
+
}
|
|
320
|
+
em{
|
|
321
|
+
font-weight:bold;
|
|
322
|
+
font-style:normal
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.gac_wd{
|
|
326
|
+
right:-2px !important;
|
|
327
|
+
|
|
328
|
+
overflow:hidden
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.fmg{
|
|
332
|
+
display:inline-block;
|
|
333
|
+
margin-top:7px;
|
|
334
|
+
padding-right:8px;
|
|
335
|
+
text-align-left;
|
|
336
|
+
vertical-align:top;
|
|
337
|
+
width:90px;
|
|
338
|
+
zoom:1
|
|
339
|
+
}
|
|
340
|
+
.star{
|
|
341
|
+
|
|
342
|
+
background-position:0 -120px;
|
|
343
|
+
|
|
344
|
+
height:9px;
|
|
345
|
+
overflow-hidden;
|
|
346
|
+
width:50px
|
|
347
|
+
}
|
|
348
|
+
.star div{
|
|
349
|
+
|
|
350
|
+
background-position:0 -110px
|
|
351
|
+
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.pslires{
|
|
355
|
+
padding-top:6px;
|
|
356
|
+
overflow:hidden;
|
|
357
|
+
width:99.5%
|
|
358
|
+
}
|
|
359
|
+
.psliimg{
|
|
360
|
+
float:left;
|
|
361
|
+
height:90px;
|
|
362
|
+
text-align:top;
|
|
363
|
+
width:90px
|
|
364
|
+
}
|
|
365
|
+
.pslimain{
|
|
366
|
+
margin-left:100px;
|
|
367
|
+
margin-right:9em
|
|
368
|
+
}
|
|
369
|
+
.psliprice{
|
|
370
|
+
float:right;
|
|
371
|
+
width:7em
|
|
372
|
+
}
|
|
373
|
+
.psliprice b{
|
|
374
|
+
font-size:medium;
|
|
375
|
+
font-weight:bold;
|
|
376
|
+
white-space:nowrap
|
|
377
|
+
}
|
|
378
|
+
.psliimg img{
|
|
379
|
+
border:none
|
|
380
|
+
}
|
|
381
|
+
</style><script type="text/javascript">
|
|
382
|
+
window['hlprwt'] = function(t, ct) {
|
|
383
|
+
try {
|
|
384
|
+
if (t === window) {
|
|
385
|
+
t = window.event.srcElement;
|
|
386
|
+
while (t) {
|
|
387
|
+
if (t.href) {
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
t = t.parentNode;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
t.href = ct;
|
|
394
|
+
t.onmousedown = '';
|
|
395
|
+
} catch (e) {
|
|
396
|
+
}
|
|
397
|
+
return true;
|
|
398
|
+
}
|
|
399
|
+
window.google = { y: {} };
|
|
400
|
+
</script><script type="text/javascript"></script></head>
|
|
401
|
+
<body bgcolor="#ffffff" topmargin="3" marginheight="3" marginwidth="0"
|
|
402
|
+
><div id=gbar><nobr><b class=gb1>Web</b> <a class=gb1 href="https://www.google.com/search?hl=en&safe=off&q=site:ruby-lang.org&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi">Images</a> <a class=gb1 href="https://www.google.com/search?hl=en&safe=off&q=site:ruby-lang.org&um=1&ie=UTF-8&tbo=u&tbm=vid&source=og&sa=N&tab=wv">Videos</a> <a class=gb1 href="http://maps.google.com/maps?hl=en&safe=off&q=site:ruby-lang.org&um=1&ie=UTF-8&sa=N&tab=wl">Maps</a> <a class=gb1 href="http://news.google.com/nwshp?hl=en&tab=wn">News</a> <a class=gb1 href="https://www.google.com/search?hl=en&safe=off&q=site:ruby-lang.org&um=1&ie=UTF-8&tbo=u&tbm=shop&source=og&sa=N&tab=wf">Shopping</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 style="text-decoration:none" href="http://www.google.com/intl/en/options/"><u>More</u> »</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a href="/preferences?hl=en" class=gb4>Settings</a> | <a id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&continue=https://www.google.com/search%3Fhl%3Den%26safe%3Doff%26q%3Dsite:ruby-lang.org%26btnG%3DSearch" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div><br clear="all"><table border="0" cellpadding="0" cellspacing="0" id="mn" style="position:relative"><tr><td rowspan="2" valign="top" width="157"><h1><a href="/webhp?hl=en" id="logo" title="Go to Google Home"><img src="/images/nav_logo_hp2.png" alt="" height="222" style="border:0" width="167"></a></h1></td><td valign="top" style="padding-left:9px" width="559"><form name="gs" id="tsf" method="GET" action="/search" style="display:block;margin:0;background:none"><table border="0" cellpadding="0" cellspacing="0" id="sbhost" style="border-bottom:1px solid #e7e7e7;margin-top:18px;position:relative"><tr><td class="lst-td" width="100%" valign="bottom" style=""><div style="position:relative;zoom:1"><input autocomplete="off" class="lst" type="text" name="q" maxlength="2048" title="Search" value="site:ruby-lang.org"></div></td><td><div class="ds"><div class="lsbb"><input type="submit" name="btnG" class="lsb" value="Search"></div></div></td></tr></table><input type="hidden" name="hl" value="en"><input type="hidden" name="safe" value="off"></form></td><td style="padding-left:5px" width="259"><a href="/preferences?q=site:ruby-lang.org&hl=en&safe=off&ie=UTF-8&sa=F" class="fl" style="
|
|
403
|
+
font-size:11px;margin-left:8px
|
|
404
|
+
">SafeSearch is off</a></td></tr><tr><td width="100%"><div id="subform_ctrl"><div style="float:right"><a class="fl" href="/advanced_search?q=site:ruby-lang.org&hl=en&safe=off&ie=UTF-8">Advanced Search</a></div><div>Results <b>1</b> - <b>10</b> of about <b>155,000</b> from <b>ruby-lang.org</b>.</div></div></td><td></td></tr><tr><td valign="top" id="leftnav" style="padding:4px"><div id="modeselector" style="padding-bottom:4px"><ul><li class="mitem msel"><span class="micon" style="
|
|
405
|
+
background-position:-20px -132px
|
|
406
|
+
"></span>Everything</li></ul><a id="showmodes" class="q" href="/search?hl=en&safe=off&q=site%3Aruby-lang.org&prmdo=1&sa=X"><span class="micon"></span><span class="msm">More</span></a></div><div class="lnsec"><h2 class="hd">Search Options</h2><ul id="tbd" class="med"></ul><a href="/search?q=site:ruby-lang.org&hl=en&safe=off&sa=G&ie=UTF-8&tbo=1" class="q" style="display:block;margin-bottom:16px">Show options...</a></div></td><td valign="top"><div id="center_col"><div id="tbbc" style="background:#ebeff9;padding:8px;margin-bottom:4px"><b>Web</b></div><div id="res"><div id="ires"><ol><li class="g"><h3 class="r"><a href="http://ruby-lang.org/" onmousedown="return hlprwt(this, 'http://ruby-lang.org/')">Ruby Programming Language</a></h3><div class="s">31 Oct 2011 <b>...</b> A dynamic, interpreted, open source programming language with a focus on <br> simplicity and productivity. Site includes news, downloads, <b>...</b><br><div><cite>ruby-lang.org/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:yxzR5ojuzQ8J:http://ruby-lang.org/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://ruby-lang.org/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/fr/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/fr/')">Le langage Ruby</a></h3><div class="s">31 oct. 2011 <b>...</b> Sortie de Ruby 1.9.3-p0. Ruby 1.9.3-p0 est sorti. C'est la version stable la plus <br> r�cente de la s�rie 1.9. Voyez les fichiers ChangeLog et NEWS <b>...</b><br><div><cite>www.ruby-lang.org/fr/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:NltJcsh7PQQJ:http://www.ruby-lang.org/fr/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/fr/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/pl/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/pl/')">Język programowania Ruby</a></h3><div class="s">17 Sie 2011 <b>...</b> RuPy 2011 już za dwa miesiące! RuPy 2011, to czwarta edycja wyjątkowej, <br> międzynarodowej konferencji, poświęconej gł�wnie dynamicznych <b>...</b><br><div><cite>www.ruby-lang.org/pl/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:l2ImNGN7bskJ:http://www.ruby-lang.org/pl/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/pl/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/ja/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/ja/')">オブジェクト指向スクリプト言語 Ruby</a></h3><div class="s">2011年12月3日 <b>...</b> 公式サイト。ニュース、メーリングリストの紹介、ダウンロード。<br><div><cite>www.ruby-lang.org/ja/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:j7GvXdh02YYJ:http://www.ruby-lang.org/ja/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/ja/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/zh_TW/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/zh_TW/')">Ruby Programming Language 中文官方網頁</a></h3><div class="s">RubyConf Taiwan 2011 Call For Sponsors · RubyConf Taiwan 將於2011/8/26 (週<br> 五) 和8/27 (週六) 在中央研究院人科所會議廳舉辦,是台灣唯一及最大的Ruby <b>...</b><br><div><cite>www.ruby-lang.org/zh_TW/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:H0I1vQgMg2cJ:http://www.ruby-lang.org/zh_TW/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/zh_TW/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/it" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/it')">Il linguaggio di programmazione Ruby</a></h3><div class="s">5 ago 2011 <b>...</b> Rilasciato Ruby 1.9.3 preview1. Ruby 1.9.3 preview1 � stato rilasciato. Questa � <br> una prima preview della prossima versione, e contiene ancora <b>...</b><br><div><cite>www.ruby-lang.org/it</cite><span class="flc"> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/it+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/zh_cn" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/zh_cn')">Ruby 程序设计语言官方网站</a></h3><div class="s">Ruby 是... 一种跨平台、面向对象的动态类型编程语言。Ruby 体现了表达的一致性和<br> 简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。 更多. <b>...</b><br><div><cite>www.ruby-lang.org/zh_cn</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:5TcPjRsnRYMJ:http://www.ruby-lang.org/zh_cn+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/zh_cn+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/id/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/id/')">Bahasa Pemrograman Ruby</a></h3><div class="s">Ruby 1.9.1 rilis! Ruby 1.9.1 rilis. Ini adalah rilis stabil pertama dari Ruby Seri 1.9. <br> Ruby 1.9 modern, lebih cepat, dengan sintaks jelas, multilingualized, yang <b>...</b><br><div><cite>www.ruby-lang.org/id/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:hHWN50mDHXcJ:http://www.ruby-lang.org/id/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/id/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/es/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/es/')">Lenguaje de Programaci�n Ruby</a></h3><div class="s">4 Nov 2011 <b>...</b> Ruby es� Un lenguaje de programaci�n din�mico y de c�digo abierto enfocado <br> en la simplicidad y productividad. Su elegante sintaxis se <b>...</b><br><div><cite>www.ruby-lang.org/es/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:UEjMjl6oGTgJ:http://www.ruby-lang.org/es/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/es/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li><li class="g"><h3 class="r"><a href="http://www.ruby-lang.org/pt/" onmousedown="return hlprwt(this, 'http://www.ruby-lang.org/pt/')">Linguagem de Programa��o Ruby</a></h3><div class="s">2 ago. 2011 <b>...</b> Lan�ado o Ruby 1.9.3 preview1. O Ruby 1.9.3 preview1 foi lan�ado. Esta � a <br> primeira pre-release da pr�xima vers�o e ainda existem alguns <b>...</b><br><div><cite>www.ruby-lang.org/pt/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?hl=en&safe=off&q=cache:S0y6Ga9SmyEJ:http://www.ruby-lang.org/pt/+site%3Aruby-lang.org&ct=clnk">Cached</a> - <a href="/search?hl=en&safe=off&tbo=1&q=related:http://www.ruby-lang.org/pt/+site%3Aruby-lang.org&sa=X">Similar</a></span></div></div></li></ol></div></div></div><div id="foot"><table align="center" border="0" cellpadding="0" cellspacing="0" id="nav"><tr valign="top"><td class="b" align="left"><span class="csb ch" style="background-position:-26px 0;width:18px"></span><b></b></td><td><span class="csb ch" style="background-position:-44px 0;width:16px"></span><b>1</b></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=10&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>2</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=20&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>3</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=30&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>4</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=40&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>5</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=50&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>6</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=60&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>7</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=70&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>8</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=80&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>9</a></td><td><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=90&sa=N" class="fl"><span class="csb ch" style="background-position:-60px 0;width:16px"></span>10</a></td><td class="b" style="text-align:left"><a href="/search?hl=en&safe=off&ie=UTF-8&ei=RE7zTr7dPJqPsAaV6tUW&q=site:ruby-lang.org&start=10&sa=N" style="text-align:left"><span class="csb ch" style="background-position:-76px 0;width:66px"></span><span style="display:block;margin-left:53px">Next</span></a></td></tr></table><div><div style="margin-top:22px"><form method="GET" action="/search"><table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-bottom:1px solid #e7e7e7;padding:8px 0 0;position:relative"><tr><td class="lst-td" width="100%" valign="bottom"><div style="position:relative;zoom:1"><input autocomplete="off" class="lst" type="text" name="q" maxlength="2048" value="site:ruby-lang.org" title="Search"></div></td><td><div class="ds"><div class="lsbb"><input type="submit" name="btnG" class="lsb" value="Search"></div></div></td></tr></table><input type="hidden" name="hl" value="en"><input type="hidden" name="safe" value="off"></form></div><p id="bfl" class="flc" style="margin:6px 0 0;text-align:center"><a href="/support/websearch/bin/answer.py?answer=134479&hl=en">Search Help</a></p></div><div id="fll" class="flc" style="margin:19px auto 19px auto;text-align:center"><a href="/">Google Home</a> <a href="
|
|
407
|
+
/intl/en/ads/">Advertising Programs</a> <a href="/services">Business Solutions</a> <a href="/intl/en/privacy.html">Privacy</a> <a href="/intl/en/about.html">About Google</a></div></div></td><td valign="top"></td></tr></table><script src="/extern_js/f/CgJlbiAAKzBaOAAsKzAOOAAsKzAKOACaAgJoZSwrMBg4ACyAAgSQAl0/V-eO8SDgTAw.js"></script><script type="text/javascript">google.ac.c({"client":"serp","dh":true,"ds":"","fl":true,"host":"google.com","jsonp":true,"msgs":{"lcky":"I\u0026#39;m Feeling Lucky","lml":"Learn more","psrc":"This search was removed from your \u003Ca href=\"/history\"\u003EWeb History\u003C/a\u003E","psrl":"Remove","srch":"Google Search"},"ovr":{"d":1,"hl":1,"l":1,"o":1,"p":1,"ps":1,"sw":1,"vc":-3},"pq":"site:ruby-lang.org","scd":10,"sce":5})</script></body></html>
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
describe SeoInfo::Google do
|
|
4
|
+
let(:google) do
|
|
5
|
+
path = 'spec/data/google_search.html'
|
|
6
|
+
google = SeoInfo::Google.new('example.com')
|
|
7
|
+
google.stub(:get_page).and_return(File.read(path))
|
|
8
|
+
google
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "returns number greater than zero" do
|
|
12
|
+
google.indexed_pages.should > 0
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: seo_info
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Sergey Parizhskiy
|
|
9
|
+
- Dina Zhyliaieva
|
|
10
|
+
autorequire:
|
|
11
|
+
bindir: bin
|
|
12
|
+
cert_chain: []
|
|
13
|
+
date: 2011-12-22 00:00:00.000000000 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: rspec
|
|
17
|
+
requirement: &2153233340 !ruby/object:Gem::Requirement
|
|
18
|
+
none: false
|
|
19
|
+
requirements:
|
|
20
|
+
- - ! '>='
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '0'
|
|
23
|
+
type: :development
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: *2153233340
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: nokogiri
|
|
28
|
+
requirement: &2153232920 !ruby/object:Gem::Requirement
|
|
29
|
+
none: false
|
|
30
|
+
requirements:
|
|
31
|
+
- - ! '>='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: *2153232920
|
|
37
|
+
description: Gets different seo information such as Page Rank, Alexa Rank, number
|
|
38
|
+
of indexed pages in different search engines and so on.
|
|
39
|
+
email:
|
|
40
|
+
- parizhskiy@gmail.com
|
|
41
|
+
- dinaionenko@reevoo.com
|
|
42
|
+
executables: []
|
|
43
|
+
extensions: []
|
|
44
|
+
extra_rdoc_files: []
|
|
45
|
+
files:
|
|
46
|
+
- .gitignore
|
|
47
|
+
- .rspec
|
|
48
|
+
- CHANGELOG.MD
|
|
49
|
+
- Gemfile
|
|
50
|
+
- README.md
|
|
51
|
+
- Rakefile
|
|
52
|
+
- lib/seo_info.rb
|
|
53
|
+
- lib/seo_info/google.rb
|
|
54
|
+
- lib/seo_info/version.rb
|
|
55
|
+
- seo_info.gemspec
|
|
56
|
+
- spec/data/google_search.html
|
|
57
|
+
- spec/spec_helper.rb
|
|
58
|
+
- spec/specs/google_spec.rb
|
|
59
|
+
homepage: ''
|
|
60
|
+
licenses: []
|
|
61
|
+
post_install_message:
|
|
62
|
+
rdoc_options: []
|
|
63
|
+
require_paths:
|
|
64
|
+
- lib
|
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
|
+
none: false
|
|
67
|
+
requirements:
|
|
68
|
+
- - ! '>='
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: '0'
|
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
|
+
none: false
|
|
73
|
+
requirements:
|
|
74
|
+
- - ! '>='
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '0'
|
|
77
|
+
requirements: []
|
|
78
|
+
rubyforge_project: seo_info
|
|
79
|
+
rubygems_version: 1.8.10
|
|
80
|
+
signing_key:
|
|
81
|
+
specification_version: 3
|
|
82
|
+
summary: SEO information for web-sites
|
|
83
|
+
test_files:
|
|
84
|
+
- spec/data/google_search.html
|
|
85
|
+
- spec/spec_helper.rb
|
|
86
|
+
- spec/specs/google_spec.rb
|