Sha256: 0c05813ecade75418572e7ca65f5c0cf5cf92484fdb6cfc6ac94a150e7b5ec36

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

module Breadcrumble
  module ActionController
    extend ActiveSupport::Concern

    included do
      helper_method :add_breadcrumb, :breadcrumbs
    end

    module ClassMethods
      def add_breadcrumb name, url = nil
        before_filter do |controller|
          controller.send :add_breadcrumb, name, url
        end
      end

      def add_breadcrumbs *args
        before_filter do |controller|
          args.each do |arg|
            controller.send :add_breadcrumb, arg[0], arg[1]
          end
        end
      end
    end

    protected

    def add_breadcrumb name, url = nil
      @breadcrumbs ||= []
      @breadcrumbs << {
        name: case name
              when Proc then name.call(self)
              else name
              end,
        url:  case url
              when Proc then url.call(self)
              else url ? url_for(url) : nil
              end
      }
    end

    def add_breadcrumbs *args
      args.each do |arg|
        add_breadcrumb arg[0], arg[1]
      end
    end

    def breadcrumbs
      @breadcrumbs
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
breadcrumble-3.0.2 lib/breadcrumble/action_controller.rb