A Plain Old Ruby Object (PORO) is a phrase that is often in the eye of the beholder. An Active Record backed model in a Ruby on Rails application that has hundreds of lines of code in it is a Ruby Object but is not considered a PORO. A PORO could be a smaller value object which contains a small amount of logic and information.

Example of a PORO:

class Square
  def intialize(width)
    @width = width

  def area
    @width * @width

The point of POROs is generally to extract logic and data from larger objects to make them more comprehensible and testable.