Sha256: 6d566e527bdc517fe972056d63e86c795bcb862c65d463f83b666795a56589da

Contents?: true

Size: 1.16 KB

Versions: 11

Compression:

Stored size: 1.16 KB

Contents

require 'tmpdir'

# Base module.
module Phut
  # Central configuration repository.
  class Setting
    DEFAULTS = {
      root: File.expand_path(File.join(File.dirname(__FILE__), '..', '..')),
      pid_dir: Dir.tmpdir,
      log_dir: Dir.tmpdir,
      socket_dir: Dir.tmpdir
    }

    def initialize
      @options = DEFAULTS.dup
    end

    def root
      @options.fetch :root
    end

    def pid_dir
      @options.fetch :pid_dir
    end

    def pid_dir=(path)
      fail "No such directory: #{path}" unless FileTest.directory?(path)
      @options[:pid_dir] = File.expand_path(path)
    end

    def log_dir
      @options.fetch :log_dir
    end

    def log_dir=(path)
      fail "No such directory: #{path}" unless FileTest.directory?(path)
      @options[:log_dir] = File.expand_path(path)
    end

    def socket_dir
      @options.fetch :socket_dir
    end

    def socket_dir=(path)
      fail "No such directory: #{path}" unless FileTest.directory?(path)
      @options[:socket_dir] = File.expand_path(path)
    end
  end

  SettingSingleton = Setting.new

  class << self
    def method_missing(method, *args)
      SettingSingleton.__send__ method, *args
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
phut-0.7.7 lib/phut/setting.rb
phut-0.7.6 lib/phut/setting.rb
phut-0.7.5 lib/phut/setting.rb
phut-0.7.4 lib/phut/setting.rb
phut-0.7.3 lib/phut/setting.rb
phut-0.7.2 lib/phut/setting.rb
phut-0.7.1 lib/phut/setting.rb
phut-0.7.0 lib/phut/setting.rb
phut-0.6.11 lib/phut/setting.rb
phut-0.6.10 lib/phut/setting.rb
phut-0.6.9 lib/phut/setting.rb