lib/humidifier.rb in humidifier-2.15.0 vs lib/humidifier.rb in humidifier-3.0.0

- old
+ new

@@ -1,43 +1,31 @@ # frozen_string_literal: true require 'date' -require 'forwardable' require 'json' require 'pathname' require 'yaml' -require 'humidifier/utils' -require 'humidifier/fn' -require 'humidifier/ref' -require 'humidifier/props' +require 'aws-sdk-cloudformation' +require 'aws-sdk-s3' +require 'fast_underscore' -require 'humidifier/props/base' +# Hook into the string extension and ensure it works for certain AWS acronyms +String.prepend( + Module.new do + def underscore + FastUnderscore.underscore(gsub(/(ARNs|AZs|VPCs)/) { $1.capitalize }) + end + end +) -prop_types = %w[boolean double integer json list map string structure timestamp] -prop_types.each { |type| require "humidifier/props/#{type}_prop" } - -require 'humidifier/aws_shim' -require 'humidifier/condition' -require 'humidifier/configuration' -require 'humidifier/loader' -require 'humidifier/mapping' -require 'humidifier/output' -require 'humidifier/parameter' -require 'humidifier/resource' -require 'humidifier/sdk_payload' -require 'humidifier/serializer' -require 'humidifier/sleeper' -require 'humidifier/stack' -require 'humidifier/version' - # container module for all gem classes module Humidifier class << self # the configuration instance def config - @config ||= Configuration.new + @config ||= Config.new end # yield the config object to the block for setting user params def configure yield config @@ -60,9 +48,28 @@ # convenience method for finding classes by AWS name def [](aws_name) registry[aws_name] end + + # a frozen hash of the given names mapped to their underscored version + def underscore(names) + names.map { |name| [name, name.underscore.to_sym] }.to_h.freeze + end end end + +require 'humidifier/condition' +require 'humidifier/config' +require 'humidifier/fn' +require 'humidifier/loader' +require 'humidifier/mapping' +require 'humidifier/output' +require 'humidifier/parameter' +require 'humidifier/ref' +require 'humidifier/resource' +require 'humidifier/serializer' +require 'humidifier/stack' +require 'humidifier/version' +require 'humidifier/props' Humidifier::Loader.load