lib/envied.rb in envied-0.9.1 vs lib/envied.rb in envied-0.9.2.rc1

- old
+ new

@@ -10,40 +10,36 @@ class << self attr_reader :env, :config alias_method :required?, :env end - def self.require(*args) - options = args.last.is_a?(Hash) ? args.pop : {} + def self.require(*args, **options) requested_groups = (args && !args.empty?) ? args : ENV['ENVIED_GROUPS'] env!(requested_groups, options) error_on_missing_variables!(options) error_on_uncoercible_variables!(options) ensure_spring_after_fork_require(args, options) end - def self.env!(requested_groups, options = {}) - @env = begin - @config = options.fetch(:config) { Configuration.load } - groups = required_groups(*requested_groups) - EnvProxy.new(@config, groups: groups) - end + def self.env!(requested_groups, **options) + @config = options.fetch(:config) { Configuration.load } + @env = EnvProxy.new(@config, groups: required_groups(*requested_groups)) end - def self.error_on_missing_variables!(options = {}) + def self.error_on_missing_variables!(**options) names = env.missing_variables.map(&:name) if names.any? - msg = "The following environment variables should be set: #{names * ', '}." + msg = "The following environment variables should be set: #{names.join(', ')}." msg << "\nPlease make sure to stop Spring before retrying." if spring_enabled? && !options[:via_spring] raise msg end end - def self.error_on_uncoercible_variables!(options = {}) + def self.error_on_uncoercible_variables!(**options) errors = env.uncoercible_variables.map do |v| - "%{name} ('%{value}' can't be coerced to %{type})" % {name: v.name, value: env.value_to_coerce(v), type: v.type } + format("%{name} with %{value} (%{type})", name: v.name, value: env.value_to_coerce(v).inspect, type: v.type) end if errors.any? msg = "The following environment variables are not coercible: #{errors.join(", ")}." msg << "\nPlease make sure to stop Spring before retrying." if spring_enabled? && !options[:via_spring] raise msg @@ -54,20 +50,21 @@ splitter = ->(group){ group.is_a?(String) ? group.split(/ *, */) : group } result = groups.compact.map(&splitter).flatten result.any? ? result.map(&:to_sym) : [:default] end - def self.ensure_spring_after_fork_require(args, options = {}) + def self.ensure_spring_after_fork_require(args, **options) if spring_enabled? && !options[:via_spring] - Spring.after_fork { ENVied.require(args, options.merge(:via_spring => true)) } + Spring.after_fork { ENVied.require(args, options.merge(via_spring: true)) } end end def self.springify(&block) if defined?(ActiveSupport::Deprecation.warn) && !required? - ActiveSupport::Deprecation.warn(<<-MSG) -It's no longer recommended to `ENVied.require` within ENVied.springify's block. Please re-run `envied init:rails` to upgrade. -MSG + ActiveSupport::Deprecation.warn(<<~MSG) + It's no longer recommended to `ENVied.require` within ENVied.springify's + block. Please re-run `envied init:rails` to upgrade. + MSG end if spring_enabled? Spring.after_fork(&block) else block.call