diff options
-rw-r--r-- | lib/zorglub.rb | 5 | ||||
-rw-r--r-- | lib/zorglub/config.rb | 63 |
2 files changed, 66 insertions, 2 deletions
diff --git a/lib/zorglub.rb b/lib/zorglub.rb index f93b4c1..60917c6 100644 --- a/lib/zorglub.rb +++ b/lib/zorglub.rb @@ -5,8 +5,9 @@ module Zorglub # VERSION = '0.0.1' # - autoload :App, './lib/zorglub/app.rb' - autoload :Node, './lib/zorglub/node.rb' + autoload :App, './lib/zorglub/app.rb' + autoload :Config, './lib/zorglub/config.rb' + autoload :Node, './lib/zorglub/node.rb' # end # diff --git a/lib/zorglub/config.rb b/lib/zorglub/config.rb new file mode 100644 index 0000000..8b5ae37 --- /dev/null +++ b/lib/zorglub/config.rb @@ -0,0 +1,63 @@ +#! /usr/bin/ruby +# +module Zorglub + # + class Config + @options = { + :root => '.', + :engine => 'haml', + :view_dir => 'view', + :layout_dir => 'layout', + :default_layout => 'default' + } + @engines = { + 'haml' => 'haml' + } + class << self + # + def [] k + options[k] + end + # + def []= k, v + option[k]=v + end + # + def view_base_path + if @options.has_key? :view_path + @options[:view_path] + else + File.join @options[:root], @options[:view_dir] + end + end + # + def layout_base_path + if @options.has_key? :layout_path + @options[:layout_path] + else + File.join @options[:root], @options[:layout_dir] + end + end + # + def register_engine name, ext + return unless name and ext + @engines[name]=ext + end + # + def engine_ext engine + @engines[engine] + end + end + # + def self.method_missing m, *args, &block + if m=~/(.*)=$/ + @options[$1.to_sym]=args[0] + else + @options[m.to_sym] + end + end + # + end + # +end +# |