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