class BinData::DSLMixin::DSLBigAndLittleEndianHandler

def override_new_in_class(bnl_class)

def override_new_in_class(bnl_class)
  endian_classes = {
    :big    => class_with_endian(bnl_class, :big),
    :little => class_with_endian(bnl_class, :little),
  }
  bnl_class.define_singleton_method(:new) do |*args|
    if self == bnl_class
      value, options, parent = arg_processor.separate_args(self, args)
      delegate = endian_classes[options[:endian]]
      return delegate.new(*args) if delegate
    end
    super(*args)
  end
end