strc 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -8,38 +8,62 @@ One thing STRC does kind of have going for it is that it's much more lazy in reg
8
8
 
9
9
  STRC is distributed as a gem. To install:
10
10
 
11
- % gem install strc
11
+ % gem install strc
12
12
 
13
13
  Now you've got it all up in your computer. To use:
14
14
 
15
- require 'rubygems'
16
- require 'strc'
15
+ require 'rubygems'
16
+ require 'strc'
17
17
 
18
- strc = STRC.new
18
+ strc = STRC.new
19
19
 
20
20
  Now you could start passing it commands, if they've been implemented.
21
21
 
22
22
  === Getting and Setting!
23
- >> strc.set "foo", "bar"
24
- => "OK"
25
- >> strc.get "foo"
26
- => "bar"
23
+ >> strc.set "foo", "bar"
24
+ => "OK"
25
+ >> strc.get "foo"
26
+ => "bar"
27
27
 
28
28
  === Sets!
29
- >> strc.sadd "stuff", "abc"
30
- => 1
31
- >> strc.sadd "stuff", "123", "blah"
32
- => 2
33
- >> strc.scard "stuff"
34
- => 3
35
- >> strc.sismember "stuff", "abc"
36
- => true
37
- >> strc.sismember "stuff", "xyz"
38
- => false
39
- >> strc.srem "stuff", "blah"
40
- => true
41
- >> strc.smembers "stuff"
42
- => ["abc", "123"]
29
+ >> strc.sadd "stuff", "abc"
30
+ => 1
31
+ >> strc.sadd "stuff", "123", "blah"
32
+ => 2
33
+ >> strc.scard "stuff"
34
+ => 3
35
+ >> strc.sismember "stuff", "abc"
36
+ => true
37
+ >> strc.sismember "stuff", "xyz"
38
+ => false
39
+ >> strc.srem "stuff", "blah"
40
+ => true
41
+ >> strc.smembers "stuff"
42
+ => ["abc", "123"]
43
+
44
+ == Command List
45
+ Currently, the following commands are implemented:
46
+ * get
47
+ * set
48
+ * del
49
+ * exists
50
+ * rename
51
+ * renamenx
52
+ * sadd
53
+ * srem
54
+ * sismember
55
+ * smembers
56
+ * scard
57
+ * sinter
58
+ * sinterstore
59
+ * sdiff
60
+ * sdiffstore
61
+ * sunion
62
+ * sunionstore
63
+ * smove
64
+ * srandmember
65
+ * spop
43
66
 
44
67
  == History
68
+ * 0.0.2 - Set commands done. Most general commands done.
45
69
  * 0.0.1 - Initial release. Does some basic things.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/lib/strc.rb CHANGED
@@ -16,20 +16,53 @@ class STRC
16
16
  @dict[key]
17
17
  end
18
18
 
19
+ # Delete a key
20
+ def del(*keys)
21
+ keys.each do |key|
22
+ @dict.delete(key)
23
+ end
24
+ return keys.length
25
+ end
26
+
27
+ # Returns if key exists
28
+ def exists(key)
29
+ @dict.has_key?(key)
30
+ end
31
+
32
+ # Returns a random key
33
+ def randomkey
34
+ @dict.keys.sample
35
+ end
36
+
37
+ # Renames a key. Overwrites destination.
38
+ def rename(key, newkey)
39
+ if key == newkey
40
+ raise STRC::Exception.new "ERR Source and destination objects are the same"
41
+ end
42
+ @dict[newkey] = @dict[key]
43
+ del(key)
44
+ return "OK"
45
+ end
46
+
47
+ # Renames a key. Does not overwrite destination.
48
+ def renamenx(key, newkey)
49
+ if exists(newkey)
50
+ return false
51
+ else
52
+ rename(key, newkey)
53
+ return true
54
+ end
55
+ end
56
+
57
+ # Set functions!
58
+
19
59
  # Add a member to a set
20
60
  def sadd(key, *args)
21
61
  if args.length < 1
22
62
  raise STRC::Exception.new "Wrong number of arguments (1 for 2)"
23
63
  end
24
- if @dict.has_key?(key)
25
- if @dict[key].class == Array
26
- @dict[key] << args
27
- else
28
- raise STRC::Exception.new "ERR Operation against a key holding the wrong kind of value"
29
- end
30
- else
31
- @dict[key] = args
32
- end
64
+ set = smembers(key)
65
+ @dict[key] = set + args
33
66
  return args.length
34
67
  end
35
68
 
@@ -43,23 +76,91 @@ class STRC
43
76
  end
44
77
  end
45
78
 
79
+ # Returns a list of m
80
+ def sinter(*keys)
81
+ sets = []
82
+ keys.each do |key|
83
+ sets << smembers(key)
84
+ end
85
+ inter = sets.shift
86
+ sets.each do |set|
87
+ inter &= set
88
+ end
89
+ return inter
90
+ end
91
+
92
+ # Similar to SINTER, but stores in destination instead of returning
93
+ def sinterstore(destination, *keys)
94
+ elements = sinter(*keys)
95
+ sadd(destination, *elements)
96
+ end
97
+
98
+ # Returns a list of the difference between the first set
99
+ # and subsequent sets
100
+ def sdiff(*keys)
101
+ sets = []
102
+ keys.each do |key|
103
+ sets << smembers(key)
104
+ end
105
+ diff = sets.shift
106
+ sets.each do |set|
107
+ diff -= set
108
+ end
109
+ return diff
110
+ end
111
+
112
+ # Similar to SDIFF, but stores in destination instead of returning
113
+ def sdiffstore(destination, *keys)
114
+ elements = sdiff(*keys)
115
+ sadd(destination, *elements)
116
+ end
117
+
118
+ # Move an item from one set to another
119
+ def smove(source, destination, member)
120
+ if !sismember(source, member)
121
+ return false
122
+ end
123
+ srem(source, member)
124
+ unless sismember(destination, member)
125
+ sadd(destination, member)
126
+ end
127
+ return true
128
+ end
129
+
130
+ # Returs a list of all unique items in the given sets
131
+ def sunion(*keys)
132
+ end
133
+
134
+ # Similar to SUNION, but stores in destination instead of returning
135
+ def sunionstore(destination, *keys)
136
+ elements = sunion(*keys)
137
+ sadd(destination, *elements)
138
+ end
139
+
140
+ # Returns a random element from the set
141
+ def srandmember(key)
142
+ smembers(key).sample
143
+ end
144
+
145
+ # Randomly remove and return an item from the set
146
+ def spop(key)
147
+ element = srandmember(key)
148
+ srem(key, element)
149
+ return element
150
+ end
151
+
46
152
  # Determine if the given value is a member of the set at key
47
153
  def sismember(key, member)
48
- if @dict.has_key?(key)
49
- if @dict[key].class == Array
50
- return true unless @dict[key].index(member).nil?
51
- else
52
- raise STRC::Exception .new "ERR Operation against a key holding the wrong kind of value"
53
- end
54
- end
55
- return false
154
+ set = smembers(key)
155
+ return !set.index(member).nil?
56
156
  end
57
157
 
58
158
  # Returns an array of members of the set
59
159
  def smembers(key)
60
- if @dict.has_key?(key)
61
- if @dict[key].class == Array
62
- return @dict[key]
160
+ if exists(key)
161
+ value = get(key)
162
+ if value.class == Array
163
+ return value
63
164
  else
64
165
  raise STRC::Exception .new "ERR Operation against a key holding the wrong kind of value"
65
166
  end
@@ -70,14 +171,7 @@ class STRC
70
171
 
71
172
  # Gets the length of a set
72
173
  def scard(key)
73
- if @dict.has_key?(key)
74
- if @dict[key].class == Array
75
- @dict[key].length
76
- else
77
- raise STRC::Exception.new "ERR Operation against a key holding the wrong kind of value"
78
- end
79
- else
80
- return 0
81
- end
174
+ set = smembers(key)
175
+ return set.length
82
176
  end
83
177
  end
data/strc.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{strc}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chris O'Neal"]
@@ -27,6 +27,8 @@ Gem::Specification.new do |s|
27
27
  "lib/strc.rb",
28
28
  "strc.gemspec",
29
29
  "test/helper.rb",
30
+ "test/test_basic_functions.rb",
31
+ "test/test_sets.rb",
30
32
  "test/test_strc.rb"
31
33
  ]
32
34
  s.homepage = %q{http://github.com/ctoneal/strc}
@@ -36,6 +38,8 @@ Gem::Specification.new do |s|
36
38
  s.summary = %q{Super Terrible Redis Clone}
37
39
  s.test_files = [
38
40
  "test/helper.rb",
41
+ "test/test_basic_functions.rb",
42
+ "test/test_sets.rb",
39
43
  "test/test_strc.rb"
40
44
  ]
41
45
 
@@ -0,0 +1,119 @@
1
+ require 'helper'
2
+
3
+ class TestBasicFunctions < Test::Unit::TestCase
4
+ def setup
5
+ @test = STRC.new
6
+ end
7
+
8
+ context "set" do
9
+ should "be able to set the value of a new key" do
10
+ result = @test.set("test_key", 20)
11
+ assert_equal("OK", result)
12
+ end
13
+
14
+ should "be able to set the value of an existing key" do
15
+ @test.set("test_key", 20)
16
+ result = @test.set("test_key", 30)
17
+ assert_equal("OK", result)
18
+ end
19
+
20
+ should "be able to set different types as values" do
21
+ result = @test.set("test_key", "poop")
22
+ assert_equal("OK", result)
23
+ end
24
+
25
+ should "be able to set different types as keys" do
26
+ result = @test.set(15, "abcde")
27
+ assert_equal("OK", result)
28
+ end
29
+ end
30
+
31
+ context "get" do
32
+ should "be able to get the value of a key" do
33
+ @test.set("test_key", 15)
34
+ result = @test.get("test_key")
35
+ assert_equal(15, result)
36
+ end
37
+
38
+ should "return nil for nonexistant keys" do
39
+ result = @test.get("blah")
40
+ assert_nil(result)
41
+ end
42
+ end
43
+
44
+ context "exists" do
45
+ should "return true if the key exists" do
46
+ @test.set("test", 1)
47
+ assert(@test.exists("test"))
48
+ end
49
+
50
+ should "return false if the key doesn't exist" do
51
+ assert(!@test.exists("test"))
52
+ end
53
+ end
54
+
55
+ context "del" do
56
+ should "delete a key" do
57
+ @test.set("test", 1)
58
+ deleted = @test.del("test")
59
+ assert_equal(1, deleted)
60
+ assert(!@test.exists("test"))
61
+ end
62
+
63
+ should "delete multiple keys" do
64
+ @test.set("test", 1)
65
+ @test.set("poop", 2)
66
+ @test.set("blah", 4)
67
+ deleted = @test.del("test", "poop")
68
+ assert_equal(2, deleted)
69
+ assert(!@test.exists("test"))
70
+ assert(!@test.exists("poop"))
71
+ assert(@test.exists("blah"))
72
+ end
73
+ end
74
+
75
+ context "randomkey" do
76
+ should "return a random key from the database" do
77
+ keys = ["test", "poop", "blah"]
78
+ keys.each do |key|
79
+ @test.set(key, 1)
80
+ end
81
+ random = @test.randomkey
82
+ assert_not_nil(keys.index(random))
83
+ end
84
+ end
85
+
86
+ context "rename" do
87
+ should "rename a key" do
88
+ @test.set("poop", 1)
89
+ @test.rename("poop", "abc")
90
+ value = @test.get("abc")
91
+ assert_equal(1, value)
92
+ end
93
+
94
+ should "overwrite existing keys" do
95
+ @test.set("poop", 1)
96
+ @test.set("abc", 2)
97
+ @test.rename("poop", "abc")
98
+ value = @test.get("abc")
99
+ assert_equal(1, value)
100
+ end
101
+ end
102
+
103
+ context "renamenx" do
104
+ should "rename a key" do
105
+ @test.set("poop", 1)
106
+ @test.renamenx("poop", "abc")
107
+ value = @test.get("abc")
108
+ assert_equal(1, value)
109
+ end
110
+
111
+ should "not overwrite existing keys" do
112
+ @test.set("poop", 1)
113
+ @test.set("abc", 2)
114
+ @test.renamenx("poop", "abc")
115
+ value = @test.get("abc")
116
+ assert_equal(2, value)
117
+ end
118
+ end
119
+ end
data/test/test_sets.rb ADDED
@@ -0,0 +1,173 @@
1
+ require 'helper'
2
+
3
+ class TestSets < Test::Unit::TestCase
4
+ def setup
5
+ @test = STRC.new
6
+ end
7
+ context "sadd" do
8
+ should "create a new set" do
9
+ result = @test.sadd("test_key", "poop")
10
+ assert_equal(1, result)
11
+ end
12
+
13
+ should "be able to add multiple items" do
14
+ result = @test.sadd("test_key", "poop", "abc")
15
+ assert_equal(2, result)
16
+ end
17
+
18
+ should "be able to add to an existing set" do
19
+ @test.sadd("test_key", "poop")
20
+ result = @test.sadd("test_key", "blah")
21
+ assert_equal(1, result)
22
+ end
23
+
24
+ should "not be able to add to something not a set" do
25
+ @test.set("test_key", "blah")
26
+ assert_raise(STRC::Exception) { @test.sadd("test_key", "poop") }
27
+ end
28
+ end
29
+
30
+ context "sismember" do
31
+ should "return true if the set contains the object" do
32
+ @test.sadd("test_key", "poop", "blah", "abc")
33
+ result = @test.sismember("test_key", "poop")
34
+ assert(result)
35
+ end
36
+
37
+ should "return false if the set does not contain the object" do
38
+ @test.sadd("test_key", "poop", "blah", "abc")
39
+ result = @test.sismember("test_key", "xyz")
40
+ assert(!result)
41
+ end
42
+ end
43
+
44
+ context "scard" do
45
+ should "return the number of items in the set" do
46
+ @test.sadd("test_key", "poop", "blah", "abc")
47
+ result = @test.scard("test_key")
48
+ assert_equal(3, result)
49
+ end
50
+
51
+ should "return 0 for nonexistant keys" do
52
+ result = @test.scard("blahblahblah")
53
+ assert_equal(0, result)
54
+ end
55
+ end
56
+
57
+ context "srem" do
58
+ should "remove an item from the set" do
59
+ @test.sadd("test_key", "poop", "blah", "abc")
60
+ result = @test.srem("test_key", "poop")
61
+ assert(result)
62
+ assert_equal(2, @test.scard("test_key"))
63
+ end
64
+
65
+ should "not remove if the member isn't in the set" do
66
+ @test.sadd("test_key", "poop", "blah", "abc")
67
+ result = @test.srem("test_key", "xyz")
68
+ assert(!result)
69
+ assert_equal(3, @test.scard("test_key"))
70
+ end
71
+ end
72
+
73
+ context "smembers" do
74
+ should "return an array of items" do
75
+ @test.sadd("test_key", "poop", "blah", "abc")
76
+ result = @test.smembers("test_key")
77
+ assert_equal(["poop", "blah", "abc"], result)
78
+ end
79
+
80
+ should "return an empty array for nonexistant keys" do
81
+ result = @test.smembers("aaaaaa")
82
+ assert_equal([], result)
83
+ end
84
+ end
85
+
86
+ context "sinter" do
87
+ should "return the intersection of two sets" do
88
+ @test.sadd("set1", "poop", "abc", "xyz")
89
+ @test.sadd("set2", "123", "456", "poop", "xyz")
90
+ result = @test.sinter("set1", "set2")
91
+ assert_equal(["poop", "xyz"], result)
92
+ end
93
+
94
+ should "be the same as smembers if passed one set" do
95
+ @test.sadd("set1", "poop", "abc", "xyz")
96
+ result = @test.sinter("set1")
97
+ assert_equal(["poop", "abc", "xyz"], result)
98
+ end
99
+ end
100
+
101
+ context "sinterstore" do
102
+ should "work like sinter, but store in destination" do
103
+ @test.sadd("set1", "poop", "abc", "xyz")
104
+ @test.sadd("set2", "123", "456", "poop", "xyz")
105
+ @test.sinterstore("new", "set1", "set2")
106
+ result = @test.smembers("new")
107
+ assert_equal(["poop", "xyz"], result)
108
+ end
109
+ end
110
+
111
+ context "sdiff" do
112
+ should "return items that are only in the first set" do
113
+ @test.sadd("set1", "a", "b", "c", "d")
114
+ @test.sadd("set2", "c")
115
+ @test.sadd("set3", "a", "c", "e")
116
+ result = @test.sdiff("set1", "set2", "set3")
117
+ assert_equal(["b", "d"], result)
118
+ end
119
+ end
120
+
121
+ context "sdiffstore" do
122
+ should "work like sdiff, but store in destination" do
123
+ @test.sadd("set1", "a", "b", "c", "d")
124
+ @test.sadd("set2", "c")
125
+ @test.sadd("set3", "a", "c", "e")
126
+ @test.sdiffstore("new", "set1", "set2", "set3")
127
+ result = @test.smembers("new")
128
+ assert_equal(["b", "d"], result)
129
+ end
130
+ end
131
+
132
+ context "smove" do
133
+ should "move an item from one set to another" do
134
+ @test.sadd("set1", "one" ,"two")
135
+ @test.sadd("set2", "three")
136
+ result = @test.smove("set1", "set2", "two")
137
+ assert(result)
138
+ members = @test.smembers("set1")
139
+ assert_equal(["one"], members)
140
+ members = @test.smembers("set2")
141
+ assert_equal(["three", "two"], members)
142
+ end
143
+ end
144
+
145
+ context "srandmember" do
146
+ should "return a random member of a set" do
147
+ @test.sadd("set1", "a", "b", "c", "d")
148
+ result = @test.sismember("set1", @test.srandmember("set1"))
149
+ assert(result)
150
+ end
151
+
152
+ should "return nil when key doesn't exist" do
153
+ result = @test.srandmember("poop")
154
+ assert_nil(result)
155
+ end
156
+ end
157
+
158
+ context "spop" do
159
+ should "return a random element from a set" do
160
+ items = ["a", "b", "c", "d"]
161
+ @test.sadd("set1", *items)
162
+ result = @test.spop("set1")
163
+ assert_not_nil(items.index(result))
164
+ end
165
+
166
+ should "remove the returned element from the set" do
167
+ items = ["a", "b", "c", "d"]
168
+ @test.sadd("set1", *items)
169
+ result = @test.spop("set1")
170
+ assert_equal(items.sort, (@test.smembers("set1") << result).sort)
171
+ end
172
+ end
173
+ end
data/test/test_strc.rb CHANGED
@@ -9,121 +9,4 @@ class TestStrc < Test::Unit::TestCase
9
9
  assert_instance_of(STRC, @test)
10
10
  end
11
11
  end
12
-
13
- context "setting" do
14
- should "be able to set the value of a new key" do
15
- result = @test.set("test_key", 20)
16
- assert_equal("OK", result)
17
- end
18
-
19
- should "be able to set the value of an existing key" do
20
- @test.set("test_key", 20)
21
- result = @test.set("test_key", 30)
22
- assert_equal("OK", result)
23
- end
24
-
25
- should "be able to set different types as values" do
26
- result = @test.set("test_key", "poop")
27
- assert_equal("OK", result)
28
- end
29
-
30
- should "be able to set different types as keys" do
31
- result = @test.set(15, "abcde")
32
- assert_equal("OK", result)
33
- end
34
- end
35
-
36
- context "getting" do
37
- should "be able to get the value of a key" do
38
- @test.set("test_key", 15)
39
- result = @test.get("test_key")
40
- assert_equal(15, result)
41
- end
42
-
43
- should "return nil for nonexistant keys" do
44
- result = @test.get("blah")
45
- assert_nil(result)
46
- end
47
- end
48
-
49
- context "sets" do
50
- context "sadd" do
51
- should "create a new set" do
52
- result = @test.sadd("test_key", "poop")
53
- assert_equal(1, result)
54
- end
55
-
56
- should "be able to add multiple items" do
57
- result = @test.sadd("test_key", "poop", "abc")
58
- assert_equal(2, result)
59
- end
60
-
61
- should "be able to add to an existing set" do
62
- @test.sadd("test_key", "poop")
63
- result = @test.sadd("test_key", "blah")
64
- assert_equal(1, result)
65
- end
66
-
67
- should "not be able to add to something not a set" do
68
- @test.set("test_key", "blah")
69
- assert_raise(STRC::Exception) { @test.sadd("test_key", "poop") }
70
- end
71
- end
72
-
73
- context "sismember" do
74
- should "return true if the set contains the object" do
75
- @test.sadd("test_key", "poop", "blah", "abc")
76
- result = @test.sismember("test_key", "poop")
77
- assert(result)
78
- end
79
-
80
- should "return false if the set does not contain the object" do
81
- @test.sadd("test_key", "poop", "blah", "abc")
82
- result = @test.sismember("test_key", "xyz")
83
- assert(!result)
84
- end
85
- end
86
-
87
- context "scard" do
88
- should "return the number of items in the set" do
89
- @test.sadd("test_key", "poop", "blah", "abc")
90
- result = @test.scard("test_key")
91
- assert_equal(3, result)
92
- end
93
-
94
- should "return 0 for nonexistant keys" do
95
- result = @test.scard("blahblahblah")
96
- assert_equal(0, result)
97
- end
98
- end
99
-
100
- context "srem" do
101
- should "remove an item from the set" do
102
- @test.sadd("test_key", "poop", "blah", "abc")
103
- result = @test.srem("test_key", "poop")
104
- assert(result)
105
- assert_equal(2, @test.scard("test_key"))
106
- end
107
-
108
- should "not remove if the member isn't in the set" do
109
- @test.sadd("test_key", "poop", "blah", "abc")
110
- result = @test.srem("test_key", "xyz")
111
- assert(!result)
112
- assert_equal(3, @test.scard("test_key"))
113
- end
114
- end
115
-
116
- context "smembers" do
117
- should "return an array of items" do
118
- @test.sadd("test_key", "poop", "blah", "abc")
119
- result = @test.smembers("test_key")
120
- assert_equal(["poop", "blah", "abc"], result)
121
- end
122
-
123
- should "return an empty array for nonexistant keys" do
124
- result = @test.smembers("aaaaaa")
125
- assert_equal([], result)
126
- end
127
- end
128
- end
129
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: shoulda
17
- requirement: &9612756 !ruby/object:Gem::Requirement
17
+ requirement: &9687480 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *9612756
25
+ version_requirements: *9687480
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &9611472 !ruby/object:Gem::Requirement
28
+ requirement: &9686856 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *9611472
36
+ version_requirements: *9686856
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &9608676 !ruby/object:Gem::Requirement
39
+ requirement: &9685920 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.5.2
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *9608676
47
+ version_requirements: *9685920
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &9608184 !ruby/object:Gem::Requirement
50
+ requirement: &9644496 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *9608184
58
+ version_requirements: *9644496
59
59
  description: STRC is a terrible Ruby clone of Redis
60
60
  email: ctoneal@gmail.com
61
61
  executables: []
@@ -74,6 +74,8 @@ files:
74
74
  - lib/strc.rb
75
75
  - strc.gemspec
76
76
  - test/helper.rb
77
+ - test/test_basic_functions.rb
78
+ - test/test_sets.rb
77
79
  - test/test_strc.rb
78
80
  has_rdoc: true
79
81
  homepage: http://github.com/ctoneal/strc
@@ -91,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
93
  version: '0'
92
94
  segments:
93
95
  - 0
94
- hash: -949062349
96
+ hash: 876690863
95
97
  required_rubygems_version: !ruby/object:Gem::Requirement
96
98
  none: false
97
99
  requirements:
@@ -106,4 +108,6 @@ specification_version: 3
106
108
  summary: Super Terrible Redis Clone
107
109
  test_files:
108
110
  - test/helper.rb
111
+ - test/test_basic_functions.rb
112
+ - test/test_sets.rb
109
113
  - test/test_strc.rb