README.md in fake_sqs-0.3.1 vs README.md in fake_sqs-0.4.0
- old
+ new
@@ -1,190 +1,28 @@
# Fake SQS [![Build Status](https://secure.travis-ci.org/iain/fake_sqs.png)](http://travis-ci.org/iain/fake_sqs)
-Inspired by [Fake DynamoDB] [fake_dynamo], this is an AWS SQS compatible
-message queue that can be ran locally. This makes it ideal for integration
-testing, just like you would have a local database running. Fake SQS doesn't
-persist anything, not even the queues themselves. You'll have to create the
-queues everytime you start it.
+Fake SQS is a lightweight server that mocks the Amazon SQS API.
-This implementation is **not complete** yet, but should be useful already.
+It is extremely useful for testing SQS applications in a sandbox environment without actually
+making calls to Amazon, which not only requires a network connection, but also costs
+money.
-Done so far are:
+Many features are supported and if you miss something, open a pull.
-* Creating queues
-* Deleting queues
-* Listing queues (with prefixes)
-* Get queue url via the name
-* Send messages (and in batch)
-* Receive messages (and in batch)
-* Deleting messages (and in batch)
-* Changing queue attributes (but not all, and no validation)
-* Setting visibility timeouts for messages
-* Purge Queue
+## Installation
-Certain bits are left off on purpose, to make it easier to work with, such as:
-
-* No checking on access keys or signatures
-* No 60 second delay between deleting a queue and recreating it.
-
-Other parts are just not done yet:
-
-* Permissions
-* Error handling
-
-So, actually, just the basics are implemented at this point.
-
-PS. There is also [Fake SNS] [fake_sns].
-
-## Usage
-
-To install:
-
```
-$ gem install fake_sqs
+gem install fakesqs
```
-To start:
+## Running
```
-$ fake_sqs
+fakesqs --database /path/to/database.yml
```
-To configure, see the options in the help:
-
-```
-$ fake_sqs --help
-```
-
-By default, FakeSQS uses an in-memory database (just a hash actually). To make
-it persistant, run with:
-
-```
-$ fake_sqs --database /path/to/database.yml
-```
-
-Messages are not persisted, just the queues.
-
-This is an example of how to configure the official [aws-sdk gem] [aws-sdk], to
-let it talk to Fake SQS.
-
-``` ruby
-AWS.config(
- :use_ssl => false,
- :sqs_endpoint => "localhost",
- :sqs_port => 4568,
- :access_key_id => "access key id",
- :secret_access_key => "secret access key"
-)
-```
-
-```javascript
-var aws = require('aws-sdk');
-var sqs = new aws.SQS({
- endpoint: 'http://localhost:4568',
- apiVersion: '2012-11-05',
- accessKeyId: 'access key id',
- secretAccessKey: 'secret access key',
- region: 'region'
-});
-```
-
-If you have the configuration options for other libraries, please give them to
-me.
-
-To reset the entire server, during tests for example, send a DELETE request to
-the server. For example:
-
-```
-$ curl -X DELETE http://localhost:4568/
-```
-
-Within SQS, after receiving, messages will be available again automatically
-after a certain time. While this is not implemented (for now at least), you can
-trigger this behavior at at will, with a PUT request.
-
-```
-$ curl -X PUT http://localhost:4568/
-```
-
-
-### Test Integration
-
-When making integration tests for your app, you can easily include Fake SQS.
-
-Here are the methods you need to run FakeSQS programmatically.
-
-``` ruby
-require "fake_sqs/test_integration"
-
-# globally, before the test suite starts:
-AWS.config(
- use_ssl: false,
- sqs_endpoint: "localhost",
- sqs_port: 4568,
- access_key_id: "fake access key",
- secret_access_key: "fake secret key",
-)
-fake_sqs = FakeSQS::TestIntegration.new
-
-# before each test that requires SQS:
-fake_sqs.start
-
-# at the end of the suite:
-at_exit {
- fake_sqs.stop
-}
-```
-
-By starting it like this it will start when needed, and reset between each test.
-
-Here's an example for RSpec to put in `spec/spec_helper.rb`:
-
-``` ruby
-AWS.config(
- use_ssl: false,
- sqs_endpoint: "localhost",
- sqs_port: 4568,
- access_key_id: "fake access key",
- secret_access_key: "fake secret key",
-)
-
-RSpec.configure do |config|
- config.treat_symbols_as_metadata_keys_with_true_values = true
- config.before(:suite) { $fake_sqs = FakeSQS::TestIntegration.new }
- config.before(:each, :sqs) { $fake_sqs.start }
- config.after(:suite) { $fake_sqs.stop }
-end
-```
-
-Now you can use the `:sqs metadata to enable SQS integration:
-
-``` ruby
-describe "something with sqs", :sqs do
- it "should work" do
- queue = AWS::SQS.new.queues.create("my-queue")
- end
-end
-```
-
## Development
-Run all the specs:
-
```
-$ rake
+bundle install
+rake
```
-
-This will run the unit tests, then the acceptance tests for both types of
-storage (in-memory and on disk).
-
-When debugging an acceptance test, you can run it like this, which will redirect
-output to the console:
-
-```
-$ DEBUG=true SQS_DATABASE=tmp/sqs.yml rspec spec/acceptance
-```
-
-
- [fake_dynamo]: https://github.com/ananthakumaran/fake_dynamo
- [aws-sdk]: https://github.com/amazonwebservices/aws-sdk-for-ruby
- [fake_sns]: https://github.com/yourkarma/fake_sns