cequel 1.0.0.rc1 → 1.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
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 }