Sha256: 9b7f908572204071f18e7fd254379cbc23c4ae2eccc898e09c935a7563aa71d9

Contents?: true

Size: 721 Bytes

Versions: 4

Compression:

Stored size: 721 Bytes

Contents

module KingKonf
  module Decoder
    extend self

    def boolean(value, true_values: ["true", "1"], false_values: ["false", "0"])
      if true_values.include?(value)
        true
      elsif false_values.include?(value)
        false
      else
        values = true_values + false_values
        raise ConfigError, "#{value.inspect} is not a boolean: must be one of #{values.join(', ')}"
      end
    end

    def string(value, **)
      value
    end

    def list(value, sep: ",", items: :string)
      value.split(sep).map {|s| public_send(items, s) }
    end

    def integer(value, **)
      Integer(value)
    rescue ArgumentError
      raise ConfigError, "#{value.inspect} is not an integer"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
king_konf-0.1.7 lib/king_konf/decoder.rb
king_konf-0.1.6 lib/king_konf/decoder.rb
king_konf-0.1.5 lib/king_konf/decoder.rb
king_konf-0.1.4 lib/king_konf/decoder.rb