vidibus-core_extensions 0.3.16 → 0.3.17
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -11
- data/VERSION +1 -1
- data/lib/vidibus/core_extensions/array.rb +27 -0
- data/spec/vidibus/core_extensions/array_spec.rb +8 -0
- data/vidibus-core_extensions.gemspec +5 -5
- metadata +7 -11
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -4,16 +4,14 @@ GEM
|
|
4
4
|
diff-lcs (1.1.2)
|
5
5
|
relevance-rcov (0.9.2.1)
|
6
6
|
rr (1.0.2)
|
7
|
-
rspec (2.0
|
8
|
-
rspec-core (~> 2.0
|
9
|
-
rspec-expectations (~> 2.0
|
10
|
-
rspec-mocks (~> 2.0
|
11
|
-
rspec-core (2.
|
12
|
-
rspec-expectations (2.0
|
13
|
-
diff-lcs (
|
14
|
-
rspec-mocks (2.0
|
15
|
-
rspec-core (~> 2.0.1)
|
16
|
-
rspec-expectations (~> 2.0.1)
|
7
|
+
rspec (2.5.0)
|
8
|
+
rspec-core (~> 2.5.0)
|
9
|
+
rspec-expectations (~> 2.5.0)
|
10
|
+
rspec-mocks (~> 2.5.0)
|
11
|
+
rspec-core (2.5.1)
|
12
|
+
rspec-expectations (2.5.0)
|
13
|
+
diff-lcs (~> 1.1.2)
|
14
|
+
rspec-mocks (2.5.0)
|
17
15
|
|
18
16
|
PLATFORMS
|
19
17
|
ruby
|
@@ -21,4 +19,4 @@ PLATFORMS
|
|
21
19
|
DEPENDENCIES
|
22
20
|
relevance-rcov
|
23
21
|
rr
|
24
|
-
rspec
|
22
|
+
rspec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.17
|
@@ -131,6 +131,33 @@ class Array
|
|
131
131
|
ordered.compact
|
132
132
|
end
|
133
133
|
|
134
|
+
# Deletes items from self and nested arrays that are equal to obj.
|
135
|
+
# If any items are found, returns obj. If the item is not found, returns nil.
|
136
|
+
# If the optional code block is given, returns the result of block if the
|
137
|
+
# item is not found.
|
138
|
+
#
|
139
|
+
# Examples:
|
140
|
+
#
|
141
|
+
# list = ["one", "two", ["one"]]
|
142
|
+
# list.delete_rec("one") #=> "one"
|
143
|
+
# list #=> ["two", []]
|
144
|
+
#
|
145
|
+
def delete_rec(obj, &block)
|
146
|
+
out = nil
|
147
|
+
_self = self
|
148
|
+
_self.each do |item|
|
149
|
+
_out = nil
|
150
|
+
if item.class == Array
|
151
|
+
_out = item.delete_rec(obj, &block)
|
152
|
+
else
|
153
|
+
_out = _self.delete(obj, &block)
|
154
|
+
end
|
155
|
+
out ||= _out
|
156
|
+
end
|
157
|
+
self.replace(_self)
|
158
|
+
out
|
159
|
+
end
|
160
|
+
|
134
161
|
private
|
135
162
|
|
136
163
|
# Returns predecessor of given needle from haystack.
|
@@ -188,4 +188,12 @@ describe "Array" do
|
|
188
188
|
list.sort_by_map(map).should eql(["one", "two", "three"])
|
189
189
|
end
|
190
190
|
end
|
191
|
+
|
192
|
+
describe "#delete_rec" do
|
193
|
+
it "should remove a given item from self" do
|
194
|
+
list = ["one", "two", ["one"]]
|
195
|
+
list.delete_rec("one").should eql("one")
|
196
|
+
list.should eql(["two", []])
|
197
|
+
end
|
198
|
+
end
|
191
199
|
end
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vidibus-core_extensions}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.17"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andre Pankratz"]
|
12
|
-
s.date = %q{2011-02-
|
12
|
+
s.date = %q{2011-02-25}
|
13
13
|
s.description = %q{Provides some extensions to the ruby core.}
|
14
14
|
s.email = %q{andre@vidibus.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -60,16 +60,16 @@ Gem::Specification.new do |s|
|
|
60
60
|
s.specification_version = 3
|
61
61
|
|
62
62
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
63
|
-
s.add_development_dependency(%q<rspec>, ["
|
63
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
64
64
|
s.add_development_dependency(%q<rr>, [">= 0"])
|
65
65
|
s.add_development_dependency(%q<relevance-rcov>, [">= 0"])
|
66
66
|
else
|
67
|
-
s.add_dependency(%q<rspec>, ["
|
67
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
68
68
|
s.add_dependency(%q<rr>, [">= 0"])
|
69
69
|
s.add_dependency(%q<relevance-rcov>, [">= 0"])
|
70
70
|
end
|
71
71
|
else
|
72
|
-
s.add_dependency(%q<rspec>, ["
|
72
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
73
73
|
s.add_dependency(%q<rr>, [">= 0"])
|
74
74
|
s.add_dependency(%q<relevance-rcov>, [">= 0"])
|
75
75
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vidibus-core_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 49
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 17
|
10
|
+
version: 0.3.17
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andre Pankratz
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-02-
|
18
|
+
date: 2011-02-25 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -25,16 +25,12 @@ dependencies:
|
|
25
25
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
30
|
+
hash: 3
|
31
31
|
segments:
|
32
|
-
- 2
|
33
32
|
- 0
|
34
|
-
|
35
|
-
- beta
|
36
|
-
- 20
|
37
|
-
version: 2.0.0.beta.20
|
33
|
+
version: "0"
|
38
34
|
requirement: *id001
|
39
35
|
- !ruby/object:Gem::Dependency
|
40
36
|
type: :development
|