mirror of
https://github.com/samsonjs/http-cookie.git
synced 2026-03-25 08:55:53 +00:00
63 lines
1.2 KiB
Ruby
63 lines
1.2 KiB
Ruby
class Array
|
|
def select!
|
|
i = 0
|
|
each_with_index { |x, j|
|
|
yield x or next
|
|
self[i] = x if i != j
|
|
i += 1
|
|
}
|
|
return nil if i == size
|
|
self[i..-1] = []
|
|
self
|
|
end unless method_defined?(:select!)
|
|
|
|
def sort_by!(&block)
|
|
replace(sort_by(&block))
|
|
end unless method_defined?(:sort_by!)
|
|
end
|
|
|
|
class Hash
|
|
class << self
|
|
def try_convert(object)
|
|
if object.is_a?(Hash) ||
|
|
(object.respond_to?(:to_hash) && (object = object.to_hash).is_a?(Hash))
|
|
object
|
|
else
|
|
nil
|
|
end
|
|
end unless method_defined?(:try_convert)
|
|
end
|
|
end
|
|
|
|
class String
|
|
class << self
|
|
def try_convert(object)
|
|
if object.is_a?(String) ||
|
|
(object.respond_to?(:to_str) && (object = object.to_str).is_a?(String))
|
|
object
|
|
else
|
|
nil
|
|
end
|
|
end unless method_defined?(:try_convert)
|
|
end
|
|
end
|
|
|
|
# In Ruby < 1.9.3 URI() does not accept a URI object.
|
|
if RUBY_VERSION < "1.9.3"
|
|
require 'uri'
|
|
|
|
begin
|
|
URI(URI(''))
|
|
rescue
|
|
def URI(url) # :nodoc:
|
|
case url
|
|
when URI
|
|
url
|
|
when String
|
|
URI.parse(url)
|
|
else
|
|
raise ArgumentError, 'bad argument (expected URI object or URI string)'
|
|
end
|
|
end
|
|
end
|
|
end
|