cequel 1.0.0.rc1 → 1.0.0.rc2

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cequel.rb +18 -0
  3. data/lib/cequel/errors.rb +8 -4
  4. data/lib/cequel/metal.rb +14 -0
  5. data/lib/cequel/metal/batch.rb +21 -11
  6. data/lib/cequel/metal/batch_manager.rb +74 -0
  7. data/lib/cequel/metal/cql_row_specification.rb +19 -6
  8. data/lib/cequel/metal/data_set.rb +400 -163
  9. data/lib/cequel/metal/deleter.rb +45 -11
  10. data/lib/cequel/metal/incrementer.rb +23 -10
  11. data/lib/cequel/metal/inserter.rb +19 -6
  12. data/lib/cequel/metal/keyspace.rb +82 -159
  13. data/lib/cequel/metal/logger.rb +71 -0
  14. data/lib/cequel/metal/logging.rb +47 -0
  15. data/lib/cequel/metal/new_relic_instrumentation.rb +26 -0
  16. data/lib/cequel/metal/row.rb +36 -10
  17. data/lib/cequel/metal/row_specification.rb +21 -8
  18. data/lib/cequel/metal/statement.rb +30 -6
  19. data/lib/cequel/metal/updater.rb +89 -12
  20. data/lib/cequel/metal/writer.rb +23 -14
  21. data/lib/cequel/record.rb +52 -6
  22. data/lib/cequel/record/association_collection.rb +13 -6
  23. data/lib/cequel/record/associations.rb +146 -54
  24. data/lib/cequel/record/belongs_to_association.rb +34 -7
  25. data/lib/cequel/record/bound.rb +69 -12
  26. data/lib/cequel/record/bulk_writes.rb +29 -1
  27. data/lib/cequel/record/callbacks.rb +22 -6
  28. data/lib/cequel/record/collection.rb +273 -36
  29. data/lib/cequel/record/configuration_generator.rb +5 -0
  30. data/lib/cequel/record/data_set_builder.rb +86 -0
  31. data/lib/cequel/record/dirty.rb +11 -8
  32. data/lib/cequel/record/errors.rb +38 -4
  33. data/lib/cequel/record/has_many_association.rb +42 -9
  34. data/lib/cequel/record/lazy_record_collection.rb +39 -10
  35. data/lib/cequel/record/mass_assignment.rb +14 -6
  36. data/lib/cequel/record/persistence.rb +157 -20
  37. data/lib/cequel/record/properties.rb +147 -24
  38. data/lib/cequel/record/railtie.rb +15 -2
  39. data/lib/cequel/record/record_set.rb +504 -75
  40. data/lib/cequel/record/schema.rb +77 -13
  41. data/lib/cequel/record/scoped.rb +16 -11
  42. data/lib/cequel/record/secondary_indexes.rb +42 -6
  43. data/lib/cequel/record/tasks.rb +2 -1
  44. data/lib/cequel/record/validations.rb +51 -11
  45. data/lib/cequel/schema.rb +9 -0
  46. data/lib/cequel/schema/column.rb +172 -33
  47. data/lib/cequel/schema/create_table_dsl.rb +62 -31
  48. data/lib/cequel/schema/keyspace.rb +106 -7
  49. data/lib/cequel/schema/migration_validator.rb +128 -0
  50. data/lib/cequel/schema/table.rb +183 -20
  51. data/lib/cequel/schema/table_property.rb +92 -34
  52. data/lib/cequel/schema/table_reader.rb +45 -15
  53. data/lib/cequel/schema/table_synchronizer.rb +101 -43
  54. data/lib/cequel/schema/table_updater.rb +114 -19
  55. data/lib/cequel/schema/table_writer.rb +31 -13
  56. data/lib/cequel/schema/update_table_dsl.rb +71 -40
  57. data/lib/cequel/type.rb +214 -53
  58. data/lib/cequel/util.rb +6 -9
  59. data/lib/cequel/version.rb +2 -1
  60. data/spec/examples/record/associations_spec.rb +12 -12
  61. data/spec/examples/record/persistence_spec.rb +5 -5
  62. data/spec/examples/record/record_set_spec.rb +62 -50
  63. data/spec/examples/schema/table_synchronizer_spec.rb +37 -11
  64. data/spec/examples/schema/table_updater_spec.rb +3 -3
  65. data/spec/examples/spec_helper.rb +2 -11
  66. data/spec/examples/type_spec.rb +3 -3
  67. metadata +23 -4
  68. data/lib/cequel/new_relic_instrumentation.rb +0 -22
@@ -18,21 +18,12 @@ RSpec.configure do |config|
18
18
  }
19
19
 
20
20
  config.before(:all) do
21
- connection = CassandraCQL::Database.new(
22
- Cequel::SpecSupport::Helpers.host,
23
- :cql_version => '3.0.0'
24
- )
25
- keyspace = Cequel::SpecSupport::Helpers.keyspace_name
26
- connection.execute <<-CQL
27
- CREATE KEYSPACE #{keyspace}
28
- WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1}
29
- CQL
21
+ cequel.schema.create!
30
22
  Cequel::Record.connection = cequel
31
23
  end
32
24
 
33
25
  config.after(:all) do
34
- keyspace = Cequel::SpecSupport::Helpers.keyspace_name
35
- cequel.execute("DROP KEYSPACE #{keyspace}")
26
+ cequel.schema.drop!
36
27
  end
37
28
  end
38
29
 
@@ -118,9 +118,9 @@ describe Cequel::Type do
118
118
  end
119
119
  end
120
120
 
121
- describe 'long' do
122
- subject { Cequel::Type[:long] }
123
- its(:cql_name) { should == :long }
121
+ describe 'bigint' do
122
+ subject { Cequel::Type[:bigint] }
123
+ its(:cql_name) { should == :bigint }
124
124
  its(:internal_name) {
125
125
  should == 'org.apache.cassandra.db.marshal.LongType' }
126
126
 
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.0.0.rc1
4
+ version: 1.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mat Brown
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-11-29 00:00:00.000000000 Z
15
+ date: 2014-02-01 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activesupport
@@ -126,6 +126,20 @@ dependencies:
126
126
  - - ~>
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0.6'
129
+ - !ruby/object:Gem::Dependency
130
+ name: rubocop
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - '>='
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
129
143
  description: |
130
144
  Cequel is an ActiveRecord-like domain model layer for Cassandra that exposes
131
145
  the robust data modeling capabilities of CQL3, including parent-child
@@ -138,19 +152,22 @@ extra_rdoc_files: []
138
152
  files:
139
153
  - lib/cequel/errors.rb
140
154
  - lib/cequel/metal/batch.rb
155
+ - lib/cequel/metal/batch_manager.rb
141
156
  - lib/cequel/metal/cql_row_specification.rb
142
157
  - lib/cequel/metal/data_set.rb
143
158
  - lib/cequel/metal/deleter.rb
144
159
  - lib/cequel/metal/incrementer.rb
145
160
  - lib/cequel/metal/inserter.rb
146
161
  - lib/cequel/metal/keyspace.rb
162
+ - lib/cequel/metal/logger.rb
163
+ - lib/cequel/metal/logging.rb
164
+ - lib/cequel/metal/new_relic_instrumentation.rb
147
165
  - lib/cequel/metal/row.rb
148
166
  - lib/cequel/metal/row_specification.rb
149
167
  - lib/cequel/metal/statement.rb
150
168
  - lib/cequel/metal/updater.rb
151
169
  - lib/cequel/metal/writer.rb
152
170
  - lib/cequel/metal.rb
153
- - lib/cequel/new_relic_instrumentation.rb
154
171
  - lib/cequel/record/association_collection.rb
155
172
  - lib/cequel/record/associations.rb
156
173
  - lib/cequel/record/belongs_to_association.rb
@@ -159,6 +176,7 @@ files:
159
176
  - lib/cequel/record/callbacks.rb
160
177
  - lib/cequel/record/collection.rb
161
178
  - lib/cequel/record/configuration_generator.rb
179
+ - lib/cequel/record/data_set_builder.rb
162
180
  - lib/cequel/record/dirty.rb
163
181
  - lib/cequel/record/errors.rb
164
182
  - lib/cequel/record/has_many_association.rb
@@ -177,6 +195,7 @@ files:
177
195
  - lib/cequel/schema/column.rb
178
196
  - lib/cequel/schema/create_table_dsl.rb
179
197
  - lib/cequel/schema/keyspace.rb
198
+ - lib/cequel/schema/migration_validator.rb
180
199
  - lib/cequel/schema/table.rb
181
200
  - lib/cequel/schema/table_property.rb
182
201
  - lib/cequel/schema/table_reader.rb
@@ -236,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
255
  - !ruby/object:Gem::Version
237
256
  version: 1.3.1
238
257
  requirements:
239
- - Cassandra 1.0+
258
+ - Cassandra >= 1.2.0
240
259
  rubyforge_project:
241
260
  rubygems_version: 2.1.11
242
261
  signing_key:
@@ -1,22 +0,0 @@
1
- begin
2
- require 'new_relic/agent/method_tracer'
3
- rescue LoadError => e
4
- raise LoadError, "Can't use NewRelic instrumentation without NewRelic gem"
5
- end
6
-
7
- module Cequel
8
-
9
- module NewRelicInstrumentation
10
-
11
- extend ActiveSupport::Concern
12
-
13
- included do
14
- include NewRelic::Agent::MethodTracer
15
- add_method_tracer :execute, 'Database/Cassandra/#{args[0][/^[A-Z ]*[A-Z]/].sub(/ FROM$/, \'\')}'
16
- end
17
-
18
- end
19
-
20
- end
21
-
22
- Cequel::Keyspace.module_eval { include Cequel::NewRelicInstrumentation }