epitools 0.2.0 → 0.2.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.
- data/VERSION +1 -1
- data/epitools.gemspec +9 -9
- data/lib/epitools/basetypes.rb +25 -0
- data/spec/basetypes_spec.rb +9 -0
- metadata +10 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/epitools.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{epitools}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
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 = %q{2010-
|
12
|
+
s.date = %q{2010-10-19}
|
13
13
|
s.description = %q{Miscellaneous utility libraries to make my life easier.}
|
14
14
|
s.email = %q{chris@ill-logic.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -61,16 +61,16 @@ Gem::Specification.new do |s|
|
|
61
61
|
s.rubygems_version = %q{1.3.7}
|
62
62
|
s.summary = %q{NOT UTILS... METILS!}
|
63
63
|
s.test_files = [
|
64
|
-
"spec/
|
65
|
-
"spec/permutations_spec.rb",
|
66
|
-
"spec/rash_spec.rb",
|
67
|
-
"spec/spec_helper.rb",
|
64
|
+
"spec/basetypes_spec.rb",
|
68
65
|
"spec/browser_spec.rb",
|
69
66
|
"spec/lcs_spec.rb",
|
70
|
-
"spec/
|
67
|
+
"spec/metaclass_spec.rb",
|
68
|
+
"spec/permutations_spec.rb",
|
69
|
+
"spec/rash_spec.rb",
|
71
70
|
"spec/ratio_spec.rb",
|
72
|
-
"spec/
|
73
|
-
"spec/
|
71
|
+
"spec/spec_helper.rb",
|
72
|
+
"spec/sys_spec.rb",
|
73
|
+
"spec/zopen_spec.rb"
|
74
74
|
]
|
75
75
|
|
76
76
|
if s.respond_to? :specification_version then
|
data/lib/epitools/basetypes.rb
CHANGED
@@ -92,6 +92,31 @@ class Array
|
|
92
92
|
flatten.compact.uniq
|
93
93
|
end
|
94
94
|
|
95
|
+
#
|
96
|
+
# Removes the elements from the array for which the block evaluates to true.
|
97
|
+
# In addition, return the removed elements.
|
98
|
+
#
|
99
|
+
# For example, if you wanted to split an array into evens and odds:
|
100
|
+
#
|
101
|
+
# nums = [1,2,3,4,5,6,7,8,9,10,11,12]
|
102
|
+
# even = nums.remove_if { |n| n.even? } # remove all even numbers from the "nums" array and return them
|
103
|
+
# odd = nums # "nums" now only contains odd numbers
|
104
|
+
#
|
105
|
+
def remove_if(&block)
|
106
|
+
removed = []
|
107
|
+
|
108
|
+
delete_if do |x|
|
109
|
+
if block.call(x)
|
110
|
+
removed << x
|
111
|
+
true
|
112
|
+
else
|
113
|
+
false
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
removed
|
118
|
+
end
|
119
|
+
|
95
120
|
end
|
96
121
|
|
97
122
|
|
data/spec/basetypes_spec.rb
CHANGED
@@ -93,6 +93,15 @@ describe Array do
|
|
93
93
|
[1,2,[3,4,[5],[],[nil,nil],[6]]].squash.should == [1,2,3,4,5,6]
|
94
94
|
end
|
95
95
|
|
96
|
+
it "remove_ifs" do
|
97
|
+
nums = [1,2,3,4,5,6,7,8,9,10,11,12]
|
98
|
+
even = nums.remove_if { |n| n.even? } # remove all even numbers from the "nums" array and return them
|
99
|
+
odd = nums
|
100
|
+
|
101
|
+
even.should == [2,4,6,8,10,12]
|
102
|
+
odd.should == [1,3,5,7,9,11]
|
103
|
+
end
|
104
|
+
|
96
105
|
end
|
97
106
|
|
98
107
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epitools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- epitron
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-10-19 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -116,13 +116,13 @@ signing_key:
|
|
116
116
|
specification_version: 3
|
117
117
|
summary: NOT UTILS... METILS!
|
118
118
|
test_files:
|
119
|
-
- spec/
|
120
|
-
- spec/permutations_spec.rb
|
121
|
-
- spec/rash_spec.rb
|
122
|
-
- spec/spec_helper.rb
|
119
|
+
- spec/basetypes_spec.rb
|
123
120
|
- spec/browser_spec.rb
|
124
121
|
- spec/lcs_spec.rb
|
125
|
-
- spec/
|
122
|
+
- spec/metaclass_spec.rb
|
123
|
+
- spec/permutations_spec.rb
|
124
|
+
- spec/rash_spec.rb
|
126
125
|
- spec/ratio_spec.rb
|
126
|
+
- spec/spec_helper.rb
|
127
|
+
- spec/sys_spec.rb
|
127
128
|
- spec/zopen_spec.rb
|
128
|
-
- spec/metaclass_spec.rb
|