Plain Old Ruby Objects
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.