os 1.0.1 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (10) hide show
  1. checksums.yaml +5 -5
  2. data/ChangeLog +15 -0
  3. data/Gemfile.lock +1 -10
  4. data/README.md +104 -0
  5. data/Rakefile +11 -3
  6. data/VERSION +1 -1
  7. data/lib/os.rb +18 -3
  8. data/os.gemspec +24 -9
  9. metadata +13 -13
  10. data/README.rdoc +0 -78
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1477aa871c9207710b6d5ac5ffbac3d3ce68b5c6
4
- data.tar.gz: e7ea7749f846a01f4906d4ecf1cc83692b8ddfc6
2
+ SHA256:
3
+ metadata.gz: 8ceda108b09b3210f4cab0b411d8fe76bb69c74b3054a86e15ba533074086ffe
4
+ data.tar.gz: c59bede2a6e772a83b13543951b7824a1811c376c1e313e16ec20e96a37f7986
5
5
  SHA512:
6
- metadata.gz: fda9a548d80869cc3fdc0fc3da2593889e0f147e845ad79ab5b7b74b23c64d3483a230778ee1d3b92b397767f45a3a498cf2f5601765d80eb1e82e4656108089
7
- data.tar.gz: 9424bce41996a0a77429377f274df819e213ab7e1f704d2e85c96d2ddae7d681598ec463676892f3ba5e2022e1b8535b058f93fce61d0bcf84df0fd1c949b923
6
+ metadata.gz: b574706218e68b4ce5d9d9c82abb967032ec5fa1d4363c268cbd89e3261955de0d8e0c56834d6e813c06b23900cade81087b86ff52f166418ab339d03ced7197
7
+ data.tar.gz: 6a692f3db11e912c795a66450a1e2ae70e9819c2f079b956584339f0be0b7241204cacf10153dd8e57e2b9ab4eb9730603d323ddfa801509774f24279435733c
data/ChangeLog CHANGED
@@ -1,3 +1,18 @@
1
+ 1.1.4
2
+ Fix circular dependency
3
+
4
+ 1.1.2
5
+ Make rss_bytes return bytes in linux/OS X, like it always should have
6
+
7
+ 1.1.1
8
+ fix skip blank lines in OS#parse_os_release
9
+
10
+ 1.1.0
11
+ Add app_config_path method
12
+ Cleans up dev dependency specs
13
+ Detect underlying Docker containers method
14
+ Add Linux-specific OS#parse_os_release method
15
+
1
16
  1.0.1
2
17
  add within docker method
3
18
 
data/Gemfile.lock CHANGED
@@ -9,14 +9,6 @@ GEM
9
9
  diff-lcs (1.1.3)
10
10
  power_assert (1.0.2)
11
11
  rake (0.9.6)
12
- rspec (2.5.0)
13
- rspec-core (~> 2.5.0)
14
- rspec-expectations (~> 2.5.0)
15
- rspec-mocks (~> 2.5.0)
16
- rspec-core (2.5.2)
17
- rspec-expectations (2.5.0)
18
- diff-lcs (~> 1.1.2)
19
- rspec-mocks (2.5.0)
20
12
  test-unit (3.2.3)
21
13
  power_assert
22
14
 
@@ -25,10 +17,9 @@ PLATFORMS
25
17
  x86-mingw32
26
18
 
27
19
  DEPENDENCIES
28
- os!
29
20
  rake (~> 0.8)
30
21
  rspec (~> 2.5.0)
31
22
  test-unit (~> 3)
32
23
 
33
24
  BUNDLED WITH
34
- 1.14.5
25
+ 2.1.4
data/README.md ADDED
@@ -0,0 +1,104 @@
1
+ The OS gem allows for some easy telling if you're on windows or not.
2
+
3
+ ```ruby
4
+ require 'os'
5
+
6
+ >> OS.windows?
7
+ => true # or OS.doze?
8
+
9
+ >> OS.bits
10
+ => 32
11
+
12
+ >> OS.java?
13
+ => true # if you're running in jruby. Also OS.jruby?
14
+
15
+ >> OS.ruby_bin
16
+ => "c:\ruby18\bin\ruby.exe" # or "/usr/local/bin/ruby" or what not
17
+
18
+ >> OS.posix?
19
+ => false # true for linux, os x, cygwin
20
+
21
+ >> OS.mac? # or OS.osx? or OS.x?
22
+ => false
23
+
24
+ >> OS.dev_null
25
+ => "NUL" # or "/dev/null" depending on which platform
26
+
27
+ >> OS.rss_bytes
28
+ => 12300033 # number of rss bytes this process is using currently. Basically "total in memory footprint" (doesn't include RAM used by the process that's in swap/page file)
29
+
30
+ >> puts OS.report
31
+ ==> # a yaml report of helpful values
32
+ ---
33
+ arch: x86_64-darwin10.6.0
34
+ target_os: darwin10.6.0
35
+ target_vendor: apple
36
+ target_cpu: x86_64
37
+ target: x86_64-apple-darwin10.6.0
38
+ host_os: darwin10.6.0
39
+ host_vendor: apple
40
+ host_cpu: i386
41
+ host: i386-apple-darwin10.6.0
42
+ RUBY_PLATFORM: x86_64-darwin10.6.0
43
+
44
+ >> OS.cpu_count
45
+ => 2 # number of cores, doesn't include hyper-threaded cores.
46
+
47
+ >> OS.open_file_command
48
+ => "start" # or open on mac, or xdg-open on linux (all designed to open a file)
49
+
50
+ >> OS::Underlying.windows?
51
+ => true # true for cygwin or MRI, whereas OS.windows? is false for cygwin
52
+
53
+ >> OS::Underlying.bsd?
54
+ => true # true for OS X
55
+
56
+ >> OS::Underlying.docker?
57
+ => false # true if running inside a Docker container
58
+
59
+ >> pp OS.parse_os_release
60
+ ==> # A hash of details on the current Linux distro (or an exception if not Linux)
61
+ {:NAME=>"Ubuntu",
62
+ :VERSION=>"18.04.4 LTS (Bionic Beaver)",
63
+ :ID=>"ubuntu",
64
+ :ID_LIKE=>"debian",
65
+ :PRETTY_NAME=>"Ubuntu 18.04.4 LTS",
66
+ :VERSION_ID=>"18.04",
67
+ :HOME_URL=>"https://www.ubuntu.com/",
68
+ :SUPPORT_URL=>"https://help.ubuntu.com/",
69
+ :BUG_REPORT_URL=>"https://bugs.launchpad.net/ubuntu/",
70
+ :PRIVACY_POLICY_URL=>
71
+ "https://www.ubuntu.com/legal/terms-and-policies/privacy-policy",
72
+ :VERSION_CODENAME=>"bionic",
73
+ :UBUNTU_CODENAME=>"bionic"}
74
+ ```
75
+
76
+ If there are any other features you'd like, let me know, I'll do what I can to add them :)
77
+
78
+ http://github.com/rdp/os for feedback et al
79
+
80
+ Related projects:
81
+
82
+ rubygems:
83
+
84
+ ```ruby
85
+ Gem::Platform.local
86
+ Gem.ruby
87
+ ```
88
+
89
+ The reason Gem::Platform.local felt wrong to me is that it treated cygwin as windows--which for most build environments, is wrong. Hence the creation of this gem.
90
+
91
+ the facets gem (has a class similar to rubygems, above)
92
+
93
+ ```ruby
94
+ require 'facets/platform'
95
+ Platform.local
96
+ ```
97
+
98
+ the ["platform" gem](http://rubydoc.info/github/ffi/ffi/master/FFI/Platform), itself (a different gem)
99
+
100
+ ```ruby
101
+ FFI::Platform::OS
102
+ ```
103
+
104
+ License: MIT (see LICENSE file)
data/Rakefile CHANGED
@@ -1,6 +1,14 @@
1
1
  require 'rubygems' if RUBY_VERSION < '1.9.0'
2
2
 
3
+ # HOW TO DEPLOY
4
+ # bump VERSION file manually
5
+ # rake release seems all messed up, doesn't publish it anyway...
3
6
  # Don't forget to run rake gemspec with each release! ... I think...
7
+ # then manually edit os.gemspec remove duplicatee rspecs, circular dependency on os? HUH?
8
+ # # then gem build os.gemspec
9
+ # rake build doesn't work???
10
+ # sooo...
11
+ # ...gem push os-1.1.2.gem
4
12
 
5
13
  begin
6
14
  require 'jeweler'
@@ -14,10 +22,10 @@ begin
14
22
  gem.license = "MIT"
15
23
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
24
  # gem.add_development_dependency "fast_require"
17
- gem.add_development_dependency "rspec", ">= 2.0"
25
+ # gem.add_development_dependency "rspec", ">= 2.0"
18
26
  end
19
- rescue LoadError
20
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
27
+ rescue LoadError => e
28
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler #{e}"
21
29
  end
22
30
 
23
31
  require 'rspec/core/rake_task'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.4
data/lib/os.rb CHANGED
@@ -155,15 +155,15 @@ class OS
155
155
  end
156
156
  processes = wmi.ExecQuery("select * from win32_process where ProcessId = #{Process.pid}")
157
157
  memory_used = nil
158
- # only allow for one...
158
+ # only allow for one process...
159
159
  for process in processes
160
- raise if memory_used
160
+ raise "multiple processes same pid?" if memory_used
161
161
  memory_used = process.WorkingSetSize.to_i
162
162
  end
163
163
  memory_used
164
164
  end
165
165
  elsif OS.posix? # linux [though I've heard it works in OS X]
166
- `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes
166
+ `ps -o rss= -p #{Process.pid}`.to_i * 1024 # in kiloBytes
167
167
  else
168
168
  raise 'unknown rss for this platform'
169
169
  end
@@ -282,6 +282,21 @@ class OS
282
282
  end
283
283
  end
284
284
 
285
+ def self.parse_os_release
286
+ if OS.linux? && File.exist?('/etc/os-release')
287
+ output = {}
288
+
289
+ File.read('/etc/os-release').each_line do |line|
290
+ parsed_line = line.chomp.tr('"', '').split('=')
291
+ next if parsed_line.empty?
292
+ output[parsed_line[0].to_sym] = parsed_line[1]
293
+ end
294
+ output
295
+ else
296
+ raise "File /etc/os-release doesn't exists or not Linux"
297
+ end
298
+ end
299
+
285
300
  class << self
286
301
  alias :doze? :windows? # a joke name but I use it and like it :P
287
302
  alias :jruby? :java?
data/os.gemspec CHANGED
@@ -2,22 +2,22 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: os 1.0.0 ruby lib
5
+ # stub: os 1.1.4 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "os".freeze
9
- s.version = "1.0.1"
9
+ s.version = "1.1.4"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["rdp".freeze, "David McCullars".freeze]
14
- s.date = "2017-10-18"
14
+ s.date = "2021-11-07"
15
15
  s.description = "The OS gem allows for some useful and easy functions, like OS.windows? (=> true or false) OS.bits ( => 32 or 64) etc\"".freeze
16
16
  s.email = "rogerpack2005@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "ChangeLog",
19
19
  "LICENSE",
20
- "README.rdoc"
20
+ "README.md"
21
21
  ]
22
22
  s.files = [
23
23
  ".autotest",
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  "Gemfile",
27
27
  "Gemfile.lock",
28
28
  "LICENSE",
29
- "README.rdoc",
29
+ "README.md",
30
30
  "Rakefile",
31
31
  "VERSION",
32
32
  "autotest/discover.rb",
@@ -39,10 +39,25 @@ Gem::Specification.new do |s|
39
39
  ]
40
40
  s.homepage = "http://github.com/rdp/os".freeze
41
41
  s.licenses = ["MIT".freeze]
42
- s.rubygems_version = "2.5.2".freeze
42
+ s.rubygems_version = "2.7.6".freeze
43
43
  s.summary = "Simple and easy way to know if you're on windows or not (reliably), as well as how many bits the OS is, etc.".freeze
44
44
 
45
- s.add_development_dependency('rake', '~> 0.8')
46
- s.add_development_dependency('rspec', '~> 2.5.0')
47
- s.add_development_dependency('test-unit', '~> 3')
45
+ if s.respond_to? :specification_version then
46
+ s.specification_version = 4
47
+
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
+ s.add_development_dependency(%q<rake>.freeze, ["~> 0.8"])
50
+ s.add_development_dependency(%q<test-unit>.freeze, ["~> 3"])
51
+ s.add_development_dependency(%q<rspec>.freeze, [">= 2.0"])
52
+ else
53
+ s.add_dependency(%q<rake>.freeze, ["~> 0.8"])
54
+ s.add_dependency(%q<test-unit>.freeze, ["~> 3"])
55
+ s.add_dependency(%q<rspec>.freeze, [">= 2.0"])
56
+ end
57
+ else
58
+ s.add_dependency(%q<rake>.freeze, ["~> 0.8"])
59
+ s.add_dependency(%q<test-unit>.freeze, ["~> 3"])
60
+ s.add_dependency(%q<rspec>.freeze, [">= 2.0"])
61
+ end
48
62
  end
63
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: os
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - rdp
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-10-18 00:00:00.000000000 Z
12
+ date: 2021-11-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -26,33 +26,33 @@ dependencies:
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0.8'
28
28
  - !ruby/object:Gem::Dependency
29
- name: rspec
29
+ name: test-unit
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 2.5.0
34
+ version: '3'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 2.5.0
41
+ version: '3'
42
42
  - !ruby/object:Gem::Dependency
43
- name: test-unit
43
+ name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '3'
48
+ version: '2.0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '3'
55
+ version: '2.0'
56
56
  description: The OS gem allows for some useful and easy functions, like OS.windows?
57
57
  (=> true or false) OS.bits ( => 32 or 64) etc"
58
58
  email: rogerpack2005@gmail.com
@@ -61,7 +61,7 @@ extensions: []
61
61
  extra_rdoc_files:
62
62
  - ChangeLog
63
63
  - LICENSE
64
- - README.rdoc
64
+ - README.md
65
65
  files:
66
66
  - ".autotest"
67
67
  - ".document"
@@ -69,7 +69,7 @@ files:
69
69
  - Gemfile
70
70
  - Gemfile.lock
71
71
  - LICENSE
72
- - README.rdoc
72
+ - README.md
73
73
  - Rakefile
74
74
  - VERSION
75
75
  - autotest/discover.rb
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.5.2.3
102
+ rubygems_version: 2.7.6
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Simple and easy way to know if you're on windows or not (reliably), as well
data/README.rdoc DELETED
@@ -1,78 +0,0 @@
1
- The OS gem allows for some easy telling if you're on windows or not.
2
-
3
- require 'os'
4
-
5
- >> OS.windows?
6
- => true # or OS.doze?
7
-
8
- >> OS.bits
9
- => 32
10
-
11
- >> OS.java?
12
- => true # if you're running in jruby. Also OS.jruby?
13
-
14
- >> OS.ruby_bin
15
- => "c:\ruby18\bin\ruby.exe" # or "/usr/local/bin/ruby" or what not
16
-
17
- >> OS.posix?
18
- => false # true for linux, os x, cygwin
19
-
20
- >> OS.mac? # or OS.osx? or OS.x?
21
- => false
22
-
23
- >> OS.dev_null
24
- => "NUL" # or "/dev/null" depending on which platform
25
-
26
- >> OS.rss_bytes
27
- => 12300033 # number of rss bytes this process is using currently. Basically "total in memory footprint" (doesn't include RAM used by the process that's in swap/page file)
28
-
29
- >> puts OS.report
30
- ==> # a yaml report of helpful values
31
- ---
32
- arch: x86_64-darwin10.6.0
33
- target_os: darwin10.6.0
34
- target_vendor: apple
35
- target_cpu: x86_64
36
- target: x86_64-apple-darwin10.6.0
37
- host_os: darwin10.6.0
38
- host_vendor: apple
39
- host_cpu: i386
40
- host: i386-apple-darwin10.6.0
41
- RUBY_PLATFORM: x86_64-darwin10.6.0
42
-
43
- >> OS.cpu_count
44
- => 2 # number of cores, doesn't include hyper-threaded cores.
45
-
46
- >> OS.open_file_command
47
- => "start" # or open on mac, or xdg-open on linux (all designed to open a file)
48
-
49
- >> OS::Underlying.windows?
50
- => true # true for cygwin or MRI, whereas OS.windows? is false for cygwin
51
-
52
- >> OS::Underlying.bsd?
53
- => true # true for OS X
54
-
55
- >> OS::Underlying.docker?
56
- => false # true if running inside a Docker container
57
-
58
- If there are any other features you'd like, let me know, I'll do what I can to add them :)
59
-
60
- http://github.com/rdp/os for feedback et al
61
-
62
- Related projects:
63
-
64
- rubygems:
65
- Gem::Platform.local
66
- Gem.ruby
67
- The reason Gem::Platform.local felt wrong to me is that it treated cygwin as windows--which for most build environments, is wrong. Hence the creation of this gem.
68
-
69
- the facets gem (has a class similar to rubygems, above)
70
- require 'facets/platform'
71
- Platform.local
72
-
73
- the "platform" gem, itself (a different gem)
74
-
75
- FFI::Platform::OS
76
- http://rubydoc.info/github/ffi/ffi/master/FFI/Platform
77
-
78
- License: MIT (see LICENSE file)