cql-rb 1.0.0.pre7 → 1.0.0.pre8

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.
Files changed (54) hide show
  1. data/lib/cql/byte_buffer.rb +22 -0
  2. data/lib/cql/client.rb +79 -310
  3. data/lib/cql/client/asynchronous_client.rb +254 -0
  4. data/lib/cql/client/asynchronous_prepared_statement.rb +19 -0
  5. data/lib/cql/client/column_metadata.rb +22 -0
  6. data/lib/cql/client/query_result.rb +34 -0
  7. data/lib/cql/client/result_metadata.rb +31 -0
  8. data/lib/cql/client/synchronous_client.rb +47 -0
  9. data/lib/cql/client/synchronous_prepared_statement.rb +47 -0
  10. data/lib/cql/future.rb +7 -3
  11. data/lib/cql/io.rb +1 -0
  12. data/lib/cql/io/io_reactor.rb +9 -3
  13. data/lib/cql/io/node_connection.rb +2 -2
  14. data/lib/cql/protocol.rb +5 -4
  15. data/lib/cql/protocol/request.rb +23 -0
  16. data/lib/cql/protocol/requests/credentials_request.rb +1 -1
  17. data/lib/cql/protocol/requests/execute_request.rb +13 -84
  18. data/lib/cql/protocol/requests/options_request.rb +1 -1
  19. data/lib/cql/protocol/requests/prepare_request.rb +2 -1
  20. data/lib/cql/protocol/requests/query_request.rb +3 -1
  21. data/lib/cql/protocol/requests/register_request.rb +1 -1
  22. data/lib/cql/protocol/requests/startup_request.rb +1 -2
  23. data/lib/cql/protocol/{response_body.rb → response.rb} +1 -1
  24. data/lib/cql/protocol/responses/authenticate_response.rb +1 -1
  25. data/lib/cql/protocol/responses/error_response.rb +1 -1
  26. data/lib/cql/protocol/responses/ready_response.rb +1 -1
  27. data/lib/cql/protocol/responses/result_response.rb +1 -1
  28. data/lib/cql/protocol/responses/rows_result_response.rb +1 -1
  29. data/lib/cql/protocol/responses/supported_response.rb +1 -1
  30. data/lib/cql/protocol/type_converter.rb +226 -46
  31. data/lib/cql/version.rb +1 -1
  32. data/spec/cql/byte_buffer_spec.rb +38 -0
  33. data/spec/cql/client/asynchronous_client_spec.rb +472 -0
  34. data/spec/cql/client/client_shared.rb +27 -0
  35. data/spec/cql/client/synchronous_client_spec.rb +104 -0
  36. data/spec/cql/client/synchronous_prepared_statement_spec.rb +65 -0
  37. data/spec/cql/future_spec.rb +4 -0
  38. data/spec/cql/io/io_reactor_spec.rb +39 -20
  39. data/spec/cql/protocol/request_spec.rb +17 -0
  40. data/spec/cql/protocol/requests/credentials_request_spec.rb +82 -0
  41. data/spec/cql/protocol/requests/execute_request_spec.rb +174 -0
  42. data/spec/cql/protocol/requests/options_request_spec.rb +24 -0
  43. data/spec/cql/protocol/requests/prepare_request_spec.rb +70 -0
  44. data/spec/cql/protocol/requests/query_request_spec.rb +95 -0
  45. data/spec/cql/protocol/requests/register_request_spec.rb +24 -0
  46. data/spec/cql/protocol/requests/startup_request_spec.rb +29 -0
  47. data/spec/integration/client_spec.rb +26 -19
  48. data/spec/integration/protocol_spec.rb +2 -2
  49. data/spec/integration/regression_spec.rb +1 -1
  50. metadata +35 -9
  51. data/lib/cql/protocol/request_body.rb +0 -15
  52. data/lib/cql/protocol/request_frame.rb +0 -20
  53. data/spec/cql/client_spec.rb +0 -454
  54. data/spec/cql/protocol/request_frame_spec.rb +0 -456
@@ -0,0 +1,24 @@
1
+ # encoding: ascii-8bit
2
+
3
+ require 'spec_helper'
4
+
5
+
6
+ module Cql
7
+ module Protocol
8
+ describe OptionsRequest do
9
+ describe '#encode_frame' do
10
+ it 'encodes an OPTIONS request frame' do
11
+ bytes = OptionsRequest.new.encode_frame(3)
12
+ bytes.should == "\x01\x00\x03\x05\x00\x00\x00\x00"
13
+ end
14
+ end
15
+
16
+ describe '#to_s' do
17
+ it 'returns a pretty string' do
18
+ request = OptionsRequest.new
19
+ request.to_s.should == 'OPTIONS'
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,70 @@
1
+ # encoding: ascii-8bit
2
+
3
+ require 'spec_helper'
4
+
5
+
6
+ module Cql
7
+ module Protocol
8
+ describe PrepareRequest do
9
+ describe '#initialize' do
10
+ it 'raises an error when the CQL is nil' do
11
+ expect { PrepareRequest.new(nil) }.to raise_error(ArgumentError)
12
+ end
13
+ end
14
+
15
+ describe '#encode_frame' do
16
+ it 'encodes a PREPARE request frame' do
17
+ bytes = PrepareRequest.new('UPDATE users SET email = ? WHERE user_name = ?').encode_frame(3)
18
+ bytes.should == "\x01\x00\x03\x09\x00\x00\x00\x32\x00\x00\x00\x2eUPDATE users SET email = ? WHERE user_name = ?"
19
+ end
20
+ end
21
+
22
+ describe '#to_s' do
23
+ it 'returns a pretty string' do
24
+ request = PrepareRequest.new('UPDATE users SET email = ? WHERE user_name = ?')
25
+ request.to_s.should == 'PREPARE "UPDATE users SET email = ? WHERE user_name = ?"'
26
+ end
27
+ end
28
+
29
+ describe '#eql?' do
30
+ it 'returns true when the CQL is the same' do
31
+ p1 = PrepareRequest.new('SELECT * FROM system.peers')
32
+ p2 = PrepareRequest.new('SELECT * FROM system.peers')
33
+ p1.should eql(p2)
34
+ end
35
+
36
+ it 'returns false when the CQL is different' do
37
+ p1 = PrepareRequest.new('SELECT * FROM system.peers')
38
+ p2 = PrepareRequest.new('SELECT * FROM peers')
39
+ p1.should_not eql(p2)
40
+ end
41
+
42
+ it 'does not know about CQL syntax' do
43
+ p1 = PrepareRequest.new('SELECT * FROM system.peers')
44
+ p2 = PrepareRequest.new('SELECT * FROM system.peers')
45
+ p1.should_not eql(p2)
46
+ end
47
+
48
+ it 'is aliased as ==' do
49
+ p1 = PrepareRequest.new('SELECT * FROM system.peers')
50
+ p2 = PrepareRequest.new('SELECT * FROM system.peers')
51
+ p1.should == p2
52
+ end
53
+ end
54
+
55
+ describe '#hash' do
56
+ it 'has the same hash code as another identical object' do
57
+ p1 = PrepareRequest.new('SELECT * FROM system.peers')
58
+ p2 = PrepareRequest.new('SELECT * FROM system.peers')
59
+ p1.hash.should == p2.hash
60
+ end
61
+
62
+ it 'does not have the same hash code when the CQL is different' do
63
+ p1 = PrepareRequest.new('SELECT * FROM system.peers')
64
+ p2 = PrepareRequest.new('SELECT * FROM peers')
65
+ p1.hash.should_not == p2.hash
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,95 @@
1
+ # encoding: ascii-8bit
2
+
3
+ require 'spec_helper'
4
+
5
+
6
+ module Cql
7
+ module Protocol
8
+ describe QueryRequest do
9
+ describe '#initialize' do
10
+ it 'raises an error when the CQL is nil' do
11
+ expect { QueryRequest.new(nil, :one) }.to raise_error(ArgumentError)
12
+ end
13
+
14
+ it 'raises an error when the consistency is nil' do
15
+ expect { QueryRequest.new('USE system', nil) }.to raise_error(ArgumentError)
16
+ end
17
+
18
+ it 'raises an error when the consistency is invalid' do
19
+ expect { QueryRequest.new('USE system', :hello) }.to raise_error(ArgumentError)
20
+ end
21
+ end
22
+
23
+ describe '#encode_frame' do
24
+ it 'encodes a QUERY request frame' do
25
+ bytes = QueryRequest.new('USE system', :all).encode_frame(3)
26
+ bytes.should == "\x01\x00\x03\x07\x00\x00\x00\x10\x00\x00\x00\x0aUSE system\x00\x05"
27
+ end
28
+
29
+ it 'correctly encodes queries with multibyte characters' do
30
+ bytes = QueryRequest.new("INSERT INTO users (user_id, first, last, age) VALUES ('test', 'ümlaut', 'test', 1)", :all).encode_frame(3)
31
+ bytes.should eql_bytes("\x01\x00\x03\a\x00\x00\x00Y\x00\x00\x00SINSERT INTO users (user_id, first, last, age) VALUES ('test', '\xC3\xBCmlaut', 'test', 1)\x00\x05")
32
+ end
33
+ end
34
+
35
+ describe '#to_s' do
36
+ it 'returns a pretty string' do
37
+ request = QueryRequest.new('SELECT * FROM system.peers', :local_quorum)
38
+ request.to_s.should == 'QUERY "SELECT * FROM system.peers" LOCAL_QUORUM'
39
+ end
40
+ end
41
+
42
+ describe '#eql?' do
43
+ it 'returns true when the CQL and consistency are the same' do
44
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
45
+ q2 = QueryRequest.new('SELECT * FROM system.peers', :two)
46
+ q2.should eql(q2)
47
+ end
48
+
49
+ it 'returns false when the consistency is different' do
50
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
51
+ q2 = QueryRequest.new('SELECT * FROM system.peers', :three)
52
+ q1.should_not eql(q2)
53
+ end
54
+
55
+ it 'returns false when the CQL is different' do
56
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
57
+ q2 = QueryRequest.new('SELECT * FROM peers', :two)
58
+ q1.should_not eql(q2)
59
+ end
60
+
61
+ it 'does not know about CQL syntax' do
62
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
63
+ q2 = QueryRequest.new('SELECT * FROM system.peers', :two)
64
+ q1.should_not eql(q2)
65
+ end
66
+
67
+ it 'is aliased as ==' do
68
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
69
+ q2 = QueryRequest.new('SELECT * FROM system.peers', :two)
70
+ q1.should == q2
71
+ end
72
+ end
73
+
74
+ describe '#hash' do
75
+ it 'has the same hash code as another identical object' do
76
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
77
+ q2 = QueryRequest.new('SELECT * FROM system.peers', :two)
78
+ q1.hash.should == q2.hash
79
+ end
80
+
81
+ it 'does not have the same hash code when the consistency is different' do
82
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
83
+ q2 = QueryRequest.new('SELECT * FROM system.peers', :three)
84
+ q1.hash.should_not == q2.hash
85
+ end
86
+
87
+ it 'does not have the same hash code when the CQL is different' do
88
+ q1 = QueryRequest.new('SELECT * FROM system.peers', :two)
89
+ q2 = QueryRequest.new('SELECT * FROM peers', :two)
90
+ q1.hash.should_not == q2.hash
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: ascii-8bit
2
+
3
+ require 'spec_helper'
4
+
5
+
6
+ module Cql
7
+ module Protocol
8
+ describe RegisterRequest do
9
+ describe '#encode_frame' do
10
+ it 'encodes a REGISTER request frame' do
11
+ bytes = RegisterRequest.new('TOPOLOGY_CHANGE', 'STATUS_CHANGE').encode_frame(3)
12
+ bytes.should == "\x01\x00\x03\x0b\x00\x00\x00\x22\x00\x02\x00\x0fTOPOLOGY_CHANGE\x00\x0dSTATUS_CHANGE"
13
+ end
14
+ end
15
+
16
+ describe '#to_s' do
17
+ it 'returns a pretty string' do
18
+ request = RegisterRequest.new('TOPOLOGY_CHANGE', 'STATUS_CHANGE')
19
+ request.to_s.should == 'REGISTER ["TOPOLOGY_CHANGE", "STATUS_CHANGE"]'
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: ascii-8bit
2
+
3
+ require 'spec_helper'
4
+
5
+
6
+ module Cql
7
+ module Protocol
8
+ describe StartupRequest do
9
+ describe '#encode_frame' do
10
+ it 'encodes a STARTUP request frame' do
11
+ bytes = StartupRequest.new('3.0.0', 'snappy').encode_frame(3)
12
+ bytes.should == "\x01\x00\x03\x01\x00\x00\x00\x2b\x00\x02\x00\x0bCQL_VERSION\x00\x053.0.0\x00\x0bCOMPRESSION\x00\x06snappy"
13
+ end
14
+
15
+ it 'defaults to CQL 3.0.0 and no compression' do
16
+ bytes = StartupRequest.new.encode_frame(3)
17
+ bytes.should == "\x01\x00\x03\x01\x00\x00\x00\x16\x00\x01\x00\x0bCQL_VERSION\x00\x053.0.0"
18
+ end
19
+ end
20
+
21
+ describe '#to_s' do
22
+ it 'returns a pretty string' do
23
+ request = StartupRequest.new
24
+ request.to_s.should == 'STARTUP {"CQL_VERSION"=>"3.0.0"}'
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -9,7 +9,7 @@ describe 'A CQL client' do
9
9
  end
10
10
 
11
11
  let :client do
12
- Cql::Client.new(connection_options)
12
+ Cql::Client.connect(connection_options)
13
13
  end
14
14
 
15
15
  before do
@@ -37,7 +37,7 @@ describe 'A CQL client' do
37
37
  end
38
38
 
39
39
  it 'can be initialized with a keyspace' do
40
- c = Cql::Client.new(connection_options.merge(:keyspace => 'system'))
40
+ c = Cql::Client.connect(connection_options.merge(:keyspace => 'system'))
41
41
  c.connect
42
42
  begin
43
43
  c.keyspace.should == 'system'
@@ -47,29 +47,38 @@ describe 'A CQL client' do
47
47
  end
48
48
  end
49
49
 
50
- it 'prepares a statement' do
51
- statement = client.prepare('SELECT * FROM system.schema_keyspaces WHERE keyspace_name = ?')
52
- statement.should_not be_nil
53
- end
50
+ context 'when using prepared statements' do
51
+ before do
52
+ client.use('system')
53
+ end
54
54
 
55
- it 'executes a prepared statement' do
56
- statement = client.prepare('SELECT * FROM system.schema_keyspaces WHERE keyspace_name = ?')
57
- result = statement.execute('system')
58
- result.should have(1).item
59
- result = statement.execute('system', :one)
60
- result.should have(1).item
55
+ let :statement do
56
+ client.prepare('SELECT * FROM schema_keyspaces WHERE keyspace_name = ?')
57
+ end
58
+
59
+ it 'prepares a statement' do
60
+ statement.should_not be_nil
61
+ end
62
+
63
+ it 'executes a prepared statement' do
64
+ result = statement.execute('system')
65
+ result.should have(1).item
66
+ result = statement.execute('system', :one)
67
+ result.should have(1).item
68
+ end
61
69
  end
62
70
 
63
71
  context 'with multiple connections' do
64
72
  let :multi_client do
65
73
  opts = connection_options.dup
66
74
  opts[:host] = ([opts[:host]] * 10).join(',')
67
- Cql::Client.new(opts)
75
+ Cql::Client.connect(opts)
68
76
  end
69
77
 
70
78
  before do
71
79
  client.close
72
80
  multi_client.connect
81
+ multi_client.use('system')
73
82
  end
74
83
 
75
84
  after do
@@ -77,7 +86,6 @@ describe 'A CQL client' do
77
86
  end
78
87
 
79
88
  it 'handles keyspace changes with #use' do
80
- multi_client.use('system')
81
89
  100.times do
82
90
  result = multi_client.execute(%<SELECT * FROM schema_keyspaces WHERE keyspace_name = 'system'>)
83
91
  result.should have(1).item
@@ -85,7 +93,6 @@ describe 'A CQL client' do
85
93
  end
86
94
 
87
95
  it 'handles keyspace changes with #execute' do
88
- multi_client.execute('USE system')
89
96
  100.times do
90
97
  result = multi_client.execute(%<SELECT * FROM schema_keyspaces WHERE keyspace_name = 'system'>)
91
98
  result.should have(1).item
@@ -130,7 +137,7 @@ describe 'A CQL client' do
130
137
 
131
138
  it 'raises an error when the credentials are bad' do
132
139
  if authentication_enabled
133
- client = Cql::Client.new(connection_options.merge(credentials: {username: 'foo', password: 'bar'}))
140
+ client = Cql::Client.connect(connection_options.merge(credentials: {username: 'foo', password: 'bar'}))
134
141
  expect { client.connect }.to raise_error(Cql::AuthenticationError)
135
142
  else
136
143
  pending 'authentication not configured'
@@ -144,12 +151,12 @@ describe 'A CQL client' do
144
151
  end
145
152
 
146
153
  it 'raises an error for bad consistency levels' do
147
- expect { client.execute('SELECT * FROM system.peers', :helloworld) }.to raise_error(Cql::CqlError)
154
+ expect { client.execute('SELECT * FROM system.peers', :helloworld) }.to raise_error(ArgumentError)
148
155
  end
149
156
 
150
157
  it 'fails gracefully when connecting to the Thrift port' do
151
- client = Cql::Client.new(connection_options.merge(port: 9160))
152
- expect { client.connect }.to raise_error(Cql::IoError)
158
+ opts = connection_options.merge(port: 9160)
159
+ expect { Cql::Client.connect(opts) }.to raise_error(Cql::IoError)
153
160
  end
154
161
 
155
162
  it 'fails gracefully when connecting to something that does not run C*' do
@@ -41,7 +41,7 @@ describe 'Protocol parsing and communication' do
41
41
  end
42
42
 
43
43
  def create_keyspace!
44
- query("CREATE KEYSPACE #{keyspace_name} WITH REPLICATION = {'CLASS': 'SimpleStrategy', 'replication_factor': 1}")
44
+ query("CREATE KEYSPACE #{keyspace_name} WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1}")
45
45
  end
46
46
 
47
47
  def use_keyspace!
@@ -208,7 +208,7 @@ describe 'Protocol parsing and communication' do
208
208
  end
209
209
 
210
210
  it 'sends a CREATE KEYSPACE command' do
211
- response = query("CREATE KEYSPACE #{keyspace_name} WITH REPLICATION = {'CLASS': 'SimpleStrategy', 'replication_factor': 1}")
211
+ response = query("CREATE KEYSPACE #{keyspace_name} WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1}")
212
212
  begin
213
213
  response.change.should == 'CREATED'
214
214
  response.keyspace.should == keyspace_name
@@ -9,7 +9,7 @@ describe 'Regressions' do
9
9
  end
10
10
 
11
11
  let :client do
12
- Cql::Client.new(connection_options)
12
+ Cql::Client.connect(connection_options)
13
13
  end
14
14
 
15
15
  before do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cql-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre7
4
+ version: 1.0.0.pre8
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-15 00:00:00.000000000 Z
12
+ date: 2013-06-07 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: A pure Ruby CQL3 driver for Cassandra
15
15
  email:
@@ -19,6 +19,13 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - lib/cql/byte_buffer.rb
22
+ - lib/cql/client/asynchronous_client.rb
23
+ - lib/cql/client/asynchronous_prepared_statement.rb
24
+ - lib/cql/client/column_metadata.rb
25
+ - lib/cql/client/query_result.rb
26
+ - lib/cql/client/result_metadata.rb
27
+ - lib/cql/client/synchronous_client.rb
28
+ - lib/cql/client/synchronous_prepared_statement.rb
22
29
  - lib/cql/client.rb
23
30
  - lib/cql/future.rb
24
31
  - lib/cql/io/io_reactor.rb
@@ -26,8 +33,7 @@ files:
26
33
  - lib/cql/io.rb
27
34
  - lib/cql/protocol/decoding.rb
28
35
  - lib/cql/protocol/encoding.rb
29
- - lib/cql/protocol/request_body.rb
30
- - lib/cql/protocol/request_frame.rb
36
+ - lib/cql/protocol/request.rb
31
37
  - lib/cql/protocol/requests/credentials_request.rb
32
38
  - lib/cql/protocol/requests/execute_request.rb
33
39
  - lib/cql/protocol/requests/options_request.rb
@@ -35,7 +41,7 @@ files:
35
41
  - lib/cql/protocol/requests/query_request.rb
36
42
  - lib/cql/protocol/requests/register_request.rb
37
43
  - lib/cql/protocol/requests/startup_request.rb
38
- - lib/cql/protocol/response_body.rb
44
+ - lib/cql/protocol/response.rb
39
45
  - lib/cql/protocol/response_frame.rb
40
46
  - lib/cql/protocol/responses/authenticate_response.rb
41
47
  - lib/cql/protocol/responses/detailed_error_response.rb
@@ -60,12 +66,22 @@ files:
60
66
  - bin/cqlexec
61
67
  - README.md
62
68
  - spec/cql/byte_buffer_spec.rb
63
- - spec/cql/client_spec.rb
69
+ - spec/cql/client/asynchronous_client_spec.rb
70
+ - spec/cql/client/client_shared.rb
71
+ - spec/cql/client/synchronous_client_spec.rb
72
+ - spec/cql/client/synchronous_prepared_statement_spec.rb
64
73
  - spec/cql/future_spec.rb
65
74
  - spec/cql/io/io_reactor_spec.rb
66
75
  - spec/cql/protocol/decoding_spec.rb
67
76
  - spec/cql/protocol/encoding_spec.rb
68
- - spec/cql/protocol/request_frame_spec.rb
77
+ - spec/cql/protocol/request_spec.rb
78
+ - spec/cql/protocol/requests/credentials_request_spec.rb
79
+ - spec/cql/protocol/requests/execute_request_spec.rb
80
+ - spec/cql/protocol/requests/options_request_spec.rb
81
+ - spec/cql/protocol/requests/prepare_request_spec.rb
82
+ - spec/cql/protocol/requests/query_request_spec.rb
83
+ - spec/cql/protocol/requests/register_request_spec.rb
84
+ - spec/cql/protocol/requests/startup_request_spec.rb
69
85
  - spec/cql/protocol/response_frame_spec.rb
70
86
  - spec/cql/uuid_spec.rb
71
87
  - spec/integration/client_spec.rb
@@ -103,12 +119,22 @@ specification_version: 3
103
119
  summary: Cassandra CQL3 driver
104
120
  test_files:
105
121
  - spec/cql/byte_buffer_spec.rb
106
- - spec/cql/client_spec.rb
122
+ - spec/cql/client/asynchronous_client_spec.rb
123
+ - spec/cql/client/client_shared.rb
124
+ - spec/cql/client/synchronous_client_spec.rb
125
+ - spec/cql/client/synchronous_prepared_statement_spec.rb
107
126
  - spec/cql/future_spec.rb
108
127
  - spec/cql/io/io_reactor_spec.rb
109
128
  - spec/cql/protocol/decoding_spec.rb
110
129
  - spec/cql/protocol/encoding_spec.rb
111
- - spec/cql/protocol/request_frame_spec.rb
130
+ - spec/cql/protocol/request_spec.rb
131
+ - spec/cql/protocol/requests/credentials_request_spec.rb
132
+ - spec/cql/protocol/requests/execute_request_spec.rb
133
+ - spec/cql/protocol/requests/options_request_spec.rb
134
+ - spec/cql/protocol/requests/prepare_request_spec.rb
135
+ - spec/cql/protocol/requests/query_request_spec.rb
136
+ - spec/cql/protocol/requests/register_request_spec.rb
137
+ - spec/cql/protocol/requests/startup_request_spec.rb
112
138
  - spec/cql/protocol/response_frame_spec.rb
113
139
  - spec/cql/uuid_spec.rb
114
140
  - spec/integration/client_spec.rb