metainspector 1.17.1 → 1.17.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ca50a3bad8a3a8f98f2dcdd6c5e5223ef78b8066
4
- data.tar.gz: 5e3b651a1fd60fa5a63929a22880f87c28fe515b
3
+ metadata.gz: 6d1795a40750fba9db895d1ab321f54d94349a38
4
+ data.tar.gz: 0648ba0471516d9a6e33a9439972619d51580ff7
5
5
  SHA512:
6
- metadata.gz: 804bba1881a89677070abb29f98b0a516a80390d85a451e47178840093b3f8c98696f41edffe54811a1ffa26dc44d7e1e3448410612750385f2d20f35b1faf61
7
- data.tar.gz: 60b8073a5062ea856dcfa38e23913a69dd654f2e4f23ae651912b07b61bc4c27a451bee586e6de29472ef5a786f61d08f33563479c71a185318ed10be1fb93db
6
+ metadata.gz: a4c8859c52e9f424cf08c72b8f3515dede0f678ac87bcc2331a8e543fa1a839912c0fd85f2b5c56069990cd270dd5db8c2761ac2a3dce6d5929ba906b3692856
7
+ data.tar.gz: 61217d3d51e81e892f6750f8d24379ea75a80d9e7d07c2408d6c762786e5c088a14996674ed2cb070a5e532c9286e406e55832398c5bb842f4bd51497fcc1674
@@ -121,7 +121,7 @@ module MetaInspector
121
121
  unless @data.meta
122
122
  @data.meta!.name!
123
123
  @data.meta!.property!
124
- parsed.xpath("//meta").each do |element|
124
+ parsed_search("//meta").each do |element|
125
125
  get_meta_name_or_property(element)
126
126
  end
127
127
  end
@@ -139,20 +139,20 @@ module MetaInspector
139
139
 
140
140
  # Look for the first <p> block with 120 characters or more
141
141
  def secondary_description
142
- first_long_paragraph = parsed.search('//p[string-length() >= 120]').first
142
+ first_long_paragraph = parsed_search('//p[string-length() >= 120]').first
143
143
  first_long_paragraph ? first_long_paragraph.text : ''
144
144
  end
145
145
 
146
146
  def parsed_links
147
- @parsed_links ||= cleanup_nokogiri_values(parsed.search("//a/@href"))
147
+ @parsed_links ||= cleanup_nokogiri_values(parsed_search("//a/@href"))
148
148
  end
149
149
 
150
150
  def parsed_images
151
- @parsed_images ||= cleanup_nokogiri_values(parsed.search('//img/@src'))
151
+ @parsed_images ||= cleanup_nokogiri_values(parsed_search('//img/@src'))
152
152
  end
153
153
 
154
154
  def parsed_feed(format)
155
- feed = parsed.search("//link[@type='application/#{format}+xml']").first
155
+ feed = parsed_search("//link[@type='application/#{format}+xml']").first
156
156
  feed ? URL.absolutify(feed.attributes['href'].value, base_url) : nil
157
157
  end
158
158
 
@@ -172,12 +172,17 @@ module MetaInspector
172
172
 
173
173
  # Returns the value of the href attribute on the <base /> tag, if it exists
174
174
  def base_href
175
- parsed.search('base').first.attributes['href'].value rescue nil
175
+ parsed_search('base').first.attributes['href'].value rescue nil
176
176
  end
177
177
 
178
178
  # Takes a nokogiri search result, strips the values, rejects the empty ones, and removes duplicates
179
179
  def cleanup_nokogiri_values(results)
180
180
  results.map { |a| a.value.strip }.reject { |s| s.empty? }.uniq
181
181
  end
182
+
183
+ # Searches the parsed document for the selector, if the parsed document is searchable
184
+ def parsed_search(selector)
185
+ parsed.respond_to?(:search) ? parsed.search(selector) : []
186
+ end
182
187
  end
183
188
  end
@@ -35,7 +35,7 @@ module MetaInspector
35
35
  def response
36
36
  Timeout::timeout(@timeout) { @response ||= fetch }
37
37
 
38
- rescue TimeoutError, SocketError => e
38
+ rescue TimeoutError, SocketError, RuntimeError => e
39
39
  @exception_log << e
40
40
  nil
41
41
  end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  module MetaInspector
4
- VERSION = "1.17.1"
4
+ VERSION = "1.17.2"
5
5
  end
@@ -15,13 +15,13 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = MetaInspector::VERSION
17
17
 
18
- gem.add_dependency 'nokogiri', '~> 1.5'
18
+ gem.add_dependency 'nokogiri', '~> 1.6'
19
19
  gem.add_dependency 'rash', '~> 0.4.0'
20
- gem.add_dependency 'open_uri_redirections', '~> 0.1.0'
21
- gem.add_dependency 'addressable', '~> 2.3.4'
20
+ gem.add_dependency 'open_uri_redirections', '~> 0.1.4'
21
+ gem.add_dependency 'addressable', '~> 2.3.5'
22
22
 
23
- gem.add_development_dependency 'rspec', '2.13.0'
23
+ gem.add_development_dependency 'rspec', '2.14.1'
24
24
  gem.add_development_dependency 'fakeweb', '1.3.0'
25
- gem.add_development_dependency 'awesome_print', '1.1.0'
26
- gem.add_development_dependency 'rake', '~> 10.0.3'
25
+ gem.add_development_dependency 'awesome_print', '~> 1.2.0'
26
+ gem.add_development_dependency 'rake', '~> 10.1.0'
27
27
  end
@@ -7,20 +7,20 @@ describe MetaInspector do
7
7
  describe "safe redirections (HTTP to HTTPS)" do
8
8
  it "disallows safe redirections by default" do
9
9
  m = MetaInspector.new("http://facebook.com")
10
- m.title.should be_nil
10
+ m.to_hash
11
11
  m.should_not be_ok
12
12
  m.exceptions.first.message.should == "redirection forbidden: http://facebook.com/ -> https://www.facebook.com/"
13
13
  end
14
14
 
15
15
  it "allows safe redirections when :allow_redirections => :safe" do
16
16
  m = MetaInspector.new("http://facebook.com", :allow_redirections => :safe)
17
- m.title.should == "Hello From Facebook"
17
+ m.to_hash
18
18
  m.should be_ok
19
19
  end
20
20
 
21
21
  it "allows safe redirections when :allow_redirections => :all" do
22
22
  m = MetaInspector.new("http://facebook.com", :allow_redirections => :all)
23
- m.title.should == "Hello From Facebook"
23
+ m.to_hash
24
24
  m.should be_ok
25
25
  end
26
26
  end
@@ -28,21 +28,21 @@ describe MetaInspector do
28
28
  describe "unsafe redirections (HTTPS to HTTP)" do
29
29
  it "disallows unsafe redirections by default" do
30
30
  m = MetaInspector.new("https://unsafe-facebook.com")
31
- m.title.should be_nil
31
+ m.to_hash
32
32
  m.should_not be_ok
33
33
  m.exceptions.first.message.should == "redirection forbidden: https://unsafe-facebook.com/ -> http://unsafe-facebook.com/"
34
34
  end
35
35
 
36
36
  it "disallows unsafe redirections when :allow_redirections => :safe" do
37
37
  m = MetaInspector.new("https://unsafe-facebook.com", :allow_redirections => :safe)
38
- m.title.should be_nil
38
+ m.to_hash
39
39
  m.should_not be_ok
40
40
  m.exceptions.first.message.should == "redirection forbidden: https://unsafe-facebook.com/ -> http://unsafe-facebook.com/"
41
41
  end
42
42
 
43
43
  it "allows unsafe redirections when :allow_redirections => :all" do
44
44
  m = MetaInspector.new("https://unsafe-facebook.com", :allow_redirections => :all)
45
- m.title.should == "Hello From Unsafe Facebook"
45
+ m.to_hash
46
46
  m.should be_ok
47
47
  end
48
48
  end
@@ -50,15 +50,13 @@ describe MetaInspector do
50
50
  describe "Redirections should update the base_uri" do
51
51
  it "updates the base_uri on safe redirections" do
52
52
  m = MetaInspector.new("http://facebook.com", :allow_redirections => :safe)
53
- # Check for the title to make sure the request happens
54
- m.title.should == "Hello From Facebook"
53
+ m.to_hash
55
54
  m.url.should == "https://www.facebook.com/"
56
55
  end
57
56
 
58
57
  it "updates the base_uri on all redirections" do
59
58
  m = MetaInspector.new("http://facebook.com", :allow_redirections => :all)
60
- # Check for the title to make sure the request happens
61
- m.title.should == "Hello From Facebook"
59
+ m.to_hash
62
60
 
63
61
  m.url.should == "https://www.facebook.com/"
64
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metainspector
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.17.1
4
+ version: 1.17.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaime Iniesta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-19 00:00:00.000000000 Z
11
+ date: 2013-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '1.5'
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
- version: '1.5'
26
+ version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rash
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,42 +44,42 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.0
47
+ version: 0.1.4
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
- version: 0.1.0
54
+ version: 0.1.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: addressable
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 2.3.4
61
+ version: 2.3.5
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
- version: 2.3.4
68
+ version: 2.3.5
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 2.13.0
75
+ version: 2.14.1
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 2.13.0
82
+ version: 2.14.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: fakeweb
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -98,30 +98,30 @@ dependencies:
98
98
  name: awesome_print
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '='
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: 1.1.0
103
+ version: 1.2.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '='
108
+ - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: 1.1.0
110
+ version: 1.2.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 10.0.3
117
+ version: 10.1.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ~>
123
123
  - !ruby/object:Gem::Version
124
- version: 10.0.3
124
+ version: 10.1.0
125
125
  description: MetaInspector lets you scrape a web page and get its title, charset,
126
126
  link and meta tags
127
127
  email: