eurydice 1.0.1-java → 1.0.2-java
Sign up to get free protection for your applications and to get access to all the features.
data/examples/05_loading_data.rb
CHANGED
@@ -6,6 +6,7 @@ require_relative 'common'
|
|
6
6
|
cluster = Eurydice.connect
|
7
7
|
keyspace = cluster.keyspace('my_keyspace')
|
8
8
|
column_family = keyspace.column_family('employees', :create => false)
|
9
|
+
column_family.drop! if column_family.exists?
|
9
10
|
column_family.create!(:column_metadata => {'name' => {:validation_class => :utf8, :index_name => 'name_index', :index_type => :keys}})
|
10
11
|
column_family.insert('employee:1', {'name' => 'Sam', 'role' => 'Developer'})
|
11
12
|
column_family.insert('employee:2', {'name' => 'Phil', 'role' => 'Accountant'})
|
@@ -40,6 +41,18 @@ end
|
|
40
41
|
|
41
42
|
puts '---'
|
42
43
|
|
44
|
+
column_family.insert('letters', ('a'..'z').to_a.zip(('A'..'Z').to_a))
|
45
|
+
|
46
|
+
# Load a page of columns
|
47
|
+
result = column_family.get('letters', :max_column_count => 10)
|
48
|
+
puts result.keys.join(', ')
|
49
|
+
# For the next page you need to tell Eurydice which the last key you saw was
|
50
|
+
result = column_family.get('letters', :from_column => result.keys.last, :max_column_count => 11)
|
51
|
+
# The last key is included in the next page (so we load one extra column, and shift off the first column)
|
52
|
+
puts result.keys[1..-1].join(', ')
|
53
|
+
|
54
|
+
puts '---'
|
55
|
+
|
43
56
|
# Load only the value from a single column
|
44
57
|
employee1_name = column_family.get_column('employee:1', 'name')
|
45
58
|
puts "employee:1 => #{employee1_name}"
|
@@ -148,6 +148,8 @@ module Eurydice
|
|
148
148
|
|
149
149
|
private
|
150
150
|
|
151
|
+
EMPTY_STRING = ''.freeze
|
152
|
+
|
151
153
|
def get_single(row_key, options={})
|
152
154
|
thrift_exception_handler do
|
153
155
|
selector = @keyspace.create_selector
|
@@ -170,6 +172,10 @@ module Eurydice
|
|
170
172
|
def create_column_predicate(options)
|
171
173
|
max_column_count = options.fetch(:max_column_count, java.lang.Integer::MAX_VALUE)
|
172
174
|
reversed = options.fetch(:reversed, false)
|
175
|
+
if options.key?(:from_column)
|
176
|
+
raise ArgumentError, %(You can set either :columns or :from_column, but not both) if options.key?(:columns)
|
177
|
+
options[:columns] = options[:from_column]..EMPTY_STRING
|
178
|
+
end
|
173
179
|
case options[:columns]
|
174
180
|
when Range
|
175
181
|
::Pelops::Selector.new_columns_predicate(to_pelops_bytes(options[:columns].begin), to_pelops_bytes(options[:columns].end), reversed, max_column_count)
|
data/lib/eurydice/version.rb
CHANGED
@@ -258,6 +258,15 @@ module Eurydice
|
|
258
258
|
@cf.get('ABC', :max_column_count => 10).should == Hash[('a'..'z').take(10).map { |a| [a, a.upcase] }]
|
259
259
|
end
|
260
260
|
|
261
|
+
it 'loads a page of columns' do
|
262
|
+
@cf.insert('ABC', Hash[('a'..'z').map { |a| [a, a.upcase] }.shuffle])
|
263
|
+
@cf.get('ABC', :from_column => 'm', :max_column_count => 10).should == Hash[('m'..'z').take(10).map { |a| [a, a.upcase] }]
|
264
|
+
end
|
265
|
+
|
266
|
+
it 'raises an error if both :columns and :from_column are given' do
|
267
|
+
expect { @cf.get('ABC', :columns => 'a'..'z', :from_column => 'm') }.to raise_error(ArgumentError)
|
268
|
+
end
|
269
|
+
|
261
270
|
it 'loads columns in reverse order with :reversed => true' do
|
262
271
|
@cf.insert('ABC', Hash[('a'..'f').map { |a| [a, a.upcase] }.shuffle])
|
263
272
|
@cf.get('ABC', :reversed => true).keys.should == ('a'..'f').to_a.reverse
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: eurydice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.2
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Theo Hultberg
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-11-
|
13
|
+
date: 2011-11-03 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pelops-jars
|