bit-struct 0.17
-
updated for ruby 3.0
bit-struct 0.16
-
updated for ruby 2.4
bit-struct 0.15
-
modernize rakefile and gemspec
-
switch to minitest
bit-struct 0.14
-
updated for ruby 2.0
bit-struct 0.13.6
-
Fixed bug in to_a. Thanks Michael Edgar.
bit-struct 0.13
-
Packaged as a gem using bones.
-
Added nest fields defined with blocks. (Markus Fischer)
-
Vector length may be specified as argument or :length option. (Markus Fischer)
bit-struct 0.12
-
Added vectors.
-
BitStruct#initialize can take an IO argument.
bit-struct 0.11
-
Allow unaligned fields to cross up to two byte boundaries. See examples/byte-bdy.rb.
bit-struct 0.10
-
Fixed a bug when calling to_yaml on a
BitStruct
with a pad field. Thanks to Jay Reitz for reporting it and providing the solution. -
Added
BitStruct.default_options
. Particularly useful for default endian settings–see examples/native.rb. -
Fixed a bug that prevented warning about field name conflicts with existing methods when the name is given as a symbol.
-
Fixed point fields may now have fractional divisors (like :fixed => 0.001).
bit-struct 0.9
-
Added examples/field-ripper.rb.
-
Added
BitStruct#field_by_name
. -
Added more warnings about nested field accessors returning a copy of the nested data.
-
Added “pad” fields. See documentation in pad-field.rb and examples/pad.rb.
-
The initial_value method now yields the value to a block, if given.
-
A
BitStruct
class is only closed when an instance is created. (After this point no fields can be added.) Formerly, a class was closed when any method requested the total length of the structure. This change makes it easier to add groups of fields modularly, each with their own initial_value block. -
Added examples/modular-def.rb to explain how to factor a
BitStruct
definition into modules.
bit-struct 0.8
-
Signed fields can now (like unsigned fields) be any multiple of 8 bits, and are accessed as fixnums or bignums, as needed.
-
It's easier to subclass
BitStruct::OctetField
.BitStruct::HexOctetField
is now implemented in this way, just by defining three constants and two trivial class methods.
bit-struct 0.7
-
BitStruct.describe
now takes an option hash, and the :expand=>true option causes nested fields to be expanded in the description. -
Unsigned integer fields can now be any multiple of 8 bytes: 8, 16, 24, 32, 40, … (Fields of 1..15 bits in length are of course still supported.)
-
Added the :endian => :little option to signed integer, unsigned integer, and float fields. The full set of endian options is now [:little, :big, :network, :native]. The default is always :network.
-
Option names may be strings or symbols. Values that can be symbols can also be strings.
-
Added examples/bignum.rb.
-
Added support for the YAML in ruby 1.8.2 (the YAML in 1.8.4 was already supported).
bit-struct 0.6
-
Added the :endian => :native option for numerical fields (signed, unsigned, float).
-
Fixed error message with 9..15 bit fields aligned on byte boundary.
-
The initial_value is now inherited (before applying defaults).
-
New examples: raw.rb, native.rb.
bit-struct 0.5
-
Integer fields may now cross byte boundaries, as long as the field fits within two whole bytes.
bit-struct 0.4
-
Fixed a bug in reading text and char fields in YAML: if the value was interpreted by YAML as something other than a string, an error would result.
-
When BitStructs are loaded from yaml, the key is treated as a setter method, rather than a field. This is useful in case there is a field that needs special setters to accept humanly readable input. (For example, a char field with length-prefixed subfields.)
bit-struct 0.3
-
BitStruct
classes are now YAML friendly. -
The default behavior of
BitStruct#inspect
andBitStruct#inspect_detailed
is changed to print out the “rest” field, if any. This can be disabled by passing inspect an options hash with :include_rest => false. See BitStruct::DEFAULT_INSPECT_OPTS and BitStruct::DETAILED_INSPECT_OPTS. See examples/ip.rb and examples/rest.rb. -
The default behavior of
BitStruct#to_h
is changed to include the “rest” field. As above, this can be disabled by passing to_h an options hash with :include_rest => false. -
The default behavior of
BitStruct#to_a
is changed to include the “rest” field. As above, this can be disabled by passing false as an argument to to_a.
bit-struct 0.2
-
first public release
bit-struct 0.1
-
first release