array_extend 0.0.1 → 1.0.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/README.md +42 -2
- data/array_extend.gemspec +3 -3
- data/lib/array_extend.rb +8 -6
- data/lib/array_extend/version.rb +1 -1
- metadata +5 -5
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# ArrayExtend
|
2
2
|
|
3
|
-
|
3
|
+
Extend ruby Array. No override.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,7 +18,47 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
* after(val)
|
22
|
+
|
23
|
+
Return the value after the one pass in argument
|
24
|
+
|
25
|
+
Demo
|
26
|
+
|
27
|
+
["hello", "world"].after("hello") #=> "world"
|
28
|
+
["hello", "world"].after("world") #=> nil
|
29
|
+
["hello", "world"].after("none") #=> nil
|
30
|
+
|
31
|
+
Code
|
32
|
+
|
33
|
+
def after val
|
34
|
+
self[index(val) + 1] if self.include? val
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
* stealth_delete! *vals
|
39
|
+
* stealth_delete *vals
|
40
|
+
|
41
|
+
Delete value(s) passed by, but return the array instead of the deleted value
|
42
|
+
|
43
|
+
Demo
|
44
|
+
|
45
|
+
["ruby", "the", "programmer", "best", "friend"].stealth_delete! "ruby"
|
46
|
+
#=> ["the", "programmer", "best", "friend"]
|
47
|
+
|
48
|
+
["ruby", "the", "programmer", "best", "friend"].stealth_delete! "ruby", "best", "programmer"
|
49
|
+
#=> ["the", "friend"]
|
50
|
+
|
51
|
+
["ruby", "the", "programmer", "best", "friend"].stealth_delete! "hello"
|
52
|
+
#=> ["ruby", "the", "programmer", "best", "friend"]
|
53
|
+
|
54
|
+
Code
|
55
|
+
|
56
|
+
def stealth_delete! *vals
|
57
|
+
vals.each do |val|
|
58
|
+
delete val
|
59
|
+
end
|
60
|
+
return self
|
61
|
+
end
|
22
62
|
|
23
63
|
## Contributing
|
24
64
|
|
data/array_extend.gemspec
CHANGED
@@ -4,9 +4,9 @@ require File.expand_path('../lib/array_extend/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.authors = ["Thomas Petrachi"]
|
6
6
|
gem.email = ["thomas.petrachi@vodeclic.com"]
|
7
|
-
gem.description = %q{
|
8
|
-
gem.summary = %q{
|
9
|
-
gem.homepage = ""
|
7
|
+
gem.description = %q{Extend ruby Array. No override.}
|
8
|
+
gem.summary = %q{Adding methods [:after, :stealth_delete]}
|
9
|
+
gem.homepage = "https://github.com/petrachi/array_extend"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
12
12
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/array_extend.rb
CHANGED
@@ -1,19 +1,21 @@
|
|
1
1
|
require "array_extend/version"
|
2
2
|
|
3
3
|
class Array
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
# returns the value after the given value. wraps around. defaults to first element in array.
|
5
|
+
def after val
|
6
|
+
self[index(val) + 1] if self.include? val
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
# delete value(s) but return self instead of deleted value
|
10
|
+
def stealth_delete! *vals
|
11
|
+
vals.each do |val|
|
11
12
|
delete val
|
12
13
|
end
|
13
14
|
return self
|
14
15
|
end
|
15
16
|
|
16
|
-
|
17
|
+
# duplicate method without self modification
|
18
|
+
[:stealth_delete].each do |method_name|
|
17
19
|
define_method method_name do |*args|
|
18
20
|
array = self.dup
|
19
21
|
eval "array.#{ method_name }! *args"
|
data/lib/array_extend/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: array_extend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,9 +9,9 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-29 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
|
-
description:
|
14
|
+
description: Extend ruby Array. No override.
|
15
15
|
email:
|
16
16
|
- thomas.petrachi@vodeclic.com
|
17
17
|
executables: []
|
@@ -26,7 +26,7 @@ files:
|
|
26
26
|
- array_extend.gemspec
|
27
27
|
- lib/array_extend.rb
|
28
28
|
- lib/array_extend/version.rb
|
29
|
-
homepage:
|
29
|
+
homepage: https://github.com/petrachi/array_extend
|
30
30
|
licenses: []
|
31
31
|
post_install_message:
|
32
32
|
rdoc_options: []
|
@@ -49,5 +49,5 @@ rubyforge_project:
|
|
49
49
|
rubygems_version: 1.8.24
|
50
50
|
signing_key:
|
51
51
|
specification_version: 3
|
52
|
-
summary:
|
52
|
+
summary: Adding methods [:after, :stealth_delete]
|
53
53
|
test_files: []
|