From d1f1f8c0d7d112121c38b744ff37582d07dcdbfd Mon Sep 17 00:00:00 2001 From: Kevin Deisz Date: Tue, 10 May 2016 13:59:41 -0400 Subject: [PATCH] clean up require logic --- lib/humidifier/aws_shim.rb | 25 ++++++++++++++++++------- lib/humidifier/version.rb | 2 +- test/aws_shim_test.rb | 12 ++++-------- test/support/test_helpers.rb | 12 ------------ 4 files changed, 23 insertions(+), 28 deletions(-) diff --git a/lib/humidifier/aws_shim.rb b/lib/humidifier/aws_shim.rb index 30306835..28698c48 100644 --- a/lib/humidifier/aws_shim.rb +++ b/lib/humidifier/aws_shim.rb @@ -21,13 +21,17 @@ class AwsShim attr_accessor :shim def initialize - self.shim = begin - require 'aws-sdk' - nil - rescue LoadError - AwsAdapters::Noop.new - end - self.shim ||= AwsAdapters.const_get(Object.const_defined?(:AWS) ? :SDKV1 : :SDKV2).new + try_require_sdk('aws-sdk-v1') + try_require_sdk('aws-sdk') + + self.shim = + if Object.const_defined?(:AWS) + AwsAdapters::SDKV1.new + elsif Object.const_defined?(:Aws) + AwsAdapters::SDKV2.new + else + AwsAdapters::Noop.new + end end class << self @@ -42,5 +46,12 @@ def shim instance.shim end end + + private + + def try_require_sdk(name) + require name + rescue LoadError # rubocop:disable Lint/HandleExceptions + end end end diff --git a/lib/humidifier/version.rb b/lib/humidifier/version.rb index ca6301e4..4b09a98b 100644 --- a/lib/humidifier/version.rb +++ b/lib/humidifier/version.rb @@ -1,3 +1,3 @@ module Humidifier - VERSION = '0.0.30'.freeze + VERSION = '0.0.31'.freeze end diff --git a/test/aws_shim_test.rb b/test/aws_shim_test.rb index 5d436bf9..4bd256b3 100644 --- a/test/aws_shim_test.rb +++ b/test/aws_shim_test.rb @@ -18,18 +18,14 @@ def test_initialize_noop end def test_initialize_sdk_v1 - with_faked_sdk_require do - with_sdk_v1_loaded do - assert_kind_of Humidifier::AwsAdapters::SDKV1, Humidifier::AwsShim.new.shim - end + with_sdk_v1_loaded do + assert_kind_of Humidifier::AwsAdapters::SDKV1, Humidifier::AwsShim.new.shim end end def test_initialize_sdk_v2 - with_faked_sdk_require do - with_sdk_v2_loaded do - assert_kind_of Humidifier::AwsAdapters::SDKV2, Humidifier::AwsShim.new.shim - end + with_sdk_v2_loaded do + assert_kind_of Humidifier::AwsAdapters::SDKV2, Humidifier::AwsShim.new.shim end end diff --git a/test/support/test_helpers.rb b/test/support/test_helpers.rb index 12eebdb6..94531a2a 100644 --- a/test/support/test_helpers.rb +++ b/test/support/test_helpers.rb @@ -54,18 +54,6 @@ def suppress_warnings $VERBOSE = warn_level end - # sorry - def with_faked_sdk_require - filepath = File.expand_path(File.join('..', '..', 'aws-sdk.rb'), __FILE__) - begin - FileUtils.touch(filepath) - yield - ensure - FileUtils.rm(filepath) - $LOADED_FEATURES.reject! { |feature| feature.match(/aws-sdk/) } - end - end - def with_mocked_serializer(value) mock = Minitest::Mock.new mock.expect(:call, value, [value])