Skip to content

Commit

Permalink
Move code from view to helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
jcoyne committed Aug 24, 2015
1 parent e0782bb commit 96c00c1
Show file tree
Hide file tree
Showing 12 changed files with 103 additions and 36 deletions.
19 changes: 19 additions & 0 deletions app/helpers/curation_concerns/generic_file_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,23 @@ def parent_path(parent)
polymorphic_path([main_app, :curation_concerns, parent])
end
end

def media_display(generic_file)
render media_display_partial(generic_file), generic_file: generic_file
end

def media_display_partial(generic_file)
'curation_concerns/generic_files/media_display/' +
if generic_file.image?
'image'
elsif generic_file.video?
'video'
elsif generic_file.audio?
'audio'
elsif generic_file.pdf?
'pdf'
else
'default'
end
end
end
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<% if work.representative.present? && (gf = ::GenericFile.load_instance_from_solr(work.representative)) %>
<%= render partial: 'curation_concerns/generic_files/media_display', locals: {generic_file: gf, dom_class_name: 'representative_image'} %>
<%= media_display gf %>
<% else %>
<%= image_tag 'nope.png', class: "canonical-image" %>
<% end %>
Expand Down
32 changes: 0 additions & 32 deletions app/views/curation_concerns/generic_files/_media_display.html.erb

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<audio controls="controls" class="audiojs" preload="auto">
<source src="<%= main_app.download_path(generic_file, file: 'ogg') %>" type="audio/ogg" />
<source src="<%= main_app.download_path(generic_file, file: 'mp3') %>" type="audio/mpeg" />
Your browser does not support the audio tag.
</audio>

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<%= link_to main_app.download_path(generic_file), target: "_new", title: "Download the document" do %>
<%= image_tag "default.png", alt: "No preview available", class: "img-responsive" %>
<% end %>

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<%= link_to main_app.download_path(generic_file), target: "_new", title: "Download the full-sized image" do %>
<%= image_tag(main_app.download_path(generic_file, file: 'thumbnail'),
class: "img-responsive",
alt: "Download the full-sized image of #{generic_file.title.first}"
) %>
Download the full-sized image
<% end %>

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<%= link_to main_app.download_path(generic_file), target: "_new", title: "Download the full-sized PDF" do%>
<%= image_tag main_app.download_path(generic_file, file: 'thumbnail'),
class: "img-responsive",
alt: "Download the full-sized PDF of #{generic_file.title.first}" %>
Download the full-sized PDF
<% end %>

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<video controls="controls" class="video-js vjs-default-skin" data-setup="{}" preload="auto">
<source src="<%= main_app.download_path(generic_file, file: 'webm') %>" type="video/webm" />
<source src="<%= main_app.download_path(generic_file, file: 'mp4') %>" type="video/mp4" />
Your browser does not support the video tag.
</video>

2 changes: 1 addition & 1 deletion app/views/curation_concerns/generic_files/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<% provide :page_header do %>
<h1>File Details</h1>
<% end %>
<%= render 'media_display', generic_file: curation_concern, dom_class_name: 'representative_image' %>
<%= media_display curation_concern %>
<%= render "attributes", curation_concern: curation_concern %>

<div class="form-actions">
Expand Down
Empty file.
47 changes: 47 additions & 0 deletions spec/helpers/curation_concerns/generic_file_helper_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
require 'spec_helper'

describe CurationConcerns::GenericFileHelper do
describe '#media_display' do
let(:generic_file) { GenericFile.new(mime_type: mime_type) }
let(:mime_type) { 'image/tiff' }

it "renders a partial" do
allow(helper).to receive(:media_display_partial).with(generic_file)
.and_return('curation_concerns/generic_files/media_display/image')
expect(helper).to receive(:render)
.with('curation_concerns/generic_files/media_display/image', generic_file: generic_file)
helper.media_display(generic_file)
end
end

describe '#media_display_partial' do
subject { helper.media_display_partial(generic_file) }

let(:generic_file) { GenericFile.new(mime_type: mime_type) }

context "with an image" do
let(:mime_type) { 'image/tiff' }
it { is_expected.to eq 'curation_concerns/generic_files/media_display/image' }
end

context "with a video" do
let(:mime_type) { 'video/webm' }
it { is_expected.to eq 'curation_concerns/generic_files/media_display/video' }
end

context "with an audio" do
let(:mime_type) { 'audio/wav' }
it { is_expected.to eq 'curation_concerns/generic_files/media_display/audio' }
end

context "with a pdf" do
let(:mime_type) { 'application/pdf' }
it { is_expected.to eq 'curation_concerns/generic_files/media_display/pdf' }
end

context "with anything else" do
let(:mime_type) { 'application/binary' }
it { is_expected.to eq 'curation_concerns/generic_files/media_display/default' }
end
end
end
6 changes: 4 additions & 2 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
require 'coveralls'
Coveralls.wear!
if ENV['CI']
require 'coveralls'
Coveralls.wear!
end

ENV['RAILS_ENV'] ||= 'test'

Expand Down

0 comments on commit 96c00c1

Please sign in to comment.