strc 0.0.1 → 0.0.2

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/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