Sha256: d6b4852cddc068e139c5f8202bb5e34574200e0e5ad1f2c8b16b253df40f5f6b

Contents?: true

Size: 485 Bytes

Versions: 30

Compression:

Stored size: 485 Bytes

Contents

# frozen_string_literal: true

require 'immutable_struct_ex'
require_relative 'options'
require_relative 'options_validatable'

module DecoLite
  # Defines methods and fields to manage options.
  module Optionable
    include OptionsValidatable

    def options
      @options || Options.default
    end

    private

    def options=(value)
      options_hash = value.to_h

      validate_options! options: options_hash

      @options = Options.new(**options_hash)
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
deco_lite-1.5.14 lib/deco_lite/optionable.rb
deco_lite-1.5.13 lib/deco_lite/optionable.rb
deco_lite-1.5.12 lib/deco_lite/optionable.rb
deco_lite-1.5.11 lib/deco_lite/optionable.rb
deco_lite-1.5.10 lib/deco_lite/optionable.rb
deco_lite-1.5.9 lib/deco_lite/optionable.rb
deco_lite-1.5.8 lib/deco_lite/optionable.rb
deco_lite-1.5.7 lib/deco_lite/optionable.rb
deco_lite-1.5.5 lib/deco_lite/optionable.rb
deco_lite-1.5.4 lib/deco_lite/optionable.rb
deco_lite-1.5.3 lib/deco_lite/optionable.rb
deco_lite-1.5.2 lib/deco_lite/optionable.rb
deco_lite-1.5.1 lib/deco_lite/optionable.rb
deco_lite-1.5.0 lib/deco_lite/optionable.rb
deco_lite-1.4.0 lib/deco_lite/optionable.rb
deco_lite-1.3.0 lib/deco_lite/optionable.rb
deco_lite-1.2.1 lib/deco_lite/optionable.rb
deco_lite-1.2.0 lib/deco_lite/optionable.rb
deco_lite-1.1.0 lib/deco_lite/optionable.rb
deco_lite-1.0.0 lib/deco_lite/optionable.rb