-
Moved to github.
-
Updated to Ruby 2.0
-
Arrays now accept BinData object factories for :type (feature request by Matt Dainty).
-
Dynamically generated BinData objects can use the :name parameter to register themselves.
-
Remove functionality that has been deprecated for two years.
-
Added the :pad_front option for padding to occur at the front of a String. (suggested by Eduardo Mourão).
-
Fixed bug where user defined boolean primitive wouldn’t set its value to false (reported by Frank Roland).
-
Fixed infinite looping bug caused by nested Choices.
-
Renamed String parameter :pad_char to :pad_byte.
-
Updated manual.
-
Exceptions no longer ignored inside lambdas when reading until eof in an array (thanks John Labovitz).
-
Fixed interaction bug between choices and records (reported by Refrigerator Johnny).
-
=~ now works for strings.
-
Added :default option for Choices.
-
Added count_bytes_remaining keyword.
-
Increased speed of lazy evaluation.
-
Record#snapshot now returns fields in order.
-
Removed the need to call #register_self in subclasses.
-
Wrapper is now deprecated. Use subclassing instead.
-
Updated license to mimic changes to the Ruby License.
-
Refactoring to reduce memory usage.
-
Fixed file permissions problem.
-
BinData objects can now assign values when instantiating.
-
Improved support for bit-based alignment.
-
Updated reference manual.
-
Added examples for declaring recursive structures.
-
Objects deriving from BinData::Base should no longer override #initialize.
-
Added BinData::Base(#new, #initialize_instance) to speed up instantiation of multiple objects.
-
Updated specs to rspec-1.3.0
-
BinData::Struct.hide now expects symbols instead of strings.
-
Added Base.bindata_name method.
-
Removed Base#done_read to reduce memory usage and cpu usage.
-
Derived classes should now use do_read et al, instead of _do_read.
-
Added predefinition of record fields to improve speed.
-
Made compatible with ruby 1.9.2. Thanks to Andrew Watts.
-
Updated specs to be compatible with ruby 1.9.1
-
Deprecated Base#register. Use #register_self or #register_subclasses instead.
-
Syntax improvement. Array, Structs and Choices can now use blocks to specify fields.
-
Reduced startup time (suggestion courtesy of Mike Ryan).
-
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.
-
Is now compatible with Ruby 1.9
-
Added reference manual.
-
Added #rel_offset to Base.
-
Removed support for deprecated functionality.
-
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).
-
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.
-
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
-
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.
-
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.
-
Implemented bit fields.
-
Added :onlyif parameter to Base for specifying optional fields.
-
Fixed IO offset bug with SingleValues.
-
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.
-
Reduced memory consumption.
-
Increased execution speed.
-
Deprecated BinData::Base.parameters.
-
Fixed spec syntax (thanks to David Goodlad).
-
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.
-
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.
-
Added 64 bit integers.
-
Added floating point numbers.
-
Added endian keyword to Struct to reduce the amount of typing needed.
-
Updated documentation.
-
Struct now raises an error if a field name shadows an existing method.
-
Initial public release.