env 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.
- data/.document +3 -0
- data/.rspec +1 -0
- data/.yardopts +1 -0
- data/ChangeLog.md +17 -0
- data/LICENSE.txt +20 -0
- data/README.md +82 -0
- data/Rakefile +35 -0
- data/env.gemspec +15 -0
- data/gemspec.yml +16 -0
- data/lib/env.rb +2 -0
- data/lib/env/env.rb +91 -0
- data/lib/env/variables.rb +145 -0
- data/lib/env/version.rb +4 -0
- data/spec/env_spec.rb +37 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/variables_spec.rb +76 -0
- metadata +126 -0
data/.document
ADDED
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--colour --format documentation
|
data/.yardopts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--markup markdown --title "env Documentation" --protected
|
data/ChangeLog.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
### 0.1.0 / 2011-01-22
|
|
2
|
+
|
|
3
|
+
* Initial release:
|
|
4
|
+
* Provides access to:
|
|
5
|
+
* `HOME` (or `HOMEPATH` on Windows)
|
|
6
|
+
* `PATH`
|
|
7
|
+
* `LD_LIBRARY_PATH`
|
|
8
|
+
* `SHELL`
|
|
9
|
+
* `TERM` and `COLORTERM`
|
|
10
|
+
* `COLOMNS`
|
|
11
|
+
* `LINES`
|
|
12
|
+
* `EDITOR`
|
|
13
|
+
* `BROWSER`
|
|
14
|
+
* `LANG`
|
|
15
|
+
* Added {Env}.
|
|
16
|
+
* Added {Env::Variables}.
|
|
17
|
+
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2011 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.
|
data/README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Env
|
|
2
|
+
|
|
3
|
+
* [Homepage](http://github.com/postmodern/env)
|
|
4
|
+
* [Issues](http://github.com/postmodern/env/issues)
|
|
5
|
+
* [Documentation](http://rubydoc.info/gems/env)
|
|
6
|
+
* Postmodern (postmodern.mod3 at gmail.com)
|
|
7
|
+
|
|
8
|
+
## Description
|
|
9
|
+
|
|
10
|
+
{Env} provides a Ruby interface to common environment variables, used on
|
|
11
|
+
Linux, BSD, OSX and Windows.
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
* Provides access to:
|
|
16
|
+
* `HOME` (or `HOMEPATH` on Windows)
|
|
17
|
+
* `PATH`
|
|
18
|
+
* `LD_LIBRARY_PATH`
|
|
19
|
+
* `SHELL`
|
|
20
|
+
* `TERM` and `COLORTERM`
|
|
21
|
+
* `COLOMNS`
|
|
22
|
+
* `LINES`
|
|
23
|
+
* `EDITOR`
|
|
24
|
+
* `BROWSER`
|
|
25
|
+
* `LANG`
|
|
26
|
+
|
|
27
|
+
## Examples
|
|
28
|
+
|
|
29
|
+
require 'env'
|
|
30
|
+
|
|
31
|
+
Transparently access environment variables as a Hash:
|
|
32
|
+
|
|
33
|
+
Env['DESKTOP_SESSION']
|
|
34
|
+
# => "gnome"
|
|
35
|
+
|
|
36
|
+
Transparently access environment variables as Constants:
|
|
37
|
+
|
|
38
|
+
Env::DESKTOP_SESSION
|
|
39
|
+
# => "gnome"
|
|
40
|
+
|
|
41
|
+
Transparently access environment variables with methods:
|
|
42
|
+
|
|
43
|
+
Env.desktop_session
|
|
44
|
+
# => "gnome"
|
|
45
|
+
|
|
46
|
+
Parse complex variables:
|
|
47
|
+
|
|
48
|
+
Env.home
|
|
49
|
+
# => #<Pathname:/home/alice>
|
|
50
|
+
|
|
51
|
+
Env.paths
|
|
52
|
+
# => [#<Pathname:/usr/local/bin>, #<Pathname:/usr/bin>, #<Pathname:/bin>, #<Pathname:/usr/local/sbin>, #<Pathname:/usr/sbin>, #<Pathname:/sbin>]
|
|
53
|
+
|
|
54
|
+
Env.lang
|
|
55
|
+
# => ["en_US", "utf8"]
|
|
56
|
+
|
|
57
|
+
Env.terminal
|
|
58
|
+
# => "gnome-terminal"
|
|
59
|
+
|
|
60
|
+
Env.shell
|
|
61
|
+
# => "/bin/bash"
|
|
62
|
+
|
|
63
|
+
Env.editor
|
|
64
|
+
# => "vim"
|
|
65
|
+
|
|
66
|
+
Only access the common variables from your Class:
|
|
67
|
+
|
|
68
|
+
class Project
|
|
69
|
+
|
|
70
|
+
include Env::Variables
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
## Install
|
|
75
|
+
|
|
76
|
+
$ gem install env
|
|
77
|
+
|
|
78
|
+
## Copyright
|
|
79
|
+
|
|
80
|
+
Copyright (c) 2011 Hal Brodigan
|
|
81
|
+
|
|
82
|
+
See {file:LICENSE.txt} for details.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake'
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
gem 'ore-tasks', '~> 0.3.0'
|
|
6
|
+
require 'ore/tasks'
|
|
7
|
+
|
|
8
|
+
Ore::Tasks.new
|
|
9
|
+
rescue LoadError => e
|
|
10
|
+
STDERR.puts e.message
|
|
11
|
+
STDERR.puts "Run `gem install ore-tasks` to install 'ore/tasks'."
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
begin
|
|
15
|
+
gem 'rspec', '~> 2.4.0'
|
|
16
|
+
require 'rspec/core/rake_task'
|
|
17
|
+
|
|
18
|
+
RSpec::Core::RakeTask.new
|
|
19
|
+
rescue LoadError => e
|
|
20
|
+
task :spec do
|
|
21
|
+
abort "Please run `gem install rspec` to install RSpec."
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
task :default => :spec
|
|
25
|
+
|
|
26
|
+
begin
|
|
27
|
+
gem 'yard', '~> 0.6.0'
|
|
28
|
+
require 'yard'
|
|
29
|
+
|
|
30
|
+
YARD::Rake::YardocTask.new
|
|
31
|
+
rescue LoadError => e
|
|
32
|
+
task :yard do
|
|
33
|
+
abort "Please run `gem install yard` to install YARD."
|
|
34
|
+
end
|
|
35
|
+
end
|
data/env.gemspec
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
Ore::Specification.new do |gemspec|
|
|
5
|
+
# custom logic here
|
|
6
|
+
end
|
|
7
|
+
rescue NameError
|
|
8
|
+
begin
|
|
9
|
+
require 'ore/specification'
|
|
10
|
+
retry
|
|
11
|
+
rescue LoadError
|
|
12
|
+
STDERR.puts "The 'env.gemspec' file requires Ore."
|
|
13
|
+
STDERR.puts "Run `gem install ore-core` to install Ore."
|
|
14
|
+
end
|
|
15
|
+
end
|
data/gemspec.yml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: env
|
|
2
|
+
summary: Provides a Ruby interface to common environment variables
|
|
3
|
+
description:
|
|
4
|
+
Provides a Ruby interface to common environment variables, used on
|
|
5
|
+
Windows, Linux, BSD and OSX.
|
|
6
|
+
|
|
7
|
+
license: MIT
|
|
8
|
+
authors: Postmodern
|
|
9
|
+
email: postmodern.mod3@gmail.com
|
|
10
|
+
homepage: http://github.com/postmodern/env
|
|
11
|
+
has_yard: true
|
|
12
|
+
|
|
13
|
+
development_dependencies:
|
|
14
|
+
ore-tasks: ~> 0.3.0
|
|
15
|
+
rspec: ~> 2.4.0
|
|
16
|
+
yard: ~> 0.6.0
|
data/lib/env.rb
ADDED
data/lib/env/env.rb
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
require 'env/variables'
|
|
2
|
+
|
|
3
|
+
module Env
|
|
4
|
+
extend Variables
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# Provides direct access to the environment variables.
|
|
8
|
+
#
|
|
9
|
+
# @param [String, Symbol] name
|
|
10
|
+
# The name of the environment variable.
|
|
11
|
+
#
|
|
12
|
+
# @return [String, nil]
|
|
13
|
+
# The value of the environment variable.
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# Env['SHELL']
|
|
17
|
+
# # => "/bin/bash"
|
|
18
|
+
#
|
|
19
|
+
def Env.[](name)
|
|
20
|
+
env_hash[name.to_s]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#
|
|
24
|
+
# Sets an environment variable.
|
|
25
|
+
#
|
|
26
|
+
# @param [String, Symbol] name
|
|
27
|
+
# The name of the environment variable.
|
|
28
|
+
#
|
|
29
|
+
# @param [Object] value
|
|
30
|
+
# The value of the environment variable.
|
|
31
|
+
#
|
|
32
|
+
# @return [String]
|
|
33
|
+
# The String value of the environment variable.
|
|
34
|
+
#
|
|
35
|
+
def Env.[]=(name,value)
|
|
36
|
+
env_hash[name.to_s] = value.to_s
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
protected
|
|
40
|
+
|
|
41
|
+
#
|
|
42
|
+
# Provides transparent access to the environment variables.
|
|
43
|
+
#
|
|
44
|
+
# @param [Symbol] name
|
|
45
|
+
# The name of the environment variable.
|
|
46
|
+
#
|
|
47
|
+
# @return [String, nil]
|
|
48
|
+
# The value of the environment variable.
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Env::SHELL
|
|
52
|
+
# # => "/bin/bash"
|
|
53
|
+
#
|
|
54
|
+
def Env.const_missing(name)
|
|
55
|
+
Env[name.to_s]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
#
|
|
59
|
+
# Provides transparent access to the environment variables.
|
|
60
|
+
#
|
|
61
|
+
# @param [Symbol] name
|
|
62
|
+
# The name of the environment variable.
|
|
63
|
+
#
|
|
64
|
+
# @return [String, nil]
|
|
65
|
+
# The value of the environment variable.
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# Env.shell
|
|
69
|
+
# # => "/bin/bash"
|
|
70
|
+
#
|
|
71
|
+
# @example
|
|
72
|
+
# Env.shell = '/bin/zsh'
|
|
73
|
+
# # => "/bin/zsh"
|
|
74
|
+
#
|
|
75
|
+
def Env.method_missing(name,*arguments,&block)
|
|
76
|
+
name = name.to_s
|
|
77
|
+
|
|
78
|
+
if (arguments.length == 1 && name[-1..-1] == '=')
|
|
79
|
+
name.chop!
|
|
80
|
+
name.upcase!
|
|
81
|
+
|
|
82
|
+
return Env[name] = arguments.first
|
|
83
|
+
elsif arguments.empty?
|
|
84
|
+
name.upcase!
|
|
85
|
+
|
|
86
|
+
return Env[name]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
super(name,*arguments,&block)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
require 'pathname'
|
|
2
|
+
|
|
3
|
+
module Env
|
|
4
|
+
module Variables
|
|
5
|
+
#
|
|
6
|
+
# The environment variables.
|
|
7
|
+
#
|
|
8
|
+
# @return [Hash{String => String}]
|
|
9
|
+
# The Hash of environment variable names and values.
|
|
10
|
+
#
|
|
11
|
+
def env_hash
|
|
12
|
+
ENV
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
#
|
|
16
|
+
# The directories to search within for executables.
|
|
17
|
+
#
|
|
18
|
+
# @return [Array<Pathname>]
|
|
19
|
+
# The paths of the directories.
|
|
20
|
+
#
|
|
21
|
+
def paths
|
|
22
|
+
parse_paths(env_hash['PATH'])
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# The directories to search within for libraries.
|
|
27
|
+
#
|
|
28
|
+
# @return [Array<Pathname>]
|
|
29
|
+
# The paths of the directories.
|
|
30
|
+
#
|
|
31
|
+
def ld_library_paths
|
|
32
|
+
parse_paths(env_hash['LD_LIBRARY_PATH'])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
#
|
|
36
|
+
# The home directory.
|
|
37
|
+
#
|
|
38
|
+
# @return [Pathname, nil]
|
|
39
|
+
# The path of the home directory.
|
|
40
|
+
#
|
|
41
|
+
def home
|
|
42
|
+
if (home = (env_hash['HOME'] || env_hash['HOMEPATH']))
|
|
43
|
+
Pathname.new(home)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
#
|
|
48
|
+
# The default language.
|
|
49
|
+
#
|
|
50
|
+
# @return [Array<String, String>]
|
|
51
|
+
# The language name and encoding.
|
|
52
|
+
#
|
|
53
|
+
def lang
|
|
54
|
+
env_hash['LANG'].split('.',2)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
#
|
|
58
|
+
# The number of columns in the terminal.
|
|
59
|
+
#
|
|
60
|
+
# @return [Integer]
|
|
61
|
+
# The number of columns.
|
|
62
|
+
#
|
|
63
|
+
def columns
|
|
64
|
+
env_hash['COLUMNS'].to_i if env_hash['COLUMNS']
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
#
|
|
68
|
+
# The number of lines in the terminal.
|
|
69
|
+
#
|
|
70
|
+
# @return [Integer]
|
|
71
|
+
# The number of lines.
|
|
72
|
+
#
|
|
73
|
+
def lines
|
|
74
|
+
env_hash['LINES'].to_i if env_hash['LINES']
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
#
|
|
78
|
+
# The path of the default shell.
|
|
79
|
+
#
|
|
80
|
+
# @return [String, nil]
|
|
81
|
+
# The path to the default shell.
|
|
82
|
+
#
|
|
83
|
+
def shell
|
|
84
|
+
env_hash['SHELL']
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
#
|
|
88
|
+
# The name of the default shell.
|
|
89
|
+
#
|
|
90
|
+
# @return [String, nil]
|
|
91
|
+
# The program name of the shell.
|
|
92
|
+
#
|
|
93
|
+
def shell_name
|
|
94
|
+
File.basename(shell) if shell
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
#
|
|
98
|
+
# The default terminal to use.
|
|
99
|
+
#
|
|
100
|
+
# @return [String, nil]
|
|
101
|
+
# The name of the terminal program.
|
|
102
|
+
#
|
|
103
|
+
def terminal
|
|
104
|
+
env_hash['COLORTERM'] || env_hash['TERM']
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
#
|
|
108
|
+
# The default editor to use.
|
|
109
|
+
#
|
|
110
|
+
# @return [String, nil]
|
|
111
|
+
# The name of the editor program.
|
|
112
|
+
#
|
|
113
|
+
def editor
|
|
114
|
+
env_hash['EDITOR']
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
#
|
|
118
|
+
# The default browser to use.
|
|
119
|
+
#
|
|
120
|
+
# @return [String, nil]
|
|
121
|
+
# The name of the browser program.
|
|
122
|
+
#
|
|
123
|
+
def browser
|
|
124
|
+
env_hash['BROWSER']
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
protected
|
|
128
|
+
|
|
129
|
+
#
|
|
130
|
+
# Parses a String containing multiple paths.
|
|
131
|
+
#
|
|
132
|
+
# @return [Array<Pathname>]
|
|
133
|
+
# The multiple paths.
|
|
134
|
+
#
|
|
135
|
+
def parse_paths(paths)
|
|
136
|
+
if paths
|
|
137
|
+
paths.split(File::PATH_SEPARATOR).map do |path|
|
|
138
|
+
Pathname.new(path)
|
|
139
|
+
end
|
|
140
|
+
else
|
|
141
|
+
[]
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
data/lib/env/version.rb
ADDED
data/spec/env_spec.rb
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'env'
|
|
3
|
+
|
|
4
|
+
describe Env do
|
|
5
|
+
let(:var_name) { 'PATH' }
|
|
6
|
+
let(:var_value) { ENV[var_name] }
|
|
7
|
+
|
|
8
|
+
it "should have a VERSION constant" do
|
|
9
|
+
subject.const_get('VERSION').should_not be_empty
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should provide direct Hash access to env variables" do
|
|
13
|
+
subject[var_name].should == var_value
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should allow directly setting env variables" do
|
|
17
|
+
subject['FOO'] = 'bar'
|
|
18
|
+
|
|
19
|
+
subject['FOO'].should == 'bar'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should provide transparent CONSTANT access to env variables" do
|
|
23
|
+
subject.const_get(var_name).should == var_value
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should provide transparent method access to env variables" do
|
|
27
|
+
method_name = var_name.downcase
|
|
28
|
+
|
|
29
|
+
subject.send(method_name).should == var_value
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should allow setting of environment variables via methods" do
|
|
33
|
+
subject.shell = '/bin/zsh'
|
|
34
|
+
|
|
35
|
+
subject['SHELL'].should == '/bin/zsh'
|
|
36
|
+
end
|
|
37
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'env/variables'
|
|
3
|
+
|
|
4
|
+
describe Variables do
|
|
5
|
+
subject { Object.new.extend(Variables) }
|
|
6
|
+
|
|
7
|
+
let(:home) { '/home/alice' }
|
|
8
|
+
let(:term) { 'xterm' }
|
|
9
|
+
let(:shell) { '/bin/bash' }
|
|
10
|
+
|
|
11
|
+
before(:each) do
|
|
12
|
+
subject.stub!(:env_hash).and_return(
|
|
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
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should parse the contents of the PATH variable" do
|
|
24
|
+
subject.paths.should == [
|
|
25
|
+
Pathname.new('/usr/local/bin'),
|
|
26
|
+
Pathname.new('/usr/bin'),
|
|
27
|
+
Pathname.new('/bin')
|
|
28
|
+
]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should provide access to the HOME variable" do
|
|
32
|
+
subject.home.should == Pathname.new(home)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should check HOMEPATH if HOME is not set" do
|
|
36
|
+
subject.stub!(:env_hash).and_return('HOMEPATH' => home)
|
|
37
|
+
|
|
38
|
+
subject.home.should == Pathname.new(home)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should parse the LANG variable" do
|
|
42
|
+
name, encoding = subject.lang
|
|
43
|
+
|
|
44
|
+
name.should == 'en_US'
|
|
45
|
+
encoding.should == 'UTF8'
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "should parse the COLUMNS variable" do
|
|
49
|
+
subject.columns.should == 80
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should parse the LINES variable" do
|
|
53
|
+
subject.lines.should == 10
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "should provide access to the SHELL variable" do
|
|
57
|
+
subject.shell.should == shell
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should determine the program name of the current Shell" do
|
|
61
|
+
subject.shell_name.should == 'bash'
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it "should determine the current Terminal" do
|
|
65
|
+
subject.terminal.should == term
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "should check COLORTERM before the TERM variable" do
|
|
69
|
+
subject.stub!(:env_hash).and_return(
|
|
70
|
+
'COLORTERM' => 'gnome-terminal',
|
|
71
|
+
'TERM' => term
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
subject.terminal.should == 'gnome-terminal'
|
|
75
|
+
end
|
|
76
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: env
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 1
|
|
8
|
+
- 0
|
|
9
|
+
version: 0.1.0
|
|
10
|
+
platform: ruby
|
|
11
|
+
authors:
|
|
12
|
+
- Postmodern
|
|
13
|
+
autorequire:
|
|
14
|
+
bindir: bin
|
|
15
|
+
cert_chain: []
|
|
16
|
+
|
|
17
|
+
date: 2011-01-22 00:00:00 -08:00
|
|
18
|
+
default_executable:
|
|
19
|
+
dependencies:
|
|
20
|
+
- !ruby/object:Gem::Dependency
|
|
21
|
+
name: ore-tasks
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
25
|
+
requirements:
|
|
26
|
+
- - ~>
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
segments:
|
|
29
|
+
- 0
|
|
30
|
+
- 3
|
|
31
|
+
- 0
|
|
32
|
+
version: 0.3.0
|
|
33
|
+
type: :development
|
|
34
|
+
version_requirements: *id001
|
|
35
|
+
- !ruby/object:Gem::Dependency
|
|
36
|
+
name: rspec
|
|
37
|
+
prerelease: false
|
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
40
|
+
requirements:
|
|
41
|
+
- - ~>
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
segments:
|
|
44
|
+
- 2
|
|
45
|
+
- 4
|
|
46
|
+
- 0
|
|
47
|
+
version: 2.4.0
|
|
48
|
+
type: :development
|
|
49
|
+
version_requirements: *id002
|
|
50
|
+
- !ruby/object:Gem::Dependency
|
|
51
|
+
name: yard
|
|
52
|
+
prerelease: false
|
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
54
|
+
none: false
|
|
55
|
+
requirements:
|
|
56
|
+
- - ~>
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
segments:
|
|
59
|
+
- 0
|
|
60
|
+
- 6
|
|
61
|
+
- 0
|
|
62
|
+
version: 0.6.0
|
|
63
|
+
type: :development
|
|
64
|
+
version_requirements: *id003
|
|
65
|
+
description: Provides a Ruby interface to common environment variables, used on Windows, Linux, BSD and OSX.
|
|
66
|
+
email: postmodern.mod3@gmail.com
|
|
67
|
+
executables: []
|
|
68
|
+
|
|
69
|
+
extensions: []
|
|
70
|
+
|
|
71
|
+
extra_rdoc_files:
|
|
72
|
+
- README.md
|
|
73
|
+
- ChangeLog.md
|
|
74
|
+
- LICENSE.txt
|
|
75
|
+
files:
|
|
76
|
+
- .document
|
|
77
|
+
- .rspec
|
|
78
|
+
- .yardopts
|
|
79
|
+
- ChangeLog.md
|
|
80
|
+
- LICENSE.txt
|
|
81
|
+
- README.md
|
|
82
|
+
- Rakefile
|
|
83
|
+
- env.gemspec
|
|
84
|
+
- gemspec.yml
|
|
85
|
+
- lib/env.rb
|
|
86
|
+
- lib/env/env.rb
|
|
87
|
+
- lib/env/variables.rb
|
|
88
|
+
- lib/env/version.rb
|
|
89
|
+
- spec/env_spec.rb
|
|
90
|
+
- spec/spec_helper.rb
|
|
91
|
+
- spec/variables_spec.rb
|
|
92
|
+
has_rdoc: yard
|
|
93
|
+
homepage: http://github.com/postmodern/env
|
|
94
|
+
licenses:
|
|
95
|
+
- MIT
|
|
96
|
+
post_install_message:
|
|
97
|
+
rdoc_options: []
|
|
98
|
+
|
|
99
|
+
require_paths:
|
|
100
|
+
- lib
|
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
|
+
none: false
|
|
103
|
+
requirements:
|
|
104
|
+
- - ">="
|
|
105
|
+
- !ruby/object:Gem::Version
|
|
106
|
+
segments:
|
|
107
|
+
- 0
|
|
108
|
+
version: "0"
|
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
|
+
none: false
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
segments:
|
|
115
|
+
- 0
|
|
116
|
+
version: "0"
|
|
117
|
+
requirements: []
|
|
118
|
+
|
|
119
|
+
rubyforge_project: env
|
|
120
|
+
rubygems_version: 1.3.7
|
|
121
|
+
signing_key:
|
|
122
|
+
specification_version: 3
|
|
123
|
+
summary: Provides a Ruby interface to common environment variables
|
|
124
|
+
test_files:
|
|
125
|
+
- spec/variables_spec.rb
|
|
126
|
+
- spec/env_spec.rb
|