Sha256: 7e6e12e1e3f1d4e8ca6d28974718b6e828b4bed843575f8d5006e44f39a49a9e

Contents?: true

Size: 1.39 KB

Versions: 8

Compression:

Stored size: 1.39 KB

Contents

module Railsstrap
  module Breadcrumbs
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      def add_breadcrumb(name, url = '', options = {})
        options.merge! :klass => self.name
        before_filter options do |controller|
          controller.send :add_breadcrumb, name, url, options
        end
      end
    end

    protected

    def add_breadcrumb(name, url = '', options = {})
      @breadcrumbs ||= []

      class_name = options.delete(:klass) || self.class.name

      if name.is_a? Symbol
        if url.blank?
          url_helper = :"#{name}_path"
          url = url_helper if respond_to?(url_helper)
        end

        name = translate_breadcrumb name, class_name
      end

      unless name.is_a? String
        url = polymorphic_path name if url.blank?
        name = name.to_s
      end

      url = eval(url.to_s) if url.is_a?(Symbol) && url =~ /_path|_url|@/

      @breadcrumbs << {:name => name, :url => url, :options => options}
    end

    def translate_breadcrumb(name, class_name)
      scope = [:breadcrumbs]
      namespace = class_name.underscore.split('/')
      namespace.last.sub!('_controller', '')
      scope += namespace

      I18n.t name, :scope => scope
    end

    def render_breadcrumbs(divider = '/')
      s = render :partial => 'railsstrap/breadcrumbs', :locals => {:divider => divider}
      s.first
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
railsstrap-4.0.0.beta3 lib/railsstrap/helpers/breadcrumbs.rb
railsstrap-4.0.0.beta2 lib/railsstrap/helpers/breadcrumbs.rb
railsstrap-3.3.4 app/helpers/railsstrap/breadcrumbs.rb
railsstrap-3.3.2 app/helpers/railsstrap/breadcrumbs.rb
railsstrap-3.3.1 app/helpers/railsstrap/breadcrumbs.rb
railsstrap-3.3.0 app/helpers/railsstrap/breadcrumbs.rb
railsstrap-3.2.0.3 app/helpers/railsstrap/breadcrumbs.rb
railsstrap-3.2.0.2 app/helpers/railsstrap/breadcrumbs.rb