# AWS/S3 and subclassing

**URL:** <https://www.ruby-forum.com/t/aws-s3-and-subclassing/134058>\
**Category:** Ruby\
**Created:** [April 7, 2008, 1:39pm UTC](https://www.ruby-forum.com/t/aws-s3-and-subclassing/134058 "2008-04-07T13:39:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![addywaddy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ea5d25/32.png) [@addywaddy](https://www.ruby-forum.com/u/addywaddy)\
**Post date:** [April 7, 2008, 1:39pm UTC](https://www.ruby-forum.com/t/aws-s3-and-subclassing/134058/1 "2008-04-07T13:39:53Z")

</div>

Hi all,

How can I make this class return instances of Page instead of instances  
of AWS::S3::S3Object when I call Page.find(“mydomain”, “mypath”)?

require “rubygems”  
require “aws/s3”

class Page \< AWS::S3::S3Object

class \<\< self

```
alias_method :s3find, :find

def find(domain, path)
  connect_to_s3
  s3find("#{domain}/#{path}", BUCKET)
end

```

end  
end

I want to be able to define instance methods for updating or deleting a  
page.

Grateful for any pointers/suggestions.

Regards

Adam

---

<div class="post-metadata">

**Author:** ![addywaddy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ea5d25/32.png) [@addywaddy](https://www.ruby-forum.com/u/addywaddy)\
**Post date:** [April 7, 2008, 2:56pm UTC](https://www.ruby-forum.com/t/aws-s3-and-subclassing/134058/2 "2008-04-07T14:56:32Z")

</div>

OK. I’ve realised why this is happening. S3Object.find delegates to  
Bucket.find and Bucket.find returns an array of S3Object instances.
