trick_bag 0.35.0 → 0.36.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/RELEASE_NOTES.md
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'os'
|
|
2
|
+
|
|
3
|
+
module TrickBag
|
|
4
|
+
|
|
5
|
+
# Convenience methods for dealing with Posix-compliant systems.
|
|
6
|
+
module System
|
|
7
|
+
|
|
8
|
+
module_function
|
|
9
|
+
|
|
10
|
+
# Calls lsof to return information about all files *open by this process*.
|
|
11
|
+
# Output returned is lsof's output, but after calling split("\n") to create
|
|
12
|
+
# an array of the result strings.
|
|
13
|
+
#@param options additional options to the lsof command line, if any, defaults to ''
|
|
14
|
+
def lsof(options = '')
|
|
15
|
+
raise "Cannot be called on a non-Posix operating system." unless OS.posix?
|
|
16
|
+
raise "lsof command not found" unless command_available?('lsof')
|
|
17
|
+
`lsof #{options} -p #{Process.pid}`.split("\n")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def command_available?(command)
|
|
22
|
+
raise "Cannot be called on a non-Posix operating system." unless OS.posix?
|
|
23
|
+
system("which #{command} > /dev/null")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/trick_bag/version.rb
CHANGED
|
@@ -3,6 +3,7 @@ require 'tempfile'
|
|
|
3
3
|
|
|
4
4
|
require_relative '../../spec_helper'
|
|
5
5
|
require 'trick_bag/enumerables/file_line_reader'
|
|
6
|
+
require 'trick_bag/system'
|
|
6
7
|
|
|
7
8
|
module TrickBag
|
|
8
9
|
module Enumerables
|
|
@@ -31,7 +32,7 @@ nbc.com
|
|
|
31
32
|
@tempfile.unlink
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
let(:can_run_lsof?) { OS.posix? &&
|
|
35
|
+
let(:can_run_lsof?) { OS.posix? && System.command_available?('lsof') }
|
|
35
36
|
|
|
36
37
|
subject { FileLineReader.new(@tempfile.path) }
|
|
37
38
|
|
|
@@ -96,13 +97,10 @@ nbc.com
|
|
|
96
97
|
pending "This test can only be run on a Posix-based OS having the 'lsof' command."
|
|
97
98
|
end
|
|
98
99
|
|
|
99
|
-
get_lsof_lines = ->
|
|
100
|
-
output = `lsof -p #{Process.pid} | grep file_domain_reader_spec`
|
|
101
|
-
output.split("\n")
|
|
102
|
-
end
|
|
100
|
+
get_lsof_lines = -> { System.lsof.grep(/file_domain_reader_spec/) }
|
|
103
101
|
|
|
104
102
|
reader = FileLineReader.new(@tempfile.path, 0, 1)
|
|
105
|
-
reader.each do |
|
|
103
|
+
reader.each do |_| # using _ as an identifier signifies that the value is not used
|
|
106
104
|
expect(get_lsof_lines.().size).to eq(1)
|
|
107
105
|
end
|
|
108
106
|
expect(get_lsof_lines.().size).to eq(0)
|
|
@@ -121,7 +119,6 @@ nbc.com
|
|
|
121
119
|
specify "max_count returns the value passed to the constructor" do
|
|
122
120
|
expect(FileLineReader.new(@tempfile.path, 10, 200).max_count).to eq(200)
|
|
123
121
|
end
|
|
124
|
-
|
|
125
122
|
end
|
|
126
123
|
end
|
|
127
124
|
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require_relative '../spec_helper'
|
|
2
|
+
|
|
3
|
+
require 'trick_bag/system'
|
|
4
|
+
|
|
5
|
+
module TrickBag
|
|
6
|
+
module System
|
|
7
|
+
|
|
8
|
+
posix_only_test = -> do
|
|
9
|
+
describe 'System' do
|
|
10
|
+
|
|
11
|
+
context "#command_available" do
|
|
12
|
+
specify 'which ls returns true' do
|
|
13
|
+
expect(System.command_available?('ls')).to be_true
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
specify 'which fsdfiuowqpfeqpxumwfuqiufqpiufpqwmiurqpruiiqwmxrqupruxmqowiruqmpmu returns false' do
|
|
17
|
+
expect(System.command_available?('fsdfiuowqpfeqpxumwfuqiufqpiufpqwmiurqpruiiqwmxrqupruxmqowiruqmpmu')).to be_false
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
context ".lsof" do
|
|
23
|
+
specify "returns ruby lines" do
|
|
24
|
+
lines = System.lsof
|
|
25
|
+
has_ruby_line = lines.any? { |line| /ruby/ === line }
|
|
26
|
+
expect(has_ruby_line).to be_true
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
posix_only_test.() if OS.posix?
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: trick_bag
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.36.0
|
|
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: 2014-03-
|
|
12
|
+
date: 2014-03-20 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -136,6 +136,7 @@ files:
|
|
|
136
136
|
- lib/trick_bag/numeric/start_and_max.rb
|
|
137
137
|
- lib/trick_bag/numeric/totals.rb
|
|
138
138
|
- lib/trick_bag/operators/operators.rb
|
|
139
|
+
- lib/trick_bag/system.rb
|
|
139
140
|
- lib/trick_bag/timing/timing.rb
|
|
140
141
|
- lib/trick_bag/validations/hash_validations.rb
|
|
141
142
|
- lib/trick_bag/validations/object_validations.rb
|
|
@@ -155,6 +156,7 @@ files:
|
|
|
155
156
|
- spec/trick_bag/numeric/start_and_max_spec.rb
|
|
156
157
|
- spec/trick_bag/numeric/totals_spec.rb
|
|
157
158
|
- spec/trick_bag/operators/operators_spec.rb
|
|
159
|
+
- spec/trick_bag/system_spec.rb
|
|
158
160
|
- spec/trick_bag/timing/timing_spec.rb
|
|
159
161
|
- spec/trick_bag/validations/hashes_validations_spec.rb
|
|
160
162
|
- spec/trick_bag/validations/object_validations_spec.rb
|
|
@@ -200,6 +202,7 @@ test_files:
|
|
|
200
202
|
- spec/trick_bag/numeric/start_and_max_spec.rb
|
|
201
203
|
- spec/trick_bag/numeric/totals_spec.rb
|
|
202
204
|
- spec/trick_bag/operators/operators_spec.rb
|
|
205
|
+
- spec/trick_bag/system_spec.rb
|
|
203
206
|
- spec/trick_bag/timing/timing_spec.rb
|
|
204
207
|
- spec/trick_bag/validations/hashes_validations_spec.rb
|
|
205
208
|
- spec/trick_bag/validations/object_validations_spec.rb
|