Sha256: d2cbb75516e49fde3add31009ad61a9cd3c4fbb53479400772a546638d259d7c
Contents?: true
Size: 941 Bytes
Versions: 1
Compression:
Stored size: 941 Bytes
Contents
require "king_konf/decoder" module KingKonf class Variable attr_reader :name, :type, :default, :description, :options def initialize(name:, type:, default: nil, description: "", required: false, options: {}) @name, @type, @default = name, type, default @description = description @required = required @options = options end def required? @required end def valid?(value) case @type when :string then value.is_a?(String) || value.nil? when :list then value.is_a?(Array) when :integer then value.is_a?(Integer) || value.nil? when :boolean then value == true || value == false else raise "invalid type #{@type}" end end def decode(value) Decoder.public_send(@type, value, **options) end %i(boolean integer string list).each do |type| define_method("#{type}?") do @type == type end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
king_konf-0.1.6 | lib/king_konf/variable.rb |