rico 0.3.0 → 0.4.0
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.md +5 -5
- data/lib/rico/array.rb +18 -0
- data/lib/rico/collection.rb +2 -20
- data/lib/rico/map.rb +5 -3
- data/lib/rico/version.rb +1 -1
- data/spec/array_spec.rb +60 -60
- data/spec/list_spec.rb +5 -5
- data/spec/map_spec.rb +21 -12
- data/spec/set_spec.rb +2 -2
- data/spec/sorted_set_spec.rb +2 -2
- data/spec/spec_helper.rb +0 -4
- metadata +1 -1
data/README.md
CHANGED
@@ -61,7 +61,7 @@ end
|
|
61
61
|
|
62
62
|
```ruby
|
63
63
|
a = Rico::Array.new "bucket", "key"
|
64
|
-
a.add 3, 1, 1, 4, 2
|
64
|
+
a.add [3, 1, 1, 4, 2]
|
65
65
|
a.members # => [3, 1, 1, 4, 2]
|
66
66
|
a.length # => 5
|
67
67
|
```
|
@@ -70,7 +70,7 @@ a.length # => 5
|
|
70
70
|
|
71
71
|
```ruby
|
72
72
|
l = Rico::List.new "bucket", "key"
|
73
|
-
l.add 3, 1, 1, 4, 2
|
73
|
+
l.add [3, 1, 1, 4, 2]
|
74
74
|
l.members # => [1, 1, 2, 3, 4]
|
75
75
|
l.length # => 5
|
76
76
|
```
|
@@ -79,7 +79,7 @@ l.length # => 5
|
|
79
79
|
|
80
80
|
```ruby
|
81
81
|
s = Rico::Set.new "bucket", "key"
|
82
|
-
s.add 3, 1, 1, 4, 2
|
82
|
+
s.add [3, 1, 1, 4, 2]
|
83
83
|
s.members # => [3, 1, 4, 2]
|
84
84
|
s.length # => 4
|
85
85
|
```
|
@@ -88,7 +88,7 @@ s.length # => 4
|
|
88
88
|
|
89
89
|
```ruby
|
90
90
|
s = Rico::SortedSet.new "bucket", "key"
|
91
|
-
s.add 3, 1, 1, 4, 2
|
91
|
+
s.add [3, 1, 1, 4, 2]
|
92
92
|
s.members # => [1, 2, 3, 4]
|
93
93
|
s.length # => 4
|
94
94
|
```
|
@@ -143,7 +143,7 @@ v.exists? # => true
|
|
143
143
|
```ruby
|
144
144
|
s = Rico::Set.new "bucket", "key"
|
145
145
|
s.content_type = "application/x-gzip"
|
146
|
-
s.add 1,
|
146
|
+
s.add [1,2,3]
|
147
147
|
s.get # => [1, 2, 3]
|
148
148
|
s.raw_data # => "\u001F\x8B\b\u0000G...."
|
149
149
|
```
|
data/lib/rico/array.rb
CHANGED
@@ -32,5 +32,23 @@ module Rico
|
|
32
32
|
obj.data = { "_values" => result, "_deletes" => deletions }
|
33
33
|
obj
|
34
34
|
end
|
35
|
+
|
36
|
+
protected
|
37
|
+
|
38
|
+
def build_map_add(items)
|
39
|
+
{ "_type" => type_key, "_values" => compute_add(items) }
|
40
|
+
end
|
41
|
+
|
42
|
+
def build_map_remove(items)
|
43
|
+
{ "_type" => type_key, "_values" => compute_remove(items), "_deletes" => items }
|
44
|
+
end
|
45
|
+
|
46
|
+
def compute_add(items)
|
47
|
+
members + Array(items)
|
48
|
+
end
|
49
|
+
|
50
|
+
def compute_remove(items)
|
51
|
+
members - Array(items)
|
52
|
+
end
|
35
53
|
end
|
36
54
|
end
|
data/lib/rico/collection.rb
CHANGED
@@ -11,7 +11,7 @@ module Rico
|
|
11
11
|
# items - items to be added to the array
|
12
12
|
#
|
13
13
|
# Returns the result of the store operation
|
14
|
-
def add(
|
14
|
+
def add(items)
|
15
15
|
mutate build_map_add(items)
|
16
16
|
end
|
17
17
|
|
@@ -20,7 +20,7 @@ module Rico
|
|
20
20
|
# items - items to be removed from the array
|
21
21
|
#
|
22
22
|
# Returns the result of the store operation
|
23
|
-
def remove(
|
23
|
+
def remove(items)
|
24
24
|
mutate build_map_remove(items)
|
25
25
|
end
|
26
26
|
|
@@ -32,23 +32,5 @@ module Rico
|
|
32
32
|
def member?(item)
|
33
33
|
members.include? item
|
34
34
|
end
|
35
|
-
|
36
|
-
protected
|
37
|
-
|
38
|
-
def build_map_add(items)
|
39
|
-
{ "_type" => type_key, "_values" => compute_add(items) }
|
40
|
-
end
|
41
|
-
|
42
|
-
def build_map_remove(items)
|
43
|
-
{ "_type" => type_key, "_values" => compute_remove(items), "_deletes" => items }
|
44
|
-
end
|
45
|
-
|
46
|
-
def compute_add(items)
|
47
|
-
members + items
|
48
|
-
end
|
49
|
-
|
50
|
-
def compute_remove(items)
|
51
|
-
members - items
|
52
|
-
end
|
53
35
|
end
|
54
36
|
end
|
data/lib/rico/map.rb
CHANGED
@@ -29,15 +29,17 @@ module Rico
|
|
29
29
|
|
30
30
|
protected
|
31
31
|
|
32
|
+
def build_map_add(items)
|
33
|
+
{ "_type" => type_key, "_values" => compute_add(items) }
|
34
|
+
end
|
35
|
+
|
32
36
|
def build_map_remove(items)
|
33
37
|
keys = extract_keys(items)
|
34
38
|
{ "_type" => type_key, "_values" => compute_remove(items), "_deletes" => keys }
|
35
39
|
end
|
36
40
|
|
37
41
|
def compute_add(items)
|
38
|
-
|
39
|
-
res.merge(h)
|
40
|
-
end
|
42
|
+
members.merge(items)
|
41
43
|
end
|
42
44
|
|
43
45
|
def compute_remove(items)
|
data/lib/rico/version.rb
CHANGED
data/spec/array_spec.rb
CHANGED
@@ -6,91 +6,91 @@ describe Rico::Array do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "#add" do
|
9
|
-
it "writes
|
10
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
11
|
-
a.add
|
12
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
13
|
-
b.members.should eql [
|
9
|
+
it "writes a single value to an array" do
|
10
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_single_value"
|
11
|
+
a.add 5
|
12
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_single_value"
|
13
|
+
b.members.should eql [5]
|
14
14
|
end
|
15
15
|
|
16
|
-
it "
|
17
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
18
|
-
a.add
|
19
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
20
|
-
b.members.should eql [
|
16
|
+
it "writes values to an array" do
|
17
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_writes_values"
|
18
|
+
a.add [1, 2, 3]
|
19
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_writes_values"
|
20
|
+
b.members.should eql [1, 2, 3]
|
21
21
|
end
|
22
22
|
|
23
23
|
it "allows duplicate values" do
|
24
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
25
|
-
a.add
|
26
|
-
a.add
|
27
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
24
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_allows_duplicates"
|
25
|
+
a.add [1, 2, 3]
|
26
|
+
a.add [2, 3, 4]
|
27
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_allows_duplicates"
|
28
28
|
b.members.should eql [1, 2, 3, 2, 3, 4]
|
29
29
|
end
|
30
30
|
|
31
31
|
it "retains order of addition" do
|
32
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
33
|
-
a.add
|
34
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
32
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_retains_order"
|
33
|
+
a.add [5, 3, 1, 6, 7]
|
34
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_retains_order"
|
35
35
|
b.members.should eql [5, 3, 1, 6, 7]
|
36
36
|
end
|
37
37
|
|
38
38
|
it "works with strings" do
|
39
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
40
|
-
a.add
|
41
|
-
a.add
|
42
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
39
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_strings"
|
40
|
+
a.add ["john", "joe", "jason"]
|
41
|
+
a.add ["brian", "bob"]
|
42
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_strings"
|
43
43
|
b.members.should eql ["john", "joe", "jason", "brian", "bob"]
|
44
44
|
end
|
45
45
|
|
46
46
|
it "works with arrays" do
|
47
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
48
|
-
a.add
|
49
|
-
a.add
|
50
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
47
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_arrays"
|
48
|
+
a.add [[1,2,3], [4,5,6], [7,8,9]]
|
49
|
+
a.add [["a", "b", 37.2]]
|
50
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_arrays"
|
51
51
|
b.members.should eql [[1,2,3], [4,5,6], [7,8,9], ["a", "b", 37.2]]
|
52
52
|
end
|
53
53
|
|
54
54
|
it "works with hashmaps" do
|
55
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
56
|
-
a.add
|
57
|
-
a.add
|
58
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
55
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_hashmaps"
|
56
|
+
a.add [{a: 1, b: 2}, {charlie: 6}]
|
57
|
+
a.add [{"usd" => 37.2, "eur" => 31.6}]
|
58
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_hashmaps"
|
59
59
|
b.members.should eql [{"a" => 1, "b" => 2}, {"charlie" => 6}, {"usd" => 37.2, "eur" => 31.6}]
|
60
60
|
end
|
61
61
|
|
62
62
|
it "works with mixed types" do
|
63
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
64
|
-
a.add
|
65
|
-
a.add
|
66
|
-
a.add
|
67
|
-
a.add
|
68
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
63
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_mixed_types"
|
64
|
+
a.add [{"usd" => 123.41, "cad" => 61.89}]
|
65
|
+
a.add ["Bears", "Beets", "Battlestar Galactica"]
|
66
|
+
a.add 3.14159
|
67
|
+
a.add 71
|
68
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_add_works_with_mixed_types"
|
69
69
|
b.members.should eql [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71]
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
73
|
describe "#remove" do
|
74
74
|
it "removes existing values" do
|
75
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
76
|
-
a.add
|
77
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
78
|
-
b.remove
|
79
|
-
b.remove
|
80
|
-
c = Rico::Array.new RiakHelpers.bucket, "
|
75
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_remove_removes"
|
76
|
+
a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", :slumdog, "Battlestar Galactica", 3.14159, 71]
|
77
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_remove_removes"
|
78
|
+
b.remove [3.14159, "Beets"]
|
79
|
+
b.remove ["slumdog"]
|
80
|
+
c = Rico::Array.new RiakHelpers.bucket, "array_remove_removes"
|
81
81
|
c.members.should eql [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Battlestar Galactica", 71]
|
82
82
|
end
|
83
83
|
|
84
84
|
it "does not throw on removal on non-key" do
|
85
85
|
lambda do
|
86
|
-
Rico::Array.new(RiakHelpers.bucket, "
|
86
|
+
Rico::Array.new(RiakHelpers.bucket, "array_remove_nonkey").remove("bill")
|
87
87
|
end.should_not raise_error
|
88
88
|
end
|
89
89
|
|
90
90
|
it "does not throw on removal on non-value" do
|
91
91
|
lambda do
|
92
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
93
|
-
a.add 37, 68, 54
|
92
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_remove_nonvalue"
|
93
|
+
a.add [37, 68, 54]
|
94
94
|
a.remove "josh"
|
95
95
|
end.should_not raise_error
|
96
96
|
end
|
@@ -98,44 +98,44 @@ describe Rico::Array do
|
|
98
98
|
|
99
99
|
describe "#members" do
|
100
100
|
it "returns a list of members" do
|
101
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
102
|
-
a.add
|
103
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
101
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_members_lists"
|
102
|
+
a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71]
|
103
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_members_lists"
|
104
104
|
b.members.should eql [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71]
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
108
|
describe "#member?" do
|
109
109
|
it "returns a true if a member" do
|
110
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
111
|
-
a.add
|
112
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
110
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_members_lists"
|
111
|
+
a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71]
|
112
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_members_lists"
|
113
113
|
b.member?({"usd" => 123.41, "cad" => 61.89}).should eql true
|
114
114
|
end
|
115
115
|
|
116
116
|
it "returns a true if not a member" do
|
117
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
118
|
-
a.add
|
119
|
-
b = Rico::Array.new RiakHelpers.bucket, "
|
117
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_members_lists"
|
118
|
+
a.add [{"usd" => 123.41, "cad" => 61.89}, "Bears", "Beets", "Battlestar Galactica", 3.14159, 71]
|
119
|
+
b = Rico::Array.new RiakHelpers.bucket, "array_members_lists"
|
120
120
|
b.member?({"usd" => 123.42, "cad" => 61.89}).should eql false
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
124
|
describe "#length" do
|
125
125
|
it "returns zero for an empty list" do
|
126
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
126
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_length_empty"
|
127
127
|
a.length.should eql 0
|
128
128
|
end
|
129
129
|
|
130
130
|
it "returns the number of entries" do
|
131
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
132
|
-
a.add
|
131
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_length_6"
|
132
|
+
a.add [1, 2, 3, 4, 5, 6]
|
133
133
|
a.length.should eql 6
|
134
134
|
end
|
135
135
|
|
136
136
|
it "is aliased to #count" do
|
137
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
138
|
-
a.add
|
137
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_length_alias"
|
138
|
+
a.add [1, 2, 3, 4, 5, 6]
|
139
139
|
a.count.should eql 6
|
140
140
|
end
|
141
141
|
end
|
@@ -164,8 +164,8 @@ describe Rico::Array do
|
|
164
164
|
end
|
165
165
|
|
166
166
|
it "is enumerable" do
|
167
|
-
a = Rico::Array.new RiakHelpers.bucket, "
|
168
|
-
a.add
|
167
|
+
a = Rico::Array.new RiakHelpers.bucket, "array_enumerable"
|
168
|
+
a.add [3, 1, 4, 1, 5, 9]
|
169
169
|
a.to_a.should eql [3, 1, 4, 1, 5, 9]
|
170
170
|
a.each { }.length.should eql 6
|
171
171
|
a.map {|x| x + 1 }.should eql [4, 2, 5, 2, 6, 10]
|
data/spec/list_spec.rb
CHANGED
@@ -8,20 +8,20 @@ describe Rico::List do
|
|
8
8
|
describe "#add" do
|
9
9
|
it "adds values and sorts them in instance" do
|
10
10
|
a = Rico::List.new RiakHelpers.bucket, "list_add_1"
|
11
|
-
a.add
|
11
|
+
a.add [3, 2, 1]
|
12
12
|
a.members.should eql [1, 2, 3]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "adds values and sorts them on read" do
|
16
16
|
a = Rico::List.new RiakHelpers.bucket, "list_add_2"
|
17
|
-
a.add
|
17
|
+
a.add [3, 2, 1]
|
18
18
|
b = Rico::List.new RiakHelpers.bucket, "list_add_2"
|
19
19
|
b.members.should eql [1, 2, 3]
|
20
20
|
end
|
21
21
|
|
22
22
|
it "allows duplicates of the same value" do
|
23
23
|
a = Rico::List.new RiakHelpers.bucket, "list_add_duplicate"
|
24
|
-
a.add
|
24
|
+
a.add [3, 6, 4, 1, 7, 9, 1, 1, 3, 3]
|
25
25
|
b = Rico::List.new RiakHelpers.bucket, "list_add_duplicate"
|
26
26
|
b.members.should eql [1, 1, 1, 3, 3, 3, 4, 6, 7, 9]
|
27
27
|
end
|
@@ -30,9 +30,9 @@ describe Rico::List do
|
|
30
30
|
describe "#remove" do
|
31
31
|
it "removes all occurence of the item" do
|
32
32
|
a = Rico::List.new RiakHelpers.bucket, "list_remove_all_duplicates"
|
33
|
-
a.add
|
33
|
+
a.add [1, 1, 1, 2, 2, 2]
|
34
34
|
b = Rico::List.new RiakHelpers.bucket, "list_remove_all_duplicates"
|
35
|
-
b.remove
|
35
|
+
b.remove [1, 2]
|
36
36
|
c = Rico::List.new RiakHelpers.bucket, "list_remove_all_duplicates"
|
37
37
|
c.members.should eql []
|
38
38
|
end
|
data/spec/map_spec.rb
CHANGED
@@ -13,13 +13,6 @@ describe Rico::Map do
|
|
13
13
|
b.members.should eql({"a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5})
|
14
14
|
end
|
15
15
|
|
16
|
-
it "writes multiple hashes to the map" do
|
17
|
-
a = Rico::Map.new RiakHelpers.bucket, "map_add_multiple_hashes"
|
18
|
-
a.add({"a" => 1, "b" => 2, "c" => 3}, {"d" => 4, "e" => 5})
|
19
|
-
b = Rico::Map.new RiakHelpers.bucket, "map_add_multiple_hashes"
|
20
|
-
b.members.should eql({"a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5})
|
21
|
-
end
|
22
|
-
|
23
16
|
it "supports multiple multiple writes to the map" do
|
24
17
|
a = Rico::Map.new RiakHelpers.bucket, "map_add_multiple_writes"
|
25
18
|
a.add({"a" => 1, "b" => 2, "c" => 3})
|
@@ -27,6 +20,14 @@ describe Rico::Map do
|
|
27
20
|
b = Rico::Map.new RiakHelpers.bucket, "map_add_multiple_writes"
|
28
21
|
b.members.should eql({"a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5})
|
29
22
|
end
|
23
|
+
|
24
|
+
it "merges in the right order with implicit deduping" do
|
25
|
+
a = Rico::Map.new RiakHelpers.bucket, "map_add_order_dedupe"
|
26
|
+
a.add({"a" => 1, "b" => 2, "c" => 3})
|
27
|
+
a.add({"b" => "B", "c" => "C"})
|
28
|
+
b = Rico::Map.new RiakHelpers.bucket, "map_add_order_dedupe"
|
29
|
+
b.members.should eql({"a" => 1, "b" => "B", "c" => "C"})
|
30
|
+
end
|
30
31
|
end
|
31
32
|
|
32
33
|
describe "#remove" do
|
@@ -43,7 +44,7 @@ describe Rico::Map do
|
|
43
44
|
a = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_string"
|
44
45
|
a.add({"a" => 1, "b" => 2, "c" => 3})
|
45
46
|
b = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_string"
|
46
|
-
b.remove("a", "c")
|
47
|
+
b.remove(["a", "c"])
|
47
48
|
c = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_string"
|
48
49
|
c.members.should eql({"b" => 2})
|
49
50
|
end
|
@@ -52,7 +53,7 @@ describe Rico::Map do
|
|
52
53
|
a = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_symbol"
|
53
54
|
a.add({"a" => 1, "b" => 2, "c" => 3})
|
54
55
|
b = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_symbol"
|
55
|
-
b.remove(:a, :c)
|
56
|
+
b.remove([:a, :c])
|
56
57
|
c = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_symbol"
|
57
58
|
c.members.should eql({"b" => 2})
|
58
59
|
end
|
@@ -61,7 +62,7 @@ describe Rico::Map do
|
|
61
62
|
a = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_integer"
|
62
63
|
a.add({1 => 1, 2 => 2, 3 => 3})
|
63
64
|
b = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_integer"
|
64
|
-
b.remove(1, 3)
|
65
|
+
b.remove([1, 3])
|
65
66
|
c = Rico::Map.new RiakHelpers.bucket, "map_remove_multiple_keys_integer"
|
66
67
|
c.members.should eql({"2" => 2})
|
67
68
|
end
|
@@ -70,9 +71,17 @@ describe Rico::Map do
|
|
70
71
|
a = Rico::Map.new RiakHelpers.bucket, "map_remove_single_key_tuple"
|
71
72
|
a.add({"a" => 1, "b" => 2, "c" => 3})
|
72
73
|
b = Rico::Map.new RiakHelpers.bucket, "map_remove_single_key_tuple"
|
73
|
-
b.remove({"a" => 1})
|
74
|
+
b.remove({"a" => 1, "b" => 2})
|
74
75
|
c = Rico::Map.new RiakHelpers.bucket, "map_remove_single_key_tuple"
|
75
|
-
c.members.should eql({"
|
76
|
+
c.members.should eql({"c" => 3})
|
77
|
+
end
|
78
|
+
|
79
|
+
it "merges in the right order with implicit deduping" do
|
80
|
+
a = Rico::Map.new RiakHelpers.bucket, "map_remove_order_dedupe"
|
81
|
+
a.add({"a" => 1, "b" => 2, "c" => 3, "d" => 4})
|
82
|
+
a.remove({"b" => 2, "c" => 3, "c" => 3, "c" => 3})
|
83
|
+
b = Rico::Map.new RiakHelpers.bucket, "map_remove_order_dedupe"
|
84
|
+
b.members.should eql({"a" => 1, "d" => 4})
|
76
85
|
end
|
77
86
|
end
|
78
87
|
|
data/spec/set_spec.rb
CHANGED
@@ -8,13 +8,13 @@ describe Rico::Set do
|
|
8
8
|
describe "#add" do
|
9
9
|
it "dedupes and retains order in instance" do
|
10
10
|
a = Rico::Set.new RiakHelpers.bucket, "set_add_1"
|
11
|
-
a.add
|
11
|
+
a.add [3, 4, 6, 8, 1, 2, 3, 4, 7]
|
12
12
|
a.members.should eql [3, 4, 6, 8, 1, 2, 7]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "dedupes and sort is retained on read" do
|
16
16
|
a = Rico::Set.new RiakHelpers.bucket, "set_add_2"
|
17
|
-
a.add
|
17
|
+
a.add [3, 4, 6, 8, 1, 2, 3, 4, 7]
|
18
18
|
b = Rico::Set.new RiakHelpers.bucket, "set_add_2"
|
19
19
|
b.members.should eql [3, 4, 6, 8, 1, 2, 7]
|
20
20
|
end
|
data/spec/sorted_set_spec.rb
CHANGED
@@ -8,13 +8,13 @@ describe Rico::SortedSet do
|
|
8
8
|
describe "#add" do
|
9
9
|
it "dedupes and sorts in instance" do
|
10
10
|
a = Rico::SortedSet.new RiakHelpers.bucket, "sorted_set_add_1"
|
11
|
-
a.add
|
11
|
+
a.add [3, 2, 2, 1, 1]
|
12
12
|
a.members.should eql [1, 2, 3]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "dedupes and sort is retained on read" do
|
16
16
|
a = Rico::SortedSet.new RiakHelpers.bucket, "sorted_set_add_2"
|
17
|
-
a.add
|
17
|
+
a.add [3, 3, 2, 2, 1]
|
18
18
|
b = Rico::SortedSet.new RiakHelpers.bucket, "sorted_set_add_2"
|
19
19
|
b.members.should eql [1, 2, 3]
|
20
20
|
end
|
data/spec/spec_helper.rb
CHANGED