From 226ebbcb8679aea13eba726e67086a07070265c1 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Wed, 2 Jun 2021 22:06:29 +0200 Subject: Override refinery base-presenter to avoid warning. --- app/presenters/refinery/base_presenter.rb | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 app/presenters/refinery/base_presenter.rb diff --git a/app/presenters/refinery/base_presenter.rb b/app/presenters/refinery/base_presenter.rb new file mode 100644 index 0000000..2e549fc --- /dev/null +++ b/app/presenters/refinery/base_presenter.rb @@ -0,0 +1,32 @@ +module Refinery + class BasePresenter + + DEFAULT_FIELDS = { + :title => proc { |p| (p.model.class.name.titleize if p.model.present?) }, + :path => proc { |p| p.title }, + :browser_title => nil, + :meta_description => nil + } + + attr_reader :model + + def initialize(obj) + @model = obj + end + + def method_missing(method, *args) + if @model.respond_to? method + @model.send method + elsif DEFAULT_FIELDS.has_key? method + (value = DEFAULT_FIELDS[method]).is_a?(Proc) ? value.call(self) : value + else + raise NoMethodError.new("#{self.class.name} doesn't know #{method}. Define or delegate it.", method) + end + end + + def respond_to?(method, include_all=false) + super || @model.respond_to?(method) || DEFAULT_FIELDS.has_key?(method) + end + + end +end -- cgit v1.2.3