Sha256: ea1b3393ca1111180b8457756551b563194f671b42ce69f681cfca69ac014ead

Contents?: true

Size: 661 Bytes

Versions: 1

Compression:

Stored size: 661 Bytes

Contents

module Confuse
  # A {ConfigItem} is a class for storing a single piece of config. It has a
  # key, a type, a description, and a default value.
  class ConfigItem
    attr_reader :key
    attr_writer :value

    def initialize(name, &block)
      @key = name
      instance_eval(&block)
    end

    def description(description = nil)
      @description = description unless description.nil?
      @description
    end

    def type(type = nil)
      @type = type unless type.nil?
      @type
    end

    def default(default = nil)
      @default = default unless default.nil?
      @default
    end

    def value
      @value || @default
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
confuse-0.0.1 lib/confuse/config_item.rb