Sha256: 586190b01913cd36dc9291962a849cc400c46db761d5f224e5b502bbbbed1c12

Contents?: true

Size: 1.1 KB

Versions: 33

Compression:

Stored size: 1.1 KB

Contents

//boyer-moore?
module.exports = function bm(buf,search,offset){
  var m  = 0, j = 0
  var table = []

  var ret = -1;
  for(var i=offset||0;i<buf.length;++i){
    console.log('i',i)

    table[i] = [[i,0]]
    if(buf[i] === search[0]) {
      for(j = search.length-1;j>0;--j){
        table[i].push([i+j,j])
        console.log('j',j)
        if(buf[i+j] !== search[j]) {

          //i += j
          j = -1
          break
        }
      }
      if(j === 0) {
        ret = i
        break
      }
    }
  }

  console.log(table)
  renderTable(table,buf,search)
  return ret
}


var chalk = require('chalk')
function renderTable(table,buf,search){
  var s = ''

  console.log('-----')
  console.log('search:',search)
  console.log('-----')
  console.log(buf+'')

  table.forEach(function(a){
    if(!a) return;// console.log('')
    a.forEach(function(v){
      if(!v) return;
      var pad = ''
      while(pad.length < v[0]){
        pad += ' '
      }
      if(search[v[1]] === buf[v[0]]) console.log(pad+chalk.green(search[v[1]]))
      else console.log(pad+chalk.red(search[v[1]]))

    })
  })
  console.log('-----')
}

Version data entries

33 entries across 32 versions & 11 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.18.0 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.18.2 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.16.1 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.15.2 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.18.4 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.18.1 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.14.0 test/dummy/node_modules/buffer-indexof/bm.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/buffer-indexof/bm.js
tang-0.2.1 spec/tang_app/node_modules/buffer-indexof/bm.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/buffer-indexof/bm.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/buffer-indexof/bm.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/buffer-indexof/bm.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/buffer-indexof/bm.js
tang-0.2.0 spec/tang_app/node_modules/buffer-indexof/bm.js
tang-0.1.0 spec/tang_app/node_modules/buffer-indexof/bm.js
tang-0.0.9 spec/tang_app/node_modules/buffer-indexof/bm.js
enju_library-0.3.8 spec/dummy/node_modules/buffer-indexof/bm.js
ilog-0.4.1 node_modules/buffer-indexof/bm.js