diff options
author | Kyrylo Silin <silin@kyrylo.org> | 2019-06-09 16:38:07 +0300 |
---|---|---|
committer | Kyrylo Silin <silin@kyrylo.org> | 2019-06-09 17:11:24 +0300 |
commit | 7ce5ca70bb4a1ff447269bdde4cb5d07b8932c8a (patch) | |
tree | 0b25a4fa21dd82fedc07413fceab680b7155c528 | |
parent | 17bdfd7082e66c3d2ea0d97b26d122f6e80e0050 (diff) | |
download | pry-7ce5ca70bb4a1ff447269bdde4cb5d07b8932c8a.tar.gz |
Add Pry::Env
Env is a helper module to work with environment variables.
-rw-r--r-- | lib/pry.rb | 1 | ||||
-rw-r--r-- | lib/pry/env.rb | 18 | ||||
-rw-r--r-- | spec/env_spec.rb | 26 |
3 files changed, 45 insertions, 0 deletions
@@ -28,6 +28,7 @@ require 'pry/system_command_handler' require 'pry/control_d_handler' require 'pry/command_state' require 'pry/warning' +require 'pry/env' Pry::Commands = Pry::CommandSet.new unless defined?(Pry::Commands) diff --git a/lib/pry/env.rb b/lib/pry/env.rb new file mode 100644 index 00000000..e7451d7e --- /dev/null +++ b/lib/pry/env.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class Pry + # Env is a helper module to work with environment variables. + # + # @since ?.?.? + # @api private + module Env + def self.[](key) + return unless ENV.key?(key) + + value = ENV[key] + return if value == '' + + value + end + end +end diff --git a/spec/env_spec.rb b/spec/env_spec.rb new file mode 100644 index 00000000..8e42059f --- /dev/null +++ b/spec/env_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +RSpec.describe Pry::Env do + describe "#[]" do + let(:key) { 'PRYTESTKEY' } + + after { ENV.delete(key) } + + context "when ENV contains the passed key" do + before { ENV[key] = 'val' } + after { ENV.delete(key) } + + specify { expect(described_class[key]).to eq('val') } + end + + context "when ENV doesn't contain the passed key" do + specify { expect(described_class[key]).to be_nil } + end + + context "when ENV contains the passed key but its value is nil" do + before { ENV[key] = '' } + + specify { expect(described_class[key]).to be_nil } + end + end +end |