From 5bcf0dfe9d01e343b13c8ddeb9fd44a5edddc65d Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Wed, 6 Jul 2016 15:22:32 -0700 Subject: [PATCH] Add deprecated methods (deprecated by DocumentPresenter) into the new presenters --- .../blacklight/document_presenter.rb | 8 ++++- app/presenters/blacklight/index_presenter.rb | 33 +++++++++++++++++++ app/presenters/blacklight/show_presenter.rb | 30 +++++++++++++++++ spec/presenters/document_presenter_spec.rb | 8 +++++ spec/presenters/index_presenter_spec.rb | 26 +++++++++++++++ spec/presenters/show_presenter_spec.rb | 26 +++++++++++++++ 6 files changed, 130 insertions(+), 1 deletion(-) diff --git a/app/presenters/blacklight/document_presenter.rb b/app/presenters/blacklight/document_presenter.rb index 77bc0e4d12..a19a16fd9e 100644 --- a/app/presenters/blacklight/document_presenter.rb +++ b/app/presenters/blacklight/document_presenter.rb @@ -127,10 +127,16 @@ def field_values(field_config, options={}) # @deprecated def render_field_value(values, field_config = Configuration::NullField.new) - FieldPresenter.new(@controller, @document, field_config, value: values).render + field_values(field_config, value: Array(values)) end deprecation_deprecate render_field_value: 'Use FieldPresenter instead' + # @deprecated + def render_values(values, field_config = Configuration::NullField.new) + field_values(field_config, value: Array(values)) + end + deprecation_deprecate render_values: 'Use FieldPresenter instead' + private def index_presenter diff --git a/app/presenters/blacklight/index_presenter.rb b/app/presenters/blacklight/index_presenter.rb index f68114520c..772542f75b 100644 --- a/app/presenters/blacklight/index_presenter.rb +++ b/app/presenters/blacklight/index_presenter.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true module Blacklight class IndexPresenter + extend Deprecation + self.deprecation_horizon = 'Blacklight version 7.0.0' + attr_reader :document, :configuration, :view_context # @param [SolrDocument] document @@ -34,6 +37,12 @@ def label(field_or_string_or_proc, opts = {}) field_values(config, value: value) end + # @deprecated + def render_document_index_label(*args) + label(*args) + end + deprecation_deprecate render_document_index_label: 'Use #label instead' + ## # Render the index field label for a document # @@ -47,6 +56,30 @@ def field_value field, options = {} field_values(field_config, options) end + # @deprecated + def render_index_field_value(*args) + field_value(*args) + end + deprecation_deprecate render_index_field_value: 'replaced by #field_value' + + # @deprecated + def get_field_values(field_config, options={}) + field_values(field_config, options) + end + deprecation_deprecate get_field_values: "replaced by #field_value" + + # @deprecated + def render_field_values(values, field_config = Configuration::NullField.new) + field_values(field_config, value: Array(values)) + end + deprecation_deprecate render_field_values: "replaced by #field_value" + + # @deprecated + def render_values(values, field_config = Configuration::NullField.new) + field_values(field_config, value: Array(values)) + end + deprecation_deprecate render_values: "replaced by #field_value" + private ## diff --git a/app/presenters/blacklight/show_presenter.rb b/app/presenters/blacklight/show_presenter.rb index 70e827429f..694f1e8d23 100644 --- a/app/presenters/blacklight/show_presenter.rb +++ b/app/presenters/blacklight/show_presenter.rb @@ -45,6 +45,12 @@ def html_title end end + # @deprecated + def document_show_html_title + html_title + end + deprecation_deprecate document_show_html_title: "use #html_title" + ## # Get the value of the document's "title" field, or a placeholder # value (if empty) @@ -76,6 +82,30 @@ def field_value field, options={} field_values(field_config(field), options) end + # @deprecated + def render_document_show_field_value(*args) + field_value(*args) + end + deprecation_deprecate render_document_show_field_value: 'replaced by #field_value' + + # @deprecated + def get_field_values(field_config, options={}) + field_values(field_config, options) + end + deprecation_deprecate get_field_values: "replaced by #field_value" + + # @deprecated + def render_field_values(values, field_config = Configuration::NullField.new) + field_values(field_config, value: Array(values)) + end + deprecation_deprecate render_field_values: "replaced by #field_value" + + # @deprecated + def render_values(values, field_config = Configuration::NullField.new) + field_values(field_config, value: Array(values)) + end + deprecation_deprecate render_values: "replaced by #field_value" + private ## diff --git a/spec/presenters/document_presenter_spec.rb b/spec/presenters/document_presenter_spec.rb index 0a0e84644c..f4d8d6d28b 100644 --- a/spec/presenters/document_presenter_spec.rb +++ b/spec/presenters/document_presenter_spec.rb @@ -428,4 +428,12 @@ def mock_document_app_helper_url *args end end end + + describe '#render_values' do + it 'renders field values as a string' do + expect(subject.render_values('x')).to eq 'x' + expect(subject.render_values(['x', 'y'])).to eq 'x and y' + expect(subject.render_values(['x', 'y', 'z'])).to eq 'x, y, and z' + end + end end diff --git a/spec/presenters/index_presenter_spec.rb b/spec/presenters/index_presenter_spec.rb index 3e37cd1d44..b07b63ea2d 100644 --- a/spec/presenters/index_presenter_spec.rb +++ b/spec/presenters/index_presenter_spec.rb @@ -143,5 +143,31 @@ end end end + + describe 'deprecated methods' do + before do + allow(Deprecation).to receive(:warn) + end + + let(:field_config) { config.add_index_field 'qwerty' } + + describe '#get_field_values' do + it 'renders values for the given field' do + expect(subject.get_field_values(field_config, value: ['x', 'y'])).to eq 'x and y' + end + end + + describe '#render_field_values' do + it 'renders values for the given field' do + expect(subject.render_field_values('x')).to eq 'x' + end + end + + describe '#render_values' do + it 'renders values for the given field' do + expect(subject.render_values(['x', 'y', 'z'])).to eq 'x, y, and z' + end + end + end end diff --git a/spec/presenters/show_presenter_spec.rb b/spec/presenters/show_presenter_spec.rb index 3f3030ba69..e4521c6a6c 100644 --- a/spec/presenters/show_presenter_spec.rb +++ b/spec/presenters/show_presenter_spec.rb @@ -283,5 +283,31 @@ def mock_document_app_helper_url *args end end end + + describe 'deprecated methods' do + before do + allow(Deprecation).to receive(:warn) + end + + let(:field_config) { config.add_index_field 'qwerty' } + + describe '#get_field_values' do + it 'renders values for the given field' do + expect(subject.get_field_values(field_config, value: ['x', 'y'])).to eq 'x and y' + end + end + + describe '#render_field_values' do + it 'renders values for the given field' do + expect(subject.render_field_values('x')).to eq 'x' + end + end + + describe '#render_values' do + it 'renders values for the given field' do + expect(subject.render_values(['x', 'y', 'z'])).to eq 'x, y, and z' + end + end + end end