Sha256: 831cec9716802d2b43d17cc225098bf8dbaa51b4a33ede08a1c85df86da46de4

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

module MailyHerald
  module Webui
    module Breadcrumbs
      module ControllerExtensions
        def self.included(base)
          base.extend ClassMethods
          base.send :include, MailyHerald::Webui::Breadcrumbs::ControllerExtensions::InstanceMethods
        end

        module ClassMethods
          protected

          def add_breadcrumb name, url = nil, options = {}
            before_filter options do |controller|
              controller.send(:add_breadcrumb, name, url, options)
            end
          end
        end

        module InstanceMethods
          protected

          def self.included(base)
            base.extend ClassMethods
          end

          def add_breadcrumb name, url = nil, options = {}
            return unless name

            @breadcrumbs ||= []
            url = self.instance_eval(&url) if url.is_a?(Proc)
            url = eval(url.to_s) if url.to_s =~ /_path|_url|@/
            url = url.merge(:d => current_domain.id.to_s, :host => current_domain.hostname) if url && options[:localized]
            @breadcrumbs << {:name => name, :url => url, :intitle => options[:intitle], :intitle_only => options[:intitle_only]}
          end

          def disable_breadcrumbs 
            @breadcrumbs_disabled = true
          end
        end
      end

      module HelperExtensions
        def has_breadcrumbs?
          !@breadcrumbs_disabled && @breadcrumbs && !@breadcrumbs.empty?
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
maily_herald-webui-0.9.0 lib/maily_herald/webui/breadcrumbs.rb
maily_herald-webui-0.8.0 lib/maily_herald/webui/breadcrumbs.rb