Skip to content

Commit 0b347fe

Browse files
committed
Ensure variable passthrough works end-to-end
1 parent cbb12bb commit 0b347fe

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/nvar.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
require "nvar/engine" if defined?(Rails)
66
require "active_support/core_ext/module/attribute_accessors"
77
require "active_support/core_ext/hash/reverse_merge"
8+
require "active_support/string_inquirer"
89

910
# Centralized configuration for required environment variables in your Ruby app.
1011
module Nvar
1112
mattr_accessor :config_file_path, default: File.expand_path("config/environment_variables.yml")
1213
mattr_accessor :env_file_path, default: File.expand_path(".env")
14+
mattr_accessor :env, default: :development
1315

1416
# Comments in .env files must have a leading '#' symbol. This cannot be
1517
# followed by a space.
@@ -39,6 +41,10 @@ def message
3941
end
4042

4143
class << self
44+
def env
45+
ActiveSupport::StringInquirer.new(@@env.to_s)
46+
end
47+
4248
def configure_for_rails(app)
4349
self.config_file_path = app.root.join("config/environment_variables.yml")
4450
self.env_file_path = app.root.join(".env")

lib/nvar/environment_variable.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def initialize(name:, type: "String", filter_from_requests: nil, **args)
1616
@type = type
1717
@required = args[:required].nil? ? true : args[:required]
1818
@filter_from_requests = filter_from_requests.yield_self { |f| [true, false].include?(f) ? f : f&.to_sym }
19-
@value = fetch_value(**args.slice(:passthrough, :default_value).with_defaults(passthrough: ENV.fetch("NVAR_PASSTHROUGH", "").split(",").include?(name)))
19+
@value = fetch_value(**args.slice(:passthrough, :default_value).with_defaults(passthrough: ENV.fetch("NVAR_PASSTHROUGH", "").split(",").include?(name.to_s)))
2020
@defined = true
2121
rescue KeyError
2222
@value = args[:default_value]
@@ -76,7 +76,7 @@ def typecast_value
7676
end
7777

7878
def fetch_value(passthrough: false, default_value: nil)
79-
return default_value || name if ENV["RAILS_ENV"] == "test" && !passthrough
79+
return default_value || name.to_s.force_encoding("UTF-8") if Nvar.env.test? && !passthrough
8080

8181
required ? ENV.fetch(name.to_s) : ENV[name.to_s]
8282
end

0 commit comments

Comments
 (0)