Class: Goldencobra::Menue

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/goldencobra/menue.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_by_pathname(name) ⇒ Object



54
55
56
57
58
59
60
# File 'app/models/goldencobra/menue.rb', line 54

def self.find_by_pathname(name)
  if name.include?("/")
    where(:title => name.split("/").last).select{|a| a.path.map(&:title).join("/") == name}.first
  else
    find_by_title(name)
  end
end

Instance Method Details

#has_active_child?(request, subtree_menues) ⇒ Boolean

Returns:

  • (Boolean)


67
68
69
70
# File 'app/models/goldencobra/menue.rb', line 67

def has_active_child?(request, subtree_menues)
  @has_active_child_result ||= {}
  @has_active_child_result[request.path.squeeze("/").split("?")[0]] ||= has_active_descendant?(subtree_menues,request)
end

#has_active_descendant?(subtree_menues, request) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
# File 'app/models/goldencobra/menue.rb', line 72

def has_active_descendant?(subtree_menues,request)
  subtree_menues.select{|a| a.ancestry.to_s.starts_with?("#{self.ancestry}/#{self.id}")}.map(&:target).include?(request.path.squeeze("/").split("?")[0])
end

#is_active?(request) ⇒ Boolean

Returns:

  • (Boolean)


62
63
64
65
# File 'app/models/goldencobra/menue.rb', line 62

def is_active?(request)
  @is_active_result ||= {}
  @is_active_result[request.path.squeeze("/").split("?")[0]] ||= request.path.squeeze("/").split("?")[0] == self.target.gsub("\"",'')
end

#mapped_to_article?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'app/models/goldencobra/menue.rb', line 76

def mapped_to_article?
  @mapped_to_article_result ||= Goldencobra::Article.select([:url_name, :startpage, :ancestry, :id]).map{|a| a.public_url}.uniq.include?(self.target)
end