Sha256: 869479872a9f96b3b2c19a51949dce4a21463d77e93f969ea90edab04eea5d4f
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
module Loaf module Filters Crumb = Struct.new(:name, :url, :styles) module ClassMethods def add_breadcrumb(name, url, options = {}) before_filter(options) do |instance| instance.send(:add_breadcrumb, _normalize_name(name), url) end end private def _normalize_name(name=nil) case name when NilClass when Proc name.call when Symbol name.to_s else name end end def _process_url(url) end end module InstanceMethods # Add collection of nested breadcrumbs. def add_breadcrumbs(collection=[], options={}) return nil unless collection.is_a? Array attr = options[:attr].delete prefix = options[:prefix].delete collection.each do |item| add_breadcrumb("#{item.send(attr.to_sym)}", prefix + '(' + item + ')' ) end end def add_breadcrumb(name, url) _breadcrumbs << Crumb.new(name, url) end def _breadcrumbs @_breadcrumbs ||= [] end def clear_crumbs _breadcrumbs.clear end end # InstanceMethods def self.included(base) base.extend ClassMethods base.send :include, InstanceMethods base.send :helper_method, :_breadcrumbs end end # Filters end # Loaf
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
loaf-0.1.0 | lib/loaf/filters.rb |