sysinfo 0.8.0 → 0.8.1
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/CHANGES.txt +6 -0
- data/lib/sysinfo.rb +18 -9
- data/sysinfo.gemspec +2 -2
- metadata +3 -9
data/CHANGES.txt
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
SYSINFO, CHANGES
|
2
2
|
|
3
|
+
|
4
|
+
#### 0.8.1 (2014-02-11) #############################
|
5
|
+
|
6
|
+
* CHANGE: Use Etc.getpwuid [jperville]
|
7
|
+
|
3
8
|
#### 0.8.0 (2012-04-30) #############################
|
4
9
|
|
5
10
|
* CHANGE: Removed #to_s
|
6
11
|
* CHANGE: #platform now returns VM-OS-IMPL-ARCH
|
7
12
|
* CHANGE: json is the default output format
|
8
13
|
|
14
|
+
|
9
15
|
#### 0.7.2 (2010-02-12) #############################
|
10
16
|
|
11
17
|
* CHANGE: Removed hanna dependency [Diego Elio 'Flameeyes' Pettenò]
|
data/lib/sysinfo.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'socket'
|
2
2
|
require 'storable'
|
3
3
|
require 'time'
|
4
|
+
require 'tmpdir'
|
4
5
|
|
5
6
|
# = SysInfo
|
6
7
|
#
|
@@ -9,7 +10,7 @@ require 'time'
|
|
9
10
|
# specifically lib/platform.rb.
|
10
11
|
class SysInfo < Storable
|
11
12
|
unless defined?(IMPLEMENTATIONS)
|
12
|
-
VERSION = "0.8.
|
13
|
+
VERSION = "0.8.1".freeze
|
13
14
|
IMPLEMENTATIONS = [
|
14
15
|
|
15
16
|
# These are for JRuby, System.getproperty('os.name').
|
@@ -78,7 +79,7 @@ class SysInfo < Storable
|
|
78
79
|
@vm, @os, @impl, @arch = find_platform_info
|
79
80
|
@hostname, @ipaddress_internal, @uptime = find_network_info
|
80
81
|
@ruby = RUBY_VERSION.split('.').collect { |v| v.to_i }
|
81
|
-
@user = ENV['USER']
|
82
|
+
@user = getpwattr(:name) || ENV['USER']
|
82
83
|
require 'Win32API' if @os == :windows && @vm == :ruby
|
83
84
|
end
|
84
85
|
|
@@ -178,25 +179,25 @@ class SysInfo < Storable
|
|
178
179
|
(ENV['PATH'] || '').split(delim)
|
179
180
|
end
|
180
181
|
|
181
|
-
def tmpdir_ruby_unix; (
|
182
|
-
def tmpdir_ruby_windows; (
|
182
|
+
def tmpdir_ruby_unix; (Dir.tmpdir || '/tmp'); end
|
183
|
+
def tmpdir_ruby_windows; (Dir.tmpdir || 'C:\\temp'); end
|
183
184
|
def tmpdir_java
|
184
185
|
default = @impl == :windows ? 'C:\\temp' : '/tmp'
|
185
|
-
(
|
186
|
+
(Dir.tmpdir || default)
|
186
187
|
end
|
187
188
|
|
188
|
-
def shell_ruby_unix; (ENV['SHELL'] || 'bash').to_sym; end
|
189
|
+
def shell_ruby_unix; (ENV['SHELL'] || getpwattr(:shell) || 'bash').to_sym; end
|
189
190
|
def shell_ruby_windows; :dos; end
|
190
191
|
alias_method :shell_java_unix, :shell_ruby_unix
|
191
192
|
alias_method :shell_java_windows, :shell_ruby_windows
|
192
193
|
|
193
|
-
def home_ruby_unix; File.expand_path(
|
194
|
+
def home_ruby_unix; File.expand_path(getpwattr(:dir)); end
|
194
195
|
def home_ruby_windows; File.expand_path(ENV['USERPROFILE']); end
|
195
196
|
def home_java
|
196
197
|
if @impl == :windows
|
197
198
|
File.expand_path(ENV['USERPROFILE'])
|
198
199
|
else
|
199
|
-
File.expand_path(
|
200
|
+
File.expand_path(getpwattr(:dir))
|
200
201
|
end
|
201
202
|
end
|
202
203
|
|
@@ -265,9 +266,17 @@ class SysInfo < Storable
|
|
265
266
|
end
|
266
267
|
ipaddr
|
267
268
|
end
|
269
|
+
|
270
|
+
# Returns a named attribute of the user's /etc/password entry, or nil.
|
271
|
+
# As an example, `getpwdattr(:home)` will return the user's home directory
|
272
|
+
# without relying on ENV['HOME'] being present.
|
273
|
+
def getpwattr(pwattr)
|
274
|
+
passwd = Etc.getpwuid(Process::Sys.getuid) || {}
|
275
|
+
passwd[pwattr]
|
276
|
+
end
|
268
277
|
end
|
269
278
|
|
270
279
|
|
271
280
|
if $0 == __FILE__
|
272
281
|
puts SysInfo.new.dump('json')
|
273
|
-
end
|
282
|
+
end
|
data/sysinfo.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
@spec = Gem::Specification.new do |s|
|
2
2
|
s.name = "sysinfo"
|
3
3
|
s.rubyforge_project = "sysinfo"
|
4
|
-
s.version = "0.8.
|
4
|
+
s.version = "0.8.1"
|
5
5
|
s.summary = "SysInfo: All your system-independent infoz in one handy class. "
|
6
6
|
s.description = s.summary
|
7
7
|
s.author = "Delano Mandelbaum"
|
@@ -41,4 +41,4 @@
|
|
41
41
|
s.require_paths = %w[lib]
|
42
42
|
s.rubygems_version = '1.3.0'
|
43
43
|
|
44
|
-
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sysinfo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: storable
|
@@ -76,21 +76,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
76
|
- - ! '>='
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0'
|
79
|
-
segments:
|
80
|
-
- 0
|
81
|
-
hash: 1706058782098846642
|
82
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
80
|
none: false
|
84
81
|
requirements:
|
85
82
|
- - ! '>='
|
86
83
|
- !ruby/object:Gem::Version
|
87
84
|
version: '0'
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
hash: 1706058782098846642
|
91
85
|
requirements: []
|
92
86
|
rubyforge_project: sysinfo
|
93
|
-
rubygems_version: 1.8.
|
87
|
+
rubygems_version: 1.8.23
|
94
88
|
signing_key:
|
95
89
|
specification_version: 3
|
96
90
|
summary: ! 'SysInfo: All your system-independent infoz in one handy class.'
|