class Diary::Configuration

Read only app configuration

Attributes

current_diary[RW]
verbose[RW]

Public Class Methods

config() click to toggle source

default to current_diary

# File lib/diary-ruby/configuration.rb, line 54
def config
  @config ||= load_config_for_diary(current_diary)
end
config_dir(dir = Pathname.new(".")) click to toggle source

Find config directory starting at current dir and then moving up the tree

# File lib/diary-ruby/configuration.rb, line 18
def config_dir(dir = Pathname.new("."))
  app_config_dir = dir + DIARY_DIR

  if dir.children.include?(app_config_dir)
    app_config_dir.expand_path
  else
    return nil if dir.expand_path.root?

    # go up the stack
    config_dir(dir.parent)
  end
end
exists?() click to toggle source
# File lib/diary-ruby/configuration.rb, line 35
def exists?
  !config_dir.nil?
end
global_settings() click to toggle source
# File lib/diary-ruby/configuration.rb, line 44
def global_settings
  @global_settings || {}
end
has_diary_config?(diary_identifier) click to toggle source
# File lib/diary-ruby/configuration.rb, line 39
def has_diary_config?(diary_identifier)
  load_global_settings
  global_settings.has_key?(diary_identifier)
end
load_config(diary_identifier) click to toggle source

load a specific diary

# File lib/diary-ruby/configuration.rb, line 49
def load_config(diary_identifier)
  @config = load_config_for_diary(diary_identifier)
end
method_missing(method) click to toggle source
# File lib/diary-ruby/configuration.rb, line 31
def method_missing(method)
  config[method.to_s]
end

Private Class Methods

load_config_for_diary(diary_identifier) click to toggle source
# File lib/diary-ruby/configuration.rb, line 60
def load_config_for_diary(diary_identifier)
  if !exists?
    # no config file exists, build empty configuration options starting now
    {}
  else
    load_global_settings
    if global_settings.has_key?(diary_identifier)
      global_settings[diary_identifier]
    else
      # configuration for this diary doesn't exist, build empty
      # configuration options starting now
      {}
    end
  end
end
load_global_settings() click to toggle source
# File lib/diary-ruby/configuration.rb, line 76
def load_global_settings
  @global_settings ||= begin
                         if exists?
                           cf = File.join(config_dir, 'config.yaml')
                           YAML.load(File.open(cf))
                         else
                           {}
                         end
                       end
end