lib/bindata/bits.rb in bindata-1.5.0 vs lib/bindata/bits.rb in bindata-1.5.1

- old
+ new

@@ -6,11 +6,11 @@ module BitField #:nodoc: all class << self def define_class(nbits, endian) name = "Bit#{nbits}" - name += "le" if endian == :little + name << "le" if endian == :little unless BinData.const_defined?(name) BinData.module_eval <<-END class #{name} < BinData::BasePrimitive BitField.define_methods(self, #{nbits}, :#{endian}) end @@ -49,17 +49,17 @@ end def create_clamp_code(nbits) min = 0 max = (1 << nbits) - 1 - clamp = "val = (val < #{min}) ? #{min} : (val > #{max}) ? #{max} : val" + clamp = "(val < #{min}) ? #{min} : (val > #{max}) ? #{max} : val" if nbits == 1 # allow single bits to be used as booleans - "val = (val == true) ? 1 : (not val) ? 0 : #{clamp}" - else - clamp + clamp = "(val == true) ? 1 : (not val) ? 0 : #{clamp}" end + + "val = #{clamp}" end end end # Create classes on demand