Sha256: 6803e6a33c3d094f0739d9ce2fcd94aeea7083575ef64c995011884dc990fa7b

Contents?: true

Size: 707 Bytes

Versions: 2

Compression:

Stored size: 707 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(value = nil, &block)
      @default_value = value unless value.nil?
      @default_value = block unless block.nil?
    end

    def value
      @value || @default_value
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
confuse-0.1.1 lib/confuse/config_item.rb
confuse-0.1.0 lib/confuse/config_item.rb