diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-06-02 22:06:29 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-06-02 22:06:29 +0200 |
commit | 226ebbcb8679aea13eba726e67086a07070265c1 (patch) | |
tree | bdc0a4aa9d0965c3d47f955c6643a99200ee179a /app | |
parent | 1e814569ff68aa18f12a737811c1fdbf84331b40 (diff) | |
download | hmnoweb-226ebbcb8679aea13eba726e67086a07070265c1.tar.gz hmnoweb-226ebbcb8679aea13eba726e67086a07070265c1.tar.bz2 hmnoweb-226ebbcb8679aea13eba726e67086a07070265c1.zip |
Override refinery base-presenter to avoid warning.
Diffstat (limited to 'app')
-rw-r--r-- | app/presenters/refinery/base_presenter.rb | 32 |
1 files changed, 32 insertions, 0 deletions
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 |