Sha256: 31be8bd6a9b9b5f246f1bb3d86eda9675833ac54b76d04696fe5ad39cabae13f

Contents?: true

Size: 776 Bytes

Versions: 2

Compression:

Stored size: 776 Bytes

Contents

module Trestle
  module UrlHelper
    def admin_link_to(content, instance=nil, options={}, &block)
      if block_given?
        instance, options = content, instance || {}
        content = capture(&block)
      end

      if admin = (options.key?(:admin) ? Trestle.lookup(options.delete(:admin)) : admin_for(instance))
        link_to(content, admin_url_for(instance, admin: admin), options)
      else
        content
      end
    end

    def admin_url_for(instance, options={})
      admin = options.key?(:admin) ? Trestle.lookup(options[:admin]) : admin_for(instance)
      admin.path(options[:action] || :show, id: admin.to_param(instance)) if admin
    end

    def admin_for(instance)
      Trestle.admins[instance.class.name.underscore.pluralize]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
trestle-0.8.5 app/helpers/trestle/url_helper.rb
trestle-0.8.4 app/helpers/trestle/url_helper.rb