Range.last_element because Range.last is broken

Problem

(1..2).last != (1...3).last

Solution

class Range
  # http://bit.ly/p2rmyY
  # (1..2).last != (1...3).last
  # (1..2).last_element == (1...3).last_element
  def last_element
    exclude_end? ? last.pred : last
  end unless defined? last_element
end

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s