datastax_rails 1.0.19.0 → 1.1.0.3

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.
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: