Sha256: 76089706858d5a9d4ab7c50620b57fbc2cc1dc68e6953b4f3b80a93d268f0893

Contents?: true

Size: 790 Bytes

Versions: 3

Compression:

Stored size: 790 Bytes

Contents

module Ajimi
  class Config

    attr_accessor :config

    def initialize
      @config = {}
    end

    def self.load(path)
      Ajimi::Config.new.tap do |obj|
        obj.load_file(path)
      end.config
    end

    def load_file(path)
      instance_eval(File.read(path), path) if path
    end

    CONFIG_KEYWORDS = %i(
      source
      target
      check_root_path
      pruned_paths
      ignored_paths
      ignored_contents
      pending_paths
      pending_contents
    )

    CONFIG_KEYWORDS.each do |keyword|
      define_method(keyword) do |args|
        @config[keyword] = args
      end
    end

    %i| source target |.each do |server_role|
      define_method server_role do |*args|
        @config[server_role] = Ajimi::Server.new(*args)
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ajimi-0.2.1 lib/ajimi/config.rb
ajimi-0.2.0 lib/ajimi/config.rb
ajimi-0.1.0 lib/ajimi/config.rb