cequel 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +12 -12
- data/Vagrantfile +1 -1
- data/lib/cequel/record/record_set.rb +29 -4
- data/lib/cequel/record/scoped.rb +2 -1
- data/lib/cequel/record/tasks.rb +2 -1
- data/lib/cequel/version.rb +1 -1
- data/spec/examples/record/record_set_spec.rb +44 -0
- data/spec/examples/record/scoped_spec.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37fbccb394100663a372dde3d9308a890091e36c
|
4
|
+
data.tar.gz: 2f594bf403ed6ba55ee54aa2c495c8c60fb6bb3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f9d5c21fd006ce0e5021e3d6d3e144d5f27c075b56831fc0c766a9040a294e3c30dcf9e107fdb0f9b9f8677c490882a0bd6378a2af3d83a117e98e0fc39b098
|
7
|
+
data.tar.gz: 6c4122980edd642cefb3056c2f8fe3c236cf3bc89db38e1328c52ed4365b386fef83a799afc9d08e82c0b5d3b5f14e9f013008b22fb27a78e3d1e75ee822b099
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 1.2.5
|
2
|
+
|
3
|
+
* Fix `puts` behavior when passed a Record instance
|
4
|
+
* Fix batch loading of record sets with bounds on first of multiple clustering
|
5
|
+
columns
|
6
|
+
* Fix load order of namespaced models for migrations
|
7
|
+
|
1
8
|
## 1.2.4
|
2
9
|
|
3
10
|
* Apply empty attribute values when hydrating records
|
data/Gemfile.lock
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cequel (1.2.
|
4
|
+
cequel (1.2.5)
|
5
5
|
activemodel (>= 3.1, < 5.0)
|
6
6
|
cql-rb (~> 1.2)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activemodel (4.1.
|
12
|
-
activesupport (= 4.1.
|
11
|
+
activemodel (4.1.1)
|
12
|
+
activesupport (= 4.1.1)
|
13
13
|
builder (~> 3.1)
|
14
|
-
activesupport (4.1.
|
14
|
+
activesupport (4.1.1)
|
15
15
|
i18n (~> 0.6, >= 0.6.9)
|
16
16
|
json (~> 1.7, >= 1.7.7)
|
17
17
|
minitest (~> 5.1)
|
@@ -20,20 +20,20 @@ GEM
|
|
20
20
|
appraisal (0.5.2)
|
21
21
|
bundler
|
22
22
|
rake
|
23
|
-
ast (
|
23
|
+
ast (2.0.0)
|
24
24
|
builder (3.2.2)
|
25
25
|
byebug (2.7.0)
|
26
26
|
columnize (~> 0.3)
|
27
27
|
debugger-linecache (~> 1.2)
|
28
28
|
coderay (1.1.0)
|
29
|
-
columnize (0.
|
29
|
+
columnize (0.8.9)
|
30
30
|
cql-rb (1.2.1)
|
31
31
|
debugger (1.6.6)
|
32
32
|
columnize (>= 0.3.1)
|
33
33
|
debugger-linecache (~> 1.2.0)
|
34
34
|
debugger-ruby_core_source (~> 1.3.2)
|
35
35
|
debugger-linecache (1.2.0)
|
36
|
-
debugger-ruby_core_source (1.3.
|
36
|
+
debugger-ruby_core_source (1.3.4)
|
37
37
|
diff-lcs (1.2.5)
|
38
38
|
ffi (1.9.3-java)
|
39
39
|
ffi2-generators (0.1.1)
|
@@ -41,9 +41,9 @@ GEM
|
|
41
41
|
json (1.8.1)
|
42
42
|
json (1.8.1-java)
|
43
43
|
method_source (0.8.2)
|
44
|
-
minitest (5.3.
|
45
|
-
parser (2.1.
|
46
|
-
ast (
|
44
|
+
minitest (5.3.4)
|
45
|
+
parser (2.1.9)
|
46
|
+
ast (>= 1.1, < 3.0)
|
47
47
|
slop (~> 3.4, >= 3.4.5)
|
48
48
|
powerpack (0.0.9)
|
49
49
|
pry (0.9.12.6)
|
@@ -58,7 +58,7 @@ GEM
|
|
58
58
|
psych (2.0.5)
|
59
59
|
racc (1.4.11)
|
60
60
|
rainbow (2.0.0)
|
61
|
-
rake (10.
|
61
|
+
rake (10.3.1)
|
62
62
|
rspec (2.14.1)
|
63
63
|
rspec-core (~> 2.14.0)
|
64
64
|
rspec-expectations (~> 2.14.0)
|
@@ -73,7 +73,7 @@ GEM
|
|
73
73
|
powerpack (~> 0.0.6)
|
74
74
|
rainbow (>= 1.99.1, < 3.0)
|
75
75
|
ruby-progressbar (~> 1.4)
|
76
|
-
ruby-progressbar (1.
|
76
|
+
ruby-progressbar (1.5.1)
|
77
77
|
rubysl (2.0.15)
|
78
78
|
rubysl-abbrev (~> 2.0)
|
79
79
|
rubysl-base64 (~> 2.0)
|
data/Vagrantfile
CHANGED
@@ -136,7 +136,7 @@ exec /opt/apache-cassandra-$1/bin/cassandra" > /etc/init/cassandra.conf
|
|
136
136
|
service cassandra start
|
137
137
|
SH
|
138
138
|
|
139
|
-
versions = (0..
|
139
|
+
versions = (0..7).map { |p| "2.0.#{p}" } + (0..16).map { |p| "1.2.#{p}" }
|
140
140
|
versions.each do |version|
|
141
141
|
java_version = version =~ /^1/ ? '6' : '7'
|
142
142
|
config.vm.define version do |machine|
|
@@ -660,10 +660,35 @@ module Cequel
|
|
660
660
|
end
|
661
661
|
|
662
662
|
def find_nested_batches_from(row, options, &block)
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
663
|
+
return unless next_range_key_column
|
664
|
+
|
665
|
+
without_bounds_on(range_key_column)[row[range_key_name]]
|
666
|
+
.next_batch_from(row)
|
667
|
+
.find_rows_in_batches(options, &block)
|
668
|
+
end
|
669
|
+
|
670
|
+
# @return [RecordSet] self but without any bounds conditions on
|
671
|
+
# the specified column.
|
672
|
+
#
|
673
|
+
# @private
|
674
|
+
def without_bounds_on(column)
|
675
|
+
without_lower_bound_on(column)
|
676
|
+
.without_upper_bound_on(column)
|
677
|
+
end
|
678
|
+
|
679
|
+
def without_lower_bound_on(column)
|
680
|
+
if lower_bound && lower_bound.column == column
|
681
|
+
scoped(lower_bound: nil)
|
682
|
+
else
|
683
|
+
self
|
684
|
+
end
|
685
|
+
end
|
686
|
+
|
687
|
+
def without_upper_bound_on(column)
|
688
|
+
if upper_bound && upper_bound.column == column
|
689
|
+
scoped(upper_bound: nil)
|
690
|
+
else
|
691
|
+
self
|
667
692
|
end
|
668
693
|
end
|
669
694
|
|
data/lib/cequel/record/scoped.rb
CHANGED
data/lib/cequel/record/tasks.rb
CHANGED
@@ -21,7 +21,8 @@ namespace :cequel do
|
|
21
21
|
|
22
22
|
migration_table_names = Set[]
|
23
23
|
models_dir_path = "#{Rails.root.join('app', 'models')}/"
|
24
|
-
Dir.glob(Rails.root.join('app', 'models', '**', '*.rb'))
|
24
|
+
model_files = Dir.glob(Rails.root.join('app', 'models', '**', '*.rb'))
|
25
|
+
model_files.sort.each do |file|
|
25
26
|
watch_namespaces = ["Object"]
|
26
27
|
model_file_name = file.sub(/^#{Regexp.escape(models_dir_path)}/, "")
|
27
28
|
dirname = File.dirname(model_file_name)
|
data/lib/cequel/version.rb
CHANGED
@@ -856,4 +856,48 @@ describe Cequel::Record::RecordSet do
|
|
856
856
|
should == postgres_posts.drop(2).map(&:permalink)
|
857
857
|
end
|
858
858
|
end
|
859
|
+
|
860
|
+
context "table clustered on time and uuid" do
|
861
|
+
model(:BlogView) do
|
862
|
+
key :blog_subdomain, :ascii
|
863
|
+
key :view_time, :timestamp
|
864
|
+
key :sk, :uuid, auto: true
|
865
|
+
end
|
866
|
+
|
867
|
+
let!(:blog_1_views){
|
868
|
+
4.times
|
869
|
+
.map{|i| BlogView.create!(blog_subdomain: "blog-1",
|
870
|
+
view_time: now - i.minutes) }
|
871
|
+
.sort_by(&:view_time)
|
872
|
+
}
|
873
|
+
|
874
|
+
it "can execute multi-batch queries with range on partial cluster key" do
|
875
|
+
expect{|blk| BlogView['blog-1']
|
876
|
+
.in( blog_1_views.first.view_time .. now )
|
877
|
+
.find_each(batch_size: 2, &blk)}
|
878
|
+
.to yield_successive_args *blog_1_views
|
879
|
+
end
|
880
|
+
|
881
|
+
it "can execute multi-batch queries with range on partial key excluding beginning of partition" do
|
882
|
+
expect{|blk| BlogView['blog-1']
|
883
|
+
.in( blog_1_views.second.view_time .. now )
|
884
|
+
.find_each(batch_size: 2, &blk)}
|
885
|
+
.to yield_successive_args *blog_1_views.drop(1)
|
886
|
+
end
|
887
|
+
|
888
|
+
it "can execute multi-batch queries with range on partial key excluding end of partition" do
|
889
|
+
expect{|blk| BlogView['blog-1']
|
890
|
+
.in( blog_1_views.first.view_time .. blog_1_views[-2].view_time )
|
891
|
+
.find_each(batch_size: 2, &blk)}
|
892
|
+
.to yield_successive_args *blog_1_views[0..-2]
|
893
|
+
end
|
894
|
+
|
895
|
+
it "can execute queries with range on partial cluster key" do
|
896
|
+
expect{|blk| BlogView['blog-1']
|
897
|
+
.in( blog_1_views.first.view_time .. now )
|
898
|
+
.find_each(&blk)}
|
899
|
+
.to yield_successive_args *blog_1_views
|
900
|
+
end
|
901
|
+
end
|
902
|
+
|
859
903
|
end
|
@@ -11,4 +11,12 @@ describe Cequel::Record::Scoped do
|
|
11
11
|
it 'should use current scoped key values to populate new record' do
|
12
12
|
Post['bigdata'].new.blog_subdomain.should == 'bigdata'
|
13
13
|
end
|
14
|
+
|
15
|
+
it "should not mess up class' #puts" do
|
16
|
+
StringIO.new.tap do |out|
|
17
|
+
out.puts Post
|
18
|
+
out.string.should == "Post\n"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
14
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cequel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mat Brown
|
@@ -18,7 +18,7 @@ authors:
|
|
18
18
|
autorequire:
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
|
-
date: 2014-
|
21
|
+
date: 2014-05-16 00:00:00.000000000 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: activemodel
|