class Seiten::Navigation

Attributes

config[RW]
dir[RW]
locale[RW]
name[RW]
page_collection[RW]

Public Class Methods

find_by(params={}) click to toggle source
# File lib/seiten/navigation.rb, line 14
def find_by(params={})
  where(params).first
end
new(options={}) click to toggle source
# File lib/seiten/navigation.rb, line 5
def initialize(options={})
  @name   = options[:name].to_s
  @locale = options[:locale].to_s
  @config = options[:config] || File.join(Rails.root, Seiten.config[:config_dir], "#{id}.yml")
  @dir    = options[:dir]    || File.join(Rails.root, Seiten.config[:pages_dir], @name, @locale)
  @page_collection = Seiten::PageCollection.new(navigation_id: id)
end
where(params={}) click to toggle source
# File lib/seiten/navigation.rb, line 18
def where(params={})
  Seiten.navigations.select do |navigation|
    params.all? do |param|
      navigation.send(param[0]) == param[1]
    end
  end
end

Public Instance Methods

id() click to toggle source
# File lib/seiten/navigation.rb, line 27
def id
  "%s.%s" % [name, locale]
end
pages() click to toggle source
# File lib/seiten/navigation.rb, line 31
def pages
  page_collection
end
pages=(pages_array) click to toggle source
# File lib/seiten/navigation.rb, line 35
def pages=(pages_array)
  page_collection.pages = pages_array.map { |page| page.navigation_id = id; page }
  # return page_collection
  # NOTE: This doesn't work and just returns page_array.
  # I think because page_collection#pages= attr_accessor is called first
  # and thus why our return call is ignored.
end