Sha256: 510ba2b0f280ef875e72813cb92815f63fa66b72dac2776431d1c1313c6e5ca8
Contents?: true
Size: 1.19 KB
Versions: 3
Compression:
Stored size: 1.19 KB
Contents
module Seiten class Navigation attr_accessor :name, :locale, :config, :dir, :page_collection 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 class << self def find_by(params={}) where(params).first end def where(params={}) Seiten.navigations.select do |navigation| params.all? do |param| navigation.send(param[0]) == param[1] end end end end def id "%s.%s" % [name, locale] end def pages page_collection end 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 end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
seiten-1.0.2 | lib/seiten/navigation.rb |
seiten-1.0.1 | lib/seiten/navigation.rb |
seiten-1.0.0 | lib/seiten/navigation.rb |