class Confuse::Item
An {Item} is a class for storing a description piece of config.
Attributes
converter[R]
description[R]
required[R]
Public Class Methods
new(key, opts = {})
click to toggle source
# File lib/confuse/item.rb, line 6 def initialize(key, opts = {}) @key = key @default, @description = opts.values_at(:default, :description) @converter = opts[:converter] @type = opts[:type] @required = opts.key?(:required) ? opts[:required] : true end
Public Instance Methods
convert(value)
click to toggle source
# File lib/confuse/item.rb, line 18 def convert(value) converter.call(value) end
default(config)
click to toggle source
# File lib/confuse/item.rb, line 22 def default(config) raise Errors::Undefined.new(@key) if @required && @default.nil? @default.respond_to?(:call) ? @default.call(config) : @default end
to_hash()
click to toggle source
# File lib/confuse/item.rb, line 37 def to_hash { :description => @description, :default => @default } end
to_s()
click to toggle source
# File lib/confuse/item.rb, line 28 def to_s default = if @default && !@default.respond_to?(:call) "default: #{@default}" else '' end "#{@key}:\t#{description} #{default}" end
Private Instance Methods
type()
click to toggle source
# File lib/confuse/item.rb, line 46 def type @type || type_from_default || String end
type_from_default()
click to toggle source
# File lib/confuse/item.rb, line 50 def type_from_default unless @default.nil? case @default when TrueClass, FalseClass :bool when Proc String else @default.class end end end