metainspector 5.3.1 → 5.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/README.md +3 -1
- data/lib/meta_inspector/document.rb +18 -17
- data/lib/meta_inspector/parser.rb +6 -6
- data/lib/meta_inspector/parsers/texts.rb +22 -5
- data/lib/meta_inspector/version.rb +1 -1
- data/spec/document_spec.rb +1 -0
- data/spec/fixtures/desc_in_meta.response +23 -0
- data/spec/fixtures/desc_in_og.response +23 -0
- data/spec/fixtures/desc_in_twitter.response +23 -0
- data/spec/meta_inspector/texts_spec.rb +35 -8
- data/spec/spec_helper.rb +5 -0
- metadata +42 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 273cd0ae91070bbf2937040d522fafad0ccde429
|
4
|
+
data.tar.gz: f0be5b153236da195c05254237ca44a11140f213
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bdf4b3d45fff3711806da5a2cfd27c58e409e4b4d8b849302f1cff6e740ee14ad9e3783eda9622003e5438b65dd9e59ff5a2d507df5f97a473649878950d727
|
7
|
+
data.tar.gz: 7848876a57432a1d208e25d8d10ae78357d3a07d076f9a2109fd53bb3add56827b742245e789ff1db6ad2247465ef054462a6dcc373e06394e34b1a298b744d8
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -83,7 +83,8 @@ page.feed # Get rss or atom links in meta data fields as array
|
|
83
83
|
```ruby
|
84
84
|
page.title # title of the page from the head section, as string
|
85
85
|
page.best_title # best title of the page, from a selection of candidates
|
86
|
-
page.description # returns the meta description
|
86
|
+
page.description # returns the meta description
|
87
|
+
page.best_description # returns the first non-empty description between the following candidates: standard meta description, og:description, twitter:description, the first long paragraph
|
87
88
|
```
|
88
89
|
|
89
90
|
### Links
|
@@ -437,6 +438,7 @@ You can also come to chat with us on our [Gitter room](https://gitter.im/jaimein
|
|
437
438
|
* [go-metainspector](https://github.com/fern4lvarez/go-metainspector), a port of MetaInspector for Go.
|
438
439
|
* [Node-MetaInspector](https://github.com/gabceb/node-metainspector), a port of MetaInspector for Node.
|
439
440
|
* [MetaInvestigator](https://github.com/nekova/metainvestigator), a port of MetaInspector for Elixir.
|
441
|
+
* [Funkspector] (https://github.com/jaimeiniesta/funkspector), another port of MetaInspector for Elixir.
|
440
442
|
|
441
443
|
## License
|
442
444
|
MetaInspector is released under the [MIT license](MIT-LICENSE).
|
@@ -46,7 +46,7 @@ module MetaInspector
|
|
46
46
|
delegate [:content_type, :response] => :@request
|
47
47
|
|
48
48
|
delegate [:parsed, :title, :best_title,
|
49
|
-
:description, :links,
|
49
|
+
:description, :best_description, :links,
|
50
50
|
:images, :feed, :charset, :meta_tags,
|
51
51
|
:meta_tag, :meta, :favicon,
|
52
52
|
:head_links, :stylesheets, :canonicals] => :@parser
|
@@ -54,22 +54,23 @@ module MetaInspector
|
|
54
54
|
# Returns all document data as a nested Hash
|
55
55
|
def to_hash
|
56
56
|
{
|
57
|
-
'url'
|
58
|
-
'scheme'
|
59
|
-
'host'
|
60
|
-
'root_url'
|
61
|
-
'title'
|
62
|
-
'best_title'
|
63
|
-
'description'
|
64
|
-
'
|
65
|
-
'
|
66
|
-
'
|
67
|
-
'
|
68
|
-
'
|
69
|
-
'
|
70
|
-
'
|
71
|
-
'
|
72
|
-
|
57
|
+
'url' => url,
|
58
|
+
'scheme' => scheme,
|
59
|
+
'host' => host,
|
60
|
+
'root_url' => root_url,
|
61
|
+
'title' => title,
|
62
|
+
'best_title' => best_title,
|
63
|
+
'description' => description,
|
64
|
+
'best_description' => best_description,
|
65
|
+
'links' => links.to_hash,
|
66
|
+
'images' => images.to_a,
|
67
|
+
'charset' => charset,
|
68
|
+
'feed' => feed,
|
69
|
+
'content_type' => content_type,
|
70
|
+
'meta_tags' => meta_tags,
|
71
|
+
'favicon' => images.favicon,
|
72
|
+
'response' => { 'status' => response.status,
|
73
|
+
'headers' => response.headers }
|
73
74
|
}
|
74
75
|
end
|
75
76
|
|
@@ -21,12 +21,12 @@ module MetaInspector
|
|
21
21
|
end
|
22
22
|
|
23
23
|
extend Forwardable
|
24
|
-
delegate [:url, :scheme, :host]
|
25
|
-
delegate [:meta_tags, :meta_tag, :meta, :charset]
|
26
|
-
delegate [:head_links, :stylesheets, :canonicals, :feed]
|
27
|
-
delegate [:links, :base_url]
|
28
|
-
delegate :images
|
29
|
-
delegate [:title, :best_title, :description]
|
24
|
+
delegate [:url, :scheme, :host] => :@document
|
25
|
+
delegate [:meta_tags, :meta_tag, :meta, :charset] => :@meta_tag_parser
|
26
|
+
delegate [:head_links, :stylesheets, :canonicals, :feed] => :@head_links_parser
|
27
|
+
delegate [:links, :base_url] => :@links_parser
|
28
|
+
delegate :images => :@images_parser
|
29
|
+
delegate [:title, :best_title, :description, :best_description] => :@texts_parser
|
30
30
|
|
31
31
|
# Returns the whole parsed document
|
32
32
|
def parsed
|
@@ -14,12 +14,19 @@ module MetaInspector
|
|
14
14
|
@best_title ||= find_best_title
|
15
15
|
end
|
16
16
|
|
17
|
-
#
|
18
|
-
# and if not present will guess by looking at the first paragraph
|
19
|
-
# with more than 120 characters
|
17
|
+
# Returns the meta description, if present
|
20
18
|
def description
|
21
|
-
|
22
|
-
|
19
|
+
@description ||= meta['description']
|
20
|
+
end
|
21
|
+
|
22
|
+
# A description getter that returns the first non-nill description
|
23
|
+
# from the following candidates:
|
24
|
+
# - the standard meta description
|
25
|
+
# - the og:description meta tag
|
26
|
+
# - the twitter:description meta tag
|
27
|
+
# - the first paragraph with more than 120 characters
|
28
|
+
def best_description
|
29
|
+
@best_description ||= find_best_description
|
23
30
|
end
|
24
31
|
|
25
32
|
private
|
@@ -43,6 +50,16 @@ module MetaInspector
|
|
43
50
|
candidates.first
|
44
51
|
end
|
45
52
|
|
53
|
+
def find_best_description
|
54
|
+
candidates = [
|
55
|
+
meta['description'],
|
56
|
+
meta['og:description'],
|
57
|
+
meta['twitter:description'],
|
58
|
+
secondary_description
|
59
|
+
]
|
60
|
+
candidates.find { |x| !x.to_s.empty? }
|
61
|
+
end
|
62
|
+
|
46
63
|
# Look for the first <p> block with 120 characters or more
|
47
64
|
def secondary_description
|
48
65
|
first_long_paragraph = parsed.search('//p[string-length() >= 120]').first
|
data/spec/document_spec.rb
CHANGED
@@ -27,6 +27,7 @@ describe MetaInspector::Document do
|
|
27
27
|
"title" => "PageRankAlert.com :: Track your PageRank changes & receive alerts",
|
28
28
|
"best_title" => "PageRankAlert.com :: Track your PageRank changes & receive alerts",
|
29
29
|
"description" => "Track your PageRank(TM) changes and receive alerts by email",
|
30
|
+
"best_description"=> "Track your PageRank(TM) changes and receive alerts by email",
|
30
31
|
"favicon" => "http://pagerankalert.com/src/favicon.ico",
|
31
32
|
"links" => {
|
32
33
|
'internal' => ["http://pagerankalert.com/",
|
@@ -0,0 +1,23 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Age: 13
|
3
|
+
Cache-Control: max-age=120
|
4
|
+
Content-Type: text/html
|
5
|
+
Date: Mon, 06 Jan 2014 12:47:42 GMT
|
6
|
+
Expires: Mon, 06 Jan 2014 12:49:28 GMT
|
7
|
+
Server: Apache/2.2.14 (Ubuntu)
|
8
|
+
Vary: Accept-Encoding
|
9
|
+
Via: 1.1 varnish
|
10
|
+
X-Powered-By: PHP/5.3.2-1ubuntu4.22
|
11
|
+
X-Varnish: 1188792404 1188790413
|
12
|
+
Content-Length: 40571
|
13
|
+
Connection: keep-alive
|
14
|
+
|
15
|
+
<!DOCTYPE html>
|
16
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
|
17
|
+
<head>
|
18
|
+
<meta name="description" content="the standard description" />
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<p>A sample page with description in standard meta tag</p>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Age: 13
|
3
|
+
Cache-Control: max-age=120
|
4
|
+
Content-Type: text/html
|
5
|
+
Date: Mon, 06 Jan 2014 12:47:42 GMT
|
6
|
+
Expires: Mon, 06 Jan 2014 12:49:28 GMT
|
7
|
+
Server: Apache/2.2.14 (Ubuntu)
|
8
|
+
Vary: Accept-Encoding
|
9
|
+
Via: 1.1 varnish
|
10
|
+
X-Powered-By: PHP/5.3.2-1ubuntu4.22
|
11
|
+
X-Varnish: 1188792404 1188790413
|
12
|
+
Content-Length: 40571
|
13
|
+
Connection: keep-alive
|
14
|
+
|
15
|
+
<!DOCTYPE html>
|
16
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
|
17
|
+
<head>
|
18
|
+
<meta property="og:description" content="the og description" />
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<p>A sample page with description in og meta tag</p>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Age: 13
|
3
|
+
Cache-Control: max-age=120
|
4
|
+
Content-Type: text/html
|
5
|
+
Date: Mon, 06 Jan 2014 12:47:42 GMT
|
6
|
+
Expires: Mon, 06 Jan 2014 12:49:28 GMT
|
7
|
+
Server: Apache/2.2.14 (Ubuntu)
|
8
|
+
Vary: Accept-Encoding
|
9
|
+
Via: 1.1 varnish
|
10
|
+
X-Powered-By: PHP/5.3.2-1ubuntu4.22
|
11
|
+
X-Varnish: 1188792404 1188790413
|
12
|
+
Content-Length: 40571
|
13
|
+
Connection: keep-alive
|
14
|
+
|
15
|
+
<!DOCTYPE html>
|
16
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
|
17
|
+
<head>
|
18
|
+
<meta property="twitter:description" content="the twitter description" />
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<p>A sample page with description in og meta tag</p>
|
22
|
+
</body>
|
23
|
+
</html>
|
@@ -47,24 +47,51 @@ describe MetaInspector do
|
|
47
47
|
page = MetaInspector.new('http://www.youtube.com/watch?v=short_title')
|
48
48
|
expect(page.best_title).to eq('Angular 2 Forms')
|
49
49
|
end
|
50
|
-
|
51
50
|
end
|
52
51
|
|
53
52
|
describe '#description' do
|
54
53
|
it "should find description from meta description" do
|
55
|
-
page = MetaInspector.new('http://
|
54
|
+
page = MetaInspector.new('http://example.com/desc_in_meta')
|
55
|
+
|
56
|
+
expect(page.description).to eq("the standard description")
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should be nil if no meta description" do
|
60
|
+
page = MetaInspector.new('http://example.com/empty')
|
61
|
+
|
62
|
+
expect(page.description).to be(nil)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#best_description" do
|
67
|
+
it "should return the standard description meta tag content if present" do
|
68
|
+
page = MetaInspector.new('http://example.com/desc_in_meta')
|
56
69
|
|
57
|
-
expect(page.
|
70
|
+
expect(page.best_description).to eq("the standard description")
|
58
71
|
end
|
59
72
|
|
60
|
-
it "should
|
73
|
+
it "should return the og description if standard meta tag is not present" do
|
74
|
+
page = MetaInspector.new('http://example.com/desc_in_og')
|
75
|
+
|
76
|
+
expect(page.best_description).to eq("the og description")
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should return the twitter description if standard and og tag not present" do
|
80
|
+
page = MetaInspector.new('http://example.com/desc_in_twitter')
|
81
|
+
|
82
|
+
expect(page.best_description).to eq("the twitter description")
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should return the secondary description if no meta tag is present" do
|
61
86
|
page = MetaInspector.new('http://theonion-no-description.com')
|
62
|
-
|
87
|
+
|
88
|
+
expect(page.best_description).to eq("SAN FRANCISCO—In a move expected to revolutionize the mobile device industry, Apple launched its fastest and most powerful iPhone to date Tuesday, an innovative new model that can only be seen by the company's hippest and most dedicated customers. This is secondary text picked up because of a missing meta description.")
|
63
89
|
end
|
64
90
|
|
65
|
-
it
|
66
|
-
|
67
|
-
|
91
|
+
it "should return nil by default" do
|
92
|
+
page = MetaInspector.new('http://example.com/empty')
|
93
|
+
|
94
|
+
expect(page.best_description).to be(nil)
|
68
95
|
end
|
69
96
|
end
|
70
97
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -56,6 +56,11 @@ FakeWeb.register_uri(:get, "http://example.com/title_not_present", :response =>
|
|
56
56
|
# best_title now has specific logic for youtube
|
57
57
|
FakeWeb.register_uri(:get, "http://www.youtube.com/watch?v=short_title", :response => fixture_file("youtube_short_title.response"))
|
58
58
|
|
59
|
+
# Used to test best_description logic
|
60
|
+
FakeWeb.register_uri(:get, "http://example.com/desc_in_meta", :response => fixture_file("desc_in_meta.response"))
|
61
|
+
FakeWeb.register_uri(:get, "http://example.com/desc_in_og", :response => fixture_file("desc_in_og.response"))
|
62
|
+
FakeWeb.register_uri(:get, "http://example.com/desc_in_twitter", :response => fixture_file("desc_in_twitter.response"))
|
63
|
+
|
59
64
|
# These are older fixtures
|
60
65
|
FakeWeb.register_uri(:get, "http://pagerankalert.com", :response => fixture_file("pagerankalert.com.response"))
|
61
66
|
FakeWeb.register_uri(:get, "http://pagerankalert-shortcut.com", :response => fixture_file("pagerankalert-shortcut.com.response"))
|
metadata
CHANGED
@@ -1,153 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metainspector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jaime Iniesta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.9'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.9'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: faraday_middleware
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.10'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: faraday-cookie_jar
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: faraday-http-cache
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.2'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: faraday-encoding
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 0.0.3
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.0.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: addressable
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '2.4'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '2.4'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: fastimage
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - ~>
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '2.0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - ~>
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '2.0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: nesty
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - ~>
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '1.0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - ~>
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '1.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rspec
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - ~>
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '3.0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - ~>
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '3.0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
@@ -168,70 +168,70 @@ dependencies:
|
|
168
168
|
name: webmock
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: awesome_print
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- -
|
185
|
+
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- -
|
192
|
+
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: rake
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- - ~>
|
199
|
+
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
201
|
version: 10.1.0
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- - ~>
|
206
|
+
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: 10.1.0
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: pry
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- -
|
213
|
+
- - ">="
|
214
214
|
- !ruby/object:Gem::Version
|
215
215
|
version: '0'
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- -
|
220
|
+
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: rubocop
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- -
|
227
|
+
- - ">="
|
228
228
|
- !ruby/object:Gem::Version
|
229
229
|
version: '0'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- -
|
234
|
+
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0'
|
237
237
|
description: MetaInspector lets you scrape a web page and get its links, images, texts,
|
@@ -242,10 +242,10 @@ executables: []
|
|
242
242
|
extensions: []
|
243
243
|
extra_rdoc_files: []
|
244
244
|
files:
|
245
|
-
- .gitignore
|
246
|
-
- .rspec.example
|
247
|
-
- .rubocop.yml.example
|
248
|
-
- .travis.yml
|
245
|
+
- ".gitignore"
|
246
|
+
- ".rspec.example"
|
247
|
+
- ".rubocop.yml.example"
|
248
|
+
- ".travis.yml"
|
249
249
|
- CHANGELOG.md
|
250
250
|
- Gemfile
|
251
251
|
- MIT-LICENSE
|
@@ -280,6 +280,9 @@ files:
|
|
280
280
|
- spec/fixtures/charset_000.response
|
281
281
|
- spec/fixtures/charset_001.response
|
282
282
|
- spec/fixtures/charset_002.response
|
283
|
+
- spec/fixtures/desc_in_meta.response
|
284
|
+
- spec/fixtures/desc_in_og.response
|
285
|
+
- spec/fixtures/desc_in_twitter.response
|
283
286
|
- spec/fixtures/empty_metatag_description.response
|
284
287
|
- spec/fixtures/empty_page.response
|
285
288
|
- spec/fixtures/encoding.response
|
@@ -344,17 +347,17 @@ require_paths:
|
|
344
347
|
- lib
|
345
348
|
required_ruby_version: !ruby/object:Gem::Requirement
|
346
349
|
requirements:
|
347
|
-
- -
|
350
|
+
- - ">="
|
348
351
|
- !ruby/object:Gem::Version
|
349
352
|
version: '0'
|
350
353
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
351
354
|
requirements:
|
352
|
-
- -
|
355
|
+
- - ">="
|
353
356
|
- !ruby/object:Gem::Version
|
354
357
|
version: '0'
|
355
358
|
requirements: []
|
356
359
|
rubyforge_project:
|
357
|
-
rubygems_version: 2.
|
360
|
+
rubygems_version: 2.6.8
|
358
361
|
signing_key:
|
359
362
|
specification_version: 4
|
360
363
|
summary: MetaInspector is a ruby gem for web scraping purposes, that returns metadata
|