onebox 1.5.45 → 1.5.47
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8bad22bcad833d28f87b0faef3ae2cc7be1ae572
|
|
4
|
+
data.tar.gz: 00f0f7bc597bc49f64e0c193929f9b30f84195c2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1c895c0b051d23f05dd667559df39e523daad6c5594bac40b29524fc6df255d8f4eb490a8c877984d1c8a9edd5dbf077f7e3b6ed05ed83cc7087f7584ab9cb06
|
|
7
|
+
data.tar.gz: b98d19fd3c090c67d0967289e988b3f0aa820dd3483011d0b3cd10a6656b03fb7b1f8cf76059f05298923fac21f5a7607bf941f8c8e1dd2d2e09a00f9443ca2d
|
|
@@ -2,68 +2,36 @@ module Onebox
|
|
|
2
2
|
module Engine
|
|
3
3
|
class GoogleDocsOnebox
|
|
4
4
|
include Engine
|
|
5
|
+
include LayoutSupport
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def embed_widths
|
|
12
|
-
@embed_widths ||= {
|
|
13
|
-
spreadsheets: 800,
|
|
14
|
-
document: 800,
|
|
15
|
-
presentation: 960,
|
|
16
|
-
forms: 760,
|
|
17
|
-
}
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def embed_heights
|
|
21
|
-
@embed_heights ||= {
|
|
22
|
-
spreadsheets: 600,
|
|
23
|
-
document: 600,
|
|
24
|
-
presentation: 749,
|
|
25
|
-
forms: 500,
|
|
26
|
-
}
|
|
27
|
-
end
|
|
7
|
+
def self.supported_endpoints
|
|
8
|
+
%w(spreadsheets document forms presentation)
|
|
9
|
+
end
|
|
28
10
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
end
|
|
11
|
+
def self.short_types
|
|
12
|
+
@shorttypes ||= {
|
|
13
|
+
spreadsheets: :sheets,
|
|
14
|
+
document: :docs,
|
|
15
|
+
presentation: :slides,
|
|
16
|
+
forms: :forms,
|
|
17
|
+
}
|
|
37
18
|
end
|
|
38
19
|
|
|
39
20
|
matches_regexp /^(https?:)?\/\/(docs\.google\.com)\/(?<endpoint>(#{supported_endpoints.join('|')}))\/d\/((?<key>[\w-]*)).+$/
|
|
40
21
|
always_https
|
|
41
22
|
|
|
42
|
-
|
|
43
|
-
if document?
|
|
44
|
-
"<iframe class='gdocs-onebox document-onebox' src='https://docs.google.com/document/d/#{key}/pub?embedded=true' style='border: 0' width='#{width}' height='#{height}' frameborder='0' scrolling='yes'>#{placeholder_html}</iframe>"
|
|
45
|
-
elsif spreadsheet?
|
|
46
|
-
"<iframe class='gdocs-onebox spreadsheet-onebox' src='https://docs.google.com/spreadsheet/ccc?key=#{key}&usp=sharing&rm=minimal' style='border: 0' width='#{width}' height='#{height}' frameborder='0' scrolling='yes'>#{placeholder_html}</iframe>"
|
|
47
|
-
elsif presentation?
|
|
48
|
-
"<iframe class='gdocs-onebox presentation-onebox' src='https://docs.google.com/presentation/d/#{key}/embed?start=false&loop=false&delayms=3000' frameborder='0' width='#{width}' height='#{height}' allowfullscreen='true' mozallowfullscreen='true' webkitallowfullscreen='true'>#{placeholder_html}</iframe>"
|
|
49
|
-
elsif forms?
|
|
50
|
-
"<iframe class='gdocs-onebox forms-onebox' src='https://docs.google.com/forms/d/#{key}/viewform?embedded=true' width='#{width}' height='#{height}' frameborder='0' marginheight='0' marginwidth='0' scrolling='yes'>#{placeholder_html}</iframe>"
|
|
51
|
-
end
|
|
52
|
-
end
|
|
23
|
+
protected
|
|
53
24
|
|
|
54
|
-
def
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
HTML
|
|
25
|
+
def data
|
|
26
|
+
og_data = get_og_data
|
|
27
|
+
result = { link: link,
|
|
28
|
+
title: og_data[:title],
|
|
29
|
+
description: og_data[:description],
|
|
30
|
+
type: shorttype
|
|
31
|
+
}
|
|
32
|
+
result
|
|
63
33
|
end
|
|
64
34
|
|
|
65
|
-
protected
|
|
66
|
-
|
|
67
35
|
def doc_type
|
|
68
36
|
@doc_type ||= match[:endpoint].to_sym
|
|
69
37
|
end
|
|
@@ -72,37 +40,23 @@ HTML
|
|
|
72
40
|
GoogleDocsOnebox.short_types[doc_type]
|
|
73
41
|
end
|
|
74
42
|
|
|
75
|
-
def width
|
|
76
|
-
GoogleDocsOnebox.embed_widths[doc_type]
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def height
|
|
80
|
-
GoogleDocsOnebox.embed_heights[doc_type]
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def spreadsheet?
|
|
84
|
-
doc_type == :spreadsheets
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def document?
|
|
88
|
-
doc_type == :document
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def presentation?
|
|
92
|
-
doc_type == :presentation
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def forms?
|
|
96
|
-
doc_type == :forms
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def key
|
|
100
|
-
match[:key]
|
|
101
|
-
end
|
|
102
|
-
|
|
103
43
|
def match
|
|
104
44
|
@match ||= @url.match(@@matcher)
|
|
105
45
|
end
|
|
46
|
+
|
|
47
|
+
def get_og_data
|
|
48
|
+
response = Onebox::Helpers.fetch_response(url)
|
|
49
|
+
html = Nokogiri::HTML(response.body)
|
|
50
|
+
og_data = {}
|
|
51
|
+
html.css('meta').each do |m|
|
|
52
|
+
if m.attribute('property') && m.attribute('property').to_s.match(/^og:/i)
|
|
53
|
+
m_content = m.attribute('content').to_s.strip
|
|
54
|
+
m_property = m.attribute('property').to_s.gsub('og:', '')
|
|
55
|
+
og_data[m_property.to_sym] = m_content
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
og_data
|
|
59
|
+
end
|
|
106
60
|
end
|
|
107
61
|
end
|
|
108
|
-
end
|
|
62
|
+
end
|
data/lib/onebox/version.rb
CHANGED
|
@@ -4,64 +4,32 @@ describe Onebox::Engine::GoogleDocsOnebox do
|
|
|
4
4
|
context "Spreadsheets" do
|
|
5
5
|
let(:matcher) { described_class.new("https://docs.google.com/spreadsheets/d/SHEET_KEY/pubhtml") }
|
|
6
6
|
|
|
7
|
-
it "should have spreadsheet class in html" do
|
|
8
|
-
expect(matcher.to_html).to include "spreadsheet-onebox"
|
|
9
|
-
end
|
|
10
|
-
|
|
11
7
|
it "should be a spreadsheet" do
|
|
12
|
-
expect(matcher.send(:
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "Should detect key" do
|
|
16
|
-
expect(matcher.send(:key)).to eq 'SHEET_KEY'
|
|
8
|
+
expect(matcher.send(:shorttype)).to eq (:sheets)
|
|
17
9
|
end
|
|
18
10
|
end
|
|
19
11
|
|
|
20
12
|
context "Documents" do
|
|
21
13
|
let(:matcher) { described_class.new("https://docs.google.com/document/d/DOC_KEY/pub") }
|
|
22
14
|
|
|
23
|
-
it "should have document class in html" do
|
|
24
|
-
expect(matcher.to_html).to include "document-onebox"
|
|
25
|
-
end
|
|
26
|
-
|
|
27
15
|
it "should be a document" do
|
|
28
|
-
expect(matcher.send(:
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "Should detect key" do
|
|
32
|
-
expect(matcher.send(:key)).to eq 'DOC_KEY'
|
|
16
|
+
expect(matcher.send(:shorttype)).to eq (:docs)
|
|
33
17
|
end
|
|
34
18
|
end
|
|
35
19
|
|
|
36
20
|
context "Presentaions" do
|
|
37
21
|
let(:matcher) { described_class.new("https://docs.google.com/presentation/d/PRESENTATION_KEY/pub") }
|
|
38
22
|
|
|
39
|
-
it "should have presentation class in html" do
|
|
40
|
-
expect(matcher.to_html).to include "presentation-onebox"
|
|
41
|
-
end
|
|
42
|
-
|
|
43
23
|
it "should be a presentation" do
|
|
44
|
-
expect(matcher.send(:
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
it "Should detect key" do
|
|
48
|
-
expect(matcher.send(:key)).to eq 'PRESENTATION_KEY'
|
|
24
|
+
expect(matcher.send(:shorttype)).to eq (:slides)
|
|
49
25
|
end
|
|
50
26
|
end
|
|
51
27
|
|
|
52
28
|
context "Forms" do
|
|
53
29
|
let(:matcher) { described_class.new("https://docs.google.com/forms/d/FORMS_KEY/viewform") }
|
|
54
30
|
|
|
55
|
-
it "should have forms class in html" do
|
|
56
|
-
expect(matcher.to_html).to include "forms-onebox"
|
|
57
|
-
end
|
|
58
|
-
|
|
59
31
|
it "should be a form" do
|
|
60
|
-
expect(matcher.send(:
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
it "Should detect key" do
|
|
64
|
-
expect(matcher.send(:key)).to eq 'FORMS_KEY'
|
|
32
|
+
expect(matcher.send(:shorttype)).to eq (:forms)
|
|
65
33
|
end
|
|
66
34
|
end
|
|
67
35
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: onebox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.47
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joanna Zeta
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2016-08-
|
|
13
|
+
date: 2016-08-10 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: multi_json
|
|
@@ -404,6 +404,7 @@ files:
|
|
|
404
404
|
- templates/githubgist.mustache
|
|
405
405
|
- templates/githubissue.mustache
|
|
406
406
|
- templates/githubpullrequest.mustache
|
|
407
|
+
- templates/googledocs.mustache
|
|
407
408
|
- templates/googleplayapp.mustache
|
|
408
409
|
- templates/pastebin.mustache
|
|
409
410
|
- templates/pubmed.mustache
|