eurydice 1.0.0-java → 1.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm --create use jruby-1.6.2@eurydice
1
+ rvm --create use jruby-1.6.5@eurydice
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+
3
+ require 'bundler'
4
+
5
+
6
+ Bundler::GemHelper.install_tasks
data/lib/cassandra.rb CHANGED
@@ -45,6 +45,11 @@ module Cassandra
45
45
  :lte => IndexOperator::LTE
46
46
  }.freeze
47
47
 
48
+ LOCATOR_STRATEGY_CLASSES = {
49
+ :simple => 'org.apache.cassandra.locator.SimpleStrategy'.freeze,
50
+ :network_topology => 'org.apache.cassandra.locator.NetworkTopologyStrategy'.freeze
51
+ }.freeze
52
+
48
53
  class KsDef
49
54
  def self.from_h(h)
50
55
  ks_def = h.reduce(self.new) do |ks_def, (field_name, field_value)|
@@ -78,6 +83,12 @@ module Cassandra
78
83
  acc[field_name] = field_value
79
84
  end
80
85
  acc
86
+ end.tap do |h|
87
+ if h[:strategy_class] == LOCATOR_STRATEGY_CLASSES[:simple] || h[:strategy_class] == LOCATOR_STRATEGY_CLASSES[:network_topology]
88
+ h[:strategy_options].keys.each do |k|
89
+ h[:strategy_options][k] = h[:strategy_options][k].to_i
90
+ end
91
+ end
81
92
  end
82
93
  end
83
94
  end
@@ -28,7 +28,10 @@ module Eurydice
28
28
 
29
29
  def create!(options={})
30
30
  thrift_exception_handler do
31
- ks_def = Cassandra::KsDef.from_h({:strategy_class => 'org.apache.cassandra.locator.LocalStrategy'}.merge(options).merge(:name => @name))
31
+ ks_properties = options.merge(:name => @name)
32
+ ks_properties[:strategy_class] = DEFAULT_STRATEGY_CLASS unless ks_properties.key?(:strategy_class)
33
+ ks_properties[:strategy_options] = DEFAULT_STRATEGY_OPTIONS if !ks_properties.key?(:strategy_options) && ks_properties[:strategy_class] == DEFAULT_STRATEGY_CLASS
34
+ ks_def = Cassandra::KsDef.from_h(ks_properties)
32
35
  keyspace_manager.add_keyspace(ks_def)
33
36
  @driver.add_pool(@pool_name, @cluster, @name)
34
37
  end
@@ -70,6 +73,11 @@ module Eurydice
70
73
  def column_family_manger
71
74
  @column_family_manger ||= @driver.create_column_family_manager(@cluster, @name)
72
75
  end
76
+
77
+ private
78
+
79
+ DEFAULT_STRATEGY_CLASS = Cassandra::LOCATOR_STRATEGY_CLASSES[:simple]
80
+ DEFAULT_STRATEGY_OPTIONS = {:replication_factor => 1}.freeze
73
81
  end
74
82
  end
75
83
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
 
4
4
  module Eurydice
5
- VERSION = '1.0.0'
5
+ VERSION = '1.0.1'
6
6
  end
@@ -381,7 +381,8 @@ module Eurydice
381
381
  it 'returns an Enumerator that yields each column in a row' do
382
382
  row = {}
383
383
  enum = @cf.each_column('ABC')
384
- enum.each do |k, v|
384
+ enum.each do |pair|
385
+ k, v = *pair # JRuby 1.6.4 Enumerator#each does not splat the arguments
385
386
  row[k] = v
386
387
  end
387
388
  row.should == Hash[('a'..'z').map { |a| [a, a.upcase] }]
@@ -26,14 +26,14 @@ module Eurydice
26
26
  it 'creates a keyspace with specific strategy options' do
27
27
  @keyspace = @cluster.keyspace(@keyspace_name, :create => false)
28
28
  @keyspace.create!(:strategy_options => {:replication_factor => 2})
29
- @keyspace.definition(true)[:strategy_options][:replication_factor].should == '2'
29
+ @keyspace.definition(true)[:strategy_options][:replication_factor].should == 2
30
30
  end
31
31
 
32
32
  it 'creates a whole schema' do
33
33
  @keyspace = @cluster.keyspace(@keyspace_name, :create => false)
34
34
  @keyspace.create!(
35
35
  :strategy_class => 'org.apache.cassandra.locator.NetworkTopologyStrategy',
36
- :strategy_options => {:replication_factor => 2},
36
+ :strategy_options => {:dc1 => 1, :dc2 => 2},
37
37
  :column_families => {
38
38
  'some_family' => {
39
39
  :comparator_type => :ascii,
@@ -57,7 +57,7 @@ module Eurydice
57
57
  )
58
58
  definition = @keyspace.definition(true)
59
59
  definition[:strategy_class].should == 'org.apache.cassandra.locator.NetworkTopologyStrategy'
60
- definition[:strategy_options].should == {:replication_factor => '2'}
60
+ definition[:strategy_options].should == {:dc1 => 1, :dc2 => 2}
61
61
  definition[:column_families]['some_family'][:comparator_type].should == 'org.apache.cassandra.db.marshal.AsciiType'
62
62
  definition[:column_families]['some_family'][:comment].should == 'This is some family'
63
63
  definition[:column_families]['another_family'][:comment].should == 'This is another family'
@@ -82,7 +82,8 @@ module Eurydice
82
82
  @keyspace = @cluster.keyspace(@keyspace_name)
83
83
  definition = @keyspace.definition
84
84
  definition[:name].should == @keyspace_name
85
- definition[:strategy_class].should == 'org.apache.cassandra.locator.LocalStrategy'
85
+ definition[:strategy_class].should == 'org.apache.cassandra.locator.SimpleStrategy'
86
+ definition[:strategy_options].should == {:replication_factor => 1}
86
87
  end
87
88
  end
88
89
  end
metadata CHANGED
@@ -1,38 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eurydice
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 0
9
- version: 1.0.0
4
+ prerelease:
5
+ version: 1.0.1
10
6
  platform: java
11
7
  authors:
12
- - Theo Hultberg
8
+ - Theo Hultberg
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-08-07 00:00:00 +02:00
18
- default_executable:
13
+ date: 2011-11-01 00:00:00 Z
19
14
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: pelops-jars
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 2
30
- version: "1.2"
31
- type: :runtime
32
- version_requirements: *id001
15
+ - !ruby/object:Gem::Dependency
16
+ name: pelops-jars
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: "1.2"
24
+ type: :runtime
25
+ version_requirements: *id001
33
26
  description: ""
34
27
  email:
35
- - theo@burtcorp.com
28
+ - theo@burtcorp.com
36
29
  executables: []
37
30
 
38
31
  extensions: []
@@ -40,32 +33,32 @@ extensions: []
40
33
  extra_rdoc_files: []
41
34
 
42
35
  files:
43
- - .gitignore
44
- - .rspec
45
- - .rvmrc
46
- - Gemfile
47
- - Gemfile.lock
48
- - README.mdown
49
- - eurydice.gemspec
50
- - examples/01_connect.rb
51
- - examples/02_create_keyspace.rb
52
- - examples/03_create_column_family.rb
53
- - examples/04_storing_data.rb
54
- - examples/05_loading_data.rb
55
- - examples/06_cluster_info.rb
56
- - examples/common.rb
57
- - lib/cassandra.rb
58
- - lib/eurydice.rb
59
- - lib/eurydice/pelops.rb
60
- - lib/eurydice/pelops/cluster.rb
61
- - lib/eurydice/pelops/column_family.rb
62
- - lib/eurydice/pelops/keyspace.rb
63
- - lib/eurydice/version.rb
64
- - spec/eurydice/pelops/cluster_spec.rb
65
- - spec/eurydice/pelops/column_family_spec.rb
66
- - spec/eurydice/pelops/keyspace_spec.rb
67
- - spec/spec_helper.rb
68
- has_rdoc: true
36
+ - .gitignore
37
+ - .rspec
38
+ - .rvmrc
39
+ - Gemfile
40
+ - Gemfile.lock
41
+ - README.mdown
42
+ - Rakefile
43
+ - eurydice.gemspec
44
+ - examples/01_connect.rb
45
+ - examples/02_create_keyspace.rb
46
+ - examples/03_create_column_family.rb
47
+ - examples/04_storing_data.rb
48
+ - examples/05_loading_data.rb
49
+ - examples/06_cluster_info.rb
50
+ - examples/common.rb
51
+ - lib/cassandra.rb
52
+ - lib/eurydice.rb
53
+ - lib/eurydice/pelops.rb
54
+ - lib/eurydice/pelops/cluster.rb
55
+ - lib/eurydice/pelops/column_family.rb
56
+ - lib/eurydice/pelops/keyspace.rb
57
+ - lib/eurydice/version.rb
58
+ - spec/eurydice/pelops/cluster_spec.rb
59
+ - spec/eurydice/pelops/column_family_spec.rb
60
+ - spec/eurydice/pelops/keyspace_spec.rb
61
+ - spec/spec_helper.rb
69
62
  homepage: http://github.com/iconara/eurydice
70
63
  licenses: []
71
64
 
@@ -73,25 +66,23 @@ post_install_message:
73
66
  rdoc_options: []
74
67
 
75
68
  require_paths:
76
- - lib
69
+ - lib
77
70
  required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
78
72
  requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- segments:
82
- - 0
83
- version: "0"
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
84
76
  required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
85
78
  requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- segments:
89
- - 0
90
- version: "0"
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: "0"
91
82
  requirements: []
92
83
 
93
84
  rubyforge_project: eurydice
94
- rubygems_version: 1.3.6
85
+ rubygems_version: 1.8.9
95
86
  signing_key:
96
87
  specification_version: 3
97
88
  summary: Ruby wrapper for the Pelops library