riak-client 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.markdown +55 -12
- data/RELEASE_NOTES.md +20 -1
- data/lib/riak.rb +1 -0
- data/lib/riak/client.rb +2 -1
- data/lib/riak/client/beefcake/crdt/counter_loader.rb +18 -0
- data/lib/riak/client/beefcake/crdt/map_loader.rb +64 -0
- data/lib/riak/client/beefcake/crdt/set_loader.rb +18 -0
- data/lib/riak/client/beefcake/crdt_loader.rb +16 -59
- data/lib/riak/client/beefcake/crdt_operator.rb +2 -1
- data/lib/riak/client/instrumentation.rb +19 -0
- data/lib/riak/crdt/base.rb +16 -0
- data/lib/riak/errors/backend_creation.rb +9 -0
- data/lib/riak/instrumentation.rb +6 -0
- data/lib/riak/version.rb +1 -1
- data/riak-client.gemspec +3 -2
- data/spec/integration/riak/counters_spec.rb +1 -1
- data/spec/integration/riak/crdt_spec.rb +68 -23
- data/spec/integration/riak/protobuffs_backends_spec.rb +1 -1
- data/spec/integration/riak/threading_spec.rb +4 -4
- data/spec/integration/yokozuna/index_spec.rb +5 -5
- data/spec/integration/yokozuna/queries_spec.rb +15 -16
- data/spec/integration/yokozuna/schema_spec.rb +2 -2
- data/spec/riak/beefcake_protobuffs_backend/crdt_operator_spec.rb +8 -8
- data/spec/riak/beefcake_protobuffs_backend/object_methods_spec.rb +1 -1
- data/spec/riak/beefcake_protobuffs_backend_spec.rb +8 -8
- data/spec/riak/bucket_spec.rb +38 -38
- data/spec/riak/client_spec.rb +26 -27
- data/spec/riak/core_ext/to_param_spec.rb +2 -2
- data/spec/riak/counter_spec.rb +11 -11
- data/spec/riak/crdt/counter_spec.rb +4 -2
- data/spec/riak/crdt/inner_counter_spec.rb +1 -1
- data/spec/riak/crdt/inner_flag_spec.rb +4 -4
- data/spec/riak/crdt/inner_map_spec.rb +3 -3
- data/spec/riak/crdt/inner_register_spec.rb +5 -5
- data/spec/riak/crdt/inner_set_spec.rb +1 -1
- data/spec/riak/crdt/map_spec.rb +2 -2
- data/spec/riak/crdt/set_spec.rb +4 -2
- data/spec/riak/crdt/shared_examples.rb +15 -15
- data/spec/riak/crdt/typed_collection_spec.rb +16 -22
- data/spec/riak/escape_spec.rb +10 -10
- data/spec/riak/feature_detection_spec.rb +1 -1
- data/spec/riak/index_collection_spec.rb +7 -4
- data/spec/riak/instrumentation_spec.rb +124 -0
- data/spec/riak/link_spec.rb +12 -12
- data/spec/riak/list_buckets_spec.rb +2 -2
- data/spec/riak/map_reduce/filter_builder_spec.rb +5 -5
- data/spec/riak/map_reduce/phase_spec.rb +20 -20
- data/spec/riak/map_reduce_spec.rb +50 -50
- data/spec/riak/multiget_spec.rb +5 -5
- data/spec/riak/node_spec.rb +3 -3
- data/spec/riak/robject_spec.rb +46 -45
- data/spec/riak/search_spec.rb +11 -11
- data/spec/riak/secondary_index_spec.rb +9 -9
- data/spec/riak/stamp_spec.rb +5 -5
- data/spec/riak/walk_spec_spec.rb +30 -30
- data/spec/spec_helper.rb +6 -0
- data/spec/support/certs/ca.crt +19 -20
- data/spec/support/certs/client.crl +13 -0
- data/spec/support/certs/client.crt +68 -69
- data/spec/support/certs/client.csr +18 -0
- data/spec/support/certs/client.key +25 -25
- data/spec/support/certs/server.crl +11 -11
- data/spec/support/certs/server.crt +68 -69
- data/spec/support/certs/server.key +25 -25
- data/spec/support/unified_backend_examples.rb +33 -33
- metadata +31 -5
data/spec/riak/search_spec.rb
CHANGED
@@ -10,17 +10,17 @@ describe "Search features" do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
describe "searching" do
|
13
|
-
it "
|
13
|
+
it "searches the default index" do
|
14
14
|
expect(@pb).to receive(:search).with(nil, "foo", {}).and_return({})
|
15
15
|
@client.search("foo")
|
16
16
|
end
|
17
17
|
|
18
|
-
it "
|
18
|
+
it "searches the default index with additional options" do
|
19
19
|
expect(@pb).to receive(:search).with(nil, 'foo', 'rows' => 30).and_return({})
|
20
20
|
@client.search("foo", 'rows' => 30)
|
21
21
|
end
|
22
22
|
|
23
|
-
it "
|
23
|
+
it "searches the specified index" do
|
24
24
|
expect(@pb).to receive(:search).with('search', 'foo', {}).and_return({})
|
25
25
|
@client.search("search", "foo")
|
26
26
|
end
|
@@ -41,7 +41,7 @@ describe "Search features" do
|
|
41
41
|
@bucket.instance_variable_set(:@props, {"precommit" => [{"mod" => "riak_search_kv_hook", "fun" => "precommit"}], "search" => true})
|
42
42
|
end
|
43
43
|
|
44
|
-
it "
|
44
|
+
it "detects whether the indexing hook is installed" do
|
45
45
|
load_without_index_hook
|
46
46
|
expect(@bucket.is_indexed?).to be_falsey
|
47
47
|
|
@@ -50,13 +50,13 @@ describe "Search features" do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
describe "enabling indexing" do
|
53
|
-
it "
|
53
|
+
it "adds the index hook when not present" do
|
54
54
|
load_without_index_hook
|
55
55
|
expect(@bucket).to receive(:props=).with({"precommit" => [Riak::Bucket::SEARCH_PRECOMMIT_HOOK], "search" => true})
|
56
56
|
@bucket.enable_index!
|
57
57
|
end
|
58
58
|
|
59
|
-
it "
|
59
|
+
it "doesn't modify the precommit when the hook is present" do
|
60
60
|
load_with_index_hook
|
61
61
|
expect(@bucket).not_to receive(:props=)
|
62
62
|
@bucket.enable_index!
|
@@ -64,13 +64,13 @@ describe "Search features" do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
describe "disabling indexing" do
|
67
|
-
it "
|
67
|
+
it "removes the index hook when present" do
|
68
68
|
load_with_index_hook
|
69
69
|
expect(@bucket).to receive(:props=).with({"precommit" => [], "search" => false})
|
70
70
|
@bucket.disable_index!
|
71
71
|
end
|
72
72
|
|
73
|
-
it "
|
73
|
+
it "doesn't modify the precommit when the hook is missing" do
|
74
74
|
load_without_index_hook
|
75
75
|
expect(@bucket).not_to receive(:props=)
|
76
76
|
@bucket.disable_index!
|
@@ -85,17 +85,17 @@ describe "Search features" do
|
|
85
85
|
end
|
86
86
|
|
87
87
|
describe "using a search query as inputs" do
|
88
|
-
it "
|
88
|
+
it "accepts a bucket name and query" do
|
89
89
|
@mr.search("foo", "bar OR baz")
|
90
90
|
expect(@mr.inputs).to eq({:module => "riak_search", :function => "mapred_search", :arg => ["foo", "bar OR baz"]})
|
91
91
|
end
|
92
92
|
|
93
|
-
it "
|
93
|
+
it "accepts a Riak::Bucket and query" do
|
94
94
|
@mr.search(Riak::Bucket.new(@client, "foo"), "bar OR baz")
|
95
95
|
expect(@mr.inputs).to eq({:module => "riak_search", :function => "mapred_search", :arg => ["foo", "bar OR baz"]})
|
96
96
|
end
|
97
97
|
|
98
|
-
it "
|
98
|
+
it "emits the Erlang function and arguments" do
|
99
99
|
@mr.search("foo", "bar OR baz")
|
100
100
|
expect(@mr.to_json).to include('"inputs":{')
|
101
101
|
expect(@mr.to_json).to include('"module":"riak_search"')
|
@@ -7,12 +7,12 @@ describe Riak::SecondaryIndex do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
describe "initialization" do
|
10
|
-
it "
|
10
|
+
it "accepts a bucket, index name, and scalar" do
|
11
11
|
expect { Riak::SecondaryIndex.new @bucket, 'asdf', 'aaaa' }.not_to raise_error
|
12
12
|
expect { Riak::SecondaryIndex.new @bucket, 'asdf', 12345 }.not_to raise_error
|
13
13
|
end
|
14
14
|
|
15
|
-
it "
|
15
|
+
it "accepts a bucket, index name, and a range" do
|
16
16
|
expect { Riak::SecondaryIndex.new @bucket, 'asdf', 'aaaa'..'zzzz' }.not_to raise_error
|
17
17
|
expect { Riak::SecondaryIndex.new @bucket, 'asdf', 1..5 }.not_to raise_error
|
18
18
|
end
|
@@ -28,12 +28,12 @@ describe Riak::SecondaryIndex do
|
|
28
28
|
expect(@backend).to receive(:get_index).with(*@args).and_return(%w{abcd efgh})
|
29
29
|
end
|
30
30
|
|
31
|
-
it "
|
31
|
+
it "returns an array of keys" do
|
32
32
|
@results = @index.keys
|
33
33
|
expect(@results).to be_a Array
|
34
34
|
expect(@results.first).to be_a String
|
35
35
|
end
|
36
|
-
it "
|
36
|
+
it "returns an array of values" do
|
37
37
|
expect(@backend).to receive(:fetch_object).with(@bucket, 'abcd', {}).and_return('abcd')
|
38
38
|
expect(@backend).to receive(:fetch_object).with(@bucket, 'efgh', {}).and_return('efgh')
|
39
39
|
|
@@ -44,7 +44,7 @@ describe Riak::SecondaryIndex do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
describe "streaming" do
|
47
|
-
it "
|
47
|
+
it "streams keys into a block" do
|
48
48
|
@backend = double 'Backend'
|
49
49
|
allow(@client).to receive(:backend).and_yield(@backend)
|
50
50
|
@args = [@bucket, 'asdf', 'aaaa'..'zzzz', {stream: true}]
|
@@ -57,7 +57,7 @@ describe Riak::SecondaryIndex do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
describe "pagination" do
|
60
|
-
it "
|
60
|
+
it "supports max_results" do
|
61
61
|
@max_results = 5
|
62
62
|
|
63
63
|
@expected_collection = Riak::IndexCollection.new_from_json({
|
@@ -92,7 +92,7 @@ describe Riak::SecondaryIndex do
|
|
92
92
|
expect(@results.length).to eq(@max_results)
|
93
93
|
end
|
94
94
|
|
95
|
-
it "
|
95
|
+
it "supports continuations" do
|
96
96
|
@max_results = 5
|
97
97
|
|
98
98
|
@expected_collection = Riak::IndexCollection.new_from_json({
|
@@ -127,7 +127,7 @@ describe Riak::SecondaryIndex do
|
|
127
127
|
expect(@results).to eq(@expected_collection)
|
128
128
|
end
|
129
129
|
|
130
|
-
it "
|
130
|
+
it "supports a next_page method" do
|
131
131
|
@max_results = 5
|
132
132
|
|
133
133
|
@expected_collection = Riak::IndexCollection.new_from_json({
|
@@ -182,7 +182,7 @@ describe Riak::SecondaryIndex do
|
|
182
182
|
end
|
183
183
|
|
184
184
|
describe "return_terms" do
|
185
|
-
it "
|
185
|
+
it "optionally gives the index value" do
|
186
186
|
@expected_collection = Riak::IndexCollection.new_from_json({
|
187
187
|
'results' => [
|
188
188
|
{'aaaa' => 'aaaa'},
|
data/spec/riak/stamp_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'riak/stamp'
|
|
3
3
|
|
4
4
|
describe Riak::Stamp, test_client: true do
|
5
5
|
subject { described_class.new test_client }
|
6
|
-
it "
|
6
|
+
it "generates always increasing integer identifiers" do
|
7
7
|
1000.times do
|
8
8
|
one = subject.next
|
9
9
|
two = subject.next
|
@@ -12,7 +12,7 @@ describe Riak::Stamp, test_client: true do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
it "
|
15
|
+
it "delays until the next millisecond when the sequence overflows" do
|
16
16
|
old = subject.instance_variable_get(:@timestamp) + 0
|
17
17
|
subject.instance_variable_set(:@sequence, described_class::SEQUENCE_MASK)
|
18
18
|
count = 0
|
@@ -28,7 +28,7 @@ describe Riak::Stamp, test_client: true do
|
|
28
28
|
expect((subject.next >> described_class::TIMESTAMP_SHIFT) & described_class::TIMESTAMP_MASK).to eq(old + 1)
|
29
29
|
end
|
30
30
|
|
31
|
-
it "
|
31
|
+
it "raises an exception when the system clock moves backwards" do
|
32
32
|
old = subject.instance_variable_get(:@timestamp)
|
33
33
|
expect(subject).to receive(:time_gen).and_return(old - 10)
|
34
34
|
expect {
|
@@ -39,7 +39,7 @@ describe Riak::Stamp, test_client: true do
|
|
39
39
|
# The client/worker ID should be used for disambiguation, not for
|
40
40
|
# primary ordering. This breaks from the Snowflake model where the
|
41
41
|
# worker ID is in more significant bits.
|
42
|
-
it "
|
42
|
+
it "uses the client ID as the bottom component of the identifier" do
|
43
43
|
expect(subject.next & described_class::CLIENT_ID_MASK).to eq(subject.client.client_id.hash & described_class::CLIENT_ID_MASK)
|
44
44
|
end
|
45
45
|
|
@@ -47,7 +47,7 @@ describe Riak::Stamp, test_client: true do
|
|
47
47
|
subject { described_class.new(Riak::Client.new(:client_id => "ripple")) }
|
48
48
|
let(:hash) { "ripple".hash }
|
49
49
|
|
50
|
-
it "
|
50
|
+
it "uses the hash of the client ID as the bottom component of the identifier" do
|
51
51
|
expect(subject.next & described_class::CLIENT_ID_MASK).to eq(subject.client.client_id.hash & described_class::CLIENT_ID_MASK)
|
52
52
|
end
|
53
53
|
end
|
data/spec/riak/walk_spec_spec.rb
CHANGED
@@ -3,28 +3,28 @@ require 'spec_helper'
|
|
3
3
|
describe Riak::WalkSpec do
|
4
4
|
describe "initializing" do
|
5
5
|
describe "with a hash" do
|
6
|
-
it "
|
6
|
+
it "is empty by default" do
|
7
7
|
spec = Riak::WalkSpec.new({})
|
8
8
|
expect(spec.bucket).to eq("_")
|
9
9
|
expect(spec.tag).to eq("_")
|
10
10
|
expect(spec.keep).to be_falsey
|
11
11
|
end
|
12
12
|
|
13
|
-
it "
|
13
|
+
it "extracts the bucket" do
|
14
14
|
spec = Riak::WalkSpec.new({:bucket => "foo"})
|
15
15
|
expect(spec.bucket).to eq("foo")
|
16
16
|
expect(spec.tag).to eq("_")
|
17
17
|
expect(spec.keep).to be_falsey
|
18
18
|
end
|
19
19
|
|
20
|
-
it "
|
20
|
+
it "extracts the tag" do
|
21
21
|
spec = Riak::WalkSpec.new({:tag => "foo"})
|
22
22
|
expect(spec.bucket).to eq("_")
|
23
23
|
expect(spec.tag).to eq("foo")
|
24
24
|
expect(spec.keep).to be_falsey
|
25
25
|
end
|
26
26
|
|
27
|
-
it "
|
27
|
+
it "extracts the keep" do
|
28
28
|
spec = Riak::WalkSpec.new({:keep => true})
|
29
29
|
expect(spec.bucket).to eq("_")
|
30
30
|
expect(spec.tag).to eq("_")
|
@@ -33,28 +33,28 @@ describe Riak::WalkSpec do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
describe "with three arguments for bucket, tag, and keep" do
|
36
|
-
it "
|
36
|
+
it "assigns the bucket, tag, and keep" do
|
37
37
|
spec = Riak::WalkSpec.new("foo", "next", false)
|
38
38
|
expect(spec.bucket).to eq("foo")
|
39
39
|
expect(spec.tag).to eq("next")
|
40
40
|
expect(spec.keep).to be_falsey
|
41
41
|
end
|
42
42
|
|
43
|
-
it "
|
43
|
+
it "specifies the '_' bucket when false or nil" do
|
44
44
|
spec = Riak::WalkSpec.new(nil, "next", false)
|
45
45
|
expect(spec.bucket).to eq("_")
|
46
46
|
spec = Riak::WalkSpec.new(false, "next", false)
|
47
47
|
expect(spec.bucket).to eq("_")
|
48
48
|
end
|
49
49
|
|
50
|
-
it "
|
50
|
+
it "specifies the '_' tag when false or nil" do
|
51
51
|
spec = Riak::WalkSpec.new("foo", nil, false)
|
52
52
|
expect(spec.tag).to eq("_")
|
53
53
|
spec = Riak::WalkSpec.new("foo", false, false)
|
54
54
|
expect(spec.tag).to eq("_")
|
55
55
|
end
|
56
56
|
|
57
|
-
it "
|
57
|
+
it "make the keep falsey when false or nil" do
|
58
58
|
spec = Riak::WalkSpec.new(nil, nil, nil)
|
59
59
|
expect(spec.keep).to be_falsey
|
60
60
|
spec = Riak::WalkSpec.new(nil, nil, false)
|
@@ -62,7 +62,7 @@ describe Riak::WalkSpec do
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
it "
|
65
|
+
it "raises an ArgumentError for invalid arguments" do
|
66
66
|
expect { Riak::WalkSpec.new }.to raise_error(ArgumentError)
|
67
67
|
expect { Riak::WalkSpec.new("foo") }.to raise_error(ArgumentError)
|
68
68
|
expect { Riak::WalkSpec.new("foo","bar") }.to raise_error(ArgumentError)
|
@@ -74,35 +74,35 @@ describe Riak::WalkSpec do
|
|
74
74
|
@spec = Riak::WalkSpec.new({})
|
75
75
|
end
|
76
76
|
|
77
|
-
it "
|
77
|
+
it "converts to the empty spec by default" do
|
78
78
|
expect(@spec.to_s).to eq("_,_,_")
|
79
79
|
end
|
80
80
|
|
81
|
-
it "
|
81
|
+
it "includes the bucket when set" do
|
82
82
|
@spec.bucket = "foo"
|
83
83
|
expect(@spec.to_s).to eq("foo,_,_")
|
84
84
|
end
|
85
85
|
|
86
|
-
it "
|
86
|
+
it "includes the tag when set" do
|
87
87
|
@spec.tag = "next"
|
88
88
|
expect(@spec.to_s).to eq("_,next,_")
|
89
89
|
end
|
90
90
|
|
91
|
-
it "
|
91
|
+
it "includes the keep when true" do
|
92
92
|
@spec.keep = true
|
93
93
|
expect(@spec.to_s).to eq("_,_,1")
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
97
|
describe "creating from a list of parameters" do
|
98
|
-
it "
|
98
|
+
it "detects hashes and WalkSpecs interleaved with other parameters" do
|
99
99
|
specs = Riak::WalkSpec.normalize(nil,"next",nil,{:bucket => "foo"},Riak::WalkSpec.new({:tag => "child", :keep => true}))
|
100
100
|
expect(specs.size).to eq(3)
|
101
101
|
expect(specs).to be_all {|s| s.kind_of?(Riak::WalkSpec) }
|
102
102
|
expect(specs.join("/")).to eq("_,next,_/foo,_,_/_,child,1")
|
103
103
|
end
|
104
104
|
|
105
|
-
it "
|
105
|
+
it "raises an error when given invalid number of parameters" do
|
106
106
|
expect { Riak::WalkSpec.normalize("foo") }.to raise_error(ArgumentError)
|
107
107
|
end
|
108
108
|
end
|
@@ -112,7 +112,7 @@ describe Riak::WalkSpec do
|
|
112
112
|
@spec = Riak::WalkSpec.new({})
|
113
113
|
end
|
114
114
|
|
115
|
-
it "
|
115
|
+
it "doesn't match objects that aren't links or walk specs" do
|
116
116
|
expect(@spec).not_to be === "foo"
|
117
117
|
end
|
118
118
|
|
@@ -121,31 +121,31 @@ describe Riak::WalkSpec do
|
|
121
121
|
@link = Riak::Link.new("/riak/foo/bar", "next")
|
122
122
|
end
|
123
123
|
|
124
|
-
it "
|
124
|
+
it "matches a link when the bucket and tag are not specified" do
|
125
125
|
expect(@spec).to be === @link
|
126
126
|
end
|
127
127
|
|
128
|
-
it "
|
128
|
+
it "matches a link when the bucket is the same" do
|
129
129
|
@spec.bucket = "foo"
|
130
130
|
expect(@spec).to be === @link
|
131
131
|
end
|
132
132
|
|
133
|
-
it "
|
133
|
+
it "doesn't match a link when the bucket is different" do
|
134
134
|
@spec.bucket = "bar"
|
135
135
|
expect(@spec).not_to be === @link
|
136
136
|
end
|
137
137
|
|
138
|
-
it "
|
138
|
+
it "matches a link when the tag is the same" do
|
139
139
|
@spec.tag = "next"
|
140
140
|
expect(@spec).to be === @link
|
141
141
|
end
|
142
142
|
|
143
|
-
it "
|
143
|
+
it "doesn't match a link when the tag is different" do
|
144
144
|
@spec.tag = "previous"
|
145
145
|
expect(@spec).not_to be === @link
|
146
146
|
end
|
147
147
|
|
148
|
-
it "
|
148
|
+
it "matches a link when the bucket and tag are the same" do
|
149
149
|
@spec.bucket = "foo"
|
150
150
|
expect(@spec).to be === @link
|
151
151
|
end
|
@@ -156,41 +156,41 @@ describe Riak::WalkSpec do
|
|
156
156
|
@other = Riak::WalkSpec.new({})
|
157
157
|
end
|
158
158
|
|
159
|
-
it "
|
159
|
+
it "matches a walk spec that is equivalent" do
|
160
160
|
expect(@spec).to be === @other
|
161
161
|
end
|
162
162
|
|
163
|
-
it "
|
163
|
+
it "matches a walk spec that has a different keep value" do
|
164
164
|
@other.keep = true
|
165
165
|
expect(@spec).not_to be === @other
|
166
166
|
end
|
167
167
|
|
168
|
-
it "
|
168
|
+
it "matches a walk spec with a more specific bucket" do
|
169
169
|
@other.bucket = "foo"
|
170
170
|
expect(@spec).to be === @other
|
171
171
|
end
|
172
172
|
|
173
|
-
it "
|
173
|
+
it "matches a walk spec with the same bucket" do
|
174
174
|
@other.bucket = "foo"; @spec.bucket = "foo"
|
175
175
|
expect(@spec).to be === @other
|
176
176
|
end
|
177
177
|
|
178
|
-
it "
|
178
|
+
it "doesn't match a walk spec with a different bucket" do
|
179
179
|
@other.bucket = "foo"; @spec.bucket = "bar"
|
180
180
|
expect(@spec).not_to be === @other
|
181
181
|
end
|
182
182
|
|
183
|
-
it "
|
183
|
+
it "doesn't match a walk spec with a more specific tag" do
|
184
184
|
@other.tag = "next"
|
185
185
|
expect(@spec).to be === @other
|
186
186
|
end
|
187
187
|
|
188
|
-
it "
|
188
|
+
it "matches a walk spec with the same tag" do
|
189
189
|
@other.tag = "next"; @spec.tag = "next"
|
190
190
|
expect(@spec).to be === @other
|
191
191
|
end
|
192
192
|
|
193
|
-
it "
|
193
|
+
it "doesn't match a walk spec with a different tag" do
|
194
194
|
@other.tag = "next"; @spec.tag = "previous"
|
195
195
|
expect(@spec).not_to be === @other
|
196
196
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/certs/ca.crt
CHANGED
@@ -1,22 +1,21 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
/
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
VEcFwFceAhIM4PsZteI4m9nG
|
2
|
+
MIIDjDCCAnQCCQDCaCbuH5N1HjANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMC
|
3
|
+
VVMxEDAOBgNVBAgMB0Zsb3JpZGExDjAMBgNVBAcMBU1pYW1pMQ4wDAYDVQQKDAVC
|
4
|
+
YXNobzEZMBcGA1UECwwQUmlhayBSdWJ5IENsaWVudDELMAkGA1UEAwwCQ0ExHjAc
|
5
|
+
BgkqhkiG9w0BCQEWD2JyeWNlQGJhc2hvLmNvbTAeFw0xNDA5MTgyMjU4MDJaFw0y
|
6
|
+
NDA5MTUyMjU4MDJaMIGHMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHRmxvcmlkYTEO
|
7
|
+
MAwGA1UEBwwFTWlhbWkxDjAMBgNVBAoMBUJhc2hvMRkwFwYDVQQLDBBSaWFrIFJ1
|
8
|
+
YnkgQ2xpZW50MQswCQYDVQQDDAJDQTEeMBwGCSqGSIb3DQEJARYPYnJ5Y2VAYmFz
|
9
|
+
aG8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApLREjyW0bsMQ
|
10
|
+
2xZuZfXrTqndZdtmJrUaUdwLcTYXo/BLJq8mw/UoKBajzDJS1OsVutOT3l1mQZNk
|
11
|
+
pE15lJbPo301RtkGOeYlTx6ptawutrvlMlACnWtYyuL9U8qqnMJAsdBEjTU3Xxao
|
12
|
+
/vJTECBVaKtL9D5vEu2fOn4ZWvSuYG14ZXhltBPgon95SrJX+erXgHs0IH6l1ftW
|
13
|
+
xZL9Uw/Tj/s8XEMK8n6FB+CYuj33fZMjswvdXABzhEAW8bCupJT42V/S9Zj4B0Z8
|
14
|
+
iv6wgurc1yuU6yl0VDGZ6Ee++7ter3GZZrV4YC5A8UjW0+8sADUYKiZNYWTO6S+N
|
15
|
+
Pu/sLRdykwIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQBzcs/VIHHeyUWlS+Rx/s/m
|
16
|
+
m54RK332r2+8Mywtwdz57kA6rsbYBrrlKVmEzjtgCIcpF/3hhEChYcSA4w0Aa+zd
|
17
|
+
Zd6eNtUyicPFfm/8GycaLM3Ptj3duq4jHha2IzhomfACm8pkBj8IU8Y5q/YBV+3L
|
18
|
+
hJxderphbz6lqrH6USkt/aaFzu+1onYlxzGZDyiFPOxUbRPXN12y3XCeFSfuHBej
|
19
|
+
ifFRSHGR8HU++g4VYnOi/1YXSDFh7yRvA2qBlz+kYprBS2GggXIrfCgT+FnMALlg
|
20
|
+
6TrfsWQiI3pyGKUsNjdaQckdLMWr8jvutb7vPZ1WdMdgKxbE0Swo1HBbkCAe5JjG
|
22
21
|
-----END CERTIFICATE-----
|