added capacity for pulling static pages from multiple directory source trees.
[leap_website.git] / lib / site_configuration.rb
1 #
2 # A class for a site's configuration.
3 # Site configuration file is eval'ed in the context of an instance of SiteConfiguration
4 #
5
6 require 'pathname'
7
8 class SiteConfiguration
9
10   attr_accessor :title
11   attr_accessor :pagination_size
12   attr_accessor :mount_points
13   attr_reader :file_path
14
15   ##
16   ## CLASS METHODS
17   ##
18
19   def self.load(config_file)
20     SiteConfiguration.new(config_file)
21   end
22
23   ##
24   ## INSTANCE METHODS
25   ##
26
27   #
28   # accepts a file_path to a configuration file.
29   #
30   def initialize(file_path)
31     @file_path = file_path
32     @site_title = "untitled"
33     @pagination_size = 20
34     @mount_points = []
35     self.eval
36   end
37
38   def pages(directory_source, options={})
39     @mount_points << SiteMountPoint.new(self, directory_source, options)
40   end
41
42   def pages_changed?
43     @mount_points.detect {|mp| mp.changed?}
44   end
45
46   def eval
47     self.instance_eval(File.read(@file_path), @file_path)
48   end
49
50 end