blacklight-oembed 0.0.2 → 0.0.3
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 +4 -4
- data/app/controllers/blacklight/oembed/embed_controller.rb +4 -3
- data/app/helpers/blacklight/oembed/oembed_helper.rb +5 -2
- data/lib/blacklight/oembed/version.rb +1 -1
- data/spec/controllers/embed_controller_spec.rb +28 -0
- data/spec/helpers/oembed_helper_spec.rb +70 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b22bb6adfd4ab4c7b6a77bd59618f52180622792
|
4
|
+
data.tar.gz: 521256885dbd5e26363f8023d85ec57aa226220a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ac3306498bb9acfe9cc2928e13444810309b8811a1452d9432cc749cca1b27d284acd3f6d1cb2c0746d12d955b4c1a5320b619775043afc9b07bb1228c378fa
|
7
|
+
data.tar.gz: 714124f783cbe9665afa71cbdb1afba0f9ff4fd1ba430b60c7dd9d63c6e14831180a0221c3434f780bea760fd542c3693ba63ade72919ef6306ea39c95ee7fb4
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Blacklight::Oembed
|
2
2
|
class EmbedController < ActionController::Metal
|
3
3
|
def show
|
4
|
-
self.content_type
|
5
|
-
self.response_body =
|
4
|
+
self.content_type = "application/json"
|
5
|
+
self.response_body = { html: get_embed_content(params[:url]) }.to_json
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
@@ -11,7 +11,8 @@ module Blacklight::Oembed
|
|
11
11
|
begin
|
12
12
|
OEmbed::Providers.get(url).html.html_safe
|
13
13
|
rescue OEmbed::NotFound
|
14
|
-
|
14
|
+
self.status = 400
|
15
|
+
""
|
15
16
|
end
|
16
17
|
end
|
17
18
|
end
|
@@ -1,11 +1,14 @@
|
|
1
1
|
module Blacklight::Oembed
|
2
2
|
module OembedHelper
|
3
3
|
|
4
|
-
def
|
4
|
+
def render_oembed_solr_document_tag document
|
5
5
|
url = document.first(blacklight_config.show.oembed_field)
|
6
|
-
|
7
6
|
return if url.blank?
|
8
7
|
|
8
|
+
render_oembed_tag url
|
9
|
+
end
|
10
|
+
|
11
|
+
def render_oembed_tag url
|
9
12
|
send Blacklight::Oembed::Engine.config.render_helper, url
|
10
13
|
end
|
11
14
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Blacklight::Oembed::EmbedController do
|
4
|
+
routes { Blacklight::Oembed::Engine.routes }
|
5
|
+
describe "show" do
|
6
|
+
before do
|
7
|
+
Blacklight::Oembed::Engine.config.render_helper = :render_oembed_tag_embed
|
8
|
+
end
|
9
|
+
|
10
|
+
let :oembed_obj do
|
11
|
+
double(html: "some-markup")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should fetch oembed markup for a url" do
|
15
|
+
allow(OEmbed::Providers).to receive(:get).with('http://some/uri').and_return oembed_obj
|
16
|
+
get :show, url: 'http://some/uri'
|
17
|
+
json = JSON.parse(response.body)
|
18
|
+
expect(json["html"]).to eq "some-markup"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should gracefully fail to a view link" do
|
22
|
+
get :show, url: 'http://some/uri'
|
23
|
+
expect(response.status).to eq 400
|
24
|
+
json = JSON.parse(response.body)
|
25
|
+
expect(json["html"]).to be_blank
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Blacklight::Oembed::OembedHelper do
|
4
|
+
before :all do
|
5
|
+
@original_value = Blacklight::Oembed::Engine.config.render_helper
|
6
|
+
end
|
7
|
+
|
8
|
+
after :all do
|
9
|
+
Blacklight::Oembed::Engine.config.render_helper = @original_value
|
10
|
+
end
|
11
|
+
|
12
|
+
let :document do
|
13
|
+
SolrDocument.new
|
14
|
+
end
|
15
|
+
|
16
|
+
let :blacklight_config do
|
17
|
+
Blacklight::Configuration.new do |config|
|
18
|
+
config.show.oembed_field = :oembed_url_ssm
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
before do
|
23
|
+
allow(helper).to receive(:blacklight_config).and_return(blacklight_config)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should render nothing if no oembed url is available" do
|
27
|
+
expect(helper.render_oembed_solr_document_tag(document)).to be_blank
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "async" do
|
31
|
+
before do
|
32
|
+
Blacklight::Oembed::Engine.config.render_helper = :render_oembed_tag_async
|
33
|
+
end
|
34
|
+
|
35
|
+
let :document do
|
36
|
+
SolrDocument.new oembed_url_ssm: 'http://some/uri'
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should render a placeholder for oembed data" do
|
40
|
+
rendered = helper.render_oembed_solr_document_tag document
|
41
|
+
expect(rendered).to have_css "[data-embed-url]"
|
42
|
+
expect(rendered).to have_css "[data-embed-url='#{blacklight_oembed_engine.embed_url(url: "http://some/uri")}']"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "embed" do
|
47
|
+
before do
|
48
|
+
Blacklight::Oembed::Engine.config.render_helper = :render_oembed_tag_embed
|
49
|
+
end
|
50
|
+
|
51
|
+
let :document do
|
52
|
+
SolrDocument.new oembed_url_ssm: 'http://some/uri'
|
53
|
+
end
|
54
|
+
|
55
|
+
let :oembed_obj do
|
56
|
+
double(html: "some-markup")
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should fetch oembed markup for a url" do
|
60
|
+
allow(OEmbed::Providers).to receive(:get).with('http://some/uri').and_return oembed_obj
|
61
|
+
rendered = helper.render_oembed_solr_document_tag document
|
62
|
+
expect(rendered).to eq "some-markup"
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should gracefully fail to a view link" do
|
66
|
+
rendered = helper.render_oembed_solr_document_tag document
|
67
|
+
expect(rendered).to have_link "View", href: "http://some/uri"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight-oembed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
@@ -234,6 +234,8 @@ files:
|
|
234
234
|
- lib/generators/blacklight_oembed/templates/blacklight_oembed.css.scss
|
235
235
|
- lib/generators/blacklight_oembed/templates/blacklight_oembed.js
|
236
236
|
- lib/generators/blacklight_oembed/templates/oembed_providers.rb
|
237
|
+
- spec/controllers/embed_controller_spec.rb
|
238
|
+
- spec/helpers/oembed_helper_spec.rb
|
237
239
|
- spec/spec_helper.rb
|
238
240
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
239
241
|
homepage: https://github.com/sul-dlss/blacklight-oembed
|
@@ -261,5 +263,7 @@ signing_key:
|
|
261
263
|
specification_version: 4
|
262
264
|
summary: Oembed display for Blacklight
|
263
265
|
test_files:
|
266
|
+
- spec/controllers/embed_controller_spec.rb
|
267
|
+
- spec/helpers/oembed_helper_spec.rb
|
264
268
|
- spec/spec_helper.rb
|
265
269
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|