backports 1.13.3 → 1.14.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/CHANGELOG.rdoc +19 -0
- data/README.rdoc +12 -3
- data/VERSION.yml +2 -2
- data/backports.gemspec +5 -2
- data/lib/backports/1.9.1/kernel.rb +1 -1
- data/lib/backports/1.9.2/array.rb +28 -0
- data/lib/backports/1.9.2/enumerable.rb +36 -1
- data/lib/backports/1.9.2/float.rb +4 -0
- data/lib/backports/1.9.2/match_data.rb +3 -0
- metadata +5 -2
data/CHANGELOG.rdoc
CHANGED
@@ -1,5 +1,24 @@
|
|
1
1
|
= Packable --- History
|
2
2
|
|
3
|
+
== Version 1.14.0 - March 3rd, 2010
|
4
|
+
|
5
|
+
* Added some features of 1.9.2:
|
6
|
+
|
7
|
+
* Array#rotate, rotate!
|
8
|
+
* Array#keep_if, select!
|
9
|
+
* Array#sort_by!
|
10
|
+
* Enumerable#join
|
11
|
+
* Enumerable#slice_before
|
12
|
+
* Float::INFINITY, NAN
|
13
|
+
* MatchData#==
|
14
|
+
|
15
|
+
== Version 1.13.0 - January 20th, 2010
|
16
|
+
|
17
|
+
* Missing for 1.8.7 were
|
18
|
+
* Array#permutation
|
19
|
+
* Hash#hash (was only inherited)
|
20
|
+
* Hash#eql? (was only inherited)
|
21
|
+
|
3
22
|
== Version 1.12.0 - December 4th, 2009
|
4
23
|
|
5
24
|
* Finer grain includes (see README)
|
data/README.rdoc
CHANGED
@@ -62,7 +62,7 @@ Complete Ruby 1.8.8 backporting (core language). In case you are wondering: no,
|
|
62
62
|
Only exception:
|
63
63
|
* Enumerator#rewind (incompatible change, so won't be implemented)
|
64
64
|
|
65
|
-
To include _only_ these backports and those
|
65
|
+
To include _only_ these backports and those preceding, <tt>require "backports/1.8.8"</tt>.
|
66
66
|
|
67
67
|
== Ruby 1.9.1
|
68
68
|
|
@@ -106,14 +106,23 @@ but since it is only an imitation, it must be required explicitly:
|
|
106
106
|
|
107
107
|
Finally, some Ruby 1.9.2 features have been backported. As this version has not been feature frozen yet, changes are still possible.
|
108
108
|
|
109
|
+
* Array
|
110
|
+
* <tt>rotate, rotate!</tt>
|
111
|
+
* <tt>keep_if, select!</tt>
|
112
|
+
* <tt>sort_by!</tt>
|
113
|
+
|
109
114
|
* Enumerable
|
110
|
-
* +flat_map+, +collect_concat+
|
111
115
|
* +chunk+
|
116
|
+
* +flat_map+, +collect_concat+
|
117
|
+
* +join+
|
118
|
+
* +slice_before+
|
119
|
+
|
120
|
+
* Float::INFINITY, NAN
|
112
121
|
|
113
122
|
* Object
|
114
123
|
* <tt>respond_to_missing?</tt>
|
115
124
|
|
116
|
-
To include all Ruby backports but not those of Rails, <tt>require "backports/1.9.2"</tt
|
125
|
+
To include all Ruby backports but not those of Rails, <tt>require "backports/1.9.2"</tt> (or "backports/1.9")
|
117
126
|
|
118
127
|
== Rails
|
119
128
|
|
data/VERSION.yml
CHANGED
data/backports.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{backports}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.14.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Marc-Andr\303\251 Lafortune"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-04}
|
13
13
|
s.description = %q{ Essential backports that enable some of the really nice features of ruby 1.8.7, ruby 1.9 and rails from ruby 1.8.6 and earlier.
|
14
14
|
}
|
15
15
|
s.email = %q{github@marc-andre.ca}
|
@@ -74,7 +74,10 @@ Gem::Specification.new do |s|
|
|
74
74
|
"lib/backports/1.9.1/string.rb",
|
75
75
|
"lib/backports/1.9.1/symbol.rb",
|
76
76
|
"lib/backports/1.9.2.rb",
|
77
|
+
"lib/backports/1.9.2/array.rb",
|
77
78
|
"lib/backports/1.9.2/enumerable.rb",
|
79
|
+
"lib/backports/1.9.2/float.rb",
|
80
|
+
"lib/backports/1.9.2/match_data.rb",
|
78
81
|
"lib/backports/1.9.2/method.rb",
|
79
82
|
"lib/backports/1.9.rb",
|
80
83
|
"lib/backports/basic_object.rb",
|
@@ -15,7 +15,7 @@ module Kernel
|
|
15
15
|
raise LoadError, "require_relative is called in #{$1}"
|
16
16
|
end
|
17
17
|
require File.expand_path(relative_feature, File.dirname(file))
|
18
|
-
end unless
|
18
|
+
end unless private_method_defined? :require_relative
|
19
19
|
private :require_relative
|
20
20
|
|
21
21
|
# Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Array
|
2
|
+
# Standard in Ruby 1.9.2 See official documentation[http://ruby-doc.org/core-1.9/classes/Enumerable.html]
|
3
|
+
def keep_if
|
4
|
+
return to_enum :keep_if unless block_given?
|
5
|
+
delete_if{|elem| !yield elem}
|
6
|
+
end unless method_defined? :keep_if
|
7
|
+
|
8
|
+
def rotate(n=1)
|
9
|
+
dup.rotate!(n)
|
10
|
+
end unless method_defined? :rotate
|
11
|
+
|
12
|
+
def rotate!(n=1)
|
13
|
+
return self if empty?
|
14
|
+
n %= size
|
15
|
+
concat(slice!(0, n))
|
16
|
+
end unless method_defined? :rotate!
|
17
|
+
|
18
|
+
def select!(&block)
|
19
|
+
return to_enum :select! unless block_given?
|
20
|
+
reject!{|elem| ! yield elem}
|
21
|
+
end unless method_defined? :select!
|
22
|
+
|
23
|
+
def sort_by!(&block)
|
24
|
+
return to_enum :sort_by! unless block_given?
|
25
|
+
replace sort_by(&block)
|
26
|
+
end unless method_defined? :sort_by!
|
27
|
+
end
|
28
|
+
|
@@ -34,10 +34,45 @@ module Enumerable
|
|
34
34
|
end
|
35
35
|
end unless method_defined? :chunk
|
36
36
|
|
37
|
-
|
37
|
+
def each_entry(*pass)
|
38
|
+
return to_enum :each_entry, *pass unless block_given?
|
39
|
+
each(*pass) do |*args|
|
40
|
+
yield args.size == 1 ? args[0] : args
|
41
|
+
end
|
42
|
+
self
|
43
|
+
end unless method_defined? :each_entry
|
44
|
+
|
38
45
|
def flat_map(&block)
|
39
46
|
return to_enum(:flat_map) unless block_given?
|
40
47
|
map(&block).flatten(1)
|
41
48
|
end unless method_defined? :flat_map
|
42
49
|
Backports.alias_method self, :collect_concat, :flat_map
|
50
|
+
|
51
|
+
def join(*args)
|
52
|
+
to_a.join(*args)
|
53
|
+
end unless method_defined? :join
|
54
|
+
|
55
|
+
def slice_before(arg = Backports::Undefined, &block)
|
56
|
+
if block_given?
|
57
|
+
has_init = not(arg.equal? Backports::Undefined)
|
58
|
+
else
|
59
|
+
raise ArgumentError, "wrong number of arguments (0 for 1)" if arg.equal? Backports::Undefined
|
60
|
+
block = Proc.new{|elem| arg === elem }
|
61
|
+
end
|
62
|
+
Enumerator.new do |yielder|
|
63
|
+
init = arg.dup if has_init
|
64
|
+
accumulator = nil
|
65
|
+
each do |elem|
|
66
|
+
start_new = has_init ? block.yield(elem, init) : block.yield(elem)
|
67
|
+
if start_new
|
68
|
+
yielder.yield accumulator if accumulator
|
69
|
+
accumulator = [elem]
|
70
|
+
else
|
71
|
+
accumulator ||= []
|
72
|
+
accumulator << elem
|
73
|
+
end
|
74
|
+
end
|
75
|
+
yielder.yield accumulator if accumulator
|
76
|
+
end
|
77
|
+
end unless method_defined? :slice_before
|
43
78
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backports
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Marc-Andr\xC3\xA9 Lafortune"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-03-04 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -79,7 +79,10 @@ files:
|
|
79
79
|
- lib/backports/1.9.1/string.rb
|
80
80
|
- lib/backports/1.9.1/symbol.rb
|
81
81
|
- lib/backports/1.9.2.rb
|
82
|
+
- lib/backports/1.9.2/array.rb
|
82
83
|
- lib/backports/1.9.2/enumerable.rb
|
84
|
+
- lib/backports/1.9.2/float.rb
|
85
|
+
- lib/backports/1.9.2/match_data.rb
|
83
86
|
- lib/backports/1.9.2/method.rb
|
84
87
|
- lib/backports/1.9.rb
|
85
88
|
- lib/backports/basic_object.rb
|