lib/eac_ruby_utils/rspec/stubbed_ssh.rb
# frozen_string_literal: true require 'active_support/core_ext/object/blank' require 'eac_ruby_utils/envs/ssh_env' require 'eac_ruby_utils/patches/object/if_present' module EacRubyUtils module Rspec class StubbedSsh DEFAULT_ENVVAR_NAME = 'STUBBED_SSH_URL' class << self def default @default ||= new(DEFAULT_ENVVAR_NAME) end end attr_reader :envvar_name def initialize(envvar_name) @envvar_name = envvar_name end def validate return nil if provided_url.present? "Environment variable \"#{envvar_name}\" unprovided or blank" end def validate! validate.if_present { |v| raise v } end def provided_url ENV[envvar_name] end def build_env validate! ::EacRubyUtils::Envs::SshEnv.new(provided_url) end end end end