backports 3.1.1 → 3.2.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/.travis.yml +0 -1
- data/CHANGELOG.rdoc +6 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +7 -1
- data/README.rdoc +1 -2
- data/lib/backports/1.8.7/stdlib.rb +1 -0
- data/lib/backports/1.8.7/{dir/mktmpdir.rb → stdlib/tmpdir.rb} +2 -2
- data/lib/backports/rails/hash.rb +2 -2
- data/lib/backports/rails/kernel.rb +1 -7
- data/lib/backports/rails/module.rb +2 -2
- data/lib/backports/tools.rb +2 -2
- data/lib/backports/version.rb +1 -1
- data/test/_backport_guards_test.rb +14 -4
- data/test/lazy_test.rb +2 -2
- metadata +13 -7
data/.travis.yml
CHANGED
data/CHANGELOG.rdoc
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
= Backports --- History
|
2
2
|
|
3
|
+
== Version 3.2.0 - April 2nd, 2013
|
4
|
+
|
5
|
+
* Moved `Dir.mktmpdir` to the stdlib 'tmpdir' for Ruby 1.8.7
|
6
|
+
|
7
|
+
* Removed `returning` as it is no longer part of Rails.
|
8
|
+
|
3
9
|
== Version 3.1.0 - March 5th, 2013
|
4
10
|
|
5
11
|
* Backports can now be loaded separately!
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -7,11 +7,16 @@ GIT
|
|
7
7
|
PATH
|
8
8
|
remote: .
|
9
9
|
specs:
|
10
|
-
backports (3.
|
10
|
+
backports (3.2.0)
|
11
11
|
|
12
12
|
GEM
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
|
+
activesupport (3.2.13)
|
16
|
+
i18n (= 0.6.1)
|
17
|
+
multi_json (~> 1.0)
|
18
|
+
i18n (0.6.1)
|
19
|
+
multi_json (1.7.2)
|
15
20
|
rake (10.0.3)
|
16
21
|
|
17
22
|
PLATFORMS
|
@@ -19,6 +24,7 @@ PLATFORMS
|
|
19
24
|
ruby
|
20
25
|
|
21
26
|
DEPENDENCIES
|
27
|
+
activesupport
|
22
28
|
backports!
|
23
29
|
mspec!
|
24
30
|
rake
|
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= Backports Library {<img src="https://travis-ci.org/marcandre/backports.png?branch=master">}[https://travis-ci.org/marcandre/backports]
|
1
|
+
= Backports Library {<img src="https://travis-ci.org/marcandre/backports.png?branch=master">}[https://travis-ci.org/marcandre/backports] {<img src="https://badge.fury.io/rb/backports.png" alt="Gem Version" />}[http://badge.fury.io/rb/backports] {<img alt='Click here to lend your support to: Ruby Backports and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/19510.png?skin_name=chrome' border='0'}[http://www.pledgie.com/campaigns/19510]
|
2
2
|
|
3
3
|
* Yearning to use some of the new cool features in Ruby 2.0.0 while using 1.8.6?
|
4
4
|
* One of your client is stuck with Ruby 1.8.6 but you want to use a gem using some features of 1.8.7?
|
@@ -255,7 +255,6 @@ Some generic methods from Rails methods have been copied:
|
|
255
255
|
|
256
256
|
* Object
|
257
257
|
* +try+
|
258
|
-
* +returning+
|
259
258
|
|
260
259
|
* String
|
261
260
|
* +camelize+, +underscore+
|
@@ -0,0 +1 @@
|
|
1
|
+
Backports::StdLib.extend_relative
|
data/lib/backports/rails/hash.rb
CHANGED
@@ -2,12 +2,12 @@ class Hash
|
|
2
2
|
# Standard in rails. See official documentation[http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Hash/Keys.html]
|
3
3
|
def reverse_merge(other_hash)
|
4
4
|
other_hash.merge(self)
|
5
|
-
end
|
5
|
+
end unless method_defined? :reverse_merge
|
6
6
|
|
7
7
|
# Standard in rails. See official documentation[http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Hash/Keys.html]
|
8
8
|
def reverse_merge!(other_hash)
|
9
9
|
replace(reverse_merge(other_hash))
|
10
|
-
end
|
10
|
+
end unless method_defined? :reverse_merge!
|
11
11
|
|
12
12
|
# Standard in rails. See official documentation[http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Hash/Keys.html]
|
13
13
|
def symbolize_keys
|
@@ -1,12 +1,6 @@
|
|
1
|
-
|
1
|
+
class Object
|
2
2
|
# Standard in rails. See official documentation[http://api.rubyonrails.org/classes/Object.html]
|
3
3
|
def try(method_id, *args, &block)
|
4
4
|
send(method_id, *args, &block) unless self.nil?
|
5
5
|
end unless method_defined? :try
|
6
|
-
|
7
|
-
# Standard in rails. See official documentation[http://api.rubyonrails.org/classes/Object.html]
|
8
|
-
def returning(obj)
|
9
|
-
yield obj
|
10
|
-
obj
|
11
|
-
end unless method_defined? :returning
|
12
6
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Module
|
2
2
|
# Standard in rails... See official documentation[http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Module.html]
|
3
|
-
def alias_method_chain(target, feature)
|
4
|
-
Backports.alias_method_chain(self, target, feature)
|
3
|
+
def alias_method_chain(target, feature, &block)
|
4
|
+
Backports.alias_method_chain(self, target, feature, &block)
|
5
5
|
end unless method_defined? :alias_method_chain
|
6
6
|
end
|
data/lib/backports/tools.rb
CHANGED
@@ -256,8 +256,8 @@ module Backports
|
|
256
256
|
# Safe alias_method that will only alias if the source exists and destination doesn't
|
257
257
|
def self.alias_method(mod, new_name, old_name)
|
258
258
|
mod.instance_eval do
|
259
|
-
alias_method new_name, old_name
|
260
|
-
end
|
259
|
+
alias_method new_name, old_name
|
260
|
+
end if mod.method_defined?(old_name) && !mod.method_defined?(new_name)
|
261
261
|
end
|
262
262
|
|
263
263
|
# Used internally to combine {IO|File} options hash into mode (String or Integer)
|
data/lib/backports/version.rb
CHANGED
@@ -31,7 +31,7 @@ class AAA_TestBackportGuards < Test::Unit::TestCase
|
|
31
31
|
$stderr = @prev
|
32
32
|
end
|
33
33
|
|
34
|
-
EXCLUDE = %w[require] # Overriden in all circumstances to load the std-lib
|
34
|
+
EXCLUDE = %w[require require_with_backports require_without_backports] # Overriden in all circumstances to load the std-lib
|
35
35
|
EXCLUDE.map!(&:to_sym) if instance_methods.first.is_a?(Symbol)
|
36
36
|
|
37
37
|
# For some very strange reason, Hash[kvp.flatten] doesn't always work in 1.8.6??
|
@@ -73,7 +73,7 @@ class AAA_TestBackportGuards < Test::Unit::TestCase
|
|
73
73
|
compare = after[klass]
|
74
74
|
d = methods.map do |name, unbound|
|
75
75
|
name unless unbound == compare[name]
|
76
|
-
end
|
76
|
+
end + (compare.map(&:first) - methods.map(&:first))
|
77
77
|
d.compact!
|
78
78
|
delta[klass] = d unless d.empty?
|
79
79
|
end
|
@@ -89,12 +89,13 @@ class AAA_TestBackportGuards < Test::Unit::TestCase
|
|
89
89
|
# Order super important!
|
90
90
|
def test__2_backports_wont_override_unnecessarily
|
91
91
|
before = digest
|
92
|
+
latest = "2.0.0"
|
92
93
|
unless RUBY_VERSION <= '1.8.6'
|
93
|
-
require "backports/#{RUBY_VERSION}"
|
94
|
+
require "backports/#{[RUBY_VERSION, latest].min}"
|
94
95
|
after = digest
|
95
96
|
assert_nil digest_delta(before, after)
|
96
97
|
end
|
97
|
-
unless RUBY_VERSION
|
98
|
+
unless RUBY_VERSION >= latest
|
98
99
|
require "backports"
|
99
100
|
after = digest
|
100
101
|
assert !digest_delta(before, after).nil?
|
@@ -137,4 +138,13 @@ class AAA_TestBackportGuards < Test::Unit::TestCase
|
|
137
138
|
require 'backports/1.8.7/enumerator/next'
|
138
139
|
assert_equal 1, [1,2,3].each.next # [Bug #70]
|
139
140
|
end
|
141
|
+
|
142
|
+
def test_rails
|
143
|
+
require 'active_support/all'
|
144
|
+
$stderr.string = '' # disregard warnings by Rails
|
145
|
+
before = digest
|
146
|
+
require "backports/rails"
|
147
|
+
after = digest
|
148
|
+
assert_nil digest_delta(before, after)
|
149
|
+
end
|
140
150
|
end
|
data/test/lazy_test.rb
CHANGED
@@ -388,10 +388,10 @@ class TestLazyEnumerator < Test::Unit::TestCase
|
|
388
388
|
(1..10).lazy.cycle.inspect)
|
389
389
|
assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:cycle(3)>",
|
390
390
|
(1..10).lazy.cycle(3).inspect)
|
391
|
-
l = (1..10).lazy.map {}.
|
391
|
+
l = (1..10).lazy.map {}.flat_map {}.select {}.reject {}.grep(1).zip(?a..?c).take(10).take_while {}.drop(3).drop_while {}.cycle(3)
|
392
392
|
### Backport: Modified because I don't think the actual name we were called under in case of aliases is important enough to care
|
393
393
|
assert_equal(<<EOS.chomp, l.inspect)
|
394
|
-
#<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy:
|
394
|
+
#<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:map>:flat_map>:select>:reject>:grep(1)>:zip(\"a\"..\"c\")>:take(10)>:take_while>:drop(3)>:drop_while>:cycle(3)>
|
395
395
|
EOS
|
396
396
|
end if [].respond_to?(:flat_map)
|
397
397
|
|
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: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03
|
12
|
+
date: 2013-04-03 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Essential backports that enable many of the nice features of Ruby 1.8.7
|
15
15
|
up to 2.0.0 for earlier versions.
|
@@ -69,7 +69,6 @@ files:
|
|
69
69
|
- lib/backports/1.8.7/dir.rb
|
70
70
|
- lib/backports/1.8.7/dir/each.rb
|
71
71
|
- lib/backports/1.8.7/dir/foreach.rb
|
72
|
-
- lib/backports/1.8.7/dir/mktmpdir.rb
|
73
72
|
- lib/backports/1.8.7/enumerable.rb
|
74
73
|
- lib/backports/1.8.7/enumerable/count.rb
|
75
74
|
- lib/backports/1.8.7/enumerable/cycle.rb
|
@@ -174,6 +173,8 @@ files:
|
|
174
173
|
- lib/backports/1.8.7/range/step.rb
|
175
174
|
- lib/backports/1.8.7/regexp.rb
|
176
175
|
- lib/backports/1.8.7/regexp/union.rb
|
176
|
+
- lib/backports/1.8.7/stdlib.rb
|
177
|
+
- lib/backports/1.8.7/stdlib/tmpdir.rb
|
177
178
|
- lib/backports/1.8.7/stop_iteration.rb
|
178
179
|
- lib/backports/1.8.7/string.rb
|
179
180
|
- lib/backports/1.8.7/string/bytes.rb
|
@@ -519,18 +520,24 @@ require_paths:
|
|
519
520
|
required_ruby_version: !ruby/object:Gem::Requirement
|
520
521
|
none: false
|
521
522
|
requirements:
|
522
|
-
- -
|
523
|
+
- - '>='
|
523
524
|
- !ruby/object:Gem::Version
|
524
525
|
version: '0'
|
526
|
+
segments:
|
527
|
+
- 0
|
528
|
+
hash: -2299400734931840914
|
525
529
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
526
530
|
none: false
|
527
531
|
requirements:
|
528
|
-
- -
|
532
|
+
- - '>='
|
529
533
|
- !ruby/object:Gem::Version
|
530
534
|
version: '0'
|
535
|
+
segments:
|
536
|
+
- 0
|
537
|
+
hash: -2299400734931840914
|
531
538
|
requirements: []
|
532
539
|
rubyforge_project:
|
533
|
-
rubygems_version: 1.8.
|
540
|
+
rubygems_version: 1.8.25
|
534
541
|
signing_key:
|
535
542
|
specification_version: 3
|
536
543
|
summary: Backports of Ruby features for older Ruby.
|
@@ -540,4 +547,3 @@ test_files:
|
|
540
547
|
- test/lazy_test.rb
|
541
548
|
- test/socket_interaction_test.rb
|
542
549
|
- test/test_helper.rb
|
543
|
-
has_rdoc:
|