Module: Spyro::ActionViewExtension::BreadCrumbHelper

Included in:
WidgetsHelper
Defined in:
lib/spyro/helpers/action_view_extension.rb

Instance Method Summary collapse

Instance Method Details



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
# File 'lib/spyro/helpers/action_view_extension.rb', line 178

def breadcrumb opts = {}
  def format_class arg
    arg.to_s.parameterize.underscore.downcase
  end

  elems = []
  part_parents = []

  elems << {:link => opts[:root], :label => "Root", :class => "root"} if opts[:root]


  parents.compact.each do |elem|
    part_parents << elem
    elems << {:link => polymorphic_path([opts[:namespace], *part_parents]), :label => elem.to_desc, :class => "action_show #{format_class elem.class}"}
  end


  if params[:id]
    elems << {:link => polymorphic_path([opts[:namespace], *part_parents, resource_class]), :label => resource_class.to_s.pluralize.titleize, :class => "action_index #{format_class resource_class}"}
    elems << {:label => resource.to_desc, :active => true, :class => "action_#{params[:action]} #{format_class resource_class}"}
  else
    elems << {:label => resource_class.to_s.humanize.pluralize.titleize, :active => true, :class => "action_#{params[:action]} #{format_class resource_class}"}
  end

  "<ol class='breadcrumb'>#{elems.map { |elem|
    html_class = elem[:class] || format_class(elem[:label])
    elem[:active] ? "<li class='active #{html_class}'>#{elem[:label]}</li>" : "<li class='#{html_class}'>#{link_to elem[:label], elem[:link]}</li>"
  }.join("")}</ol>".html_safe
end

#format_class(arg) ⇒ Object



179
180
181
# File 'lib/spyro/helpers/action_view_extension.rb', line 179

def format_class arg
  arg.to_s.parameterize.underscore.downcase
end