Sha256: b85bb51c406e1b9fb9a7ddc57a8702a08a44327154cee09147346596eaa0b270

Contents?: true

Size: 755 Bytes

Versions: 11

Compression:

Stored size: 755 Bytes

Contents

module SimpleAdmin
  class Breadcrumbs
    # Returns an array of links to use in a breadcrumb
    def self.parse(path, action)
      parts = path.gsub(/^\//, '').split('/')
      parts.pop unless %w{ create update }.include?(action)
      crumbs = []
      parts.each_with_index do |part, index|
        name = ""
        if part =~ /^\d/ && parent = parts[index - 1]
          begin
            parent_class = parent.singularize.camelcase.constantize
            obj = parent_class.find(part.to_i)
            name = obj.display_name if obj.respond_to?(:display_name)
          rescue
          end
        end
        name = part.titlecase if name == ""
        crumbs << [name, "/" + parts[0..index].join('/')]
      end
      crumbs
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
simple_admin-0.7.1 lib/simple_admin/breadcrumbs.rb
simple_admin-0.6.0 lib/simple_admin/breadcrumbs.rb
simple_admin-0.5.2 lib/simple_admin/breadcrumbs.rb
simple_admin-0.5.1 lib/simple_admin/breadcrumbs.rb
simple_admin-0.5.0 lib/simple_admin/breadcrumbs.rb
simple_admin-0.4.1 lib/simple_admin/breadcrumbs.rb
simple_admin-0.4.0 lib/simple_admin/breadcrumbs.rb
simple_admin-0.3.1 lib/simple_admin/breadcrumbs.rb
simple_admin-0.3.0 lib/simple_admin/breadcrumbs.rb
simple_admin-0.2.1 lib/simple_admin/breadcrumbs.rb
simple_admin-0.1.0 lib/simple_admin/breadcrumbs.rb