def edit_link(resource, options: {}, html_options: {}, &block)
      default = options[:readonly] && decorate(resource).to_label || nil
      return default if unauthorized? :edit, extract(resource)

      html_options, block = LinkOptionsNormalizer.normalize(
        html_options, block,
        class: 'resource__update',
        block: -> { "#{t 'links.edit'} #{decorate(resource).to_label}" }
      )

      link_to edit_path(resource, HashUtils.slice!(options, :is_resource, :url_params)), html_options, &block
    end
def edit_link(resource, options: {}, html_options: {}, &block)
      default = options[:readonly] && decorate(resource).to_label || nil
      return default if unauthorized? :edit, extract(resource)

      html_options, block = LinkOptionsNormalizer.normalize(
        html_options, block,
        class: 'resource__update',
        block: -> { "#{t 'links.edit'} #{decorate(resource).to_label}" }
      )

      link_to edit_path(resource, HashUtils.slice!(options, :is_resource, :url_params)), html_options, &block
    end
Return link to edit 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