Module: Crummy::ControllerMethods::ClassMethods
- Defined in:
- lib/crummy.rb
Instance Method Summary collapse
-
#add_crumb(name, *args) ⇒ Object
Add a crumb to the crumbs array.
Instance Method Details
#add_crumb(name, *args) ⇒ Object
Add a crumb to the crumbs array.
add_crumb("Home", "/")
add_crumb("Business") { |instance| instance.business_path }
Works like a before_filter so :only
and except
both work.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/crummy.rb', line 10 def add_crumb(name, *args) = args. url = args.first raise ArgumentError, "Need more arguments" unless name or [:record] or block_given? raise ArgumentError, "Cannot pass url and use block" if url && block_given? before_filter() do |instance| url = yield instance if block_given? url = instance.send url if url.is_a? Symbol record = instance.instance_variable_get("@#{name}") unless url or block_given? if record and record.respond_to? :to_param name, url = record.to_s, instance.url_for(record) end # FIXME: url = instance.url_for(name) if name.respond_to?("to_param") && url.nil? # FIXME: Add ||= for the name, url above instance.add_crumb(name, url) end end |