Sha256: 1e2c7df864ff10319b257353a9b5887e1e260c0c8b59067eba16033ea6e892ed
Contents?: true
Size: 826 Bytes
Versions: 2
Compression:
Stored size: 826 Bytes
Contents
# frozen_string_literal: true class Cryptoform::Config::Builder PORTS = 1..65_535 Config = Data.define(:port, :states) def initialize(cryptofile) @port = 3000 @states = {} instance_eval(cryptofile) end def port(port) @port = port end def state(name, &) name = name.to_sym raise ArgumentError, "state #{name} already configured" if @states.key?(name) @states[name] = Cryptoform::Config::StateConfigBuilder.new(name, &) end def validate! @states.each_value(&:validate!) raise Cryptoform::ConfigValidationError, "at least one state must be configured" if @states.empty? raise Cryptoform::ConfigValidationError, "port must be an in range 0-65545" unless PORTS.include?(@port) end def config Config.new(@port, @states.transform_values(&:config)) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cryptoform-0.5.1 | lib/cryptoform/config/builder.rb |
cryptoform-0.5.0 | lib/cryptoform/config/builder.rb |