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