1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
# Enumerable extensions.
module Enumerable
# Invokes the specified method for each item, along with the supplied
# arguments.
def send_each(sym, *args)
each {|i| i.send(sym, *args)}
end
end
# Range extensions
class Range
# Returns the interval between the beginning and end of the range.
def interval
last - first
end
end
# Object extensions
class Object
# Returns true if the object is a object of one of the classes
def is_one_of?(*classes)
classes.each {|c| return c if is_a?(c)}
nil
end
# Objects are blank if they respond true to empty?
def blank?
nil? || (respond_to?(:empty?) && empty?)
end
end
class Numeric
# Numerics are never blank (not even 0)
def blank?
false
end
end
class NilClass
# nil is always blank
def blank?
true
end
end
class TrueClass
# true is never blank
def blank?
false
end
end
class FalseClass
# false is always blank
def blank?
true
end
end
class String
BLANK_STRING_REGEXP = /\A\s*\z/
# Strings are blank if they are empty or include only whitespace
def blank?
empty? || BLANK_STRING_REGEXP.match(self)
end
end
|