class BinData::DSLMixin::DSLBigAndLittleEndianHandler
def override_new_in_class
def override_new_in_class saved_class = @the_class endian_classes = { :big => class_with_endian(saved_class, :big), :little => class_with_endian(saved_class, :little), } @the_class.define_singleton_method(:new) do |*args| if self == saved_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