Sha256: 3659f47888c021e4296e42a97e67d95e5cdc6ee9fea7e7d75f3b4a044d74175d

Contents?: true

Size: 1.49 KB

Versions: 5

Compression:

Stored size: 1.49 KB

Contents

module Wobapphelpers
  module Breadcrumbs
    module ActionController
      def add_breadcrumb(name, url)
        breadcrumbs ||= (session[:breadcrumbs] || [] )
        if breadcrumbs.size == 0 || url != breadcrumbs.last[1]
          breadcrumbs << [name, url]
        end
        session[:breadcrumbs] = breadcrumbs.last(6)
      end

      def last_breadcrumb
	session[:breadcrumbs].last || [nil, :back]
      end

      def last_breadcrumb_url
	last_breadcrumb[1]
      end

      def add_breadcrumb_index
	return if request.format == :json
	text = t("controller.#{controller_path}")
	url  = request.fullpath
	add_breadcrumb(text, url)
      end

      def add_breadcrumb_show
        resource = controller_name.singularize
        if instance_variable_defined?("@#{resource}")
          add_breadcrumb_for instance_variable_get("@#{resource}")
        else
          flash[:alert] = "add_breadcrumb_show: instance variable @#{resource} not set; see documentation for Wobapphelpers::Breadcrumbs"
        end
      end

      def add_breadcrumb_for(poly)
	if poly.is_a? Array
	  (parent, child) = poly
	  name  = "#{t('activerecord.models.'+parent.class.name.underscore)}(#{parent.id})/"
	  if child.is_a? Symbol
	    name += "#{t('attributes.'+child.to_s)}"
	  else
	    name += "#{t('activerecord.models.'+child.class.name.underscore)}(#{child.id})"
	  end
	else
	  name = "#{t('activerecord.models.' + poly.class.name.underscore)}(#{poly.id})"
	end
	add_breadcrumb name, polymorphic_path(poly)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wobapphelpers-4.2.0 lib/wobapphelpers/breadcrumbs/action_controller.rb
wobapphelpers-4.1.2 lib/wobapphelpers/breadcrumbs/action_controller.rb
wobapphelpers-4.1.1 lib/wobapphelpers/breadcrumbs/action_controller.rb
wobapphelpers-4.1.0 lib/wobapphelpers/breadcrumbs/action_controller.rb
wobapphelpers-4.0.0 lib/wobapphelpers/breadcrumbs/action_controller.rb