env_ext 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: cf181a7ab8b681f2a72c90c2f2dc411bfa278ada9215ccc771529f39f4d6a5b2
4
+ data.tar.gz: 510e63c45a83b17ac02bbb616e4eda7f81ea4d9263939d5e157637fd5ba4e493
5
+ SHA512:
6
+ metadata.gz: adc29127cb0ee3af12b3baf76d43839612d7a8088a678736546aa1e78187dc2b6100dce065607523c358bdd823215660c70b9f968046035e37dcfa30a0938784
7
+ data.tar.gz: fa51e166f74a0cad5a6d5c23aef3415e17e6196b2744cc5257fa3bbf2da3115dfc17a4ec785f025051b7c17a510321fcd3df3eeca0111549d73c6217833bab0b
@@ -0,0 +1,3 @@
1
+ -
2
+ ChangeLog.md
3
+ LICENSE.txt
File without changes
@@ -0,0 +1,3 @@
1
+ /Gemfile.lock
2
+ /doc/
3
+ /pkg/
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour --format documentation
@@ -0,0 +1 @@
1
+ --markup markdown --title "env Documentation" --protected
@@ -0,0 +1,19 @@
1
+ ### 0.1.0 / 2020-12-27
2
+
3
+ * Initial release:
4
+ * {EnvExt::Methods#paths ENV.paths} -`PATH`
5
+ * {EnvExt::Methods#ld_library_paths ENV.ld_library_paths} - `LD_LIBRARY_PATH`
6
+ * {EnvExt::Methods#host_name ENV.host_name} -`HOMENAME`
7
+ * {EnvExt::Methods#user ENV.user} -`USER` or `LOGNAME`
8
+ * {EnvExt::Methods#home ENV.home}` - `HOME`, `USERPROFILE`, or `HOMEPATH` and `HOMEDRIVE` on Windows.
9
+ * {EnvExt::Methods#lang ENV.lang} - `LANG`
10
+ * {EnvExt::Methods#timezone ENV.timezone} - `TZ`
11
+ * {EnvExt::Methods#shell ENV.shell} - `SHELL`
12
+ * {EnvExt::Methods#shell ENV.shell_name} - `SHELL`
13
+ * {EnvExt::Methods#columns ENV.columns} - `COLOMNS`
14
+ * {EnvExt::Methods#lines ENV.lines} - `LINES`
15
+ * {EnvExt::Methods#terminal ENV.terminal} - `TERM` or `COLORTERM`
16
+ * {EnvExt::Methods#editor ENV.editor} - `EDITOR`
17
+ * {EnvExt::Methods#browser ENV.browser} - `BROWSER`
18
+ * {EnvExt::Methods#debug? ENV.debug?} - `DEBUG`
19
+
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'rake'
7
+ gem 'rubygems-tasks', '~> 0.2'
8
+ gem 'rspec', '~> 3.0'
9
+ gem 'kramdown'
10
+ gem 'yard', '~> 0.9'
11
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011-2020 Hal Brodigan
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,67 @@
1
+ # env_ext
2
+
3
+ * [Homepage](https://github.com/postmodern/env_ext)
4
+ * [Issues](https://github.com/postmodern/env_ext/issues)
5
+ * [Documentation](http://rubydoc.info/gems/env_ext/frames)
6
+ * [Email](mailto:postmodern.mod3 at gmail.com)
7
+
8
+ ## Description
9
+
10
+ env_ext adds additional methods to `ENV` for common environment variables,
11
+ used on Linux, BSD, OSX and Windows.
12
+
13
+ ## Methods
14
+
15
+ * {EnvExt::Methods#paths ENV.paths} -`PATH`
16
+ * {EnvExt::Methods#ld_library_paths ENV.ld_library_paths} - `LD_LIBRARY_PATH`
17
+ * {EnvExt::Methods#host_name ENV.host_name} -`HOMENAME`
18
+ * {EnvExt::Methods#user ENV.user} -`USER` or `LOGNAME`
19
+ * {EnvExt::Methods#home ENV.home}` - `HOME`, `USERPROFILE`, or `HOMEPATH` and `HOMEDRIVE` on Windows.
20
+ * {EnvExt::Methods#lang ENV.lang} - `LANG`
21
+ * {EnvExt::Methods#timezone ENV.timezone} - `TZ`
22
+ * {EnvExt::Methods#shell ENV.shell} - `SHELL`
23
+ * {EnvExt::Methods#shell ENV.shell_name} - `SHELL`
24
+ * {EnvExt::Methods#columns ENV.columns} - `COLOMNS`
25
+ * {EnvExt::Methods#lines ENV.lines} - `LINES`
26
+ * {EnvExt::Methods#terminal ENV.terminal} - `TERM` or `COLORTERM`
27
+ * {EnvExt::Methods#editor ENV.editor} - `EDITOR`
28
+ * {EnvExt::Methods#browser ENV.browser} - `BROWSER`
29
+ * {EnvExt::Methods#debug? ENV.debug?} - `DEBUG`
30
+
31
+ ## Examples
32
+
33
+ require 'env_ext'
34
+
35
+ Parse complex variables:
36
+
37
+ ENV.home
38
+ # => #<Pathname:/home/alice>
39
+
40
+ ENV.paths
41
+ # => [#<Pathname:/usr/local/bin>, #<Pathname:/usr/bin>, #<Pathname:/bin>, #<Pathname:/usr/local/sbin>, #<Pathname:/usr/sbin>, #<Pathname:/sbin>]
42
+
43
+ ENV.lang
44
+ # => ["en_US", "utf8"]
45
+
46
+ ENV.terminal
47
+ # => "gnome-terminal"
48
+
49
+ ENV.shell
50
+ # => "/bin/bash"
51
+
52
+ ENV.editor
53
+ # => "vim"
54
+
55
+ Extend your own `ENV` hash:
56
+
57
+ MyENV.extend EnvExt::Methods
58
+
59
+ ## Install
60
+
61
+ $ gem install env_ext
62
+
63
+ ## Copyright
64
+
65
+ Copyright (c) 2011-2020 Hal Brodigan
66
+
67
+ See {file:LICENSE.txt} for details.
@@ -0,0 +1,10 @@
1
+ require 'rubygems/tasks'
2
+ Gem::Tasks.new
3
+
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new
6
+ task :test => :spec
7
+ task :default => :spec
8
+
9
+ require 'yard'
10
+ YARD::Rake::YardocTask.new
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+
3
+ require 'yaml'
4
+
5
+ Gem::Specification.new do |gem|
6
+ gemspec = YAML.load_file('gemspec.yml')
7
+
8
+ gem.name = gemspec.fetch('name')
9
+ gem.version = gemspec.fetch('version') do
10
+ lib_dir = File.join(File.dirname(__FILE__),'lib')
11
+ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
12
+
13
+ require 'env_ext/version'
14
+ EnvExt::VERSION
15
+ end
16
+
17
+ gem.summary = gemspec['summary']
18
+ gem.description = gemspec['description']
19
+ gem.licenses = Array(gemspec['license'])
20
+ gem.authors = Array(gemspec['authors'])
21
+ gem.email = gemspec['email']
22
+ gem.homepage = gemspec['homepage']
23
+ gem.metadata = gemspec['metadata'] if gemspec['metadata']
24
+
25
+ glob = lambda { |patterns| gem.files & Dir[*patterns] }
26
+
27
+ gem.files = `git ls-files`.split($/)
28
+ gem.files = glob[gemspec['files']] if gemspec['files']
29
+
30
+ gem.executables = gemspec.fetch('executables') do
31
+ glob['bin/*'].map { |path| File.basename(path) }
32
+ end
33
+ gem.default_executable = gem.executables.first if Gem::VERSION < '1.7.'
34
+
35
+ gem.extensions = glob[gemspec['extensions'] || 'ext/**/extconf.rb']
36
+ gem.test_files = glob[gemspec['test_files'] || '{test/{**/}*_test.rb']
37
+ gem.extra_rdoc_files = glob[gemspec['extra_doc_files'] || '*.{txt,md}']
38
+
39
+ gem.require_paths = Array(gemspec.fetch('require_paths') {
40
+ %w[ext lib].select { |dir| File.directory?(dir) }
41
+ })
42
+
43
+ gem.requirements = gemspec['requirements']
44
+ gem.required_ruby_version = gemspec['required_ruby_version']
45
+ gem.required_rubygems_version = gemspec['required_rubygems_version']
46
+ gem.post_install_message = gemspec['post_install_message']
47
+
48
+ split = lambda { |string| string.split(/,\s*/) }
49
+
50
+ if gemspec['dependencies']
51
+ gemspec['dependencies'].each do |name,versions|
52
+ gem.add_dependency(name,split[versions])
53
+ end
54
+ end
55
+
56
+ if gemspec['development_dependencies']
57
+ gemspec['development_dependencies'].each do |name,versions|
58
+ gem.add_development_dependency(name,split[versions])
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,21 @@
1
+ name: env_ext
2
+ summary: Adds additional methods to ENV
3
+ description:
4
+ env_ext adds additional methods to ENV for common environment variables,
5
+ used on Linux, BSD, OSX and Windows.
6
+
7
+ license: MIT
8
+ authors: Postmodern
9
+ email: postmodern.mod3@gmail.com
10
+ homepage: https://github.com/postmodern/env_ext#readme
11
+
12
+ metadata:
13
+ documentation_uri: https://rubydoc.info/gems/env_ext
14
+ source_code_uri: https://github.com/postmodern/env_ext
15
+ bug_tracker_uri: https://github.com/postmodern/env_ext/issues
16
+ changelog_uri: https://github.com/postmodern/env_ext/blob/master/ChangeLog.md
17
+
18
+ has_yard: true
19
+
20
+ development_dependencies:
21
+ bundler: ~> 2.0
@@ -0,0 +1,2 @@
1
+ require 'env_ext/core_ext'
2
+ require 'env_ext/version'
@@ -0,0 +1,3 @@
1
+ require 'env_ext/methods'
2
+
3
+ ENV.send(:extend, EnvExt::Methods)
@@ -0,0 +1,198 @@
1
+ require 'pathname'
2
+
3
+ module EnvExt
4
+ module Methods
5
+ #
6
+ # The directories to search within for executables.
7
+ #
8
+ # @return [Array<Pathname>]
9
+ # The paths of the directories.
10
+ #
11
+ def paths
12
+ parse_paths(self['PATH'])
13
+ end
14
+
15
+ #
16
+ # The directories to search within for libraries.
17
+ #
18
+ # @return [Array<Pathname>]
19
+ # The paths of the directories.
20
+ #
21
+ def ld_library_paths
22
+ parse_paths(self['LD_LIBRARY_PATH'])
23
+ end
24
+
25
+ #
26
+ # The host-name of the system.
27
+ #
28
+ # @return [String]
29
+ # The host-name.
30
+ #
31
+ def host_name
32
+ self['HOSTNAME']
33
+ end
34
+
35
+ #
36
+ # The name of the current user.
37
+ #
38
+ # @return [String]
39
+ # The name of the user.
40
+ #
41
+ def user
42
+ # USER is used on GNU/Linux and Windows
43
+ # LOGNAME is the POSIX user-name ENV variable
44
+ self['USER'] || self['LOGNAME']
45
+ end
46
+
47
+ #
48
+ # The home directory.
49
+ #
50
+ # @return [Pathname]
51
+ # The path of the home directory.
52
+ #
53
+ def home
54
+ # logic adapted from Gem.find_home.
55
+ path = if (self['HOME'] || self['USERPROFILE'])
56
+ self['HOME'] || self['USERPROFILE']
57
+ elsif (self['HOMEDRIVE'] && self['HOMEPATH'])
58
+ "#{self['HOMEDRIVE']}#{self['HOMEPATH']}"
59
+ else
60
+ begin
61
+ File.expand_path('~')
62
+ rescue
63
+ if File::ALT_SEPARATOR
64
+ 'C:/'
65
+ else
66
+ '/'
67
+ end
68
+ end
69
+ end
70
+
71
+ return Pathname.new(path)
72
+ end
73
+
74
+ #
75
+ # The default language.
76
+ #
77
+ # @return [Array<String, String>]
78
+ # The language name and encoding.
79
+ #
80
+ def lang
81
+ if (lang = self['LANG'])
82
+ lang.split('.',2)
83
+ else
84
+ []
85
+ end
86
+ end
87
+
88
+ #
89
+ # The default timezone.
90
+ #
91
+ # @return [String, nil]
92
+ # The timezone name.
93
+ #
94
+ def timezone
95
+ self['TZ']
96
+ end
97
+
98
+ #
99
+ # The number of columns in the terminal.
100
+ #
101
+ # @return [Integer]
102
+ # The number of columns.
103
+ #
104
+ def columns
105
+ self['COLUMNS'].to_i if self['COLUMNS']
106
+ end
107
+
108
+ #
109
+ # The number of lines in the terminal.
110
+ #
111
+ # @return [Integer]
112
+ # The number of lines.
113
+ #
114
+ def lines
115
+ self['LINES'].to_i if self['LINES']
116
+ end
117
+
118
+ #
119
+ # The path of the default shell.
120
+ #
121
+ # @return [String, nil]
122
+ # The path to the default shell.
123
+ #
124
+ def shell
125
+ self['SHELL']
126
+ end
127
+
128
+ #
129
+ # The name of the default shell.
130
+ #
131
+ # @return [String, nil]
132
+ # The program name of the shell.
133
+ #
134
+ def shell_name
135
+ File.basename(shell) if shell
136
+ end
137
+
138
+ #
139
+ # The default terminal to use.
140
+ #
141
+ # @return [String, nil]
142
+ # The name of the terminal program.
143
+ #
144
+ def term
145
+ self['COLORTERM'] || self['TERM']
146
+ end
147
+
148
+ alias terminal term
149
+
150
+ #
151
+ # The default editor to use.
152
+ #
153
+ # @return [String, nil]
154
+ # The name of the editor program.
155
+ #
156
+ def editor
157
+ self['EDITOR']
158
+ end
159
+
160
+ #
161
+ # The default browser to use.
162
+ #
163
+ # @return [String, nil]
164
+ # The name of the browser program.
165
+ #
166
+ def browser
167
+ self['BROWSER']
168
+ end
169
+
170
+ #
171
+ # Determines whether optional Debugging was enabled.
172
+ #
173
+ # @return [Boolean]
174
+ # Specifies whether the `DEBUG` variable was specified.
175
+ #
176
+ def debug?
177
+ true if self['DEBUG']
178
+ end
179
+
180
+ protected
181
+
182
+ #
183
+ # Parses a String containing multiple paths.
184
+ #
185
+ # @return [Array<Pathname>]
186
+ # The multiple paths.
187
+ #
188
+ def parse_paths(paths)
189
+ if paths
190
+ paths.split(File::PATH_SEPARATOR).map do |path|
191
+ Pathname.new(path)
192
+ end
193
+ else
194
+ []
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,4 @@
1
+ module EnvExt
2
+ # env_ext version
3
+ VERSION = "0.1.0"
4
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'env_ext/core_ext'
3
+
4
+ describe "core_ext" do
5
+ describe "ENV" do
6
+ subject { ENV }
7
+
8
+ it { expect(subject).to be_kind_of(EnvExt::Methods) }
9
+ end
10
+ end
@@ -0,0 +1,149 @@
1
+ require 'spec_helper'
2
+ require 'env_ext/methods'
3
+
4
+ describe EnvExt::Methods do
5
+ subject { Object.new.extend(Methods) }
6
+
7
+ let(:home) { '/home/alice' }
8
+ let(:term) { 'xterm' }
9
+ let(:shell) { '/bin/bash' }
10
+
11
+ let(:env) do
12
+ {
13
+ 'PATH' => '/usr/local/bin:/usr/bin:/bin',
14
+ 'HOME' => home,
15
+ 'TERM' => term,
16
+ 'LANG' => 'en_US.UTF8',
17
+ 'COLUMNS' => '80',
18
+ 'LINES' => '10',
19
+ 'SHELL' => '/bin/bash',
20
+ 'DEBUG' => '1'
21
+ }
22
+ end
23
+
24
+ subject do
25
+ env.tap { |hash| hash.extend described_class }
26
+ end
27
+
28
+ describe "#path" do
29
+ it "should parse the contents of the PATH variable" do
30
+ expect(subject.paths).to eq([
31
+ Pathname.new('/usr/local/bin'),
32
+ Pathname.new('/usr/bin'),
33
+ Pathname.new('/bin')
34
+ ])
35
+ end
36
+ end
37
+
38
+ describe "#home" do
39
+ it "should provide access to the HOME variable" do
40
+ expect(subject.home).to eq(Pathname.new(home))
41
+ end
42
+
43
+ context "whne USERPROFILE is set, but HOME is not set" do
44
+ let(:env) do
45
+ {
46
+ 'USERPROFILE' => home
47
+ }
48
+ end
49
+
50
+ it "should use the USERPROFILE variable if HOME is not set" do
51
+ expect(subject.home).to be == Pathname.new(home)
52
+ end
53
+ end
54
+
55
+ context "when HOMEDRIVE and HOMEPATH are set, but HOME is not" do
56
+ let(:drive) { 'C:' }
57
+ let(:env) do
58
+ {
59
+ 'HOMEDRIVE' => drive,
60
+ 'HOMEPATH' => home
61
+ }
62
+ end
63
+
64
+ it "should use HOMEDRIVE and HOMEPATH if HOME is not set" do
65
+ expect(subject.home).to be == Pathname.new(drive + home)
66
+ end
67
+ end
68
+
69
+ context "when HOME isn't set" do
70
+ let(:env) { {} }
71
+
72
+ it "should attempt to expand '~' if none of the HOME variables are set" do
73
+ expect(subject.home).to be_directory
74
+ end
75
+ end
76
+ end
77
+
78
+ describe "#lang" do
79
+ it "should parse the LANG variable" do
80
+ name, encoding = subject.lang
81
+
82
+ expect(name).to eq('en_US')
83
+ expect(encoding).to eq('UTF8')
84
+ end
85
+
86
+ context "when LANG is not set" do
87
+ let(:env) { {} }
88
+
89
+ it "should return an empty Array if LANG is not set" do
90
+ expect(subject.lang).to be_empty
91
+ end
92
+ end
93
+ end
94
+
95
+ describe "#columns" do
96
+ it "should parse the COLUMNS variable" do
97
+ expect(subject.columns).to eq(80)
98
+ end
99
+ end
100
+
101
+ describe "#lines" do
102
+ it "should parse the LINES variable" do
103
+ expect(subject.lines).to eq(10)
104
+ end
105
+ end
106
+
107
+ describe "#shell" do
108
+ it "should provide access to the SHELL variable" do
109
+ expect(subject.shell).to eq(shell)
110
+ end
111
+ end
112
+
113
+ describe "#shell_name" do
114
+ it "should determine the program name of the current Shell" do
115
+ expect(subject.shell_name).to eq('bash')
116
+ end
117
+ end
118
+
119
+ describe "#term" do
120
+ it "should determine the current TERM" do
121
+ expect(subject.term).to eq(term)
122
+ end
123
+
124
+ context "when COLORTERM and TERM are set" do
125
+ let(:env) do
126
+ {
127
+ 'COLORTERM' => 'gnome-terminal',
128
+ 'TERM' => term
129
+ }
130
+ end
131
+
132
+ it "should check COLORTERM before the TERM variable" do
133
+ expect(subject.term).to eq('gnome-terminal')
134
+ end
135
+ end
136
+ end
137
+
138
+ describe "#terminal" do
139
+ it "should be an alias to #term" do
140
+ expect(subject.terminal).to be == subject.term
141
+ end
142
+ end
143
+
144
+ describe "#debug" do
145
+ it "should check if DEBUG was set" do
146
+ expect(subject).to be_debug
147
+ end
148
+ end
149
+ end
@@ -0,0 +1 @@
1
+ require 'rspec'
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: env_ext
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Postmodern
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-12-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ description: env_ext adds additional methods to ENV for common environment variables,
28
+ used on Linux, BSD, OSX and Windows.
29
+ email: postmodern.mod3@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files:
33
+ - ChangeLog.md
34
+ - LICENSE.txt
35
+ - README.md
36
+ files:
37
+ - ".document"
38
+ - ".gemtest"
39
+ - ".gitignore"
40
+ - ".rspec"
41
+ - ".yardopts"
42
+ - ChangeLog.md
43
+ - Gemfile
44
+ - LICENSE.txt
45
+ - README.md
46
+ - Rakefile
47
+ - env_ext.gemspec
48
+ - gemspec.yml
49
+ - lib/env_ext.rb
50
+ - lib/env_ext/core_ext.rb
51
+ - lib/env_ext/methods.rb
52
+ - lib/env_ext/version.rb
53
+ - spec/core_ext_spec.rb
54
+ - spec/methods_spec.rb
55
+ - spec/spec_helper.rb
56
+ homepage: https://github.com/postmodern/env_ext#readme
57
+ licenses:
58
+ - MIT
59
+ metadata:
60
+ documentation_uri: https://rubydoc.info/gems/env_ext
61
+ source_code_uri: https://github.com/postmodern/env_ext
62
+ bug_tracker_uri: https://github.com/postmodern/env_ext/issues
63
+ changelog_uri: https://github.com/postmodern/env_ext/blob/master/ChangeLog.md
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubygems_version: 3.2.3
80
+ signing_key:
81
+ specification_version: 4
82
+ summary: Adds additional methods to ENV
83
+ test_files: []