epitools 0.5.11 → 0.5.12
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/TODO +10 -0
- data/VERSION +1 -1
- data/epitools.gemspec +2 -2
- data/lib/epitools/core_ext/numbers.rb +18 -0
- data/lib/epitools/sys.rb +14 -3
- data/spec/sys_spec.rb +3 -3
- metadata +2 -2
data/TODO
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
TODOs
|
3
3
|
===========================
|
4
4
|
|
5
|
+
+ Path
|
6
|
+
|_ Fix rename/mv
|
7
|
+
|_ Full README with more real-world examples (grep scripts/)
|
8
|
+
- compare folders using Path#ls_r and Path#md5
|
9
|
+
|_ Group methods by type, like Pathname (does YARD have groups?)
|
10
|
+
|_ String#{to_p,to_P,to_Path} ?
|
11
|
+
|_ Relative Path class
|
12
|
+
|_ Class hierarchy (Path, FilePath, URLPath)
|
13
|
+
|_ (Un)Archivers (zip, rar, etc.)
|
14
|
+
|
5
15
|
+ Logger
|
6
16
|
|_ colourized ("ramaze" has a nice style)
|
7
17
|
|_ output to STDERR (default)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.12
|
data/epitools.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "epitools"
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.12"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["epitron"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-11-07"
|
13
13
|
s.description = "Miscellaneous utility libraries to make my life easier."
|
14
14
|
s.email = "chris@ill-logic.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -8,6 +8,24 @@ class Numeric
|
|
8
8
|
to_s.gsub(/(\d)(?=\d{3}+(?:\.|$))(\d{3}\..*)?/,'\1,\2')
|
9
9
|
end
|
10
10
|
|
11
|
+
#
|
12
|
+
# Clamp the number to a specific range
|
13
|
+
#
|
14
|
+
# Examples:
|
15
|
+
# 234234234523.clamp(0..100) #=> 100
|
16
|
+
# 12.clamp(0..100) #=> 12
|
17
|
+
# -38817112.clamp(0..100) #=> 0
|
18
|
+
#
|
19
|
+
def clamp(range)
|
20
|
+
if self < range.first
|
21
|
+
range.first
|
22
|
+
elsif self > range.last
|
23
|
+
range.last
|
24
|
+
else
|
25
|
+
self
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
11
29
|
#
|
12
30
|
# Time methods
|
13
31
|
#
|
data/lib/epitools/sys.rb
CHANGED
@@ -24,12 +24,14 @@ module Sys
|
|
24
24
|
case host_os
|
25
25
|
when /darwin/
|
26
26
|
@os = "Darwin"
|
27
|
+
when /bsd/
|
28
|
+
@os = "BSD"
|
27
29
|
when /linux/
|
28
30
|
@os = "Linux"
|
29
31
|
when /mingw|mswin|cygwin/
|
30
32
|
@os = 'Windows'
|
31
33
|
else
|
32
|
-
raise "Unknown OS: #{host_os.inspect}"
|
34
|
+
#raise "Unknown OS: #{host_os.inspect}"
|
33
35
|
end
|
34
36
|
|
35
37
|
@os
|
@@ -61,6 +63,13 @@ module Sys
|
|
61
63
|
#
|
62
64
|
def self.mac?; darwin?; end
|
63
65
|
|
66
|
+
#
|
67
|
+
# Is this BSD?
|
68
|
+
#
|
69
|
+
def self.bsd?
|
70
|
+
os == "BSD" or os == "Darwin"
|
71
|
+
end
|
72
|
+
|
64
73
|
#-----------------------------------------------------------------------------
|
65
74
|
|
66
75
|
PS_FIELD_TABLE = [
|
@@ -320,7 +329,7 @@ module Sys
|
|
320
329
|
begin
|
321
330
|
self.send(platform_method_name, *args)
|
322
331
|
rescue NoMethodError
|
323
|
-
raise NotImplementedError.new("#{name} is not yet supported on
|
332
|
+
raise NotImplementedError.new("#{name} is not yet supported on #{os}.")
|
324
333
|
end
|
325
334
|
end
|
326
335
|
end
|
@@ -351,7 +360,7 @@ module Sys
|
|
351
360
|
#
|
352
361
|
# eg: {"en0"=>"192.168.1.101"}
|
353
362
|
#
|
354
|
-
def self.
|
363
|
+
def self.interfaces_bsd
|
355
364
|
sections = `ifconfig`.split(/^(?=[^\t])/)
|
356
365
|
sections_with_relevant_ip = sections.select {|i| i =~ /inet/ }
|
357
366
|
|
@@ -365,6 +374,8 @@ module Sys
|
|
365
374
|
device_ips
|
366
375
|
end
|
367
376
|
|
377
|
+
def self.interfaces_darwin; interfaces_bsd; end
|
378
|
+
|
368
379
|
#
|
369
380
|
# Linux: Return a hash of (device, IP address) pairs.
|
370
381
|
#
|
data/spec/sys_spec.rb
CHANGED
@@ -7,12 +7,12 @@ describe Sys::ProcessInfo do
|
|
7
7
|
proc { Sys.linux? }.should_not raise_error
|
8
8
|
proc { Sys.mac? }.should_not raise_error
|
9
9
|
proc { Sys.darwin? }.should_not raise_error
|
10
|
+
proc { Sys.bsd? }.should_not raise_error
|
10
11
|
proc { Sys.windows? }.should_not raise_error
|
11
12
|
|
12
|
-
%w[Linux Windows Darwin].include?(Sys.os).should == true
|
13
|
+
%w[Linux Windows Darwin BSD].include?(Sys.os).should == true
|
13
14
|
|
14
|
-
|
15
|
-
truths.count(true).should == 1
|
15
|
+
[:linux?, :mac?, :windows?, :bsd?].any?{|os| Sys.send(os)}.should == true
|
16
16
|
end
|
17
17
|
|
18
18
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epitools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.12
|
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: 2012-
|
12
|
+
date: 2012-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|