proc_index 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +6 -0
- data/.rdoc_options +16 -0
- data/.rspec +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -0
- data/ChangeLog.md +4 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +20 -0
- data/README.md +25 -0
- data/Rakefile +36 -0
- data/lib/proc_index/container.rb +50 -0
- data/lib/proc_index/util.rb +6 -0
- data/lib/proc_index/version.rb +3 -0
- data/lib/proc_index.rb +117 -0
- data/proc_index.gemspec +42 -0
- data/spec/proc_index/container_spec.rb +21 -0
- data/spec/proc_index_spec.rb +20 -0
- data/spec/spec_helper.rb +4 -0
- metadata +198 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8c2433eaf5d0ea9e807bd35f19d08c6e23795c19
|
4
|
+
data.tar.gz: 5ef96d0299a739a15976c479fba44c1ef5923178
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: de8c69313aa18e402612bde4f48fe596a36454e88757c160f253faa86157bc2e7e32fd3e19bf272d6832e1a0aadfbfe90de08612edbf6d51aaa0ee18f03ffe88
|
7
|
+
data.tar.gz: e018530d9ed7f2b775dc6753e229785c1e8cbbdb5f0d254032c7e88859a6fe79bcd6e1e0ecfe48b3464da4d436ce21306b994f55ce6bd46635064f667135b8c4
|
data/.document
ADDED
data/.gitignore
ADDED
data/.rdoc_options
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
--- !ruby/object:RDoc::Options
|
2
|
+
encoding: UTF-8
|
3
|
+
static_path: []
|
4
|
+
rdoc_include:
|
5
|
+
- .
|
6
|
+
charset: UTF-8
|
7
|
+
exclude:
|
8
|
+
hyperlink_all: false
|
9
|
+
line_numbers: false
|
10
|
+
main_page: README.md
|
11
|
+
markup: markdown
|
12
|
+
show_hash: false
|
13
|
+
tab_width: 8
|
14
|
+
title: proc_index Documentation
|
15
|
+
visibility: :protected
|
16
|
+
webcvs:
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour --format documentation
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
proc-index
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.0
|
data/.travis.yml
ADDED
data/ChangeLog.md
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2015 Alex Manelis
|
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,25 @@
|
|
1
|
+
# ProcIndex
|
2
|
+
Simple ORM for your process lists. Currently only supported on OS X or Unix based systems (and even that could be limited).
|
3
|
+
|
4
|
+
### Basic Usage
|
5
|
+
Printing all processes:
|
6
|
+
|
7
|
+
$> data = ProcIndex.ps
|
8
|
+
...
|
9
|
+
$> data.body
|
10
|
+
=> [<Hashie::Mash command="/System/Library/CoreServices/Dock.app/Contents/MacOS/Dock" cpu="36.0" mem="0.4" pid="354" rss="35780" started="Sat01PM" stat="U" time="8:08.24" tt="??" user="alexmanelis" vsz="2789684">...]
|
11
|
+
|
12
|
+
Searching by command:
|
13
|
+
|
14
|
+
$> results = ProcIndex.search('electron')
|
15
|
+
...
|
16
|
+
=> [#<Hashie::Mash command="/Users/alexmanelis/Development/tmp/node_modules/nightmare/node_modules/electron-prebuilt/dist/Electron.app/Contents/MacOS/Electron" cpu="0.1" mem="0.6" pid="44558" rss="49672" started="1:04PM" stat="S" time="0:00.42" tt="??" user="alexmanelis" vsz="3402532">
|
17
|
+
|
18
|
+
Kill all running processes from search results:
|
19
|
+
|
20
|
+
$> ...
|
21
|
+
$> ProcIndex.kill_by_results(results)
|
22
|
+
=> [1, 1, 1]
|
23
|
+
|
24
|
+
More coming soon...
|
25
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'bundler/setup'
|
7
|
+
rescue LoadError => e
|
8
|
+
abort e.message
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'rake'
|
12
|
+
|
13
|
+
require 'awesome_print'
|
14
|
+
AwesomePrint.irb!
|
15
|
+
|
16
|
+
require 'rubygems/tasks'
|
17
|
+
Gem::Tasks.new
|
18
|
+
|
19
|
+
require 'rdoc/task'
|
20
|
+
RDoc::Task.new
|
21
|
+
task doc: :rdoc
|
22
|
+
|
23
|
+
require 'rspec/core/rake_task'
|
24
|
+
RSpec::Core::RakeTask.new
|
25
|
+
|
26
|
+
task test: :spec
|
27
|
+
task default: :spec
|
28
|
+
|
29
|
+
directory '.'
|
30
|
+
task :dgem do
|
31
|
+
system 'rm *.gem'
|
32
|
+
end
|
33
|
+
|
34
|
+
task :bgem do
|
35
|
+
system 'gem build *.gemspec'
|
36
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module ProcIndex
|
2
|
+
class NoDataError < StandardError
|
3
|
+
end
|
4
|
+
|
5
|
+
class Container
|
6
|
+
include Enumerable
|
7
|
+
|
8
|
+
attr_accessor :body, :key
|
9
|
+
|
10
|
+
def initialize(fields, data)
|
11
|
+
@fields = fields
|
12
|
+
@data = data
|
13
|
+
|
14
|
+
format_data!
|
15
|
+
end
|
16
|
+
|
17
|
+
def fields
|
18
|
+
@fields
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def format_data!
|
23
|
+
raise NoDataError.new('No data has been passed') unless @data
|
24
|
+
|
25
|
+
# Clear out new line characters and split by lines
|
26
|
+
@data = @data.strip.split(/[\r\n]+/)
|
27
|
+
|
28
|
+
# The first line of the data object is the key
|
29
|
+
self.key = @data[0].gsub(/%/, '').strip.squeeze(' ').downcase.split(' ')
|
30
|
+
|
31
|
+
# Sub down the content with no spaces
|
32
|
+
@data.each_with_index { |item, ndx| @data[ndx] = @data[ndx].strip.squeeze(' ') }
|
33
|
+
|
34
|
+
# Assign all the values to their cooresponding keys from the fields
|
35
|
+
temp_body = []
|
36
|
+
@data.each_with_index do |row, ndx|
|
37
|
+
next if ndx == 0
|
38
|
+
|
39
|
+
holder = {}
|
40
|
+
row.split(' ', @fields.count).each_with_index do |value, ndx2|
|
41
|
+
holder[self.key[ndx2]] = value
|
42
|
+
end
|
43
|
+
|
44
|
+
temp_body << Hashie::Mash.new(holder)
|
45
|
+
end
|
46
|
+
|
47
|
+
self.body = temp_body
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/proc_index.rb
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'proc_index/version'
|
2
|
+
require 'proc_index/container'
|
3
|
+
|
4
|
+
require 'open3'
|
5
|
+
require 'hashie'
|
6
|
+
require 'fuzzy_match'
|
7
|
+
|
8
|
+
module ProcIndex
|
9
|
+
class Error < StandardError; end
|
10
|
+
|
11
|
+
#
|
12
|
+
# Base fields on OS X Process table -> `ps aux`
|
13
|
+
@fields = [
|
14
|
+
'user',
|
15
|
+
'pid',
|
16
|
+
'cpu',
|
17
|
+
'mem',
|
18
|
+
'vsz',
|
19
|
+
'rss',
|
20
|
+
'tt',
|
21
|
+
'stat',
|
22
|
+
'started',
|
23
|
+
'time',
|
24
|
+
'command'
|
25
|
+
]
|
26
|
+
|
27
|
+
Fields = @fields
|
28
|
+
ProcTableStruct = Hash[ *@fields.collect { |v| [ v, {position: 0} ] }.flatten ]
|
29
|
+
|
30
|
+
@states = [
|
31
|
+
{code: 'R', desc: 'Running or runnable (on run queue)'},
|
32
|
+
{code: 'D', desc: 'Uninterruptible sleep (usually IO)'},
|
33
|
+
{code: 'S', desc: 'Interruptible sleep (waiting for an event to complete)'},
|
34
|
+
{code: 'Z', desc: 'Defunct/zombie, terminated but not reaped by its parent'},
|
35
|
+
{code: 'T', desc: 'Stopped, either by a job control signal or because it is being traced'}
|
36
|
+
]
|
37
|
+
|
38
|
+
at_exit do
|
39
|
+
puts 'Exiting' if $!
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# self.kill_by_results
|
44
|
+
#
|
45
|
+
def self.kill_by_results(results)
|
46
|
+
results.collect { |node| Process.kill 9, node.pid.to_i }
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# self.ps
|
51
|
+
#
|
52
|
+
def self.ps(pid=nil)
|
53
|
+
array = block_given? ? nil : []
|
54
|
+
struct = nil
|
55
|
+
|
56
|
+
raise TypeError unless pid.is_a?(Fixnum) if pid
|
57
|
+
|
58
|
+
pid.nil? ? get_process_list : get_process_list(pid: pid)
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# self.search
|
63
|
+
# -> (pid: 10238492, command: 'spring isofun rails')
|
64
|
+
# -> (pid: 382973, user: 'alexmanelis')
|
65
|
+
# -> ('spring rails server')
|
66
|
+
#
|
67
|
+
def self.search(args)
|
68
|
+
raise ArgumentError.new("Invalid arguments passed: #{args.inspect}") if args.nil?
|
69
|
+
|
70
|
+
process_list = get_process_list
|
71
|
+
process_body = process_list.body
|
72
|
+
|
73
|
+
matcher_instances = []
|
74
|
+
case args.class.to_s
|
75
|
+
when 'Hash'
|
76
|
+
args.map do |k, v|
|
77
|
+
matcher_instances << {instance: FuzzyMatch.new(process_body, read: k), query: v}
|
78
|
+
end
|
79
|
+
when 'String'
|
80
|
+
# matcher_instances << {instance: FuzzyMatch.new(process_body, read: :command),
|
81
|
+
# query: args.strip.downcase}
|
82
|
+
else
|
83
|
+
raise ArgumentError.new("Invalid search args: #{args.inspect} -> #{args.class.inspect}")
|
84
|
+
end
|
85
|
+
|
86
|
+
if matcher_instances.empty?
|
87
|
+
results = process_body.select { |node| node.command.include?(args.downcase.strip) }
|
88
|
+
else
|
89
|
+
results = matcher_instances.inject([]) do |result, instance|
|
90
|
+
result << instance[:instance].find(instance[:query])
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
results
|
95
|
+
end
|
96
|
+
|
97
|
+
private
|
98
|
+
|
99
|
+
#
|
100
|
+
# self.get_process_list
|
101
|
+
#
|
102
|
+
def self.get_process_list
|
103
|
+
yield if block_given?
|
104
|
+
|
105
|
+
begin
|
106
|
+
stdin, stdout, stderr = Open3.popen3("ps aux")
|
107
|
+
|
108
|
+
stdout = stdout.read
|
109
|
+
stderr = stderr.read
|
110
|
+
rescue => e
|
111
|
+
raise StandardError.new("Error opening stream from process list -> #{e}")
|
112
|
+
end
|
113
|
+
|
114
|
+
ProcIndex::Container.new(@fields, stdout)
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
data/proc_index.gemspec
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'proc_index/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |gem|
|
8
|
+
gem.name = "proc_index"
|
9
|
+
gem.version = ProcIndex::VERSION
|
10
|
+
gem.summary = "Process table ORM"
|
11
|
+
gem.description = "Map and search all your processes."
|
12
|
+
gem.license = "MIT"
|
13
|
+
gem.authors = ["Alex Manelis"]
|
14
|
+
gem.email = "amanelis@gmail.com"
|
15
|
+
gem.homepage = "https://rubygems.org/gems/proc_index"
|
16
|
+
|
17
|
+
gem.files = `git ls-files`.split($/)
|
18
|
+
|
19
|
+
`git submodule --quiet foreach --recursive pwd`.split($/).each do |submodule|
|
20
|
+
submodule.sub!("#{Dir.pwd}/",'')
|
21
|
+
|
22
|
+
Dir.chdir(submodule) do
|
23
|
+
`git ls-files`.split($/).map do |subpath|
|
24
|
+
gem.files << File.join(submodule,subpath)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
29
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
30
|
+
gem.require_paths = ['lib']
|
31
|
+
|
32
|
+
gem.add_dependency 'awesome_print', '1.6.1'
|
33
|
+
gem.add_dependency 'fuzzy_match', '2.1.0'
|
34
|
+
gem.add_runtime_dependency 'hashie', '~> 3.4', '>= 3.4.3'
|
35
|
+
gem.add_development_dependency 'pry', '~> 0.10.3'
|
36
|
+
|
37
|
+
gem.add_development_dependency 'bundler', '~> 1.10'
|
38
|
+
gem.add_development_dependency 'rake', '~> 10.0'
|
39
|
+
gem.add_development_dependency 'rdoc', '~> 4.0'
|
40
|
+
gem.add_development_dependency 'rspec', '~> 3.0'
|
41
|
+
gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
|
42
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'proc_index'
|
3
|
+
|
4
|
+
require 'open3'
|
5
|
+
|
6
|
+
describe ProcIndex::Container do
|
7
|
+
context '.new' do
|
8
|
+
let(:data) {
|
9
|
+
stdin, stdout, stderr = Open3.popen3("ps aux")
|
10
|
+
data = stdout.read
|
11
|
+
data
|
12
|
+
}
|
13
|
+
|
14
|
+
subject { ProcIndex::Container.new(ProcIndex::Fields, data) }
|
15
|
+
|
16
|
+
it { expect(subject).to_not be_nil }
|
17
|
+
it { expect(subject.body).to_not be_nil }
|
18
|
+
it { expect(subject.key).to_not be_nil }
|
19
|
+
it { expect(subject.fields).to eq(ProcIndex::Fields) }
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'proc_index'
|
3
|
+
|
4
|
+
describe ProcIndex do
|
5
|
+
describe '.ps' do
|
6
|
+
context 'returns an instance of ProcIndex::Container' do
|
7
|
+
subject { ProcIndex.ps }
|
8
|
+
it { expect(subject).to_not be_nil }
|
9
|
+
it { expect(subject.body).to_not be_nil }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '.search' do
|
14
|
+
context 'returns a collection of Hashie::Mash objects' do
|
15
|
+
subject { ProcIndex.search('ruby') }
|
16
|
+
it { expect(subject).to_not be_nil }
|
17
|
+
it { expect(subject.count).to be > 1}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,198 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: proc_index
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alex Manelis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: awesome_print
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.6.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: fuzzy_match
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.1.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.1.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: hashie
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.4'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 3.4.3
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '3.4'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 3.4.3
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: pry
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.10.3
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.10.3
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: bundler
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1.10'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '1.10'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rake
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '10.0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '10.0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rdoc
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '4.0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '4.0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rspec
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '3.0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3.0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubygems-tasks
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0.2'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0.2'
|
145
|
+
description: Map and search all your processes.
|
146
|
+
email: amanelis@gmail.com
|
147
|
+
executables: []
|
148
|
+
extensions: []
|
149
|
+
extra_rdoc_files: []
|
150
|
+
files:
|
151
|
+
- ".document"
|
152
|
+
- ".gitignore"
|
153
|
+
- ".rdoc_options"
|
154
|
+
- ".rspec"
|
155
|
+
- ".ruby-gemset"
|
156
|
+
- ".ruby-version"
|
157
|
+
- ".travis.yml"
|
158
|
+
- ChangeLog.md
|
159
|
+
- Gemfile
|
160
|
+
- LICENSE.txt
|
161
|
+
- README.md
|
162
|
+
- Rakefile
|
163
|
+
- lib/proc_index.rb
|
164
|
+
- lib/proc_index/container.rb
|
165
|
+
- lib/proc_index/util.rb
|
166
|
+
- lib/proc_index/version.rb
|
167
|
+
- proc_index.gemspec
|
168
|
+
- spec/proc_index/container_spec.rb
|
169
|
+
- spec/proc_index_spec.rb
|
170
|
+
- spec/spec_helper.rb
|
171
|
+
homepage: https://rubygems.org/gems/proc_index
|
172
|
+
licenses:
|
173
|
+
- MIT
|
174
|
+
metadata: {}
|
175
|
+
post_install_message:
|
176
|
+
rdoc_options: []
|
177
|
+
require_paths:
|
178
|
+
- lib
|
179
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
184
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
requirements: []
|
190
|
+
rubyforge_project:
|
191
|
+
rubygems_version: 2.4.5
|
192
|
+
signing_key:
|
193
|
+
specification_version: 4
|
194
|
+
summary: Process table ORM
|
195
|
+
test_files:
|
196
|
+
- spec/proc_index/container_spec.rb
|
197
|
+
- spec/proc_index_spec.rb
|
198
|
+
- spec/spec_helper.rb
|