Sha256: 0c2620d88966c9035f6373a95639bc77cd5d5431fe1e9ebba4e7eb874b43298e

Contents?: true

Size: 821 Bytes

Versions: 2

Compression:

Stored size: 821 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Log
    module ValueTypes
      # This class presents the given value as a Decidim::Scope. Check
      # the `DefaultPresenter` for more info on how value
      # presenters work.
      class ScopePresenter < DefaultPresenter
        # Public: Presents the value as a Decidim::Scope. If the scope can
        # be found, it shows its title. Otherwise it shows its ID.
        #
        # Returns an HTML-safe String.
        def present
          return unless value
          return h.translated_attribute(scope.name) if scope
          I18n.t("not_found", id: value, scope: "decidim.log.value_types.scope_presenter")
        end

        private

        def scope
          @scope ||= Decidim::Scope.where(id: value).first
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
decidim-core-0.10.1 app/presenters/decidim/log/value_types/scope_presenter.rb
decidim-core-0.10.0 app/presenters/decidim/log/value_types/scope_presenter.rb