meta_grabber 0.0.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.
- data/lib/meta_grabber.rb +35 -0
- metadata +45 -0
data/lib/meta_grabber.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
class MetaGrabber
|
4
|
+
|
5
|
+
attr_reader :doc, :meta
|
6
|
+
|
7
|
+
def initialize(page_source)
|
8
|
+
@doc = Nokogiri::HTML::parse(page_source)
|
9
|
+
@meta = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
def title
|
13
|
+
@title ||= @doc.xpath("//title").text rescue nil
|
14
|
+
end
|
15
|
+
|
16
|
+
#Some sites do <meta name="title" ... /> for some wierd reason
|
17
|
+
def meta_title
|
18
|
+
@meta['title'] ||= title
|
19
|
+
end
|
20
|
+
|
21
|
+
def grab_meta
|
22
|
+
# grab each meta tag
|
23
|
+
for i in @doc.xpath("//meta") do
|
24
|
+
next if !i[:name] #dont really care about these, http types etc
|
25
|
+
@meta[i[:name].to_s.downcase] = i[:content]
|
26
|
+
end
|
27
|
+
|
28
|
+
@meta
|
29
|
+
end
|
30
|
+
|
31
|
+
def keywords_array
|
32
|
+
@meta['keywords'] ? @meta['keywords'].split(",").map{|kw| kw.strip} : nil
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: meta_grabber
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jake Austwick
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-12-29 00:00:00.000000000Z
|
13
|
+
dependencies: []
|
14
|
+
description: A simple gem to extract useful meta info, useful for SEO purposes
|
15
|
+
email: contact@mumbodesign.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/meta_grabber.rb
|
21
|
+
homepage:
|
22
|
+
licenses: []
|
23
|
+
post_install_message:
|
24
|
+
rdoc_options: []
|
25
|
+
require_paths:
|
26
|
+
- lib
|
27
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 1.8.10
|
42
|
+
signing_key:
|
43
|
+
specification_version: 3
|
44
|
+
summary: Grabs meta title, description, keywords etc
|
45
|
+
test_files: []
|