blacklight-oembed 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|