vidibus-core_extensions 0.3.16 → 0.3.17
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/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
|