json-bloomfilter 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.travis.yml CHANGED
@@ -1,3 +1,11 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+
7
+ before_install:
8
+ - "export DISPLAY=:99.0"
9
+ - "sh -e /etc/init.d/xvfb start"
10
+
11
+ script: bundle exec rake travis
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- json-bloomfilter (0.1.0)
4
+ json-bloomfilter (0.1.1)
5
+ json
5
6
 
6
7
  GEM
7
8
  remote: http://rubygems.org/
@@ -28,6 +29,7 @@ GEM
28
29
  rspec (>= 1.3.1)
29
30
  selenium-webdriver (>= 0.1.3)
30
31
  jasmine-core (1.3.1)
32
+ json (1.7.6)
31
33
  libv8 (3.11.8.13)
32
34
  libwebsocket (0.1.7.1)
33
35
  addressable
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Serialisable (JSON) Bloom Filter
2
2
 
3
- [![Build Status](https://travis-ci.org/cbetta/json-bloomfilter.png?branch=master)](https://travis-ci.org/cbetta/json-bloomfilter)
3
+ [![Build Status](https://travis-ci.org/cbetta/json-bloomfilter.png?branch=master)](https://travis-ci.org/cbetta/json-bloomfilter) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/cbetta/json-bloomfilter)
4
4
 
5
5
  A bloom filter implementation that is serialisable to JSON and compatible between both Ruby and Javascript. Very useful when needing to train a bloom filter in one language and using it in the other.
6
6
 
@@ -114,7 +114,8 @@ Additionally you can pass along:
114
114
 
115
115
  ## Release notes
116
116
 
117
- * **0.1.0** Added travis. Bumped minor release version
117
+ * **0.1.1** Fixes a JS integer overflow issue and makes Ruby 1.8.7 compatible
118
+ * **0.1.0** Adds travis-ci. Bumped minor release version
118
119
  * **0.0.6** Adds a factory that takes a size + error rate
119
120
  * **0.0.5** Adds installer of JS file
120
121
  * **0.0.4** Adds JS tests
data/Rakefile CHANGED
@@ -8,6 +8,13 @@ task :test do
8
8
  sh "bundle exec rspec spec"
9
9
  end
10
10
 
11
+ task :travis do
12
+ ["rake test", "rake jasmine:ci"].each do |cmd|
13
+ puts "Starting to run #{cmd}..."
14
+ system("export DISPLAY=:99.0 && bundle exec #{cmd}")
15
+ raise "#{cmd} failed!" unless $?.exitstatus == 0
16
+ end
17
+ end
11
18
 
12
19
  desc "Autobuild JS/SCSS"
13
20
  task :watch do
@@ -17,12 +24,12 @@ task :watch do
17
24
  monitor = FSSM::Monitor.new
18
25
 
19
26
  monitor.path "coffee", "**/*.coffee" do
20
- compile_block = -> basename, filename do
27
+ compile_block = lambda do |basename, filename|
21
28
  puts "Compiling coffee to minified js..."
22
29
  coffee_file = "coffee/#{filename}"
23
30
  puts "\t#{coffee_file}"
24
- Rake::Task["js:compile_file"].tap(&:reenable).invoke(coffee_file)
25
- Rake::Task["js:minify_file"].tap(&:reenable).invoke(coffee_file)
31
+ Rake::Task["js:compile_cs"].tap(&:reenable).invoke
32
+ Rake::Task["js:minify_js"].tap(&:reenable).invoke
26
33
  end
27
34
 
28
35
  update &compile_block
@@ -59,7 +66,7 @@ namespace :js do
59
66
  FileUtils.mkdir_p(directory_name) unless File.exists? directory_name
60
67
  puts "\t\t->#{js_file}"
61
68
  File.open(js_file, "w+") do |f|
62
- f.print CoffeeScript.compile(coffee_script, no_wrap: true)
69
+ f.print CoffeeScript.compile(coffee_script, :no_wrap => true)
63
70
  end
64
71
  end
65
72
 
@@ -21,16 +21,16 @@ JsonBloomfilter.BitArray.prototype.set = (position, value) ->
21
21
  aPos = @arrayPosition(position)
22
22
  bChange = @bitChange(position)
23
23
  if value == 1
24
- @field[aPos] |= bChange
24
+ @field[aPos] = @abs(@field[aPos] | bChange)
25
25
  else if (@field[aPos] & bChange) != 0
26
- @field[aPos] ^= bChange
26
+ @field[aPos] = @abs(@field[aPos] ^ bChange)
27
27
  true
28
28
 
29
29
  JsonBloomfilter.BitArray.prototype.get = (position) ->
30
30
  throw new Error("BitArray index out of bounds") if position >= @size
31
31
  aPos = @arrayPosition(position)
32
32
  bChange = @bitChange(position)
33
- if (@field[aPos] & bChange) > 0
33
+ if @abs(@field[aPos] & bChange) > 0
34
34
  return 1
35
35
  else
36
36
  return 0
@@ -39,7 +39,11 @@ JsonBloomfilter.BitArray.prototype.arrayPosition = (position) ->
39
39
  Math.floor(position / @ELEMENT_WIDTH)
40
40
 
41
41
  JsonBloomfilter.BitArray.prototype.bitChange = (position) ->
42
- Math.abs(1 << position % @ELEMENT_WIDTH)
42
+ @abs(1 << position % @ELEMENT_WIDTH)
43
+
44
+ JsonBloomfilter.BitArray.prototype.abs = (val) ->
45
+ val += 4294967295 if val < 0
46
+ val
43
47
 
44
48
  JsonBloomfilter.BitArray.prototype.toString = ->
45
49
  output = ""
@@ -1 +1 @@
1
- var JsonBloomfilter;JsonBloomfilter=function(options){var key,value;if(options==null){options={}}this.options={size:100,hashes:4,seed:new Date().getTime()/1000,bits:null};for(key in options){value=options[key];this.options[key]=value}this.bits=new JsonBloomfilter.BitArray(this.options.size,this.options.bits);return this};JsonBloomfilter.build=function(capacity,error_rate){var hashes,size;size=Math.ceil(capacity*Math.log(error_rate)/Math.log(1/Math.pow(2,Math.log(2))));hashes=Math.round(Math.log(2)*size/capacity);return new JsonBloomfilter({size:size,hashes:hashes})};JsonBloomfilter.prototype.add=function(key){var index,_i,_len,_ref;_ref=this.indexesFor(key);for(_i=0,_len=_ref.length;_i<_len;_i++){index=_ref[_i];this.bits.add(index)}};JsonBloomfilter.prototype.test=function(key){var index,_i,_len,_ref;_ref=this.indexesFor(key);for(_i=0,_len=_ref.length;_i<_len;_i++){index=_ref[_i];if(this.bits.get(index)===0){return false}}return true};JsonBloomfilter.prototype.clear=function(){this.bits=new JsonBloomfilter.BitArray(this.options.size)};JsonBloomfilter.prototype.toHash=function(){var hash,key,value,_ref;hash={};_ref=this.options;for(key in _ref){value=_ref[key];hash[key]=value}hash.bits=this.bits.field;return hash};JsonBloomfilter.prototype.toJson=function(){return JSON.stringify(this.toHash())};JsonBloomfilter.prototype.indexesFor=function(key){var index,indexes,_i,_ref;indexes=[];for(index=_i=0,_ref=this.options.hashes-1;0<=_ref?_i<=_ref:_i>=_ref;index=0<=_ref?++_i:--_i){indexes.push(JsonBloomfilter.Zlib.crc32(""+key+":"+(index+this.options.seed))%this.options.size)}return indexes};JsonBloomfilter.BitArray=function(size,field){var arrayLength,i,_i,_ref;if(field==null){field=null}if(!size){throw new Error("Missing argument: size")}this.ELEMENT_WIDTH=32;this.size=size;this.field=field||[];arrayLength=Math.floor(((size-1)/this.ELEMENT_WIDTH)+1);if(!field){for(i=_i=0,_ref=arrayLength-1;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){this.field[i]=0}}return this};JsonBloomfilter.BitArray.prototype.add=function(position){return this.set(position,1)};JsonBloomfilter.BitArray.prototype.remove=function(position){return this.set(position,0)};JsonBloomfilter.BitArray.prototype.set=function(position,value){var aPos,bChange;if(position>=this.size){throw new Error("BitArray index out of bounds")}aPos=this.arrayPosition(position);bChange=this.bitChange(position);if(value===1){this.field[aPos]|=bChange}else{if((this.field[aPos]&bChange)!==0){this.field[aPos]^=bChange}}return true};JsonBloomfilter.BitArray.prototype.get=function(position){var aPos,bChange;if(position>=this.size){throw new Error("BitArray index out of bounds")}aPos=this.arrayPosition(position);bChange=this.bitChange(position);if((this.field[aPos]&bChange)>0){return 1}else{return 0}};JsonBloomfilter.BitArray.prototype.arrayPosition=function(position){return Math.floor(position/this.ELEMENT_WIDTH)};JsonBloomfilter.BitArray.prototype.bitChange=function(position){return Math.abs(1<<position%this.ELEMENT_WIDTH)};JsonBloomfilter.BitArray.prototype.toString=function(){var i,output,_i,_ref;output="";for(i=_i=0,_ref=this.size-1;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){output+=this.get(i)}return output};JsonBloomfilter.Zlib={CRC32_TABLE:new Array(0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117),crc32:function(string){var bytes,crc,i,iTop,n;bytes=this.bytesFor(string);crc=0;n=0;crc=crc^(-1);i=0;iTop=bytes.length;while(i<iTop){n=(crc^bytes[i])&255;crc=(crc>>>8)^this.CRC32_TABLE[n];i++}crc=crc^(-1);if(crc<0){crc+=4294967296}return crc},bytesFor:function(string){var bytes,i;bytes=[];i=0;while(i<string.length){bytes.push(string.charCodeAt(i));++i}return bytes}};
1
+ var JsonBloomfilter;JsonBloomfilter=function(options){var key,value;if(options==null){options={}}this.options={size:100,hashes:4,seed:new Date().getTime()/1000,bits:null};for(key in options){value=options[key];this.options[key]=value}this.bits=new JsonBloomfilter.BitArray(this.options.size,this.options.bits);return this};JsonBloomfilter.build=function(capacity,error_rate){var hashes,size;size=Math.ceil(capacity*Math.log(error_rate)/Math.log(1/Math.pow(2,Math.log(2))));hashes=Math.round(Math.log(2)*size/capacity);return new JsonBloomfilter({size:size,hashes:hashes})};JsonBloomfilter.prototype.add=function(key){var index,_i,_len,_ref;_ref=this.indexesFor(key);for(_i=0,_len=_ref.length;_i<_len;_i++){index=_ref[_i];this.bits.add(index)}};JsonBloomfilter.prototype.test=function(key){var index,_i,_len,_ref;_ref=this.indexesFor(key);for(_i=0,_len=_ref.length;_i<_len;_i++){index=_ref[_i];if(this.bits.get(index)===0){return false}}return true};JsonBloomfilter.prototype.clear=function(){this.bits=new JsonBloomfilter.BitArray(this.options.size)};JsonBloomfilter.prototype.toHash=function(){var hash,key,value,_ref;hash={};_ref=this.options;for(key in _ref){value=_ref[key];hash[key]=value}hash.bits=this.bits.field;return hash};JsonBloomfilter.prototype.toJson=function(){return JSON.stringify(this.toHash())};JsonBloomfilter.prototype.indexesFor=function(key){var index,indexes,_i,_ref;indexes=[];for(index=_i=0,_ref=this.options.hashes-1;0<=_ref?_i<=_ref:_i>=_ref;index=0<=_ref?++_i:--_i){indexes.push(JsonBloomfilter.Zlib.crc32(""+key+":"+(index+this.options.seed))%this.options.size)}return indexes};JsonBloomfilter.BitArray=function(size,field){var arrayLength,i,_i,_ref;if(field==null){field=null}if(!size){throw new Error("Missing argument: size")}this.ELEMENT_WIDTH=32;this.size=size;this.field=field||[];arrayLength=Math.floor(((size-1)/this.ELEMENT_WIDTH)+1);if(!field){for(i=_i=0,_ref=arrayLength-1;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){this.field[i]=0}}return this};JsonBloomfilter.BitArray.prototype.add=function(position){return this.set(position,1)};JsonBloomfilter.BitArray.prototype.remove=function(position){return this.set(position,0)};JsonBloomfilter.BitArray.prototype.set=function(position,value){var aPos,bChange;if(position>=this.size){throw new Error("BitArray index out of bounds")}aPos=this.arrayPosition(position);bChange=this.bitChange(position);if(value===1){this.field[aPos]=this.abs(this.field[aPos]|bChange)}else{if((this.field[aPos]&bChange)!==0){this.field[aPos]=this.abs(this.field[aPos]^bChange)}}return true};JsonBloomfilter.BitArray.prototype.get=function(position){var aPos,bChange;if(position>=this.size){throw new Error("BitArray index out of bounds")}aPos=this.arrayPosition(position);bChange=this.bitChange(position);if(this.abs(this.field[aPos]&bChange)>0){return 1}else{return 0}};JsonBloomfilter.BitArray.prototype.arrayPosition=function(position){return Math.floor(position/this.ELEMENT_WIDTH)};JsonBloomfilter.BitArray.prototype.bitChange=function(position){return this.abs(1<<position%this.ELEMENT_WIDTH)};JsonBloomfilter.BitArray.prototype.abs=function(val){if(val<0){val+=4294967295}return val};JsonBloomfilter.BitArray.prototype.toString=function(){var i,output,_i,_ref;output="";for(i=_i=0,_ref=this.size-1;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){output+=this.get(i)}return output};JsonBloomfilter.Zlib={CRC32_TABLE:new Array(0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117),crc32:function(string){var bytes,crc,i,iTop,n;bytes=this.bytesFor(string);crc=0;n=0;crc=crc^(-1);i=0;iTop=bytes.length;while(i<iTop){n=(crc^bytes[i])&255;crc=(crc>>>8)^this.CRC32_TABLE[n];i++}crc=crc^(-1);if(crc<0){crc+=4294967296}return crc},bytesFor:function(string){var bytes,i;bytes=[];i=0;while(i<string.length){bytes.push(string.charCodeAt(i));++i}return bytes}};
@@ -18,6 +18,8 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
+ s.add_dependency 'json'
22
+
21
23
  s.add_development_dependency 'rspec'
22
24
  s.add_development_dependency 'yui-compressor'
23
25
  s.add_development_dependency 'therubyracer'
@@ -1,4 +1,4 @@
1
- require_relative "bloomfilter/bitarray"
1
+ require "json/bloomfilter/bitarray"
2
2
  require "json"
3
3
 
4
4
  class JsonBloomfilter
@@ -7,7 +7,7 @@ class JsonBloomfilter
7
7
  def self.build capacity, error_rate
8
8
  size = (capacity * Math.log(error_rate) / Math.log(1.0 / 2**Math.log(2))).ceil
9
9
  hashes = (Math.log(2) * size / capacity).round
10
- JsonBloomfilter.new size: size, hashes: hashes
10
+ JsonBloomfilter.new :size => size, :hashes => hashes
11
11
  end
12
12
 
13
13
  def initialize options = {}
@@ -1,3 +1,3 @@
1
1
  class JsonBloomfilter
2
- VERSION = "0.1.0" unless defined? JsonBloomfilter::VERSION
2
+ VERSION = "0.1.1" unless defined? JsonBloomfilter::VERSION
3
3
  end
Binary file
@@ -11,7 +11,7 @@ describe("JsonBloomfilter.BitArray", function() {
11
11
  expect(ba.field).toBe(field);
12
12
  });
13
13
 
14
- it("should create the right size field"), function() {
14
+ it("should create the right size field", function() {
15
15
  ba = new JsonBloomfilter.BitArray(100);
16
16
  expect(ba.field.length).toBe(4);
17
17
  });
@@ -50,7 +50,6 @@ describe("JsonBloomfilter", function() {
50
50
  bits = bf.toHash()["bits"];
51
51
  bf.add("foobar");
52
52
  expect(bf.test("foobar")).toBe(true);
53
- expect(bf.toHash()["bits"]).toBe(bits);
54
53
  });
55
54
  });
56
55
 
@@ -4,8 +4,8 @@ describe JsonBloomfilter::BitArray do
4
4
 
5
5
  describe "#initialize" do
6
6
  it "should require a size" do
7
- expect(->{JsonBloomfilter::BitArray.new}).to raise_error(ArgumentError)
8
- expect(->{JsonBloomfilter::BitArray.new(100)}).not_to raise_error(ArgumentError)
7
+ expect(lambda{JsonBloomfilter::BitArray.new}).to raise_error(ArgumentError)
8
+ expect(lambda{JsonBloomfilter::BitArray.new(100)}).not_to raise_error(ArgumentError)
9
9
  end
10
10
  it "should take an optional bit field" do
11
11
  field = [0,0,0,2]
@@ -23,7 +23,7 @@ describe JsonBloomfilter::BitArray do
23
23
 
24
24
  it "should throw an error on out of bound" do
25
25
  ba = JsonBloomfilter::BitArray.new(10)
26
- expect(->{ba.add(10)}).to raise_error
26
+ expect(lambda{ba.add(10)}).to raise_error
27
27
  end
28
28
  end
29
29
 
@@ -37,7 +37,7 @@ describe JsonBloomfilter::BitArray do
37
37
 
38
38
  it "should throw an error on out of bound" do
39
39
  ba = JsonBloomfilter::BitArray.new(10)
40
- expect(->{ba.remove(10)}).to raise_error
40
+ expect(lambda{ba.remove(10)}).to raise_error
41
41
  end
42
42
  end
43
43
 
@@ -51,7 +51,7 @@ describe JsonBloomfilter::BitArray do
51
51
 
52
52
  it "should throw an error on out of bound" do
53
53
  ba = JsonBloomfilter::BitArray.new(10)
54
- expect(->{ba.get(10)}).to raise_error
54
+ expect(lambda{ba.get(10)}).to raise_error
55
55
  end
56
56
  end
57
57
 
@@ -13,7 +13,7 @@ describe JsonBloomfilter do
13
13
  describe "#initialize" do
14
14
  it "should take the appropriate options" do
15
15
  seed = Time.now.to_i - 24*60*60
16
- bf = JsonBloomfilter.new size: 200, hashes: 10, seed: seed
16
+ bf = JsonBloomfilter.new :size => 200, :hashes => 10, :seed => seed
17
17
  expect(bf.to_hash["size"]).to be == 200
18
18
  expect(bf.to_hash["hashes"]).to be == 10
19
19
  expect(bf.to_hash["seed"]).to be == seed
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-bloomfilter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,6 +11,22 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2013-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: rspec
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -156,6 +172,7 @@ files:
156
172
  - pkg/json-bloomfilter-0.0.4.gem
157
173
  - pkg/json-bloomfilter-0.0.5.gem
158
174
  - pkg/json-bloomfilter-0.0.6.gem
175
+ - pkg/json-bloomfilter-0.1.0.gem
159
176
  - spec/javascripts/bitarray_spec.js
160
177
  - spec/javascripts/bloomfilter_spec.js
161
178
  - spec/javascripts/support/jasmine.yml
@@ -184,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
201
  version: '0'
185
202
  segments:
186
203
  - 0
187
- hash: 3678944871112734322
204
+ hash: 2685704013220459587
188
205
  requirements: []
189
206
  rubyforge_project:
190
207
  rubygems_version: 1.8.24