Protocol/Interface for Ruby