link_thumbnailer 3.2.0 → 3.4.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.
- checksums.yaml +5 -5
- data/.ruby-version +1 -0
- data/.travis.yml +2 -4
- data/CHANGELOG.md +252 -75
- data/Gemfile +5 -3
- data/README.md +4 -0
- data/Rakefile +2 -0
- data/lib/generators/link_thumbnailer/install_generator.rb +2 -0
- data/lib/generators/templates/initializer.rb +15 -0
- data/lib/link_thumbnailer.rb +2 -0
- data/lib/link_thumbnailer/configuration.rb +74 -68
- data/lib/link_thumbnailer/exceptions.rb +3 -0
- data/lib/link_thumbnailer/grader.rb +2 -0
- data/lib/link_thumbnailer/graders/base.rb +2 -0
- data/lib/link_thumbnailer/graders/html_attribute.rb +2 -0
- data/lib/link_thumbnailer/graders/length.rb +2 -0
- data/lib/link_thumbnailer/graders/link_density.rb +2 -0
- data/lib/link_thumbnailer/graders/position.rb +2 -0
- data/lib/link_thumbnailer/image_comparator.rb +2 -0
- data/lib/link_thumbnailer/image_comparators/base.rb +2 -0
- data/lib/link_thumbnailer/image_comparators/size.rb +2 -0
- data/lib/link_thumbnailer/image_parser.rb +13 -1
- data/lib/link_thumbnailer/image_validator.rb +2 -0
- data/lib/link_thumbnailer/model.rb +20 -17
- data/lib/link_thumbnailer/models/description.rb +2 -0
- data/lib/link_thumbnailer/models/favicon.rb +2 -0
- data/lib/link_thumbnailer/models/image.rb +56 -54
- data/lib/link_thumbnailer/models/title.rb +2 -0
- data/lib/link_thumbnailer/models/video.rb +2 -0
- data/lib/link_thumbnailer/models/website.rb +54 -52
- data/lib/link_thumbnailer/page.rb +4 -1
- data/lib/link_thumbnailer/parser.rb +3 -1
- data/lib/link_thumbnailer/processor.rb +38 -5
- data/lib/link_thumbnailer/railtie.rb +2 -0
- data/lib/link_thumbnailer/response.rb +39 -0
- data/lib/link_thumbnailer/scraper.rb +62 -60
- data/lib/link_thumbnailer/scrapers/base.rb +69 -67
- data/lib/link_thumbnailer/scrapers/default/base.rb +2 -0
- data/lib/link_thumbnailer/scrapers/default/description.rb +2 -0
- data/lib/link_thumbnailer/scrapers/default/favicon.rb +16 -2
- data/lib/link_thumbnailer/scrapers/default/images.rb +5 -1
- data/lib/link_thumbnailer/scrapers/default/title.rb +2 -0
- data/lib/link_thumbnailer/scrapers/default/videos.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/base.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/description.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/favicon.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/image.rb +7 -1
- data/lib/link_thumbnailer/scrapers/opengraph/images.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/title.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/video.rb +2 -0
- data/lib/link_thumbnailer/scrapers/opengraph/videos.rb +2 -0
- data/lib/link_thumbnailer/uri.rb +20 -0
- data/lib/link_thumbnailer/version.rb +3 -1
- data/lib/link_thumbnailer/video_parser.rb +3 -1
- data/link_thumbnailer.gemspec +8 -6
- data/spec/configuration_spec.rb +4 -2
- data/spec/fixture_spec.rb +21 -0
- data/spec/fixtures/default_with_few_favicons.html +15 -0
- data/spec/fixtures/google_shift_jis.html +6 -0
- data/spec/fixtures/google_utf8.html +6 -0
- data/spec/fixtures/google_utf8_no_meta_charset.html +6 -0
- data/spec/fixtures/with_related_path_in_href.html +13 -0
- data/spec/fixtures/with_root_path_in_href.html +13 -0
- data/spec/grader_spec.rb +3 -1
- data/spec/graders/base_spec.rb +2 -0
- data/spec/graders/html_attribute_spec.rb +9 -7
- data/spec/graders/length_spec.rb +10 -6
- data/spec/graders/link_density_spec.rb +4 -2
- data/spec/graders/position_spec.rb +8 -6
- data/spec/image_comparators/size_spec.rb +2 -0
- data/spec/image_validator_spec.rb +3 -1
- data/spec/model_spec.rb +2 -0
- data/spec/models/description_spec.rb +3 -1
- data/spec/models/favicon_spec.rb +2 -0
- data/spec/models/image_spec.rb +6 -4
- data/spec/models/title_spec.rb +2 -0
- data/spec/models/video_spec.rb +7 -5
- data/spec/models/website_spec.rb +5 -3
- data/spec/page_spec.rb +2 -0
- data/spec/processor_spec.rb +74 -23
- data/spec/response_spec.rb +84 -0
- data/spec/scraper_spec.rb +6 -4
- data/spec/scrapers/base_spec.rb +6 -4
- data/spec/scrapers/opengraph/base_spec.rb +8 -6
- data/spec/spec_helper.rb +2 -0
- data/spec/uri_spec.rb +44 -0
- data/spec/video_parser_spec.rb +15 -13
- metadata +37 -19
data/spec/scraper_spec.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe LinkThumbnailer::Scraper do
|
|
@@ -9,8 +11,8 @@ describe LinkThumbnailer::Scraper do
|
|
|
9
11
|
let(:instance) { described_class.new(source, url) }
|
|
10
12
|
|
|
11
13
|
before do
|
|
12
|
-
instance.
|
|
13
|
-
instance.
|
|
14
|
+
allow(instance).to receive(:document).and_return(document)
|
|
15
|
+
allow(instance).to receive(:website).and_return(website)
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
describe '#call' do
|
|
@@ -22,10 +24,10 @@ describe LinkThumbnailer::Scraper do
|
|
|
22
24
|
let(:attributes) { [:bar] }
|
|
23
25
|
let(:scrapers) { [prefix_1, prefix_2] }
|
|
24
26
|
let(:action) { instance.call }
|
|
27
|
+
let(:config) { double(attributes: attributes, scrapers: scrapers) }
|
|
25
28
|
|
|
26
29
|
before do
|
|
27
|
-
instance.
|
|
28
|
-
instance.stub_chain(:config, :scrapers).and_return(scrapers)
|
|
30
|
+
allow(instance).to receive(:config).and_return(config)
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
context 'when first one return a result' do
|
data/spec/scrapers/base_spec.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe LinkThumbnailer::Scrapers::Base do
|
|
@@ -13,7 +15,7 @@ describe LinkThumbnailer::Scrapers::Base do
|
|
|
13
15
|
let(:action) { instance.call(attr) }
|
|
14
16
|
|
|
15
17
|
before do
|
|
16
|
-
instance.
|
|
18
|
+
allow(instance).to receive(:value).and_return(value)
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
it { expect { action }.to change { website.title }.from(nil).to(value) }
|
|
@@ -25,7 +27,7 @@ describe LinkThumbnailer::Scrapers::Base do
|
|
|
25
27
|
let(:action) { instance.send(:model_class) }
|
|
26
28
|
|
|
27
29
|
before do
|
|
28
|
-
instance.
|
|
30
|
+
allow(instance).to receive(:attribute_name).and_return(attr)
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
context 'when internal class exists' do
|
|
@@ -40,7 +42,7 @@ describe LinkThumbnailer::Scrapers::Base do
|
|
|
40
42
|
|
|
41
43
|
let(:attr) { :foo }
|
|
42
44
|
|
|
43
|
-
it { expect { action }.to
|
|
45
|
+
it { expect { action }.to raise_error(NameError) }
|
|
44
46
|
|
|
45
47
|
end
|
|
46
48
|
|
|
@@ -54,7 +56,7 @@ describe LinkThumbnailer::Scrapers::Base do
|
|
|
54
56
|
let(:action) { instance.send(:modelize, node, text) }
|
|
55
57
|
|
|
56
58
|
before do
|
|
57
|
-
instance.
|
|
59
|
+
allow(instance).to receive(:model_class).and_return(model_class)
|
|
58
60
|
end
|
|
59
61
|
|
|
60
62
|
it 'instantiates a new model' do
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe LinkThumbnailer::Scrapers::Opengraph::Base do
|
|
@@ -12,13 +14,13 @@ describe LinkThumbnailer::Scrapers::Opengraph::Base do
|
|
|
12
14
|
let(:action) { instance.applicable? }
|
|
13
15
|
|
|
14
16
|
before do
|
|
15
|
-
instance.
|
|
17
|
+
allow(instance).to receive(:meta).and_return(meta)
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
context 'when all node is an opengraph' do
|
|
19
21
|
|
|
20
22
|
before do
|
|
21
|
-
instance.
|
|
23
|
+
allow(instance).to receive(:opengraph_node?).and_return(true, true)
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
it { expect(action).to be_truthy }
|
|
@@ -28,7 +30,7 @@ describe LinkThumbnailer::Scrapers::Opengraph::Base do
|
|
|
28
30
|
context 'when any node is an opengraph' do
|
|
29
31
|
|
|
30
32
|
before do
|
|
31
|
-
instance.
|
|
33
|
+
allow(instance).to receive(:opengraph_node?).and_return(true, false)
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
it { expect(action).to be_truthy }
|
|
@@ -38,7 +40,7 @@ describe LinkThumbnailer::Scrapers::Opengraph::Base do
|
|
|
38
40
|
context 'when no node is an opengraph' do
|
|
39
41
|
|
|
40
42
|
before do
|
|
41
|
-
instance.
|
|
43
|
+
allow(instance).to receive(:opengraph_node?).and_return(false, false)
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
it { expect(action).to be_falsey }
|
|
@@ -52,7 +54,7 @@ describe LinkThumbnailer::Scrapers::Opengraph::Base do
|
|
|
52
54
|
let(:action) { instance.send(:opengraph_node?, node) }
|
|
53
55
|
|
|
54
56
|
before do
|
|
55
|
-
node.
|
|
57
|
+
allow(node).to receive(:attribute).with('name').and_return(attribute_from_name)
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
context 'with attribute from name valid' do
|
|
@@ -68,7 +70,7 @@ describe LinkThumbnailer::Scrapers::Opengraph::Base do
|
|
|
68
70
|
let(:attribute_from_name) { 'foo' }
|
|
69
71
|
|
|
70
72
|
before do
|
|
71
|
-
node.
|
|
73
|
+
allow(node).to receive(:attribute).with('property').and_return(attribute_from_property)
|
|
72
74
|
end
|
|
73
75
|
|
|
74
76
|
context 'and attribute from property valid' do
|
data/spec/spec_helper.rb
CHANGED
data/spec/uri_spec.rb
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
|
|
5
|
+
describe LinkThumbnailer::URI do
|
|
6
|
+
|
|
7
|
+
let(:uri) { 'http://foo.com' }
|
|
8
|
+
let(:instance) { described_class.new(uri) }
|
|
9
|
+
|
|
10
|
+
describe '#valid?' do
|
|
11
|
+
|
|
12
|
+
let(:action) { instance.send(:valid?) }
|
|
13
|
+
|
|
14
|
+
context 'when bad format' do
|
|
15
|
+
|
|
16
|
+
before do
|
|
17
|
+
allow(instance).to receive(:attribute).and_return("/invalid/path")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it { expect(action).to be_falsey }
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
context 'when valid format' do
|
|
25
|
+
|
|
26
|
+
before do
|
|
27
|
+
allow(instance).to receive(:attribute).and_return("http://foo.com")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it { expect(action).to be_truthy }
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe '#to_s' do
|
|
37
|
+
|
|
38
|
+
let(:action) { instance.to_s }
|
|
39
|
+
|
|
40
|
+
it { expect(action).to eq(uri) }
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
data/spec/video_parser_spec.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe LinkThumbnailer::VideoParser do
|
|
@@ -8,7 +10,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
8
10
|
let(:instance) { described_class.new(video) }
|
|
9
11
|
|
|
10
12
|
before do
|
|
11
|
-
instance.
|
|
13
|
+
allow(instance).to receive(:parser).and_return(parser)
|
|
12
14
|
end
|
|
13
15
|
|
|
14
16
|
describe '#id' do
|
|
@@ -18,7 +20,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
18
20
|
context 'when respond to video_id' do
|
|
19
21
|
|
|
20
22
|
before do
|
|
21
|
-
parser.
|
|
23
|
+
allow(parser).to receive(:video_id).and_return(1)
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
it { expect(action).to eq(parser.video_id) }
|
|
@@ -28,7 +30,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
28
30
|
context 'when do not respond to video_id' do
|
|
29
31
|
|
|
30
32
|
before do
|
|
31
|
-
parser.
|
|
33
|
+
allow(parser).to receive(:video_id).and_raise(NoMethodError)
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
it { expect(action).to be_nil }
|
|
@@ -44,8 +46,8 @@ describe LinkThumbnailer::VideoParser do
|
|
|
44
46
|
context 'when respond to width and height' do
|
|
45
47
|
|
|
46
48
|
before do
|
|
47
|
-
parser.
|
|
48
|
-
parser.
|
|
49
|
+
allow(parser).to receive(:width).and_return(1)
|
|
50
|
+
allow(parser).to receive(:height).and_return(1)
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
it { expect(action).to eq([parser.width, parser.height]) }
|
|
@@ -55,8 +57,8 @@ describe LinkThumbnailer::VideoParser do
|
|
|
55
57
|
context 'when do not respond to width and height' do
|
|
56
58
|
|
|
57
59
|
before do
|
|
58
|
-
parser.
|
|
59
|
-
parser.
|
|
60
|
+
allow(parser).to receive(:width).and_raise(NoMethodError)
|
|
61
|
+
allow(parser).to receive(:height).and_raise(NoMethodError)
|
|
60
62
|
end
|
|
61
63
|
|
|
62
64
|
it { expect(action).to be_empty }
|
|
@@ -72,7 +74,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
72
74
|
context 'when respond to duration' do
|
|
73
75
|
|
|
74
76
|
before do
|
|
75
|
-
parser.
|
|
77
|
+
allow(parser).to receive(:duration).and_return(1)
|
|
76
78
|
end
|
|
77
79
|
|
|
78
80
|
it { expect(action).to eq(parser.duration) }
|
|
@@ -82,7 +84,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
82
84
|
context 'when do not respond to duration' do
|
|
83
85
|
|
|
84
86
|
before do
|
|
85
|
-
parser.
|
|
87
|
+
allow(parser).to receive(:duration).and_raise(NoMethodError)
|
|
86
88
|
end
|
|
87
89
|
|
|
88
90
|
it { expect(action).to be_nil }
|
|
@@ -98,7 +100,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
98
100
|
context 'when respond to provider' do
|
|
99
101
|
|
|
100
102
|
before do
|
|
101
|
-
parser.
|
|
103
|
+
allow(parser).to receive(:provider).and_return(1)
|
|
102
104
|
end
|
|
103
105
|
|
|
104
106
|
it { expect(action).to eq(parser.provider) }
|
|
@@ -108,7 +110,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
108
110
|
context 'when do not respond to provider' do
|
|
109
111
|
|
|
110
112
|
before do
|
|
111
|
-
parser.
|
|
113
|
+
allow(parser).to receive(:provider).and_raise(NoMethodError)
|
|
112
114
|
end
|
|
113
115
|
|
|
114
116
|
it { expect(action).to be_nil }
|
|
@@ -124,7 +126,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
124
126
|
context 'when respond to embed_code' do
|
|
125
127
|
|
|
126
128
|
before do
|
|
127
|
-
parser.
|
|
129
|
+
allow(parser).to receive(:embed_code).and_return('')
|
|
128
130
|
end
|
|
129
131
|
|
|
130
132
|
it { expect(action).to eq(parser.embed_code) }
|
|
@@ -134,7 +136,7 @@ describe LinkThumbnailer::VideoParser do
|
|
|
134
136
|
context 'when do not respond to embed_code' do
|
|
135
137
|
|
|
136
138
|
before do
|
|
137
|
-
parser.
|
|
139
|
+
allow(parser).to receive(:embed_code).and_raise(NoMethodError)
|
|
138
140
|
end
|
|
139
141
|
|
|
140
142
|
it { expect(action).to be_nil }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: link_thumbnailer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pierre-Louis Gottfrois
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-07-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -31,9 +31,6 @@ dependencies:
|
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: 1.7.7
|
|
34
|
-
- - "~>"
|
|
35
|
-
- !ruby/object:Gem::Version
|
|
36
|
-
version: '1.8'
|
|
37
34
|
type: :runtime
|
|
38
35
|
prerelease: false
|
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -41,9 +38,6 @@ dependencies:
|
|
|
41
38
|
- - ">="
|
|
42
39
|
- !ruby/object:Gem::Version
|
|
43
40
|
version: 1.7.7
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '1.8'
|
|
47
41
|
- !ruby/object:Gem::Dependency
|
|
48
42
|
name: rake
|
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -62,42 +56,42 @@ dependencies:
|
|
|
62
56
|
name: nokogiri
|
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
|
64
58
|
requirements:
|
|
65
|
-
- - "
|
|
59
|
+
- - ">="
|
|
66
60
|
- !ruby/object:Gem::Version
|
|
67
61
|
version: '1.6'
|
|
68
62
|
type: :runtime
|
|
69
63
|
prerelease: false
|
|
70
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
65
|
requirements:
|
|
72
|
-
- - "
|
|
66
|
+
- - ">="
|
|
73
67
|
- !ruby/object:Gem::Version
|
|
74
68
|
version: '1.6'
|
|
75
69
|
- !ruby/object:Gem::Dependency
|
|
76
70
|
name: net-http-persistent
|
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
|
78
72
|
requirements:
|
|
79
|
-
- - "
|
|
73
|
+
- - ">="
|
|
80
74
|
- !ruby/object:Gem::Version
|
|
81
75
|
version: '2.9'
|
|
82
76
|
type: :runtime
|
|
83
77
|
prerelease: false
|
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
79
|
requirements:
|
|
86
|
-
- - "
|
|
80
|
+
- - ">="
|
|
87
81
|
- !ruby/object:Gem::Version
|
|
88
82
|
version: '2.9'
|
|
89
83
|
- !ruby/object:Gem::Dependency
|
|
90
84
|
name: video_info
|
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
|
92
86
|
requirements:
|
|
93
|
-
- - "
|
|
87
|
+
- - ">="
|
|
94
88
|
- !ruby/object:Gem::Version
|
|
95
89
|
version: '2.6'
|
|
96
90
|
type: :runtime
|
|
97
91
|
prerelease: false
|
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
93
|
requirements:
|
|
100
|
-
- - "
|
|
94
|
+
- - ">="
|
|
101
95
|
- !ruby/object:Gem::Version
|
|
102
96
|
version: '2.6'
|
|
103
97
|
- !ruby/object:Gem::Dependency
|
|
@@ -107,6 +101,9 @@ dependencies:
|
|
|
107
101
|
- - "~>"
|
|
108
102
|
- !ruby/object:Gem::Version
|
|
109
103
|
version: '1.0'
|
|
104
|
+
- - ">="
|
|
105
|
+
- !ruby/object:Gem::Version
|
|
106
|
+
version: 1.2.0
|
|
110
107
|
type: :runtime
|
|
111
108
|
prerelease: false
|
|
112
109
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -114,6 +111,9 @@ dependencies:
|
|
|
114
111
|
- - "~>"
|
|
115
112
|
- !ruby/object:Gem::Version
|
|
116
113
|
version: '1.0'
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 1.2.0
|
|
117
117
|
description: Ruby gem generating thumbnail images from a given URL.
|
|
118
118
|
email:
|
|
119
119
|
- pierrelouis.gottfrois@gmail.com
|
|
@@ -123,6 +123,7 @@ extra_rdoc_files: []
|
|
|
123
123
|
files:
|
|
124
124
|
- ".gitignore"
|
|
125
125
|
- ".rspec"
|
|
126
|
+
- ".ruby-version"
|
|
126
127
|
- ".travis.yml"
|
|
127
128
|
- CHANGELOG.md
|
|
128
129
|
- Gemfile
|
|
@@ -156,6 +157,7 @@ files:
|
|
|
156
157
|
- lib/link_thumbnailer/parser.rb
|
|
157
158
|
- lib/link_thumbnailer/processor.rb
|
|
158
159
|
- lib/link_thumbnailer/railtie.rb
|
|
160
|
+
- lib/link_thumbnailer/response.rb
|
|
159
161
|
- lib/link_thumbnailer/scraper.rb
|
|
160
162
|
- lib/link_thumbnailer/scrapers/base.rb
|
|
161
163
|
- lib/link_thumbnailer/scrapers/default/base.rb
|
|
@@ -172,6 +174,7 @@ files:
|
|
|
172
174
|
- lib/link_thumbnailer/scrapers/opengraph/title.rb
|
|
173
175
|
- lib/link_thumbnailer/scrapers/opengraph/video.rb
|
|
174
176
|
- lib/link_thumbnailer/scrapers/opengraph/videos.rb
|
|
177
|
+
- lib/link_thumbnailer/uri.rb
|
|
175
178
|
- lib/link_thumbnailer/version.rb
|
|
176
179
|
- lib/link_thumbnailer/video_parser.rb
|
|
177
180
|
- link_thumbnailer.gemspec
|
|
@@ -180,11 +183,17 @@ files:
|
|
|
180
183
|
- spec/fixtures/bar.png
|
|
181
184
|
- spec/fixtures/default_from_body.html
|
|
182
185
|
- spec/fixtures/default_from_meta.html
|
|
186
|
+
- spec/fixtures/default_with_few_favicons.html
|
|
183
187
|
- spec/fixtures/foo.png
|
|
188
|
+
- spec/fixtures/google_shift_jis.html
|
|
189
|
+
- spec/fixtures/google_utf8.html
|
|
190
|
+
- spec/fixtures/google_utf8_no_meta_charset.html
|
|
184
191
|
- spec/fixtures/og_not_valid_example.html
|
|
185
192
|
- spec/fixtures/og_valid_example.html
|
|
186
193
|
- spec/fixtures/og_valid_multi_image_example.html
|
|
187
194
|
- spec/fixtures/og_valid_multi_video_example.html
|
|
195
|
+
- spec/fixtures/with_related_path_in_href.html
|
|
196
|
+
- spec/fixtures/with_root_path_in_href.html
|
|
188
197
|
- spec/grader_spec.rb
|
|
189
198
|
- spec/graders/base_spec.rb
|
|
190
199
|
- spec/graders/html_attribute_spec.rb
|
|
@@ -202,15 +211,17 @@ files:
|
|
|
202
211
|
- spec/models/website_spec.rb
|
|
203
212
|
- spec/page_spec.rb
|
|
204
213
|
- spec/processor_spec.rb
|
|
214
|
+
- spec/response_spec.rb
|
|
205
215
|
- spec/scraper_spec.rb
|
|
206
216
|
- spec/scrapers/base_spec.rb
|
|
207
217
|
- spec/scrapers/opengraph/base_spec.rb
|
|
208
218
|
- spec/spec_helper.rb
|
|
219
|
+
- spec/uri_spec.rb
|
|
209
220
|
- spec/video_parser_spec.rb
|
|
210
221
|
homepage: https://github.com/gottfrois/link_thumbnailer
|
|
211
222
|
licenses: []
|
|
212
223
|
metadata: {}
|
|
213
|
-
post_install_message:
|
|
224
|
+
post_install_message:
|
|
214
225
|
rdoc_options: []
|
|
215
226
|
require_paths:
|
|
216
227
|
- lib
|
|
@@ -225,9 +236,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
225
236
|
- !ruby/object:Gem::Version
|
|
226
237
|
version: '0'
|
|
227
238
|
requirements: []
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
signing_key:
|
|
239
|
+
rubygems_version: 3.0.8
|
|
240
|
+
signing_key:
|
|
231
241
|
specification_version: 4
|
|
232
242
|
summary: Ruby gem ranking images from a given URL returning an object containing images
|
|
233
243
|
and website informations.
|
|
@@ -237,11 +247,17 @@ test_files:
|
|
|
237
247
|
- spec/fixtures/bar.png
|
|
238
248
|
- spec/fixtures/default_from_body.html
|
|
239
249
|
- spec/fixtures/default_from_meta.html
|
|
250
|
+
- spec/fixtures/default_with_few_favicons.html
|
|
240
251
|
- spec/fixtures/foo.png
|
|
252
|
+
- spec/fixtures/google_shift_jis.html
|
|
253
|
+
- spec/fixtures/google_utf8.html
|
|
254
|
+
- spec/fixtures/google_utf8_no_meta_charset.html
|
|
241
255
|
- spec/fixtures/og_not_valid_example.html
|
|
242
256
|
- spec/fixtures/og_valid_example.html
|
|
243
257
|
- spec/fixtures/og_valid_multi_image_example.html
|
|
244
258
|
- spec/fixtures/og_valid_multi_video_example.html
|
|
259
|
+
- spec/fixtures/with_related_path_in_href.html
|
|
260
|
+
- spec/fixtures/with_root_path_in_href.html
|
|
245
261
|
- spec/grader_spec.rb
|
|
246
262
|
- spec/graders/base_spec.rb
|
|
247
263
|
- spec/graders/html_attribute_spec.rb
|
|
@@ -259,8 +275,10 @@ test_files:
|
|
|
259
275
|
- spec/models/website_spec.rb
|
|
260
276
|
- spec/page_spec.rb
|
|
261
277
|
- spec/processor_spec.rb
|
|
278
|
+
- spec/response_spec.rb
|
|
262
279
|
- spec/scraper_spec.rb
|
|
263
280
|
- spec/scrapers/base_spec.rb
|
|
264
281
|
- spec/scrapers/opengraph/base_spec.rb
|
|
265
282
|
- spec/spec_helper.rb
|
|
283
|
+
- spec/uri_spec.rb
|
|
266
284
|
- spec/video_parser_spec.rb
|