mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #4258 from shuujii/extend-only-when-necessary
Extend only when necessary in `lib/mruby-core-ext.rb`
This commit is contained in:
+23
-17
@@ -18,18 +18,20 @@ class String
|
||||
end
|
||||
|
||||
# Compatible with 1.9 on 1.8
|
||||
def %(params)
|
||||
if params.is_a?(Hash)
|
||||
str = self.clone
|
||||
params.each do |k, v|
|
||||
str.gsub!("%{#{k}}") { v }
|
||||
end
|
||||
str
|
||||
else
|
||||
if params.is_a?(Array)
|
||||
sprintf(self, *params)
|
||||
unless (sprintf("%{a}", :a => 1) rescue false)
|
||||
def %(params)
|
||||
if params.is_a?(Hash)
|
||||
str = self.clone
|
||||
params.each do |k, v|
|
||||
str.gsub!("%{#{k}}") { v }
|
||||
end
|
||||
str
|
||||
else
|
||||
sprintf(self, params)
|
||||
if params.is_a?(Array)
|
||||
sprintf(self, *params)
|
||||
else
|
||||
sprintf(self, params)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -37,17 +39,21 @@ end
|
||||
|
||||
class Symbol
|
||||
# Compatible with 1.9 on 1.8
|
||||
def to_proc
|
||||
proc { |obj, *args| obj.send(self, *args) }
|
||||
unless method_defined?(:to_proc)
|
||||
def to_proc
|
||||
proc { |obj, *args| obj.send(self, *args) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module Enumerable
|
||||
# Compatible with 1.9 on 1.8
|
||||
def each_with_object(memo)
|
||||
return to_enum :each_with_object, memo unless block_given?
|
||||
each { |obj| yield obj, memo }
|
||||
memo
|
||||
unless method_defined?(:each_with_object)
|
||||
def each_with_object(memo)
|
||||
return to_enum :each_with_object, memo unless block_given?
|
||||
each { |obj| yield obj, memo }
|
||||
memo
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user