summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2014-06-17 15:24:07 +0200
committerPatrick Simianer <p@simianer.de>2014-06-17 15:24:07 +0200
commit773f13eab521db5dadd993c00dc4c780970d5d2e (patch)
treef756a83fb37bcc19cf25b06f555b700ce3d3d29e /lib
parent96d4323b720b858ba8445ca8332006c374500a70 (diff)
bump to 1.0.2, to/from_json methods for SparseVector
Diffstat (limited to 'lib')
-rw-r--r--lib/zipf/SparseVector.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/zipf/SparseVector.rb b/lib/zipf/SparseVector.rb
index 3096412..33bb396 100644
--- a/lib/zipf/SparseVector.rb
+++ b/lib/zipf/SparseVector.rb
@@ -1,3 +1,6 @@
+require 'json'
+
+
class SparseVector < Hash
def initialize arg=nil
@@ -18,6 +21,12 @@ class SparseVector < Hash
return v
end
+ def to_h
+ h = {}
+ self.each_pair { |k,v| h[k] = v }
+ return h
+ end
+
def from_h h
h.each_pair { |k,v| self[k] = v }
end
@@ -53,6 +62,20 @@ class SparseVector < Hash
}
end
+ def to_json
+ JSON.dump self.to_h
+ end
+
+ def from_json s
+ from_h JSON.load(s)
+ end
+
+ def self.from_json s
+ v = SparseVector.new
+ v.from_json s
+ return v
+ end
+
def self.from_kv s
v = SparseVector.new
v.from_kv s