def show_link(resource, options: {}, html_options: {}, &block)
      # NOTE: to_s is a must
      # if a block is returning integer (e.g. `{ 1 }`)
      # `link_to` will render blank text note inside hyper link
      html_options, block = LinkOptionsNormalizer.normalize(
        html_options, block,
        block: -> { decorate(resource).to_label.to_s }
      )

      default = options[:readonly] && block.call || nil
      return default if unauthorized? :show, extract(resource)
      link_to show_path(resource, HashUtils.slice!(options, :is_resource, :url_params)), html_options, &block
    end
def show_link(resource, options: {}, html_options: {}, &block)
      # NOTE: to_s is a must
      # if a block is returning integer (e.g. `{ 1 }`)
      # `link_to` will render blank text note inside hyper link
      html_options, block = LinkOptionsNormalizer.normalize(
        html_options, block,
        block: -> { decorate(resource).to_label.to_s }
      )

      default = options[:readonly] && block.call || nil
      return default if unauthorized? :show, extract(resource)
      link_to show_path(resource, HashUtils.slice!(options, :is_resource, :url_params)), html_options, &block
    end
Return link to show page by a given model class
 If user's not authorized, resource label will be returned
 @param resource [Object, Wallaby::ResourceDecorator] model class
 @param options [Hash]
 @param html_options [Hash] (@see ActionView::Helpers::UrlHelper#link_to)
 @return [String] anchor element / text