Sha256: 72ca26a66b3aa5dcba138d9ab0859f458ca0a211946a9fcba5eef63ab206457f

Contents?: true

Size: 1.5 KB

Versions: 3

Compression:

Stored size: 1.5 KB

Contents

= mock-aws-s3

This is a simple gem for mocking out the AWS::S3 library, so that no calls to the Amazon S3 service during tests.

Usage is simple, just add the gem to your bundle, and require it in your spec_helper.rb:

    require 'mock-aws-s3'

From there on, all (supported) calls to AWS::S3::S3Object will be proxied to file operations in a temp directory on your disk.  So these commands:

    AWS::S3::S3Object.store 'key', 'some data', 'bucket'
    AWS::S3::S3Object.exists?('key', 'bucket')
    AWS::S3::S3Object.value 'key', 'bucket'
    AWS::S3::S3Object.url_for 'key', 'bucket'
    AWS::S3::S3Object.delete('key', 'bucket')

... will result in a file being created on disk at <tt>./tmp/mock-aws-s3/bucket/key</tt>, with contents: <tt>"some data"</tt>.  A <tt>File.exists?()</tt> check will be performed on that file, the content of the file will be returned, a local file uri will be return and then it will be deleted.

If you are using Rails, the <tt>Rails.root</tt> directory will be used: <tt>Rails.root.join('tmp')</tt>.


== Note on Patches/Pull Requests

* Fork the project.
* Make your feature addition or bug fix.
* Add spec for it. This is important so I don't break it in a
  future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Joshua Krall. See LICENSE for details.

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mock-aws-s3-0.6.0 README.rdoc
mock-aws-s3-0.5.0 README.rdoc
mock-aws-s3-0.4.0 README.rdoc