Sha256: 0f319569df66a51094d6ee3c92fd1d464b540f0e1f0d94beace7ab137d059769

Contents?: true

Size: 1.88 KB

Versions: 19

Compression:

Stored size: 1.88 KB

Contents

#          Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.

require 'innate/helper/link'

module Ramaze
  module Helper
    # This is a modification of Innate::Helper::Link to respect the routing of
    # Ramaze
    #
    # NOTE: The A/R/Rs methods have been deprecated.
    module Link
      def route_location(klass)
        prefix = Ramaze.options.prefix
        location = Ramaze.to(klass) || Ramaze.to(klass.class)
        [prefix, location].join('/')
      end

      # Give it a path with character to split at and one to join the crumbs with.
      # It will generate a list of links that act as pointers to previous pages on
      # this path.
      #
      # @example usage
      #   breadcrumbs('/path/to/somewhere')
      #
      #   # results in this, newlines added for readability:
      #
      #   <a href="/path">path</a>/
      #   <a href="/path/to">to</a>/
      #   <a href="/path/to/somewhere">somewhere</a>
      #
      # Optionally a href prefix can be specified which generate link
      # names a above, but with the prefix prepended to the href path.
      #
      # @example usage
      #   breadcrumbs('/path/to/somewhere', '/', '/', '/mycontroller/action')
      #
      #   # results in this, newlines added for readability:
      #
      #   <a href="/mycontroller/action/path">path</a>/
      #   <a href="/mycontroller/action/path/to">to</a>/
      #   <a href="/mycontroller/action/path/to/somewhere">somewhere</a>
      #
      # @return [String]
      def breadcrumbs(path, split = '/', join = '/', href_prefix = '')
        atoms = path.split(split).reject{|a| a.empty?}
        crumbs = atoms.inject([]){|s,v| s << [s.last,v]}
        bread = crumbs.map do |a|
          href_path = href_prefix + a*'/'
          a(a[-1], href_path)
        end
        bread.join(join)
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 4 rubygems

Version Path
Pistos-ramaze-2009.06.12 lib/ramaze/helper/link.rb
manveru-ramaze-2009.06.04 lib/ramaze/helper/link.rb
manveru-ramaze-2009.06.12 lib/ramaze/helper/link.rb
manveru-ramaze-2009.06 lib/ramaze/helper/link.rb
manveru-ramaze-2009.07 lib/ramaze/helper/link.rb
rjspotter-ramaze-2009.06.29 lib/ramaze/helper/link.rb
rjspotter-ramaze-2009.06.31 lib/ramaze/helper/link.rb
ramaze-2011.01.30 lib/ramaze/helper/link.rb
ramaze-2011.01 lib/ramaze/helper/link.rb
ramaze-2010.06.18 lib/ramaze/helper/link.rb
ramaze-2010.04.04 lib/ramaze/helper/link.rb
ramaze-2010.04 lib/ramaze/helper/link.rb
ramaze-2010.03 lib/ramaze/helper/link.rb
ramaze-2010.01 lib/ramaze/helper/link.rb
ramaze-2009.10 lib/ramaze/helper/link.rb
ramaze-2009.07 lib/ramaze/helper/link.rb
ramaze-2009.06.04 lib/ramaze/helper/link.rb
ramaze-2009.06.12 lib/ramaze/helper/link.rb
ramaze-2009.06 lib/ramaze/helper/link.rb