rext 0.4.1 → 0.5.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/History.rdoc +11 -0
- data/README.rdoc +2 -0
- data/lib/rext/array/helpers.rb +6 -6
- data/lib/rext/enumerable/helpers.rb +41 -0
- data/lib/rext/version.rb +1 -1
- data/rext.gemspec +2 -2
- data/spec/enumerable_spec.rb +37 -0
- metadata +2 -2
data/History.rdoc
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
|
2
|
+
0.5.0 / 2009-11-12
|
3
|
+
==================
|
4
|
+
|
5
|
+
* Added Enumerable#take
|
6
|
+
* Added Enumerable#drop
|
7
|
+
|
8
|
+
0.4.1 / 2009-11-10
|
9
|
+
==================
|
10
|
+
|
11
|
+
* Fix Hash#to_query support both Rack's #build_query and #build_nested_query
|
12
|
+
|
2
13
|
0.4.0 / 2009-11-10
|
3
14
|
==================
|
4
15
|
|
data/README.rdoc
CHANGED
data/lib/rext/array/helpers.rb
CHANGED
@@ -4,17 +4,17 @@ require 'enumerator'
|
|
4
4
|
class Array
|
5
5
|
|
6
6
|
##
|
7
|
-
# Return array of elements after
|
7
|
+
# Return array of elements after _index_.
|
8
8
|
|
9
|
-
def from
|
10
|
-
self[
|
9
|
+
def from index
|
10
|
+
self[index..-1]
|
11
11
|
end
|
12
12
|
|
13
13
|
##
|
14
|
-
# Return array of elements up to
|
14
|
+
# Return array of elements up to _index_.
|
15
15
|
|
16
|
-
def to
|
17
|
-
self[0..
|
16
|
+
def to index
|
17
|
+
self[0..index]
|
18
18
|
end
|
19
19
|
|
20
20
|
##
|
@@ -85,4 +85,45 @@ module Enumerable
|
|
85
85
|
args.all? { |arg| include? arg }
|
86
86
|
end
|
87
87
|
|
88
|
+
##
|
89
|
+
# Drop _n_ elements, returning the others.
|
90
|
+
# You may also pass a _block_ which acts as
|
91
|
+
# Enumerable#reject.
|
92
|
+
#
|
93
|
+
# === Examples
|
94
|
+
#
|
95
|
+
# [1,2,3,4].drop # => [2,3,4]
|
96
|
+
# [1,2,3,4].drop(2) # => [3,4]
|
97
|
+
# [1,2,3,4].drop(-2) # => [1,2]
|
98
|
+
# [1,2,3,4,5].drop { |n| n < 4 } # => [4,5]
|
99
|
+
#
|
100
|
+
|
101
|
+
def drop n = 1, &block
|
102
|
+
case
|
103
|
+
when block ; reject &block
|
104
|
+
when n < 0 ; self[0...n]
|
105
|
+
else self[n..-1]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
##
|
110
|
+
# Take _n_ elements, or pass a _block_ which
|
111
|
+
# acts as Enumerable#select.
|
112
|
+
#
|
113
|
+
# === Examples
|
114
|
+
#
|
115
|
+
# [1,2,3,4].take # => [1]
|
116
|
+
# [1,2,3,4].take(2) # => [1,2]
|
117
|
+
# [1,2,3,4].take(-2) # => [3,4]
|
118
|
+
# [1,2,3,4].take { |n| == 1 } # => [1]
|
119
|
+
#
|
120
|
+
|
121
|
+
def take n = 1, &block
|
122
|
+
case
|
123
|
+
when block ; select &block
|
124
|
+
when n < 0 ; self[n..-1]
|
125
|
+
else self[0...n]
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
88
129
|
end
|
data/lib/rext/version.rb
CHANGED
data/rext.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rext}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.5.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["TJ Holowaychuk"]
|
9
|
-
s.date = %q{2009-11-
|
9
|
+
s.date = %q{2009-11-12}
|
10
10
|
s.description = %q{Ruby extensions}
|
11
11
|
s.email = %q{tj@vision-media.ca}
|
12
12
|
s.extra_rdoc_files = ["README.rdoc", "lib/rext.rb", "lib/rext/all.rb", "lib/rext/array.rb", "lib/rext/array/helpers.rb", "lib/rext/date.rb", "lib/rext/date/helpers.rb", "lib/rext/enumerable.rb", "lib/rext/enumerable/helpers.rb", "lib/rext/hash.rb", "lib/rext/hash/helpers.rb", "lib/rext/integer.rb", "lib/rext/integer/helpers.rb", "lib/rext/module.rb", "lib/rext/module/helpers.rb", "lib/rext/numeric.rb", "lib/rext/numeric/bytes.rb", "lib/rext/numeric/time.rb", "lib/rext/object.rb", "lib/rext/object/helpers.rb", "lib/rext/object/metaclass.rb", "lib/rext/proc.rb", "lib/rext/proc/helpers.rb", "lib/rext/process.rb", "lib/rext/process/helpers.rb", "lib/rext/string.rb", "lib/rext/string/encode.rb", "lib/rext/string/helpers.rb", "lib/rext/symbol.rb", "lib/rext/symbol/helpers.rb", "lib/rext/time.rb", "lib/rext/time/helpers.rb", "lib/rext/version.rb", "tasks/benchmark.rake", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
|
data/spec/enumerable_spec.rb
CHANGED
@@ -15,6 +15,43 @@ describe Enumerable do
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
describe "#drop" do
|
19
|
+
it "should drop the first item" do
|
20
|
+
[1,2,3].drop.should == [2,3]
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should drop the first n items" do
|
24
|
+
[1,2,3,4].drop(2).should == [3,4]
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should drop the last n items" do
|
28
|
+
[1,2,3,4].drop(-2).should == [1,2]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should drop using a block" do
|
32
|
+
[1,2,3,4,5].drop { |n| n < 4 }.should == [4,5]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#take" do
|
37
|
+
it "should return the first item" do
|
38
|
+
[1,2,3].take.should == [1]
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should return the first n items" do
|
42
|
+
[1,2,3].take(2).should == [1,2]
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should return the last n items" do
|
46
|
+
[1,2,3,4].take(-3).should == [2,3,4]
|
47
|
+
[1,2,3,4].take(-1).should == [4]
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return items using a block" do
|
51
|
+
[1,2,3].take { |n| n == 1 }.should == [1]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
18
55
|
describe "#group_by" do
|
19
56
|
before :each do
|
20
57
|
@enum = 'foo', :bar, 1, 2, 3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-12 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|