Sha256: b5edc3d1a8d8ffeb5b8df74e7e622412a390fda6dda4603194be1caa9ba40bd5
Contents?: true
Size: 767 Bytes
Versions: 3
Compression:
Stored size: 767 Bytes
Contents
module Aerogel::Pages module Traversal def self.page( id, lang ) PageNode.find( id ).try( :page, lang ) end def self.root( lang ) Page.root(lang) end def self.find( url, lang ) page = root(lang) traverse page, url.dup, lang end def self.traverse( page, url, lang ) return page if page.nil? || url.blank? link = url.shift page = page.children.where( link: link ).first traverse page, url, lang end def self.find_closest_in_other_lang( page, lang ) return page.page_node.page(lang) if page.page_node.page(lang).present? return root(lang) if page.root? find_closest_in_other_lang( page.parent, lang ) end end # module Traversal end # module Aerogel::Pages
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aerogel-pages-1.4.16 | lib/aerogel/pages/traversal.rb |
aerogel-pages-1.4.14 | lib/aerogel/pages/traversal.rb |
aerogel-pages-1.4.12 | lib/aerogel/pages/traversal.rb |