Permalink
Switch branches/tags
Commits on Mar 18, 2011
  1. Updates Base32 API so encode and decode return strings instead of IO …

    …objects.
    
    Details:
    * Original encode method was renamed to stream_encode.
    * Original decode method was renamed to stream_decode.
    * New Base32.encode and Base32.decode methods delegate the actual work to
      the corresponding stream methods. These methods now return the string
      output instead of the previously default StringIO objects.
    * Use the stream_* methods to output to IO Objects.
    committed Mar 18, 2011
  2. Adds Base32 padding support to encoding and decoding.

    Details:
    * Base32 encoding will properly pad the final output if necessary.
    * Base32 decode will complete the decode process on reading the pad character.
    committed Mar 18, 2011
Commits on Dec 9, 2010
  1. Junkfood::Rack::ChainedRouter now support instance_eval DSL blocks.

    Details:
    * ChainedRouter constructor had always yielded self to the blocks to configure
      itself with additional routes.
    * Now we only yield self is the block arity is not 0; instance_eval is
      used to execute the blocks in other cases.
    * This allows users to be more succinct in router configuration.
    committed Dec 9, 2010
Commits on Nov 20, 2010
  1. Regenerate gemspec for version 0.3.0

    committed Nov 20, 2010
  2. Version bump to 0.3.0

    committed Nov 20, 2010
Commits on Nov 18, 2010
  1. Changed created_at types from Time to DateTime for BaseCommand and Ba…

    …seEvent.
    
    Details:
    * The DateTime class is more robust than the Time class (Unix posix wrapper).
    committed Nov 18, 2010
Commits on Nov 17, 2010
  1. Fix bug: the TransientSession overwrite carried over into alternate c…

    …all stacks.
    
    Details:
    * TransientSession used to overwrite the 'rack.session' of a given
      environment settings without duplicating the env.
    * Bug example:
      ChainedRouter is inserted in a Rails application, and has two paths A and B.
      TransientSession is middleware in path A, but path A eventually
      returns an X-Cascade of pass.
      So path B is called with the session values set by path A.
      The end Rails app also has the corrupted session values instead of the
      original cookie sessions.
    * Fix is to duplicate the environment before setting the 'rack.session' key.
    committed Nov 17, 2010
  2. Adds Junkfood::Rack::ChainRouter, a Rack Middleware and Application.

    Details:
    * ChainRouter executes a list of rack applications in consecutive order
      as long as each rack application returns a result with the 'X-Cascade'
      header set to 'pass'.
    * The return results of an application without 'X-Cascade' set to 'pass'
      will be returned, terminating the execution of the rest of the chain.
    * The return results of the last app in the chain is returned regardless
      of the 'X-Cascade' value.
    * As middleware, the configured chain will execute before the main app.
    * An empty chain (including nil rack app) will immediately return
      a "not found" response with the 'X-Cascade' header set to 'pass'.
    committed Nov 17, 2010
Commits on Nov 16, 2010
  1. Implemented tests for Base32's split functionality.

    Details:
    * We want to partition the encoded Base32 output string into fixed sized blocks.
    * Several types of separators are supported: dash, newline, space, underscore.
    * We write tests for each of the separators, and at varying block sizes.
    committed Nov 16, 2010
  2. Clean up class level documentation for CEB BaseCommand and BaseEvent.

    Details:
    * Added example for each base class.
    * Clarified the default fields each base class supports.
    * Clarified how one is to implement actual concrete Command and Events.
    committed Nov 16, 2010
Commits on Nov 15, 2010
  1. Regenerate gemspec for version 0.2.0

    committed Nov 15, 2010
  2. Version bump to 0.2.0

    committed Nov 15, 2010
  3. Adds gem dependencies for each junkfood component to the README.

    Details:
    * Each component section in the README now lists the main modules that
      its code `requires`.
    * Requirements are really at the component level even though we list
      gem dependencies in the Rakefile and gemspec.
    committed Nov 15, 2010
  4. Added Error and Session generic middleware for rack applications.

    Details:
    * Junkfood::Rack::ErrorHandler is a middleware to catch exceptions from
      rack applications and return formatted JSON responses.
    * Junkfood::Rack::TransientSession is a middleware that simply sets the
      'rack.session' environment variable for other middleware and application.
      Main use case is for 'warden' authentication using per request api tokens.
    committed Nov 15, 2010
Commits on Oct 1, 2010
  1. Version bump to 0.1.0

    committed Oct 1, 2010
Commits on Sep 24, 2010
  1. Initial commit of the Junkfood library.

    Details:
    * Adler32 implementation (pure ruby and zlib versions).
    * Assert module for simple Assertions.
    * Base32 encoding and decoding (requires at least Ruby 1.9)
    * Ceb (Command Event Busing) support code to implement Command-Query
      Responsibility Separation.
    * OneTime, an implementation of HMAC One Time Password. Includes Time Based
      OTP support.
    * PaperclipStringIO, an adapter to help store in-memory blobs into paperclip
      enhanecd ActiveModels. This avoids having to go to tmp files.
    * Settings, a centralized yml configuration loader for Rails applications.
    * Includes lots of documentation.
    * Includes lots of rspec. Some specs left unimplemented for experimental code.
    * Includes README, and proper LICENSE files and comments.
    committed Sep 24, 2010