Sha256: 329fb5ac386e3f99f21b774a07fe9d57c1eb88d93fab7ddc0450ef03d8453536
Contents?: true
Size: 850 Bytes
Versions: 2
Compression:
Stored size: 850 Bytes
Contents
# frozen_string_literal: true require 'immutable_struct_ex' require_relative 'options_defaultable' require_relative 'options_validatable' module MadFlatter # Defines methods to create options. module Options extend MadFlatter::OptionsDefaultable extend MadFlatter::OptionsValidatable class << self def new(**options) immutable_struct_ex = ImmutableStructEx.new(**options) do def namespace? namespace || false end def metadata? metadata || false end end validate_options! options: immutable_struct_ex.to_h immutable_struct_ex end def with_defaults(options, defaults: DEFAULT_OPTIONS) new(**defaults.to_h.merge(options.to_h)) end def default with_defaults({}) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mad_flatter-1.0.1.pre.beta | lib/mad_flatter/options.rb |
mad_flatter-1.0.0.pre.beta | lib/mad_flatter/options.rb |