datastax_rails 1.0.19.0 → 1.1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +13 -2
  3. data/config/solrconfig.xml +3 -0
  4. data/lib/datastax_rails/associations/collection_association.rb +31 -0
  5. data/lib/datastax_rails/attribute_methods/definition.rb +2 -2
  6. data/lib/datastax_rails/base.rb +3 -7
  7. data/lib/datastax_rails/connection.rb +1 -0
  8. data/lib/datastax_rails/cql/alter_column_family.rb +9 -0
  9. data/lib/datastax_rails/cql/base.rb +2 -1
  10. data/lib/datastax_rails/cql/create_column_family.rb +3 -3
  11. data/lib/datastax_rails/cql/create_index.rb +25 -0
  12. data/lib/datastax_rails/cql/create_keyspace.rb +3 -3
  13. data/lib/datastax_rails/cql/delete.rb +3 -3
  14. data/lib/datastax_rails/cql/drop_index.rb +13 -0
  15. data/lib/datastax_rails/cql/insert.rb +2 -2
  16. data/lib/datastax_rails/cql/select.rb +2 -2
  17. data/lib/datastax_rails/cql/update.rb +20 -20
  18. data/lib/datastax_rails/cql.rb +2 -0
  19. data/lib/datastax_rails/persistence.rb +2 -10
  20. data/lib/datastax_rails/railtie.rb +7 -0
  21. data/lib/datastax_rails/relation/batches.rb +23 -10
  22. data/lib/datastax_rails/relation/facet_methods.rb +17 -0
  23. data/lib/datastax_rails/relation/finder_methods.rb +2 -2
  24. data/lib/datastax_rails/relation/search_methods.rb +1 -1
  25. data/lib/datastax_rails/relation.rb +14 -6
  26. data/lib/datastax_rails/tasks/column_family.rb +97 -18
  27. data/lib/datastax_rails/tasks/ds.rake +11 -0
  28. data/lib/datastax_rails/types/array_type.rb +1 -1
  29. data/lib/datastax_rails/types/boolean_type.rb +1 -1
  30. data/lib/datastax_rails/types/date_type.rb +1 -1
  31. data/lib/datastax_rails/types/float_type.rb +1 -1
  32. data/lib/datastax_rails/types/integer_type.rb +1 -1
  33. data/lib/datastax_rails/types/string_type.rb +2 -2
  34. data/lib/datastax_rails/types/text_type.rb +3 -4
  35. data/lib/datastax_rails/types/time_type.rb +1 -1
  36. data/lib/datastax_rails/validations/associated.rb +43 -0
  37. data/lib/datastax_rails/validations.rb +14 -2
  38. data/lib/datastax_rails/version.rb +1 -1
  39. data/lib/datastax_rails.rb +14 -14
  40. data/spec/datastax_rails/associations/has_many_association_spec.rb +1 -0
  41. data/spec/datastax_rails/base_spec.rb +6 -0
  42. data/spec/datastax_rails/cql/select_spec.rb +3 -3
  43. data/spec/datastax_rails/cql/update_spec.rb +2 -2
  44. data/spec/datastax_rails/persistence_spec.rb +16 -12
  45. data/spec/datastax_rails/relation/batches_spec.rb +20 -16
  46. data/spec/datastax_rails/relation/finder_methods_spec.rb +2 -2
  47. data/spec/dummy/log/test.log +3316 -0
  48. data/spec/spec.opts +0 -1
  49. data/spec/support/connection_double.rb +6 -0
  50. data/spec/support/default_consistency_shared_examples.rb +4 -2
  51. metadata +86 -107
data/spec/spec.opts CHANGED
@@ -2,4 +2,3 @@
2
2
  --format progress
3
3
  --format html
4
4
  --out log/spec_report.html
5
- --debug
@@ -0,0 +1,6 @@
1
+ shared_context "Connection Double", :connection_double => true do
2
+ before(:each) do
3
+ DatastaxRails::Base.connection = double(CassandraCQL::Database)
4
+ DatastaxRails::Base.solr_connection = double(DatastaxRails::RSolrClientWrapper)
5
+ end
6
+ end
@@ -3,12 +3,14 @@ require 'spec_helper'
3
3
  shared_examples_for 'default_consistency' do
4
4
  it "should default to QUORUM" do
5
5
  cql = DatastaxRails::Cql::Select.new(@model_class, ["*"])
6
- cql.to_cql.should match(/using consistency quorum/i)
6
+ DatastaxRails::Base.connection.should_receive(:execute_cql_query).with(an_instance_of(String), :consistency => CassandraCQL::Thrift::ConsistencyLevel::QUORUM)
7
+ cql.execute
7
8
  end
8
9
 
9
10
  it "should default to level specified by model class" do
10
11
  @model_class.stub(:default_consistency => 'LOCAL_QUORUM')
11
12
  cql = DatastaxRails::Cql::Select.new(@model_class, ["*"])
12
- cql.to_cql.should match(/using consistency local_quorum/i)
13
+ DatastaxRails::Base.connection.should_receive(:execute_cql_query).with(an_instance_of(String), :consistency => CassandraCQL::Thrift::ConsistencyLevel::LOCAL_QUORUM)
14
+ cql.execute
13
15
  end
14
16
  end
metadata CHANGED
@@ -1,109 +1,93 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: datastax_rails
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 19
10
- - 0
11
- version: 1.0.19.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0.3
12
5
  platform: ruby
13
- authors:
6
+ authors:
14
7
  - Jason M. Kusar
15
8
  autorequire:
16
9
  bindir: bin
17
10
  cert_chain: []
18
-
19
- date: 2013-05-20 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2013-10-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: rails
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
27
17
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 3
32
- - 2
33
- - 1
18
+ - !ruby/object:Gem::Version
34
19
  version: 3.2.1
35
20
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: cassandra-cql
39
21
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: cassandra-cql
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
43
31
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 19
46
- segments:
47
- - 1
48
- - 1
49
- - 0
50
- version: 1.1.0
32
+ - !ruby/object:Gem::Version
33
+ version: 1.2.0
51
34
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: rsolr
55
35
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rsolr
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
59
45
  - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 25
62
- segments:
63
- - 1
64
- - 0
65
- - 7
46
+ - !ruby/object:Gem::Version
66
47
  version: 1.0.7
67
48
  type: :runtime
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rsolr-client-cert
71
49
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 3
78
- segments:
79
- - 0
80
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.7
55
+ - !ruby/object:Gem::Dependency
56
+ name: rsolr-client-cert
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
81
62
  type: :runtime
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: rspec-rails
85
63
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
87
- none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 3
92
- segments:
93
- - 0
94
- version: "0"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
95
76
  type: :development
96
- version_requirements: *id005
97
- description: A Ruby-on-Rails interface to Datastax Enterprise. Intended for use with the DSE search nodes.
98
- email:
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: A Ruby-on-Rails interface to Datastax Enterprise. Intended for use with
84
+ the DSE search nodes.
85
+ email:
99
86
  - jason@kusar.net
100
87
  executables: []
101
-
102
88
  extensions: []
103
-
104
89
  extra_rdoc_files: []
105
-
106
- files:
90
+ files:
107
91
  - config/stopwords.txt
108
92
  - config/schema.xml.erb
109
93
  - config/solrconfig.xml
@@ -131,9 +115,11 @@ files:
131
115
  - lib/datastax_rails/cql/base.rb
132
116
  - lib/datastax_rails/cql/select.rb
133
117
  - lib/datastax_rails/cql/truncate.rb
118
+ - lib/datastax_rails/cql/create_index.rb
134
119
  - lib/datastax_rails/cql/create_keyspace.rb
135
120
  - lib/datastax_rails/cql/drop_keyspace.rb
136
121
  - lib/datastax_rails/cql/delete.rb
122
+ - lib/datastax_rails/cql/drop_index.rb
137
123
  - lib/datastax_rails/attribute_methods.rb
138
124
  - lib/datastax_rails/connection.rb
139
125
  - lib/datastax_rails/reflection.rb
@@ -182,11 +168,13 @@ files:
182
168
  - lib/datastax_rails/relation/stats_methods.rb
183
169
  - lib/datastax_rails/relation/search_methods.rb
184
170
  - lib/datastax_rails/relation/finder_methods.rb
171
+ - lib/datastax_rails/relation/facet_methods.rb
185
172
  - lib/datastax_rails/relation/spawn_methods.rb
186
173
  - lib/datastax_rails/relation/modification_methods.rb
187
174
  - lib/datastax_rails/util/solr_repair.rb
188
175
  - lib/datastax_rails/serialization.rb
189
176
  - lib/datastax_rails/validations/uniqueness.rb
177
+ - lib/datastax_rails/validations/associated.rb
190
178
  - lib/datastax_rails/timestamps.rb
191
179
  - lib/datastax_rails/migrations/migration.rb
192
180
  - lib/datastax_rails/tasks/column_family.rb
@@ -204,6 +192,7 @@ files:
204
192
  - MIT-LICENSE
205
193
  - Rakefile
206
194
  - README.rdoc
195
+ - spec/support/connection_double.rb
207
196
  - spec/support/default_consistency_shared_examples.rb
208
197
  - spec/support/models.rb
209
198
  - spec/support/datastax_test_hook.rb
@@ -265,38 +254,29 @@ files:
265
254
  - spec/dummy/log/production.log
266
255
  homepage: https://github.com/jasonmk/datastax_rails
267
256
  licenses: []
268
-
257
+ metadata: {}
269
258
  post_install_message:
270
259
  rdoc_options: []
271
-
272
- require_paths:
260
+ require_paths:
273
261
  - lib
274
- required_ruby_version: !ruby/object:Gem::Requirement
275
- none: false
276
- requirements:
277
- - - ">="
278
- - !ruby/object:Gem::Version
279
- hash: 3
280
- segments:
281
- - 0
282
- version: "0"
283
- required_rubygems_version: !ruby/object:Gem::Requirement
284
- none: false
285
- requirements:
286
- - - ">="
287
- - !ruby/object:Gem::Version
288
- hash: 3
289
- segments:
290
- - 0
291
- version: "0"
262
+ required_ruby_version: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - '>='
265
+ - !ruby/object:Gem::Version
266
+ version: '0'
267
+ required_rubygems_version: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - '>='
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
292
272
  requirements: []
293
-
294
273
  rubyforge_project:
295
- rubygems_version: 1.8.15
274
+ rubygems_version: 2.1.4
296
275
  signing_key:
297
- specification_version: 3
276
+ specification_version: 4
298
277
  summary: A Ruby-on-Rails interface to Datastax Enterprise
299
- test_files:
278
+ test_files:
279
+ - spec/support/connection_double.rb
300
280
  - spec/support/default_consistency_shared_examples.rb
301
281
  - spec/support/models.rb
302
282
  - spec/support/datastax_test_hook.rb
@@ -356,4 +336,3 @@ test_files:
356
336
  - spec/dummy/log/development.log
357
337
  - spec/dummy/log/test.log
358
338
  - spec/dummy/log/production.log
359
- has_rdoc: