Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Common software patterns I use frequently.
Ruby Makefile
Branch: master

Merge pull request #22 from andrewvc/fix_buffer_error_flushing

Fix logging of class names when a flush error occurs
latest commit 97f9ac41b7
@jordansissel authored
Failed to load latest commit information.
lib/stud Fix logging of class names when a flush error occurs
spec Stud.Try now accept a list of exceptions to retry
CHANGELIST
Gemfile Use secure https://rubygems.org and use gemspec to declare the gemfil…
Gemfile.lock Remove stud/benchmark/* as it's not a commonly-used pattern for me.
LICENSE - add license, silly me.
Makefile - add more package framing
README.md link to Buffer in README
stud.gemspec Stud.Try now accept a list of exceptions to retry

README.md

Stud.

Ruby's stdlib is missing many things I use to solve most of my software problems. Things like like retrying on a failure, supervising workers, resource pools, etc.

In general, I started exploring solutions to these things in code over in my software-patterns repo. This library (stud) aims to be a well-tested, production-quality implementation of the patterns described in that repo.

For now, these all exist in a single repo because, so far, implementations of each 'pattern' are quite small by code size.

Features

  • {Stud::Try} (and {Stud.try}) - retry on failure, with back-off, where failure is any exception.
  • {Stud::Pool} - generic resource pools
  • {Stud::Task} - tasks (threads that can return values, exceptions, etc)
  • {Stud.interval} - interval execution (do X every N seconds)
  • {Stud::Buffer} - batch & flush behavior.

TODO:

  • Make sure all things are documented. rubydoc.info should be able to clearly show folks how to use features of this library.
  • Add tests to cover all supported features.
Something went wrong with that request. Please try again.