env 0.2.0 → 0.3.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 CHANGED
@@ -1,3 +1,3 @@
1
1
  -
2
- ChangeLog.*
2
+ ChangeLog.md
3
3
  LICENSE.txt
@@ -0,0 +1,2 @@
1
+ doc/
2
+ pkg/
@@ -1,3 +1,13 @@
1
+ ### 0.3.0 / 2012-05-27
2
+
3
+ * Added {Env::Variables#user}.
4
+ * Added {Env::Variables#host_name}.
5
+ * Fixed typos {Env.[]} and {Env.[]=} where the old `env_hash` method
6
+ was being called.
7
+ * Fixed specs that were stubbing the old `env_hash` method.
8
+ * Replaced ore-tasks with
9
+ [rubygems-tasks](https://github.com/postmodern/rubygems-tasks#readme).
10
+
1
11
  ### 0.2.0 / 2011-05-05
2
12
 
3
13
  * Added {Env::Variables#timezone}.
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011 Hal Brodigan
1
+ Copyright (c) 2011-2012 Hal Brodigan
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Env
2
2
 
3
- * [Homepage](http://github.com/postmodern/env)
4
- * [Issues](http://github.com/postmodern/env/issues)
3
+ * [Homepage](https://github.com/postmodern/env)
4
+ * [Issues](https://github.com/postmodern/env/issues)
5
5
  * [Documentation](http://rubydoc.info/gems/env/frames)
6
6
  * [Email](mailto:postmodern.mod3 at gmail.com)
7
7
 
@@ -79,6 +79,6 @@ Only access the common variables from your Class:
79
79
 
80
80
  ## Copyright
81
81
 
82
- Copyright (c) 2011 Hal Brodigan
82
+ Copyright (c) 2011-2012 Hal Brodigan
83
83
 
84
84
  See {file:LICENSE.txt} for details.
data/Rakefile CHANGED
@@ -2,13 +2,13 @@ require 'rubygems'
2
2
  require 'rake'
3
3
 
4
4
  begin
5
- gem 'ore-tasks', '~> 0.4'
6
- require 'ore/tasks'
5
+ gem 'rubygems-tasks', '~> 0.1'
6
+ require 'rubygems/tasks'
7
7
 
8
- Ore::Tasks.new
8
+ Gem::Tasks.new
9
9
  rescue LoadError => e
10
- STDERR.puts e.message
11
- STDERR.puts "Run `gem install ore-tasks` to install 'ore/tasks'."
10
+ warn e.message
11
+ warn "Run `gem install rubygems-tasks` to install 'rubygems/tasks'."
12
12
  end
13
13
 
14
14
  begin
@@ -25,7 +25,7 @@ task :test => :spec
25
25
  task :default => :spec
26
26
 
27
27
  begin
28
- gem 'yard', '~> 0.6.0'
28
+ gem 'yard', '~> 0.7'
29
29
  require 'yard'
30
30
 
31
31
  YARD::Rake::YardocTask.new
@@ -1,15 +1,105 @@
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."
1
+ # encoding: utf-8
2
+
3
+ require 'yaml'
4
+
5
+ Gem::Specification.new do |gemspec|
6
+ root = File.dirname(__FILE__)
7
+ lib_dir = File.join(root,'lib')
8
+ files = `git ls-files`.split($/)
9
+
10
+ filter_files = lambda { |paths|
11
+ files & case paths
12
+ when Array
13
+ paths
14
+ when String
15
+ Dir[paths]
16
+ end
17
+ }
18
+
19
+ version = {
20
+ :file => 'env/version',
21
+ :constant => 'Env::VERSION'
22
+ }
23
+
24
+ defaults = {
25
+ 'name' => File.basename(root),
26
+ 'files' => files,
27
+ 'require_paths' => ['ext', 'lib'].select { |dir| File.directory?(dir) },
28
+ 'executables' => filter_files['bin/*'].map { |path| File.basename(path) },
29
+ 'test_files' => filter_files['{test/{**/}*_test.rb,spec/{**/}*_spec.rb}'],
30
+ 'doc_files' => filter_files['*.{txt,rdoc,md,markdown,tt,textile}'],
31
+ 'extra_doc_files' => filter_files['*.{txt,rdoc,md,markdown,tt,textile}']
32
+ }
33
+
34
+ metadata = defaults.merge(YAML.load_file('gemspec.yml'))
35
+
36
+ gemspec.name = metadata['name']
37
+ gemspec.version = if metadata['version']
38
+ metadata['version']
39
+ else
40
+ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
41
+
42
+ require version[:file]
43
+ eval(version[:constant])
44
+ end
45
+
46
+ gemspec.summary = metadata.fetch('summary',metadata['description'])
47
+ gemspec.description = metadata.fetch('description',metadata['summary'])
48
+
49
+ gemspec.licenses = Array(metadata['license'])
50
+ gemspec.authors = Array(metadata['authors'])
51
+
52
+ gemspec.email = metadata['email']
53
+ gemspec.homepage = metadata['homepage']
54
+
55
+ gemspec.require_paths = Array(metadata['require_paths'])
56
+ gemspec.files = filter_files[metadata['files']]
57
+ gemspec.files += Array(metadata['generated_files'])
58
+ gemspec.executables = metadata['executables']
59
+ gemspec.extensions = metadata['extensions']
60
+
61
+ if Gem::VERSION < '1.7.'
62
+ gemspec.default_executable = gemspec.executables.first
63
+ end
64
+
65
+ gemspec.test_files = filter_files[metadata['test_files']]
66
+ gemspec.extra_rdoc_files = Array(metadata['extra_doc_files'])
67
+
68
+ gemspec.post_install_message = metadata['post_install_message']
69
+ gemspec.requirements = metadata['requirements']
70
+
71
+ if gemspec.respond_to?(:required_ruby_version=)
72
+ gemspec.required_ruby_version = metadata['required_ruby_version']
73
+ end
74
+
75
+ if gemspec.respond_to?(:required_rubygems_version=)
76
+ gemspec.required_rubygems_version = metadata['required_ruby_version']
77
+ end
78
+
79
+ parse_versions = lambda { |versions|
80
+ case versions
81
+ when Array
82
+ versions.map { |v| v.to_s }
83
+ when String
84
+ versions.split(/,\s*/)
85
+ end
86
+ }
87
+
88
+ if metadata['dependencies']
89
+ metadata['dependencies'].each do |name,versions|
90
+ gemspec.add_dependency(name,parse_versions[versions])
91
+ end
92
+ end
93
+
94
+ if metadata['runtime_dependencies']
95
+ metadata['runtime_dependencies'].each do |name,versions|
96
+ gemspec.add_runtime_dependency(name,parse_versions[versions])
97
+ end
98
+ end
99
+
100
+ if metadata['development_dependencies']
101
+ metadata['development_dependencies'].each do |name,versions|
102
+ gemspec.add_development_dependency(name,parse_versions[versions])
103
+ end
14
104
  end
15
105
  end
@@ -7,10 +7,10 @@ description:
7
7
  license: MIT
8
8
  authors: Postmodern
9
9
  email: postmodern.mod3@gmail.com
10
- homepage: http://github.com/postmodern/env
10
+ homepage: https://github.com/postmodern/env#readme
11
11
  has_yard: true
12
12
 
13
13
  development_dependencies:
14
- ore-tasks: ~> 0.4
14
+ rubygems-tasks: ~> 0.1
15
15
  rspec: ~> 2.4
16
- yard: ~> 0.6.0
16
+ yard: ~> 0.7
@@ -17,7 +17,7 @@ module Env
17
17
  # # => "/bin/bash"
18
18
  #
19
19
  def Env.[](name)
20
- env_hash[name.to_s]
20
+ env[name.to_s]
21
21
  end
22
22
 
23
23
  #
@@ -33,7 +33,7 @@ module Env
33
33
  # The String value of the environment variable.
34
34
  #
35
35
  def Env.[]=(name,value)
36
- env_hash[name.to_s] = value.to_s
36
+ env[name.to_s] = value.to_s
37
37
  end
38
38
 
39
39
  protected
@@ -8,7 +8,9 @@ module Env
8
8
  # @return [Hash{String => String}]
9
9
  # The Hash of environment variable names and values.
10
10
  #
11
- def env_hash
11
+ # @api semipublic
12
+ #
13
+ def env
12
14
  ENV
13
15
  end
14
16
 
@@ -19,7 +21,7 @@ module Env
19
21
  # The paths of the directories.
20
22
  #
21
23
  def paths
22
- parse_paths(env_hash['PATH'])
24
+ parse_paths(env['PATH'])
23
25
  end
24
26
 
25
27
  #
@@ -29,7 +31,33 @@ module Env
29
31
  # The paths of the directories.
30
32
  #
31
33
  def ld_library_paths
32
- parse_paths(env_hash['LD_LIBRARY_PATH'])
34
+ parse_paths(env['LD_LIBRARY_PATH'])
35
+ end
36
+
37
+ #
38
+ # The host-name of the system.
39
+ #
40
+ # @return [String]
41
+ # The host-name.
42
+ #
43
+ # @since 0.3.0
44
+ #
45
+ def host_name
46
+ env['HOSTNAME']
47
+ end
48
+
49
+ #
50
+ # The name of the current user.
51
+ #
52
+ # @return [String]
53
+ # The name of the user.
54
+ #
55
+ # @since 0.3.0
56
+ #
57
+ def user
58
+ # USER is used on GNU/Linux and Windows
59
+ # LOGNAME is the POSIX user-name ENV variable
60
+ env['USER'] || env['LOGNAME']
33
61
  end
34
62
 
35
63
  #
@@ -40,10 +68,10 @@ module Env
40
68
  #
41
69
  def home
42
70
  # logic adapted from Gem.find_home.
43
- path = if (env_hash['HOME'] || env_hash['USERPROFILE'])
44
- env_hash['HOME'] || env_hash['USERPROFILE']
45
- elsif (env_hash['HOMEDRIVE'] && env_hash['HOMEPATH'])
46
- "#{env_hash['HOMEDRIVE']}#{env_hash['HOMEPATH']}"
71
+ path = if (env['HOME'] || env['USERPROFILE'])
72
+ env['HOME'] || env['USERPROFILE']
73
+ elsif (env['HOMEDRIVE'] && env['HOMEPATH'])
74
+ "#{env['HOMEDRIVE']}#{env['HOMEPATH']}"
47
75
  else
48
76
  begin
49
77
  File.expand_path('~')
@@ -66,7 +94,7 @@ module Env
66
94
  # The language name and encoding.
67
95
  #
68
96
  def lang
69
- if (lang = env_hash['LANG'])
97
+ if (lang = env['LANG'])
70
98
  lang.split('.',2)
71
99
  else
72
100
  []
@@ -92,7 +120,7 @@ module Env
92
120
  # The number of columns.
93
121
  #
94
122
  def columns
95
- env_hash['COLUMNS'].to_i if env_hash['COLUMNS']
123
+ env['COLUMNS'].to_i if env['COLUMNS']
96
124
  end
97
125
 
98
126
  #
@@ -102,7 +130,7 @@ module Env
102
130
  # The number of lines.
103
131
  #
104
132
  def lines
105
- env_hash['LINES'].to_i if env_hash['LINES']
133
+ env['LINES'].to_i if env['LINES']
106
134
  end
107
135
 
108
136
  #
@@ -112,7 +140,7 @@ module Env
112
140
  # The path to the default shell.
113
141
  #
114
142
  def shell
115
- env_hash['SHELL']
143
+ env['SHELL']
116
144
  end
117
145
 
118
146
  #
@@ -132,7 +160,7 @@ module Env
132
160
  # The name of the terminal program.
133
161
  #
134
162
  def terminal
135
- env_hash['COLORTERM'] || env_hash['TERM']
163
+ env['COLORTERM'] || env['TERM']
136
164
  end
137
165
 
138
166
  #
@@ -142,7 +170,7 @@ module Env
142
170
  # The name of the editor program.
143
171
  #
144
172
  def editor
145
- env_hash['EDITOR']
173
+ env['EDITOR']
146
174
  end
147
175
 
148
176
  #
@@ -152,7 +180,7 @@ module Env
152
180
  # The name of the browser program.
153
181
  #
154
182
  def browser
155
- env_hash['BROWSER']
183
+ env['BROWSER']
156
184
  end
157
185
 
158
186
  #
@@ -164,7 +192,7 @@ module Env
164
192
  # @since 0.2.0
165
193
  #
166
194
  def debug?
167
- true if env_hash['DEBUG']
195
+ true if env['DEBUG']
168
196
  end
169
197
 
170
198
  protected
@@ -1,4 +1,4 @@
1
1
  module Env
2
2
  # env version
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
@@ -9,7 +9,7 @@ describe Variables do
9
9
  let(:shell) { '/bin/bash' }
10
10
 
11
11
  before(:each) do
12
- subject.stub!(:env_hash).and_return(
12
+ subject.stub!(:env).and_return(
13
13
  'PATH' => '/usr/local/bin:/usr/bin:/bin',
14
14
  'HOME' => home,
15
15
  'TERM' => term,
@@ -34,7 +34,7 @@ describe Variables do
34
34
  end
35
35
 
36
36
  it "should use the USERPROFILE variable if HOME is not set" do
37
- subject.stub!(:env_hash).and_return('USERPROFILE' => home)
37
+ subject.stub!(:env).and_return('USERPROFILE' => home)
38
38
 
39
39
  subject.home.should == Pathname.new(home)
40
40
  end
@@ -42,7 +42,7 @@ describe Variables do
42
42
  it "should use HOMEDRIVE and HOMEPATH if HOME is not set" do
43
43
  drive = 'C:'
44
44
 
45
- subject.stub!(:env_hash).and_return(
45
+ subject.stub!(:env).and_return(
46
46
  'HOMEDRIVE' => drive,
47
47
  'HOMEPATH' => home
48
48
  )
@@ -51,7 +51,7 @@ describe Variables do
51
51
  end
52
52
 
53
53
  it "should attempt to expand '~' if none of the HOME variables are set" do
54
- subject.stub!(:env_hash).and_return({})
54
+ subject.stub!(:env).and_return({})
55
55
 
56
56
  subject.home.should be_directory
57
57
  end
@@ -64,7 +64,7 @@ describe Variables do
64
64
  end
65
65
 
66
66
  it "should return an empty Array if LANG is not set" do
67
- subject.stub!(:env_hash).and_return({})
67
+ subject.stub!(:env).and_return({})
68
68
 
69
69
  subject.lang.should be_empty
70
70
  end
@@ -90,7 +90,7 @@ describe Variables do
90
90
  end
91
91
 
92
92
  it "should check COLORTERM before the TERM variable" do
93
- subject.stub!(:env_hash).and_return(
93
+ subject.stub!(:env).and_return(
94
94
  'COLORTERM' => 'gnome-terminal',
95
95
  'TERM' => term
96
96
  )
metadata CHANGED
@@ -1,64 +1,77 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: env
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
4
5
  prerelease:
5
- version: 0.2.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Postmodern
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-05 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: ore-tasks
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-05-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rubygems-tasks
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
18
+ requirements:
21
19
  - - ~>
22
- - !ruby/object:Gem::Version
23
- version: "0.4"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.1'
24
22
  type: :development
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rspec
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
30
33
  none: false
31
- requirements:
34
+ requirements:
32
35
  - - ~>
33
- - !ruby/object:Gem::Version
34
- version: "2.4"
36
+ - !ruby/object:Gem::Version
37
+ version: '2.4'
35
38
  type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: yard
39
39
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.4'
46
+ - !ruby/object:Gem::Dependency
47
+ name: yard
48
+ requirement: !ruby/object:Gem::Requirement
41
49
  none: false
42
- requirements:
50
+ requirements:
43
51
  - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 0.6.0
52
+ - !ruby/object:Gem::Version
53
+ version: '0.7'
46
54
  type: :development
47
- version_requirements: *id003
48
- description: Provides a Ruby interface to common environment variables, used on Windows, Linux, BSD and OSX.
49
- email:
50
- - postmodern.mod3@gmail.com
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.7'
62
+ description: Provides a Ruby interface to common environment variables, used on Windows,
63
+ Linux, BSD and OSX.
64
+ email: postmodern.mod3@gmail.com
51
65
  executables: []
52
-
53
66
  extensions: []
54
-
55
- extra_rdoc_files:
56
- - README.md
67
+ extra_rdoc_files:
57
68
  - ChangeLog.md
58
69
  - LICENSE.txt
59
- files:
70
+ - README.md
71
+ files:
60
72
  - .document
61
73
  - .gemtest
74
+ - .gitignore
62
75
  - .rspec
63
76
  - .yardopts
64
77
  - ChangeLog.md
@@ -74,33 +87,31 @@ files:
74
87
  - spec/env_spec.rb
75
88
  - spec/spec_helper.rb
76
89
  - spec/variables_spec.rb
77
- homepage: http://github.com/postmodern/env
78
- licenses:
90
+ homepage: https://github.com/postmodern/env#readme
91
+ licenses:
79
92
  - MIT
80
93
  post_install_message:
81
94
  rdoc_options: []
82
-
83
- require_paths:
95
+ require_paths:
84
96
  - lib
85
- required_ruby_version: !ruby/object:Gem::Requirement
97
+ required_ruby_version: !ruby/object:Gem::Requirement
86
98
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
91
- required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
104
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: "0"
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
97
109
  requirements: []
98
-
99
- rubyforge_project: env
100
- rubygems_version: 1.8.0
110
+ rubyforge_project:
111
+ rubygems_version: 1.8.24
101
112
  signing_key:
102
113
  specification_version: 3
103
114
  summary: Provides a Ruby interface to common environment variables
104
- test_files:
105
- - spec/variables_spec.rb
115
+ test_files:
106
116
  - spec/env_spec.rb
117
+ - spec/variables_spec.rb