cassandra 0.8.0 → 0.8.1
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.tar.gz.sig +0 -0
- data/CHANGELOG +2 -0
- data/cassandra.gemspec +4 -4
- data/lib/cassandra/cassandra.rb +7 -4
- data/test/eventmachine_test.rb +42 -0
- metadata +3 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG
CHANGED
data/cassandra.gemspec
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{cassandra}
|
5
|
-
s.version = "0.8.
|
5
|
+
s.version = "0.8.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0.8") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Evan Weaver, Ryan King"]
|
9
9
|
s.cert_chain = ["/Users/ryan/.gemkeys/gem-public_cert.pem"]
|
10
|
-
s.date = %q{2010-03-
|
10
|
+
s.date = %q{2010-03-30}
|
11
11
|
s.default_executable = %q{cassandra_helper}
|
12
12
|
s.description = %q{A Ruby client for the Cassandra distributed database.}
|
13
13
|
s.email = %q{}
|
14
14
|
s.executables = ["cassandra_helper"]
|
15
15
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc", "bin/cassandra_helper", "lib/cassandra.rb", "lib/cassandra/array.rb", "lib/cassandra/cassandra.rb", "lib/cassandra/columns.rb", "lib/cassandra/comparable.rb", "lib/cassandra/constants.rb", "lib/cassandra/debug.rb", "lib/cassandra/helpers.rb", "lib/cassandra/long.rb", "lib/cassandra/mock.rb", "lib/cassandra/ordered_hash.rb", "lib/cassandra/protocol.rb", "lib/cassandra/time.rb"]
|
16
|
-
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "bin/cassandra_helper", "conf/cassandra.in.sh", "conf/log4j.properties", "conf/storage-conf.xml", "lib/cassandra.rb", "lib/cassandra/array.rb", "lib/cassandra/cassandra.rb", "lib/cassandra/columns.rb", "lib/cassandra/comparable.rb", "lib/cassandra/constants.rb", "lib/cassandra/debug.rb", "lib/cassandra/helpers.rb", "lib/cassandra/long.rb", "lib/cassandra/mock.rb", "lib/cassandra/ordered_hash.rb", "lib/cassandra/protocol.rb", "lib/cassandra/time.rb", "test/cassandra_client_test.rb", "test/cassandra_mock_test.rb", "test/cassandra_test.rb", "test/comparable_types_test.rb", "test/ordered_hash_test.rb", "test/test_helper.rb", "vendor/gen-rb/cassandra.rb", "vendor/gen-rb/cassandra_constants.rb", "vendor/gen-rb/cassandra_types.rb", "cassandra.gemspec"]
|
16
|
+
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "bin/cassandra_helper", "conf/cassandra.in.sh", "conf/log4j.properties", "conf/storage-conf.xml", "lib/cassandra.rb", "lib/cassandra/array.rb", "lib/cassandra/cassandra.rb", "lib/cassandra/columns.rb", "lib/cassandra/comparable.rb", "lib/cassandra/constants.rb", "lib/cassandra/debug.rb", "lib/cassandra/helpers.rb", "lib/cassandra/long.rb", "lib/cassandra/mock.rb", "lib/cassandra/ordered_hash.rb", "lib/cassandra/protocol.rb", "lib/cassandra/time.rb", "test/cassandra_client_test.rb", "test/cassandra_mock_test.rb", "test/cassandra_test.rb", "test/comparable_types_test.rb", "test/ordered_hash_test.rb", "test/test_helper.rb", "vendor/gen-rb/cassandra.rb", "vendor/gen-rb/cassandra_constants.rb", "vendor/gen-rb/cassandra_types.rb", "cassandra.gemspec", "test/eventmachine_test.rb"]
|
17
17
|
s.homepage = %q{http://blog.evanweaver.com/files/doc/fauna/cassandra/}
|
18
18
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Cassandra", "--main", "README.rdoc"]
|
19
19
|
s.require_paths = ["lib"]
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.rubygems_version = %q{1.3.5}
|
22
22
|
s.signing_key = %q{/Users/ryan/.gemkeys/gem-private_key.pem}
|
23
23
|
s.summary = %q{A Ruby client for the Cassandra distributed database.}
|
24
|
-
s.test_files = ["test/cassandra_client_test.rb", "test/cassandra_mock_test.rb", "test/cassandra_test.rb", "test/comparable_types_test.rb", "test/ordered_hash_test.rb", "test/test_helper.rb"]
|
24
|
+
s.test_files = ["test/cassandra_client_test.rb", "test/cassandra_mock_test.rb", "test/cassandra_test.rb", "test/comparable_types_test.rb", "test/eventmachine_test.rb", "test/ordered_hash_test.rb", "test/test_helper.rb"]
|
25
25
|
|
26
26
|
if s.respond_to? :specification_version then
|
27
27
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
data/lib/cassandra/cassandra.rb
CHANGED
@@ -24,6 +24,8 @@ For write methods, valid option parameters are:
|
|
24
24
|
<tt>:timestamp </tt>:: The transaction timestamp. Defaults to the current time in milliseconds. This is used for conflict resolution by the server; you normally never need to change it.
|
25
25
|
<tt>:consistency</tt>:: See above.
|
26
26
|
|
27
|
+
For the initial client instantiation, you may also pass in <tt>:thrift_client<tt> with a ThriftClient subclass attached. On connection, that class will be used instead of the default ThriftClient class, allowing you to add additional behavior to the connection (e.g. query logging).
|
28
|
+
|
27
29
|
=end rdoc
|
28
30
|
|
29
31
|
class Cassandra
|
@@ -53,10 +55,11 @@ class Cassandra
|
|
53
55
|
}.freeze
|
54
56
|
|
55
57
|
THRIFT_DEFAULTS = {
|
56
|
-
:transport_wrapper => Thrift::BufferedTransport
|
58
|
+
:transport_wrapper => Thrift::BufferedTransport,
|
59
|
+
:thrift_client_class => ThriftClient
|
57
60
|
}.freeze
|
58
61
|
|
59
|
-
attr_reader :keyspace, :servers, :schema, :thrift_client_options
|
62
|
+
attr_reader :keyspace, :servers, :schema, :thrift_client_options, :thrift_client_class
|
60
63
|
|
61
64
|
# Create a new Cassandra instance and open the connection.
|
62
65
|
def initialize(keyspace, servers = "127.0.0.1:9160", thrift_client_options = {})
|
@@ -64,7 +67,7 @@ class Cassandra
|
|
64
67
|
@column_name_class = {}
|
65
68
|
@sub_column_name_class = {}
|
66
69
|
@thrift_client_options = THRIFT_DEFAULTS.merge(thrift_client_options)
|
67
|
-
|
70
|
+
@thrift_client_class = @thrift_client_options[:thrift_client_class]
|
68
71
|
@keyspace = keyspace
|
69
72
|
@servers = Array(servers)
|
70
73
|
end
|
@@ -286,7 +289,7 @@ class Cassandra
|
|
286
289
|
end
|
287
290
|
|
288
291
|
def new_client
|
289
|
-
|
292
|
+
thrift_client_class.new(CassandraThrift::Cassandra::Client, @servers, @thrift_client_options)
|
290
293
|
end
|
291
294
|
|
292
295
|
def all_nodes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
2
|
+
|
3
|
+
if RUBY_VERSION < '1.9'
|
4
|
+
puts "Skipping EventMachine test"
|
5
|
+
else
|
6
|
+
|
7
|
+
require 'thrift_client/event_machine'
|
8
|
+
|
9
|
+
class EventmachineTest < Test::Unit::TestCase
|
10
|
+
|
11
|
+
def test_twitter
|
12
|
+
@twitter = Cassandra.new('Twitter', "127.0.0.1:9160", :retries => 2, :exception_classes => [], :transport => Thrift::EventMachineTransport, :transport_wrapper => nil)
|
13
|
+
@twitter.clear_keyspace!
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def em_test(name)
|
19
|
+
EM.run do
|
20
|
+
Fiber.new do
|
21
|
+
begin
|
22
|
+
send("raw_#{name}".to_sym)
|
23
|
+
ensure
|
24
|
+
EM.stop
|
25
|
+
end
|
26
|
+
end.resume
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.wrap_tests
|
31
|
+
self.public_instance_methods.select { |m| m =~ /^test_/ }.each do |meth|
|
32
|
+
alias_method :"raw_#{meth}", meth
|
33
|
+
define_method(meth) do
|
34
|
+
em_test(meth)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
wrap_tests
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cassandra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Weaver, Ryan King
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
zyKMYVRO0z/58g==
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2010-03-
|
33
|
+
date: 2010-03-30 00:00:00 -07:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -168,5 +168,6 @@ test_files:
|
|
168
168
|
- test/cassandra_mock_test.rb
|
169
169
|
- test/cassandra_test.rb
|
170
170
|
- test/comparable_types_test.rb
|
171
|
+
- test/eventmachine_test.rb
|
171
172
|
- test/ordered_hash_test.rb
|
172
173
|
- test/test_helper.rb
|
metadata.gz.sig
CHANGED
Binary file
|