Sha256: d2c8dbcdc36cd50d47eae7a64a994d55c8bb1f939d8500597b7cf9dd4c6e7aea

Contents?: true

Size: 609 Bytes

Versions: 4

Compression:

Stored size: 609 Bytes

Contents

# Aruba
module Aruba
  # In config wrapper
  #
  # Used to make the configuration read only if one needs to access an
  # configuration option from with `Aruba::Config`.
  #
  # @private
  class InConfigWrapper
    attr_reader :config
    private :config

    def initialize(config)
      @config = config.dup
    end

    def method_missing(name, *args)
      if config.key? name
        raise ArgumentError, 'Options take no argument' if args.any?

        config[name]
      else
        super
      end
    end

    def respond_to_missing?(name, _include_private)
      config.key? name
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
aruba-1.0.4 lib/aruba/in_config_wrapper.rb
aruba-1.0.3 lib/aruba/in_config_wrapper.rb
aruba-1.0.2 lib/aruba/in_config_wrapper.rb
aruba-1.0.1 lib/aruba/in_config_wrapper.rb