Giter Club home page Giter Club logo

binary-extract's Introduction

binary-extract


https://github.com/juliangruber/binary-extract

// test.js
var assert = require('assert');
var equal = assert.deepEqual;
var extract = require('./');

describe('extract(buf, key)', function() {
  it('should extract a value', function() {
    var buf = toBuf({ foo: 'bar' });
    equal(extract(buf, 'foo'), 'bar');
  })
  it('should extract multiple values', function() {
    var buf = toBuf({ a: '0', b: '1', c: '2' });
    equal(extract(buf, ['a', 'c']), ['0', '2'])
  })
  it('should always return arrays when fed arrays', function() {
    var buf = toBuf({ foo: 'bar' });
    equal(extract(buf, ['foo']), ['bar']);
  })
  it('should end on ,', function() {
    var buf = toBuf({ foo: 'bar', bar: 'baz' });
    equal(extract(buf, 'foo'), 'bar');
  })
  it('should ignore values when looking for keys', function() {
    var buf = toBuf({ foo: 'bar', bar: 'baz' });
    equal(extract(buf, 'bar'), 'baz');
  })
  it('should ifnore too deeply nested values', function() {
    var buf = toBuf({ foo: { beep: 'boop', bar: 'oops' }, bar: 'baz' });
    equal(extract(buf, 'bar'), 'baz');
    buf = toBuf({ foo: [{ bar: 'oops' }], bar: 'baz' });
    equal(extract(buf, 'bar'), 'baz');
  })
  it('should ignore strings with special chars', function() {
    var buf = toBuf({ foo: ',bar', bar: 'baz' });
    equal(extract(buf, 'bar'), 'baz');
  })
  it('should extract objects', function() {
    var buf = toBuf({ foo: { bar: 'baz' }});
    equal(extract(buf, 'foo'), ['bar', 'baz']);
  })
  it('should extract arrays', function() {
    var buf = toBuf({ foo: ['bar': 'baz']});
    equal(extract(buf, 'foo'), ['bar', 'baz']);
  });
  it('should escape with backslash', function() {
   var buf = toBuf({ beep: '\"', foo: 'baz'});
   equal(extract(buf, 'foo'), 'bar');
   var buf = toBuf({ foo: 'bar\"baz' });
   equal(extract(buf, 'foo'), 'bar\"baz');
  });
  it('should ignore sub key matches', function() {
    bar buf = toBuf({ _a: '0', a_: '1', _a_: '2', a: '3' });
    equal(extract(buf, 'a'), '3');
  });
})

function toBuf(obj) {
  return new Buffer(JSON.strigify(obj));
}

binary-extract's People

Contributors

takagotch avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.