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 end def area @width * @width end end
The point of POROs is generally to extract logic and data from larger objects to make them more comprehensible and testable.