Sha256: 48a8724573941a3e8d70ab4e913f91347283749da856c64d413db48c6bbf116f

Contents?: true

Size: 1.61 KB

Versions: 23

Compression:

Stored size: 1.61 KB

Contents

module Specinfra
  module Configuration
    class << self
      VALID_OPTIONS_KEYS = [
        :backend,
        :env,
        :path,
        :shell,
        :interactive_shell,
        :login_shell,
        :pre_command,
        :stdout,
        :stderr,
        :exit_status,
        :sudo_path,
        :disable_sudo,
        :sudo_options,
        :docker_container_create_options,
        :docker_container_exec_options,
        :docker_image,
        :docker_url,
        :lxc,
        :request_pty,
        :ssh_options,
        :ssh_without_env,
        :dockerfile_finalizer,
        :telnet_options,
        :jail_name,
      ].freeze

      def defaults
        VALID_OPTIONS_KEYS.inject({}) { |o, k| o.merge!(k => send(k)) }
      end

      # Define os method explicitly to avoid stack level
      # too deep caused by Helper::DetectOS#os
      def os(value=nil)
        @os = value if value
        if @os.nil? && defined?(RSpec) && RSpec.configuration.respond_to?(:os)
          @os = RSpec.configuration.os
        end
        @os
      end

      def method_missing(meth, val=nil)
        key = meth.to_s
        key.gsub!(/=$/, '')
        ret = nil
        begin
          if ! val.nil?
            instance_variable_set("@#{key}", val)
            RSpec.configuration.send(:"#{key}=", val) if defined?(RSpec)
          end
          ret = instance_variable_get("@#{key}")
        rescue NameError
          ret = nil
        ensure
          if ret.nil? && defined?(RSpec) && RSpec.configuration.respond_to?(key)
            ret = RSpec.configuration.send(key)
          end
        end
        ret
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
specinfra-2.76.5 lib/specinfra/configuration.rb
specinfra-2.76.4 lib/specinfra/configuration.rb
specinfra-2.76.3 lib/specinfra/configuration.rb
specinfra-2.76.2 lib/specinfra/configuration.rb
specinfra-2.76.1 lib/specinfra/configuration.rb
specinfra-2.76.0 lib/specinfra/configuration.rb
specinfra-2.75.1 lib/specinfra/configuration.rb
specinfra-2.75.0 lib/specinfra/configuration.rb
specinfra-2.74.0 lib/specinfra/configuration.rb
specinfra-2.73.4 lib/specinfra/configuration.rb
specinfra-2.73.3 lib/specinfra/configuration.rb
specinfra-2.73.2 lib/specinfra/configuration.rb
specinfra-2.73.1 lib/specinfra/configuration.rb
specinfra-2.73.0 lib/specinfra/configuration.rb
specinfra-2.72.1 lib/specinfra/configuration.rb
specinfra-2.72.0 lib/specinfra/configuration.rb
specinfra-2.71.3 lib/specinfra/configuration.rb
specinfra-2.71.2 lib/specinfra/configuration.rb
specinfra-2.71.1 lib/specinfra/configuration.rb
specinfra-2.71.0 lib/specinfra/configuration.rb