= BinData Changelog == Version 1.1.0 (2009-11-24) * Allow anonymous fields in Records and Primitives. * Add the ability to skip over unused data. * Allow Records, Primitives and Wrappers to be derived from. * Classes for integers are now defined on demand. == Version 1.0.0 (2009-09-13) * Is now compatible with Ruby 1.9 * Added reference manual. * Added #rel_offset to Base. * Removed support for deprecated functionality. == Version 0.11.1 (2009-08-28) * Allow wrapped types to work with struct's :onlyif parameter * Use Array#index instead of #find_index for compatibility with Ruby 1.8.6 (patch courtesy of Joe Rozner). == Version 0.11.0 (2009-06-28) * Sanitizing code was refactored for speed. * Arbitrary sized integers and bit fields are now automatically instantiated. * Add ability to wrap existing types and override their parameters. == Version 0.10.0 (2009-04-17) * Arbitrary byte sized integers are now supported (e.g. 24bit, 808bit). * Renamed String :trim_value parameter to :trim_padding. * BinData::Array now behaves more like Ruby's Array. * Added debug_name * Added ability to trace reading * Primitives now behave as their value. Calling #value is no longer needed. * Renamed #to_s -> #to_binary_s to avoid confusion with Ruby's #to_s. * Added #assign as the generic way to assign values to objects. * Added :copy_on_change parameter to Choice. * Implement #offset for all objects. * Renamed Single -> BasePrimitive. * Renamed SingleValue -> Primitive. * Renamed MultiValue -> Record. * The :onlyif parameter now only applies to fields inside Structs. * LazyEvaluator can now supply arguments when invoking methods == Version 0.9.3 (2008-12-03) * Arrays can now :read_until => :eof * TCPSocket and UDPSocket can now be used as input streams (patch courtesy of Peter Suschlik). * Added 128 bit integers. * Significant memory usage reduction. * Added custom mandatory and default parameters for user defined MultiValues. == Version 0.9.2 (2008-07-18) * Added lazy instantiation to allow recursive definitions. * Array elements can be appended at any position. * Deprecated the :readwrite parameter. * Removed feature where Struct fields names could be nil. * Reworked sanitizing system. == Version 0.9.1 (2008-06-15) * Implemented bit fields. * Added :onlyif parameter to Base for specifying optional fields. * Fixed IO offset bug with SingleValues. == Version 0.9.0 (2008-06-02) * Added :adjust_offset option to automatically seek to a given offset. * Modified #read to accept strings as well as IO streams. * Choice now accepts sparse arrays and hashes as :choice. * Added BinData::Rest to help with debugging. * Major internal restructuring - memory usage is much better. * Improved documentation. == Version 0.8.1 (2008-01-14) * Reduced memory consumption. * Increased execution speed. * Deprecated BinData::Base.parameters. * Fixed spec syntax (thanks to David Goodlad). == Version 0.8.0 (2007-10-14) * Add reserved field names to Struct. * Prevent warnings about method redefinition. * Allow Struct to masquerade as one of its fields. * Renamed String param :initial_length to :read_length. * BinData::Array now behaves more like the internal Ruby array. == Version 0.7.0 (2007-08-26) * Arrays now support terminating conditions as well as fixed length reads. * Updated specs to new rspec syntax (0.9). * Added scoped resolution of variables in lambdas. * Added ability to append elements to arrays. == Version 0.6.0 (2007-03-28) * Added 64 bit integers. * Added floating point numbers. * Added endian keyword to Struct to reduce the amount of typing needed. == Version 0.5.1 (2007-03-21) * Updated documentation. * Struct now raises an error if a field name shadows an existing method. == Version 0.5.0 (2007-03-14) * Initial public release.