backports 1.10.3 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,15 @@
1
1
  = Packable --- History
2
2
 
3
+ == Version 1.11.0 - November 4th, 2009
4
+
5
+ * Added Enumerable#flat_map / collect_concat (Ruby 1.9)
6
+
7
+ * Added Object#public_send (Ruby 1.9)
8
+
9
+ * Added Object#public_method (Ruby 1.9)
10
+
11
+ * bug fixes
12
+
3
13
  == Version 1.10.0 - September 29th, 2009
4
14
 
5
15
  * Added Enumerable#chunk (Ruby 1.9)
@@ -4,7 +4,7 @@ Would you like to use features of Ruby 1.8.7 without the need of having 1.8.7 in
4
4
 
5
5
  require 'backports/1.8.7'
6
6
 
7
- All 1.8.7 features are now available! Some of the features of 1.9 are also available with
7
+ All 1.8.7 features are now available! Many of the features of 1.9 are also available with
8
8
 
9
9
  require 'backports/1.9'
10
10
 
@@ -69,6 +69,7 @@ Additionally, the following Ruby 1.9 have been backported:
69
69
 
70
70
  * Enumerator
71
71
  * +new+ (with block)
72
+ * +flat_map+, +collect_concat+
72
73
 
73
74
  * File
74
75
  * +binread+
@@ -84,7 +85,9 @@ Additionally, the following Ruby 1.9 have been backported:
84
85
 
85
86
  * Object
86
87
  * +define_singleton_method+
87
- * +respond_to_missing?+
88
+ * +public_method+
89
+ * +public_send+
90
+ * <tt>respond_to_missing?</tt>
88
91
 
89
92
  * Proc
90
93
  * +yield+
@@ -98,7 +101,8 @@ Additionally, the following Ruby 1.9 have been backported:
98
101
 
99
102
  +Enumerator+ can be accessed directly (instead of <tt>Enumerable::Enumerator</tt>)
100
103
 
101
- Moreover, a pretty good imitation of BasicObject is available, but it must be required explicitely:
104
+ Moreover, a pretty good imitation of BasicObject is available,
105
+ but since it is only an imitation, it must be required explicitly:
102
106
 
103
107
  require 'backports/basic_object'
104
108
 
data/Rakefile CHANGED
@@ -22,9 +22,10 @@ begin
22
22
 
23
23
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
24
24
  end
25
- Jeweler::RubyforgeTasks.new do |rubyforge|
26
- rubyforge.doc_task = "rdoc"
27
- end
25
+ Jeweler::GemcutterTasks.new
26
+ # Jeweler::RubyforgeTasks.new do |rubyforge|
27
+ # rubyforge.doc_task = "rdoc"
28
+ # end
28
29
  rescue LoadError
29
30
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
30
31
  end
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
- :minor: 10
4
- :patch: 3
3
+ :minor: 11
4
+ :patch: 0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{backports}
8
- s.version = "1.10.3"
8
+ s.version = "1.11.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{2009-10-28}
12
+ s.date = %q{2009-11-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}
@@ -5,13 +5,6 @@ module Kernel
5
5
  m.to_sym if m
6
6
  end unless (__method__ || true rescue false)
7
7
 
8
- # Standard in ruby 1.8.7+. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
9
- def define_singleton_method(*args, &block)
10
- class << self
11
- self
12
- end.send(:define_method, *args, &block)
13
- end unless method_defined? :define_singleton_method
14
-
15
8
  # Standard in ruby 1.8.7+. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
16
9
  def instance_exec(*arg, &block)
17
10
  define_singleton_method(:"temporary method for instance_exec", &block)
@@ -6,6 +6,7 @@ module Enumerable
6
6
  memo
7
7
  end unless method_defined? :each_with_object
8
8
 
9
+ # Standard in Ruby 1.9.2 See official documentation[http://ruby-doc.org/core-1.9/classes/Enumerable.html]
9
10
  def chunk(initial_state = nil, &original_block)
10
11
  raise ArgumentError, "no block given" unless block_given?
11
12
  ::Enumerator.new do |yielder|
@@ -39,4 +40,11 @@ module Enumerable
39
40
  yielder.yield [previous, accumulate] unless accumulate.empty?
40
41
  end
41
42
  end unless method_defined? :chunk
43
+
44
+ # Standard in Ruby 1.9.2 See official documentation[http://ruby-doc.org/core-1.9/classes/Enumerable.html]
45
+ def flat_map(&block)
46
+ return to_enum :flat_map unless block_given?
47
+ map(&block).flatten(1)
48
+ end unless method_defined? :flat_map
49
+ alias_method :collect_concat, :flat_map unless method_defined? :collect_concat
42
50
  end
@@ -1,11 +1,40 @@
1
1
  module Kernel
2
2
  alias_method :__callee__, :__method__ unless (__callee__ || true rescue false)
3
-
3
+
4
+ # Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
5
+ def define_singleton_method(*args, &block)
6
+ class << self
7
+ self
8
+ end.send(:define_method, *args, &block)
9
+ end unless method_defined? :define_singleton_method
10
+
11
+ # Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
4
12
  def require_relative(relative_feature)
5
13
  file = caller.first.split(/:\d/,2).first
6
14
  if /\A\((.*)\)/ =~ file # eval, etc.
7
15
  raise LoadError, "require_relative is called in #{$1}"
8
16
  end
9
17
  require File.expand_path(relative_feature, File.dirname(file))
10
- end
18
+ end unless method_defined? :require_relative
19
+ private :require_relative
20
+
21
+ # Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
22
+ def public_method(meth)
23
+ if respond_to?(meth) && !protected_methods.include?(meth.to_s)
24
+ method(meth)
25
+ else
26
+ raise NameError, "undefined method `#{meth}' for class `#{self.class}'"
27
+ end
28
+ end unless method_defined? :public_method
29
+
30
+ # Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Object.html]
31
+ def public_send(method, *args, &block)
32
+ if respond_to?(method) && !protected_methods.include?(method.to_s)
33
+ send(method, *args, &block)
34
+ else
35
+ :foo.generate_a_no_method_error_in_preparation_for_method_missing rescue nil
36
+ # otherwise a NameError might be raised when we call method_missing ourselves
37
+ method_missing(method.to_sym, *args, &block)
38
+ end
39
+ end unless method_defined? :public_send
11
40
  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.10.3
4
+ version: 1.11.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: 2009-10-28 00:00:00 -04:00
12
+ date: 2009-11-04 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15