hawatel_ps 0.1.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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +4 -0
  5. data/.yardopts +1 -0
  6. data/CONTRIBUTING.md +74 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +184 -0
  10. data/Rakefile +12 -0
  11. data/hawatel_ps.gemspec +29 -0
  12. data/lib/hawatel_ps/linux/proc_control.rb +75 -0
  13. data/lib/hawatel_ps/linux/proc_fetch.rb +405 -0
  14. data/lib/hawatel_ps/linux/proc_info.rb +53 -0
  15. data/lib/hawatel_ps/linux/proc_table.rb +124 -0
  16. data/lib/hawatel_ps/linux.rb +4 -0
  17. data/lib/hawatel_ps/shared/hawatelps_exception.rb +21 -0
  18. data/lib/hawatel_ps/version.rb +3 -0
  19. data/lib/hawatel_ps/windows/proc_control.rb +67 -0
  20. data/lib/hawatel_ps/windows/proc_fetch.rb +217 -0
  21. data/lib/hawatel_ps/windows/proc_info.rb +51 -0
  22. data/lib/hawatel_ps/windows/proc_table.rb +138 -0
  23. data/lib/hawatel_ps/windows/wmi/wmi_cli.rb +65 -0
  24. data/lib/hawatel_ps/windows/wmi/wmi_exception.rb +23 -0
  25. data/lib/hawatel_ps/windows/wmi/wmi_instance.rb +56 -0
  26. data/lib/hawatel_ps/windows.rb +5 -0
  27. data/lib/hawatel_ps.rb +34 -0
  28. data/spec/hawatel_ps_spec.rb +11 -0
  29. data/spec/linux/bdd/proc_spec.rb +54 -0
  30. data/spec/linux/factories/etc/passwd +32 -0
  31. data/spec/linux/factories/proc/1761/cmdline +0 -0
  32. data/spec/linux/factories/proc/1761/environ +0 -0
  33. data/spec/linux/factories/proc/1761/io +7 -0
  34. data/spec/linux/factories/proc/1761/limits +17 -0
  35. data/spec/linux/factories/proc/1761/stat +1 -0
  36. data/spec/linux/factories/proc/1761/status +46 -0
  37. data/spec/linux/factories/proc/meminfo +45 -0
  38. data/spec/linux/factories/proc/net/tcp +7 -0
  39. data/spec/linux/factories/proc/net/udp +8 -0
  40. data/spec/linux/factories/proc/uptime +1 -0
  41. data/spec/linux/support/stub_dir.rb +33 -0
  42. data/spec/linux/support/stub_file.rb +107 -0
  43. data/spec/linux/tdd/proc_fetch_spec.rb +107 -0
  44. data/spec/linux/tdd/proc_table_spec.rb +85 -0
  45. data/spec/shared/hawatelps_exception_spec.rb +13 -0
  46. data/spec/spec_helper.rb +16 -0
  47. data/spec/windows/bdd/proc_spec.rb +119 -0
  48. data/spec/windows/factories/proc_fetch_factorie.rb +76 -0
  49. data/spec/windows/tdd/proc_control_spec.rb +36 -0
  50. data/spec/windows/tdd/proc_fetch_spec.rb +73 -0
  51. data/spec/windows/tdd/proc_table_spec.rb +71 -0
  52. data/spec/windows/tdd/wmi_spec.rb +59 -0
  53. metadata +181 -0
@@ -0,0 +1,76 @@
1
+ FactoryGirl.define do
2
+ factory :win32_data, class:Hash do
3
+ proc_attrs {{
4
+ :availablevirtualsize => "3817041920",
5
+ :caption => "rubymine.exe",
6
+ :childs => [],
7
+ :commandline => "\"C:\\Program Files (x86)\\JetBrains\\RubyMine 8.0.3\\bin\\rubymine.exe\" ",
8
+ :cpupercent => "19.47",
9
+ :creationclassname => "Win32_Process",
10
+ :creationdate => "20160307091252.612549+060",
11
+ :cscreationclassname => "Win32_ComputerSystem",
12
+ :csname => "TEST",
13
+ :description => "rubymine.exe",
14
+ :domain => "CORP",
15
+ :executablepath => "C:\\Program Files (x86)\\JetBrains\\RubyMine 8.0.3\\bin\\rubymine.exe",
16
+ :handle => "9336",
17
+ :handlecount => "799",
18
+ :kernelmodetime => "3058906250",
19
+ :maximumworkingsetsize => "1380",
20
+ :memorypercent => "5.09",
21
+ :minimumworkingsetsize => "200",
22
+ :name => "rubymine.exe",
23
+ :oscreationclassname => "Win32_OperatingSystem",
24
+ :osname => "Microsoft Windows|C:\\WINDOWS|\\Device\\Harddisk0\\Partition2",
25
+ :otheroperationcount => "3662530",
26
+ :othertransfercount => "65362876",
27
+ :pagefaults => "404989",
28
+ :pagefileusage => "480264",
29
+ :parentprocessid => "9336",
30
+ :peakpagefileusage => "481136",
31
+ :peakvirtualsize => "997543936",
32
+ :peakworkingsetsize => "428776",
33
+ :priority => "8",
34
+ :privatepagecount => "491790336",
35
+ :processid => "9336",
36
+ :quotanonpagedpoolusage => "57",
37
+ :quotapagedpoolusage => "248",
38
+ :quotapeaknonpagedpoolusage => "92",
39
+ :quotapeakpagedpoolusage => "273",
40
+ :readoperationcount => "304603",
41
+ :readtransfercount => "306717431",
42
+ :sessionid => "9",
43
+ :threadcount => "56",
44
+ :user => "asmith",
45
+ :usermodetime => "94399218750",
46
+ :sid => "S-1-2-10-0000000000-1111111111-2222222222-1000",
47
+ :virtualsize => "982863872",
48
+ :windowsversion => "10.0.10586",
49
+ :workingsetsize => "437301248",
50
+ :writeoperationcount => "80408",
51
+ :writetransfercount => "450486611"}}
52
+
53
+ users {{
54
+ :accounttype => 512,
55
+ :caption => "CORP\\asmith",
56
+ :description => "Account for administering the computer/domain",
57
+ :disabled => "false",
58
+ :domain => "CORP",
59
+ 'domain' => "CORP",
60
+ :fullname => "",
61
+ :installdate => nil,
62
+ :localaccount => "true",
63
+ :lockout => "false",
64
+ :name => "asmith",
65
+ 'name' => "asmith",
66
+ :passwordchangeable => "true",
67
+ :passwordexpires => "false",
68
+ :passwordrequired => "true",
69
+ :sid => "S-1-2-10-0000000000-1111111111-2222222222-1000",
70
+ 'sid' => "S-1-2-10-0000000000-1111111111-2222222222-1000",
71
+ :sidtype => 1,
72
+ :status => "OK"
73
+ }}
74
+ initialize_with { attributes }
75
+ end
76
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe HawatelPS::Windows::ProcControl do
4
+ let(:win32_data) { FactoryGirl.build(:win32_data) }
5
+ let(:wmi_obj) { double 'WIN32OLE', :ole_respond_to? => 1, :Terminate => 0}
6
+
7
+ before do
8
+ allow(HawatelPS::Windows::ProcFetch).to receive(:get_process).and_return(Array.new([win32_data[:proc_attrs]]))
9
+ end
10
+
11
+ it '#state process is running' do
12
+ allow(Process).to receive(:kill).and_return(1)
13
+ process = HawatelPS::Windows::ProcTable.proc_table
14
+ expect(process[0].status).to eq("running")
15
+ end
16
+
17
+ it '#state process is not running' do
18
+ allow(Process).to receive(:kill).and_raise(Errno::ESRCH)
19
+ process = HawatelPS::Windows::ProcTable.proc_table
20
+ expect(process[0].status).to eq("not running")
21
+ end
22
+
23
+ it '#terminate process successful' do
24
+ allow(@proc_attrs).to receive(:Terminate).and_return(0)
25
+ allow(@proc_attrs).to receive(:ole_respond_to?).and_return(1)
26
+ process = HawatelPS::Windows::ProcTable.proc_table
27
+ expect(process[0].terminate).to eq(0)
28
+ end
29
+
30
+ it '#terminate process no successful' do
31
+ allow(@proc_attrs).to receive(:Terminate).and_raise(WIN32OLERuntimeError)
32
+ allow(@proc_attrs).to receive(:ole_respond_to?).and_return(1)
33
+ process = HawatelPS::Windows::ProcTable.proc_table
34
+ expect(process[0].terminate).to eq(1)
35
+ end
36
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+ require 'ostruct'
3
+
4
+ describe HawatelPS::Windows::ProcFetch do
5
+ let(:win32_data) { FactoryGirl.build(:win32_data) }
6
+ let(:wmi_cli) { double 'HawatelPS::Windows::WmiCli' }
7
+ let(:native_wmi_obj) { double 'WIN32OLE'}
8
+ let(:wmi_object) { double 'HawatelPS::Windows::WmiCli::Instance',
9
+ :properties => win32_data[:proc_attrs],
10
+ :wmi_ole_object => native_wmi_obj}
11
+ let(:user_sid) { prepare_owner_sid_as_struct(win32_data[:users]) }
12
+ let(:user_struct) { prepare_user_info_as_struct(win32_data[:users]) }
13
+ let(:system_info_struct) { OpenStruct.new(:properties => {:totalvisiblememorysize => "8388608"})}
14
+ let(:system_idle_struct) { OpenStruct.new(:properties => {:kernelmodetime => "500592031250"})}
15
+
16
+ before do
17
+ allow(HawatelPS::Windows::WmiCli).to receive(:new).and_return(wmi_cli)
18
+ win32_data[:proc_attrs][:wmi_object] = native_wmi_obj
19
+
20
+ allow(wmi_cli).to receive(:query).with('SELECT * FROM Win32_Process').and_return(Array.new([wmi_object]))
21
+ allow(wmi_cli).to receive(:query).with('SELECT * FROM Win32_UserAccount').and_return(Array.new([user_struct]))
22
+ allow(wmi_cli).to receive(:query).with('SELECT * FROM Win32_OperatingSystem').and_return(Array.new([system_info_struct]))
23
+ allow(wmi_cli).to receive(:query).with("SELECT KernelModeTime FROM Win32_Process WHERE ProcessId = '0'").and_return(Array.new([system_idle_struct]))
24
+
25
+ allow(wmi_object).to receive(:execMethod).with('GetAvailableVirtualSize').and_return(
26
+ OpenStruct.new(:AvailableVirtualSize => win32_data[:proc_attrs][:availablevirtualsize]))
27
+ end
28
+
29
+ it '#get_process' do
30
+ allow(wmi_object).to receive(:execMethod).with('GetOwnerSid').and_return(user_sid)
31
+
32
+ proc_table = HawatelPS::Windows::ProcFetch.get_process
33
+
34
+ expect(proc_table[0]).to eq(win32_data[:proc_attrs])
35
+ end
36
+
37
+ it '#get_owner_sid raise error' do
38
+ allow(wmi_object).to receive(:execMethod).with('GetOwnerSid').and_raise(HawatelPS::Windows::WmiCliException)
39
+ proc_table = HawatelPS::Windows::ProcFetch.get_process
40
+ expect(proc_table[0][:sid]).to be_nil
41
+ end
42
+
43
+ it '#get_avail_virtual_size raise error' do
44
+ allow(wmi_object).to receive(:execMethod).with('GetOwnerSid').and_return(user_sid)
45
+ allow(wmi_object).to receive(:execMethod).with('GetAvailableVirtualSize').and_raise(HawatelPS::Windows::WmiCliException)
46
+ proc_table = HawatelPS::Windows::ProcFetch.get_process
47
+ expect(proc_table[0][:availablevirtualsize]).to be_nil
48
+ end
49
+
50
+ it '#cpu_percent return 0' do
51
+ allow(wmi_object).to receive(:execMethod).with('GetOwnerSid').and_return(user_sid)
52
+ allow(HawatelPS::Windows::ProcFetch).to receive(:cpu_time).and_return(0)
53
+
54
+ proc_table = HawatelPS::Windows::ProcFetch.get_process
55
+
56
+ expect(proc_table[0][:cpupercent]).to eq("0.0")
57
+ end
58
+
59
+ end
60
+
61
+ private
62
+
63
+ def prepare_user_info_as_struct(user_info)
64
+ user_struct = OpenStruct.new
65
+ user_struct.properties = user_info
66
+ return user_struct
67
+ end
68
+
69
+ def prepare_owner_sid_as_struct(user_info)
70
+ sid_struct = OpenStruct.new
71
+ sid_struct.Sid = user_info[:sid]
72
+ return sid_struct
73
+ end
@@ -0,0 +1,71 @@
1
+ require 'spec_helper'
2
+
3
+ describe HawatelPS::Windows::ProcTable do
4
+ let(:win32_data) { FactoryGirl.build(:win32_data) }
5
+
6
+ before do
7
+ allow(HawatelPS::Windows::ProcFetch).to receive(:get_process).and_return(Array.new([win32_data[:proc_attrs]]))
8
+ end
9
+
10
+
11
+ it "return all process instances" do
12
+ process = HawatelPS::Windows::ProcTable.proc_table
13
+ expect(process[0].processid).to match(/^[0-9]+$/)
14
+ end
15
+
16
+ it "return proc attributes" do
17
+ process = HawatelPS::Windows::ProcTable.proc_table
18
+ expect(process[0].each).to be_a(Enumerator)
19
+ end
20
+
21
+ it "search process by name" do
22
+ process = HawatelPS::Windows::ProcTable.search_by_name('rubymine.exe')
23
+ expect(process[0].processid).to match(/^[0-9]+$/)
24
+ end
25
+
26
+ it "search process by name using regex" do
27
+ process = HawatelPS::Windows::ProcTable.search_by_name('/^ruby/')
28
+ expect(process[0].processid).to match(/^[0-9]*$/)
29
+ end
30
+
31
+ it "search process by name using regex with raise error" do
32
+ process = HawatelPS::Windows::ProcTable.search_by_name('/^jasdfsdfva/')
33
+ expect { process[0].pid }.to raise_error(NoMethodError)
34
+ end
35
+
36
+ it "search process by pid" do
37
+ process = HawatelPS::Windows::ProcTable.search_by_pid(9336)
38
+ expect(process.processid).to eq('9336')
39
+ end
40
+
41
+ it "search process by condition == " do
42
+ process = HawatelPS::Windows::ProcTable.search_by_condition(:attr => 'processid', :oper => '==', :value => '9336')
43
+ expect(process[0].processid).to eq('9336')
44
+ end
45
+
46
+ it "search process by condition <= " do
47
+ process = HawatelPS::Windows::ProcTable.search_by_condition(:attr => 'workingsetsize', :oper => '<=', :value => '437301248')
48
+ expect(process[0].processid).to match(/^[0-9]*$/)
49
+ end
50
+
51
+ it "search process by condition >= " do
52
+ process = HawatelPS::Windows::ProcTable.search_by_condition(:attr => 'workingsetsize', :oper => '>=', :value => '200000')
53
+ expect(process[0].processid).to match(/^[0-9]*$/)
54
+ end
55
+
56
+ it "search process by condition != " do
57
+ process = HawatelPS::Windows::ProcTable.search_by_condition(:attr => 'workingsetsize', :oper => '!=', :value => '200000')
58
+ expect(process[0].processid).to match(/^[0-9]*$/)
59
+ end
60
+
61
+ it "search process by condition > " do
62
+ process = HawatelPS::Windows::ProcTable.search_by_condition(:attr => 'workingsetsize', :oper => '>', :value => '200000')
63
+ expect(process[0].processid).to match(/^[0-9]*$/)
64
+ end
65
+
66
+ it "search process by condition < " do
67
+ process = HawatelPS::Windows::ProcTable.search_by_condition(:attr => 'workingsetsize', :oper => '<', :value => '537301248')
68
+ expect(process[0].processid).to match(/^[0-9]*$/)
69
+ end
70
+
71
+ end
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+ require 'ostruct'
3
+
4
+ describe HawatelPS::Windows::WmiCli do
5
+ let(:win32_data) { FactoryGirl.build(:win32_data) }
6
+ let(:wmi_ole) { double 'WIN32OLE', :properties_ => Array.new([OpenStruct.new(:name => 'name', :value => 'rubymine')])}
7
+ let(:instance) { double 'HawatelPS::Windows::WmiCli::Instance' }
8
+
9
+ before do
10
+ allow(WIN32OLE).to receive(:new).with('WbemScripting.SWbemLocator').and_return(wmi_ole)
11
+ end
12
+
13
+ it 'query results success' do
14
+ allow_connect_server
15
+ allow(wmi_ole).to receive(:execMethod_).with('GetOwner')
16
+ .and_return(OpenStruct.new(:User => 'asmith', :Domain => 'test'))
17
+
18
+ obj = HawatelPS::Windows::WmiCli.new.query('SELECT * FROM Win32_Process')[0]
19
+ expect(obj.class).to eq(HawatelPS::Windows::WmiCli::Instance)
20
+ expect(obj.wmi_ole_object).to eq(wmi_ole)
21
+ expect(obj.properties[:name]).to eq('rubymine')
22
+
23
+ owner = obj.execMethod('GetOwner')
24
+ expect(owner.User).to eq('asmith')
25
+ expect(owner.Domain).to eq('test')
26
+ end
27
+
28
+ it 'query raise exception' do
29
+ allow(wmi_ole).to receive(:ConnectServer).and_return(wmi_ole)
30
+ allow(wmi_ole).to receive(:ExecQuery).with('SELECT * FROM Win32_ERROR').and_raise(WIN32OLERuntimeError)
31
+
32
+ expect{HawatelPS::Windows::WmiCli.new.query('SELECT * FROM Win32_ERROR')}
33
+ .to raise_error(HawatelPS::Windows::WmiCliException)
34
+ end
35
+
36
+ it 'ConnectServer raise exception' do
37
+ allow(wmi_ole).to receive(:ConnectServer).and_raise(WIN32OLERuntimeError)
38
+
39
+ expect{HawatelPS::Windows::WmiCli.new.query('SELECT * FROM Win32_Process')}
40
+ .to raise_error(HawatelPS::Windows::WmiCliException)
41
+ end
42
+
43
+ it '#execMethod raise exception' do
44
+ allow_connect_server
45
+ allow(wmi_ole).to receive(:execMethod_).with('GetOwner').and_raise(WIN32OLERuntimeError)
46
+
47
+ obj = HawatelPS::Windows::WmiCli.new.query('SELECT * FROM Win32_Process')[0]
48
+ expect { obj.execMethod('GetOwner') }.to raise_error(HawatelPS::Windows::WmiCliException)
49
+ end
50
+
51
+ private
52
+
53
+ def allow_connect_server
54
+ allow(wmi_ole).to receive(:ExecQuery).with('SELECT * FROM Win32_Process').and_return(Array.new([wmi_ole]))
55
+ allow(wmi_ole).to receive(:ConnectServer).and_return(wmi_ole)
56
+ allow(wmi_ole).to receive(:ole_respond_to?).and_return(true)
57
+ end
58
+
59
+ end
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hawatel_ps
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Przemyslaw Mantaj
8
+ - Daniel Iwaniuk
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-03-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: factory_girl
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: bundler
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.10'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.10'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '10.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '10.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ description: |-
71
+ HawatelPS (hawatel_ps) is a Ruby gem for retrieving information about running processes. It is easy to use and you can get useful information about a process.
72
+ You can terminate, suspend, resume and check status of the process on Linxu platform. On Windows platform you can terminate and check state of the process.
73
+ email:
74
+ - przemyslaw.mantaj@hawatel.com
75
+ - daniel.iwaniuk@hawatel.com
76
+ executables: []
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - ".gitignore"
81
+ - ".rspec"
82
+ - ".travis.yml"
83
+ - ".yardopts"
84
+ - CONTRIBUTING.md
85
+ - Gemfile
86
+ - LICENSE.txt
87
+ - README.md
88
+ - Rakefile
89
+ - hawatel_ps.gemspec
90
+ - lib/hawatel_ps.rb
91
+ - lib/hawatel_ps/linux.rb
92
+ - lib/hawatel_ps/linux/proc_control.rb
93
+ - lib/hawatel_ps/linux/proc_fetch.rb
94
+ - lib/hawatel_ps/linux/proc_info.rb
95
+ - lib/hawatel_ps/linux/proc_table.rb
96
+ - lib/hawatel_ps/shared/hawatelps_exception.rb
97
+ - lib/hawatel_ps/version.rb
98
+ - lib/hawatel_ps/windows.rb
99
+ - lib/hawatel_ps/windows/proc_control.rb
100
+ - lib/hawatel_ps/windows/proc_fetch.rb
101
+ - lib/hawatel_ps/windows/proc_info.rb
102
+ - lib/hawatel_ps/windows/proc_table.rb
103
+ - lib/hawatel_ps/windows/wmi/wmi_cli.rb
104
+ - lib/hawatel_ps/windows/wmi/wmi_exception.rb
105
+ - lib/hawatel_ps/windows/wmi/wmi_instance.rb
106
+ - spec/hawatel_ps_spec.rb
107
+ - spec/linux/bdd/proc_spec.rb
108
+ - spec/linux/factories/etc/passwd
109
+ - spec/linux/factories/proc/1761/cmdline
110
+ - spec/linux/factories/proc/1761/environ
111
+ - spec/linux/factories/proc/1761/io
112
+ - spec/linux/factories/proc/1761/limits
113
+ - spec/linux/factories/proc/1761/stat
114
+ - spec/linux/factories/proc/1761/status
115
+ - spec/linux/factories/proc/meminfo
116
+ - spec/linux/factories/proc/net/tcp
117
+ - spec/linux/factories/proc/net/udp
118
+ - spec/linux/factories/proc/uptime
119
+ - spec/linux/support/stub_dir.rb
120
+ - spec/linux/support/stub_file.rb
121
+ - spec/linux/tdd/proc_fetch_spec.rb
122
+ - spec/linux/tdd/proc_table_spec.rb
123
+ - spec/shared/hawatelps_exception_spec.rb
124
+ - spec/spec_helper.rb
125
+ - spec/windows/bdd/proc_spec.rb
126
+ - spec/windows/factories/proc_fetch_factorie.rb
127
+ - spec/windows/tdd/proc_control_spec.rb
128
+ - spec/windows/tdd/proc_fetch_spec.rb
129
+ - spec/windows/tdd/proc_table_spec.rb
130
+ - spec/windows/tdd/wmi_spec.rb
131
+ homepage: http://github.com/hawatel/hawatel_ps
132
+ licenses:
133
+ - MIT
134
+ metadata: {}
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '1.9'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ requirements: []
150
+ rubyforge_project:
151
+ rubygems_version: 2.4.5.1
152
+ signing_key:
153
+ specification_version: 4
154
+ summary: Ruby gem for retrieving information about running processes
155
+ test_files:
156
+ - spec/hawatel_ps_spec.rb
157
+ - spec/linux/bdd/proc_spec.rb
158
+ - spec/linux/factories/etc/passwd
159
+ - spec/linux/factories/proc/1761/cmdline
160
+ - spec/linux/factories/proc/1761/environ
161
+ - spec/linux/factories/proc/1761/io
162
+ - spec/linux/factories/proc/1761/limits
163
+ - spec/linux/factories/proc/1761/stat
164
+ - spec/linux/factories/proc/1761/status
165
+ - spec/linux/factories/proc/meminfo
166
+ - spec/linux/factories/proc/net/tcp
167
+ - spec/linux/factories/proc/net/udp
168
+ - spec/linux/factories/proc/uptime
169
+ - spec/linux/support/stub_dir.rb
170
+ - spec/linux/support/stub_file.rb
171
+ - spec/linux/tdd/proc_fetch_spec.rb
172
+ - spec/linux/tdd/proc_table_spec.rb
173
+ - spec/shared/hawatelps_exception_spec.rb
174
+ - spec/spec_helper.rb
175
+ - spec/windows/bdd/proc_spec.rb
176
+ - spec/windows/factories/proc_fetch_factorie.rb
177
+ - spec/windows/tdd/proc_control_spec.rb
178
+ - spec/windows/tdd/proc_fetch_spec.rb
179
+ - spec/windows/tdd/proc_table_spec.rb
180
+ - spec/windows/tdd/wmi_spec.rb
181
+ has_rdoc: