Class: Breadcrumb
Defined Under Namespace
Instance Attribute Summary collapse
-
#crumbs ⇒ Object
Returns the value of attribute crumbs.
-
#delimiter ⇒ Object
Returns the value of attribute delimiter.
-
#trails ⇒ Object
Returns the value of attribute trails.
Class Method Summary collapse
Instance Method Summary collapse
- #context(name) ⇒ Object
- #crumb(name, title, url, *params) ⇒ Object
- #delimit_with(delimiter) ⇒ Object
- #dont_link_last_crumb ⇒ Object
-
#initialize ⇒ Breadcrumb
constructor
A new instance of Breadcrumb.
- #last_crumb_linked? ⇒ Boolean
- #link_last_crumb ⇒ Object
- #trail(controller, actions, trail, options = {}) ⇒ Object
- #validate ⇒ Object
Constructor Details
#initialize ⇒ Breadcrumb
Returns a new instance of Breadcrumb.
30 31 32 |
# File 'lib/breadcrumb.rb', line 30 def initialize @last_crumb_linked = true end |
Instance Attribute Details
#crumbs ⇒ Object
Returns the value of attribute crumbs.
28 29 30 |
# File 'lib/breadcrumb.rb', line 28 def crumbs @crumbs end |
#delimiter ⇒ Object
Returns the value of attribute delimiter.
28 29 30 |
# File 'lib/breadcrumb.rb', line 28 def delimiter @delimiter end |
#trails ⇒ Object
Returns the value of attribute trails.
28 29 30 |
# File 'lib/breadcrumb.rb', line 28 def trails @trails end |
Class Method Details
.configure(&blk) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/breadcrumb.rb', line 34 def self.configure(&blk) instance.crumbs = {} instance.trails = [] instance.instance_eval &blk instance.validate end |
Instance Method Details
#context(name) ⇒ Object
55 56 57 |
# File 'lib/breadcrumb.rb', line 55 def context(name) yield end |
#crumb(name, title, url, *params) ⇒ Object
49 50 51 52 53 |
# File 'lib/breadcrumb.rb', line 49 def crumb(name, title, url, *params) params = params.first if params.any? && params.first.is_a?(Hash) @crumbs ||= {} @crumbs[name] = Crumb.new(name, title, url, params) end |
#delimit_with(delimiter) ⇒ Object
59 60 61 |
# File 'lib/breadcrumb.rb', line 59 def delimit_with(delimiter) @delimiter = delimiter end |
#dont_link_last_crumb ⇒ Object
63 64 65 |
# File 'lib/breadcrumb.rb', line 63 def dont_link_last_crumb @last_crumb_linked = false end |
#last_crumb_linked? ⇒ Boolean
71 72 73 |
# File 'lib/breadcrumb.rb', line 71 def last_crumb_linked? @last_crumb_linked end |
#link_last_crumb ⇒ Object
67 68 69 |
# File 'lib/breadcrumb.rb', line 67 def link_last_crumb @last_crumb_linked = true end |
#trail(controller, actions, trail, options = {}) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/breadcrumb.rb', line 41 def trail(controller, actions, trail, = {}) @trails ||= [] actions = Array(actions) actions.each do |action| @trails << Trail.new(controller, action, trail, , caller[2].split(":")[1]) end end |
#validate ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/breadcrumb.rb', line 75 def validate invalid_trails = [] trails.each do |trail| trail.trail.collect do |t| invalid_trails << [trail, t] if crumbs[t].nil? end end if invalid_trails.any? = [] invalid_trails.each do |trail| << "Trail for #{trail.first.controller}/#{trail.first.action} references non-existing crumb '#{trail.last}' (configuration file line: #{trail.first.line})" end raise .join("\n") end end |