datastax_rails 2.0.12 → 2.0.15

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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -5
  3. data/lib/blankslate.rb +8 -11
  4. data/lib/cql-rb_extensions.rb +5 -3
  5. data/lib/datastax_rails/associations/association.rb +93 -101
  6. data/lib/datastax_rails/associations/association_scope.rb +7 -7
  7. data/lib/datastax_rails/associations/belongs_to_association.rb +46 -48
  8. data/lib/datastax_rails/associations/builder/association.rb +32 -31
  9. data/lib/datastax_rails/associations/builder/belongs_to.rb +19 -20
  10. data/lib/datastax_rails/associations/builder/collection_association.rb +32 -32
  11. data/lib/datastax_rails/associations/builder/has_and_belongs_to_many.rb +21 -21
  12. data/lib/datastax_rails/associations/builder/has_many.rb +39 -40
  13. data/lib/datastax_rails/associations/builder/has_one.rb +30 -31
  14. data/lib/datastax_rails/associations/builder/singular_association.rb +31 -33
  15. data/lib/datastax_rails/associations/collection_association.rb +129 -135
  16. data/lib/datastax_rails/associations/collection_proxy.rb +21 -21
  17. data/lib/datastax_rails/associations/has_and_belongs_to_many_association.rb +26 -26
  18. data/lib/datastax_rails/associations/has_many_association.rb +38 -38
  19. data/lib/datastax_rails/associations/has_one_association.rb +31 -32
  20. data/lib/datastax_rails/associations/singular_association.rb +31 -30
  21. data/lib/datastax_rails/associations.rb +27 -24
  22. data/lib/datastax_rails/attribute_assignment.rb +17 -17
  23. data/lib/datastax_rails/attribute_methods/definition.rb +4 -4
  24. data/lib/datastax_rails/attribute_methods/dirty.rb +34 -33
  25. data/lib/datastax_rails/attribute_methods/primary_key.rb +3 -8
  26. data/lib/datastax_rails/attribute_methods/read.rb +10 -12
  27. data/lib/datastax_rails/attribute_methods/typecasting.rb +36 -35
  28. data/lib/datastax_rails/attribute_methods/write.rb +5 -6
  29. data/lib/datastax_rails/attribute_methods.rb +52 -56
  30. data/lib/datastax_rails/base.rb +122 -125
  31. data/lib/datastax_rails/callbacks.rb +15 -9
  32. data/lib/datastax_rails/cassandra_only_model.rb +6 -6
  33. data/lib/datastax_rails/collection.rb +5 -7
  34. data/lib/datastax_rails/column.rb +130 -118
  35. data/lib/datastax_rails/connection/statement_cache.rb +3 -3
  36. data/lib/datastax_rails/connection.rb +42 -33
  37. data/lib/datastax_rails/cql/alter_column_family.rb +19 -21
  38. data/lib/datastax_rails/cql/base.rb +8 -11
  39. data/lib/datastax_rails/cql/column_family.rb +11 -10
  40. data/lib/datastax_rails/cql/consistency.rb +2 -2
  41. data/lib/datastax_rails/cql/create_column_family.rb +15 -15
  42. data/lib/datastax_rails/cql/create_index.rb +5 -5
  43. data/lib/datastax_rails/cql/create_keyspace.rb +7 -7
  44. data/lib/datastax_rails/cql/delete.rb +16 -29
  45. data/lib/datastax_rails/cql/drop_column_family.rb +2 -2
  46. data/lib/datastax_rails/cql/drop_index.rb +2 -2
  47. data/lib/datastax_rails/cql/drop_keyspace.rb +2 -2
  48. data/lib/datastax_rails/cql/insert.rb +10 -16
  49. data/lib/datastax_rails/cql/select.rb +21 -33
  50. data/lib/datastax_rails/cql/truncate.rb +2 -2
  51. data/lib/datastax_rails/cql/update.rb +16 -24
  52. data/lib/datastax_rails/cql/use_keyspace.rb +2 -2
  53. data/lib/datastax_rails/cql.rb +2 -2
  54. data/lib/datastax_rails/dynamic_model.rb +32 -29
  55. data/lib/datastax_rails/errors.rb +6 -6
  56. data/lib/datastax_rails/grouped_collection.rb +3 -3
  57. data/lib/datastax_rails/inheritance.rb +9 -9
  58. data/lib/datastax_rails/payload_model.rb +24 -20
  59. data/lib/datastax_rails/persistence.rb +116 -110
  60. data/lib/datastax_rails/railtie.rb +7 -7
  61. data/lib/datastax_rails/reflection.rb +61 -59
  62. data/lib/datastax_rails/relation/batches.rb +12 -13
  63. data/lib/datastax_rails/relation/facet_methods.rb +44 -33
  64. data/lib/datastax_rails/relation/finder_methods.rb +95 -91
  65. data/lib/datastax_rails/relation/modification_methods.rb +5 -5
  66. data/lib/datastax_rails/relation/search_methods.rb +102 -102
  67. data/lib/datastax_rails/relation/spawn_methods.rb +25 -24
  68. data/lib/datastax_rails/relation/stats_methods.rb +9 -8
  69. data/lib/datastax_rails/relation.rb +165 -170
  70. data/lib/datastax_rails/rsolr_client_wrapper.rb +3 -3
  71. data/lib/datastax_rails/schema/cassandra.rb +44 -43
  72. data/lib/datastax_rails/schema/migrator.rb +52 -52
  73. data/lib/datastax_rails/schema/solr.rb +55 -47
  74. data/lib/datastax_rails/schema_cache.rb +1 -3
  75. data/lib/datastax_rails/scoping/default.rb +2 -3
  76. data/lib/datastax_rails/scoping/named.rb +3 -5
  77. data/lib/datastax_rails/scoping.rb +11 -12
  78. data/lib/datastax_rails/serialization.rb +34 -31
  79. data/lib/datastax_rails/serializers/xml_serializer.rb +178 -175
  80. data/lib/datastax_rails/timestamps.rb +4 -4
  81. data/lib/datastax_rails/types/dirty_collection.rb +57 -57
  82. data/lib/datastax_rails/types/dynamic_list.rb +1 -1
  83. data/lib/datastax_rails/types/dynamic_map.rb +5 -7
  84. data/lib/datastax_rails/types/dynamic_set.rb +2 -2
  85. data/lib/datastax_rails/util/solr_repair.rb +3 -3
  86. data/lib/datastax_rails/validations/associated.rb +8 -6
  87. data/lib/datastax_rails/validations/uniqueness.rb +8 -8
  88. data/lib/datastax_rails/validations.rb +9 -10
  89. data/lib/datastax_rails/version.rb +2 -1
  90. data/lib/datastax_rails/wide_storage_model.rb +6 -6
  91. data/lib/datastax_rails.rb +13 -9
  92. data/lib/schema_migration.rb +3 -3
  93. data/spec/datastax_rails/associations/belongs_to_association_spec.rb +2 -2
  94. data/spec/datastax_rails/associations/collection_association_spec.rb +14 -14
  95. data/spec/datastax_rails/associations/has_many_association_spec.rb +20 -20
  96. data/spec/datastax_rails/associations_spec.rb +11 -11
  97. data/spec/datastax_rails/attribute_methods_spec.rb +25 -25
  98. data/spec/datastax_rails/base_spec.rb +24 -24
  99. data/spec/datastax_rails/callbacks_spec.rb +21 -21
  100. data/spec/datastax_rails/column_spec.rb +133 -132
  101. data/spec/datastax_rails/connection/statement_cache_spec.rb +2 -2
  102. data/spec/datastax_rails/cql/base_spec.rb +4 -4
  103. data/spec/datastax_rails/cql/delete_spec.rb +19 -0
  104. data/spec/datastax_rails/cql/select_spec.rb +8 -8
  105. data/spec/datastax_rails/cql/update_spec.rb +8 -10
  106. data/spec/datastax_rails/dynamic_model_spec.rb +36 -22
  107. data/spec/datastax_rails/inheritance_spec.rb +11 -14
  108. data/spec/datastax_rails/persistence_spec.rb +73 -74
  109. data/spec/datastax_rails/relation/batches_spec.rb +13 -13
  110. data/spec/datastax_rails/relation/facet_methods_spec.rb +43 -35
  111. data/spec/datastax_rails/relation/finder_methods_spec.rb +77 -78
  112. data/spec/datastax_rails/relation/modification_methods_spec.rb +19 -19
  113. data/spec/datastax_rails/relation/search_methods_spec.rb +160 -160
  114. data/spec/datastax_rails/relation/spawn_methods_spec.rb +18 -18
  115. data/spec/datastax_rails/relation_spec.rb +119 -116
  116. data/spec/datastax_rails/schema/migrator_spec.rb +30 -30
  117. data/spec/datastax_rails/schema/solr_spec.rb +15 -15
  118. data/spec/datastax_rails/scoping/default_spec.rb +9 -9
  119. data/spec/datastax_rails/types/dynamic_list_spec.rb +12 -12
  120. data/spec/datastax_rails/types/dynamic_map_spec.rb +10 -10
  121. data/spec/datastax_rails/types/dynamic_set_spec.rb +22 -10
  122. data/spec/datastax_rails/validations/uniqueness_spec.rb +25 -25
  123. data/spec/datastax_rails/wide_storage_model_spec.rb +11 -0
  124. data/spec/datastax_rails_spec.rb +2 -2
  125. data/spec/dummy/config/application.rb +2 -3
  126. data/spec/dummy/config/boot.rb +1 -1
  127. data/spec/dummy/config/environments/development.rb +3 -3
  128. data/spec/dummy/config/environments/test.rb +1 -1
  129. data/spec/dummy/config/initializers/session_store.rb +1 -1
  130. data/spec/dummy/config/initializers/wrap_parameters.rb +1 -1
  131. data/spec/factories/audit_logs.rb +6 -0
  132. data/spec/factories/hobbies.rb +6 -0
  133. data/spec/factories/people.rb +5 -0
  134. data/spec/feature/dynamic_fields_spec.rb +4 -4
  135. data/spec/feature/overloaded_tables_spec.rb +11 -12
  136. data/spec/spec_helper.rb +17 -14
  137. data/spec/support/datastax_test_hook.rb +2 -2
  138. data/spec/support/default_consistency_shared_examples.rb +11 -11
  139. data/spec/support/models.rb +31 -32
  140. metadata +40 -6
  141. data/lib/datastax_rails/attribute_methods/before_type_cast.rb +0 -71
  142. data/lib/datastax_rails/log_subscriber.rb +0 -0
  143. data/spec/dummy/ks/migrate/20111117224534_models.rb +0 -20
@@ -4,11 +4,11 @@ require 'datastax_rails/base'
4
4
  module DatastaxRails
5
5
  class Base
6
6
  class_attribute :recorded_classes
7
-
7
+
8
8
  def save_with_record_class(*args)
9
9
  DatastaxRails::Base.recorded_classes[self.class] = nil
10
10
  save_without_record_class(*args)
11
11
  end
12
12
  alias_method_chain :save, :record_class
13
13
  end
14
- end
14
+ end
@@ -1,19 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  shared_examples_for 'default_consistency' do
4
- let(:prepared_statement) {double("PreparedStatement")}
5
- before { DatastaxRails::Base.connection.stub(:prepare => prepared_statement)}
6
-
7
- it "should default to QUORUM" do
8
- cql = DatastaxRails::Cql::Select.new(model_class, ["*"])
9
- DatastaxRails::Base.connection.should_receive(:execute).with(prepared_statement, :consistency => :quorum)
4
+ let(:prepared_statement) { double('PreparedStatement') }
5
+ before { allow(DatastaxRails::Base.connection).to receive(:prepare).and_return(prepared_statement) }
6
+
7
+ it 'should default to QUORUM' do
8
+ cql = DatastaxRails::Cql::Select.new(model_class, ['*'])
9
+ expect(prepared_statement).to receive(:execute).with(consistency: :quorum)
10
10
  cql.execute
11
11
  end
12
-
13
- it "should default to level specified by model class" do
14
- model_class.stub(:default_consistency => 'LOCAL_QUORUM')
15
- cql = DatastaxRails::Cql::Select.new(model_class, ["*"])
16
- DatastaxRails::Base.connection.should_receive(:execute).with(prepared_statement, :consistency => :local_quorum)
12
+
13
+ it 'should default to level specified by model class' do
14
+ allow(model_class).to receive(:default_consistency).and_return('LOCAL_QUORUM')
15
+ cql = DatastaxRails::Cql::Select.new(model_class, ['*'])
16
+ expect(prepared_statement).to receive(:execute).with(consistency: :local_quorum)
17
17
  cql.execute
18
18
  end
19
19
  end
@@ -1,89 +1,88 @@
1
1
  class Person < DatastaxRails::Base
2
- self.column_family = "people"
3
-
2
+ self.column_family = 'people'
3
+
4
4
  has_one :job
5
- has_many :cars, :dependent => :destroy
5
+ has_many :cars, dependent: :destroy
6
6
  has_and_belongs_to_many :hobbies
7
-
7
+
8
8
  uuid :id
9
- text :name, :sortable => true
9
+ text :name, sortable: true
10
10
  date :birthdate
11
11
  string :nickname
12
12
  set :email_addresses
13
13
  map :str_
14
14
  timestamps
15
-
16
- validates :name, :presence => true, :uniqueness => :true
15
+
16
+ validates :name, presence: true, uniqueness: :true
17
17
  end
18
18
 
19
19
  class Car < DatastaxRails::Base
20
- self.column_family = "cars"
21
-
20
+ self.column_family = 'cars'
21
+
22
22
  belongs_to :person
23
-
23
+
24
24
  uuid :id
25
25
  string :name
26
26
  uuid :person_id
27
27
  uuid :car_payload_id
28
28
  datetime :last_serviced_at
29
- map :oil_changes, :holds => :timestamp
29
+ map :oil_changes, holds: :timestamp
30
30
  timestamps
31
31
  end
32
32
 
33
33
  class CarPayload < DatastaxRails::PayloadModel
34
- self.column_family = "car_payloads"
34
+ self.column_family = 'car_payloads'
35
35
  end
36
36
 
37
37
  class AuditLog < DatastaxRails::WideStorageModel
38
38
  include DatastaxRails::CassandraOnlyModel
39
- self.column_family = "audit_logs"
39
+ self.column_family = 'audit_logs'
40
40
  self.primary_key = :uuid
41
41
  self.cluster_by = :created_at
42
42
  self.create_options = 'CLUSTERING ORDER BY (created_at DESC)'
43
-
44
- uuid :uuid
45
- string :message
46
- string :user, :cql_index => true
43
+
44
+ uuid :uuid
45
+ string :message
46
+ string :user, cql_index: true
47
47
  timestamps
48
48
  end
49
49
 
50
50
  class Job < DatastaxRails::Base
51
- self.column_family = "jobs"
52
-
51
+ self.column_family = 'jobs'
52
+
53
53
  belongs_to :person
54
-
54
+
55
55
  uuid :id
56
56
  string :title
57
57
  integer :position_number
58
58
  uuid :person_id
59
- list :former_positions, :holds => :integer
59
+ list :former_positions, holds: :integer
60
60
  timestamps
61
-
62
- validates :position_number, :uniqueness => true, :allow_blank => true
61
+
62
+ validates :position_number, uniqueness: true, allow_blank: true
63
63
  end
64
64
 
65
65
  class Boat < DatastaxRails::Base
66
- self.column_family = "boats"
67
-
66
+ self.column_family = 'boats'
67
+
68
68
  uuid :id
69
69
  string :name
70
70
  integer :registration
71
- boolean :financed
72
71
  timestamps
73
-
74
- validates :name, :uniqueness => true
72
+
73
+ validates :name, uniqueness: true
75
74
  default_scope order(:name)
76
75
  end
77
76
 
78
77
  class Hobby < DatastaxRails::Base
79
- self.column_family = "hobbies"
80
-
78
+ self.column_family = 'hobbies'
79
+
81
80
  has_and_belongs_to_many :people
82
-
81
+
83
82
  uuid :id
84
83
  string :name
85
84
  float :complexity
86
- map :components, :holds => :integer
85
+ map :components, holds: :integer
87
86
  timestamps
88
87
  end
89
88
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datastax_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.12
4
+ version: 2.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason M. Kusar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-03 00:00:00.000000000 Z
11
+ date: 2014-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -92,6 +92,20 @@ dependencies:
92
92
  version: 0.5.2
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: rspec-rails
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: '3.0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ~>
105
+ - !ruby/object:Gem::Version
106
+ version: '3.0'
107
+ - !ruby/object:Gem::Dependency
108
+ name: rspec-its
95
109
  requirement: !ruby/object:Gem::Requirement
96
110
  requirements:
97
111
  - - '>='
@@ -132,6 +146,20 @@ dependencies:
132
146
  - - '>='
133
147
  - !ruby/object:Gem::Version
134
148
  version: '0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: factory_girl_rails
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
135
163
  description: A Ruby-on-Rails interface to Datastax Enterprise. Intended for use with
136
164
  the DSE search nodes.
137
165
  email:
@@ -168,7 +196,6 @@ files:
168
196
  - lib/datastax_rails/associations/singular_association.rb
169
197
  - lib/datastax_rails/attribute_assignment.rb
170
198
  - lib/datastax_rails/attribute_methods.rb
171
- - lib/datastax_rails/attribute_methods/before_type_cast.rb
172
199
  - lib/datastax_rails/attribute_methods/definition.rb
173
200
  - lib/datastax_rails/attribute_methods/dirty.rb
174
201
  - lib/datastax_rails/attribute_methods/primary_key.rb
@@ -203,7 +230,6 @@ files:
203
230
  - lib/datastax_rails/errors.rb
204
231
  - lib/datastax_rails/grouped_collection.rb
205
232
  - lib/datastax_rails/inheritance.rb
206
- - lib/datastax_rails/log_subscriber.rb
207
233
  - lib/datastax_rails/payload_model.rb
208
234
  - lib/datastax_rails/persistence.rb
209
235
  - lib/datastax_rails/railtie.rb
@@ -250,6 +276,7 @@ files:
250
276
  - spec/datastax_rails/column_spec.rb
251
277
  - spec/datastax_rails/connection/statement_cache_spec.rb
252
278
  - spec/datastax_rails/cql/base_spec.rb
279
+ - spec/datastax_rails/cql/delete_spec.rb
253
280
  - spec/datastax_rails/cql/select_spec.rb
254
281
  - spec/datastax_rails/cql/update_spec.rb
255
282
  - spec/datastax_rails/dynamic_model_spec.rb
@@ -269,6 +296,7 @@ files:
269
296
  - spec/datastax_rails/types/dynamic_map_spec.rb
270
297
  - spec/datastax_rails/types/dynamic_set_spec.rb
271
298
  - spec/datastax_rails/validations/uniqueness_spec.rb
299
+ - spec/datastax_rails/wide_storage_model_spec.rb
272
300
  - spec/datastax_rails_spec.rb
273
301
  - spec/dummy/Rakefile
274
302
  - spec/dummy/app/assets/javascripts/application.js
@@ -298,7 +326,6 @@ files:
298
326
  - spec/dummy/config/solr/articles-schema.xml.erb
299
327
  - spec/dummy/config/sunspot.yml
300
328
  - spec/dummy/db/test.sqlite3
301
- - spec/dummy/ks/migrate/20111117224534_models.rb
302
329
  - spec/dummy/ks/schema.json
303
330
  - spec/dummy/log/development.log
304
331
  - spec/dummy/log/production.log
@@ -308,6 +335,9 @@ files:
308
335
  - spec/dummy/public/500.html
309
336
  - spec/dummy/public/favicon.ico
310
337
  - spec/dummy/script/rails
338
+ - spec/factories/audit_logs.rb
339
+ - spec/factories/hobbies.rb
340
+ - spec/factories/people.rb
311
341
  - spec/feature/dynamic_fields_spec.rb
312
342
  - spec/feature/overloaded_tables_spec.rb
313
343
  - spec/spec.opts
@@ -344,6 +374,7 @@ test_files:
344
374
  - spec/support/default_consistency_shared_examples.rb
345
375
  - spec/support/datastax_test_hook.rb
346
376
  - spec/datastax_rails/dynamic_model_spec.rb
377
+ - spec/datastax_rails/wide_storage_model_spec.rb
347
378
  - spec/datastax_rails/attribute_methods_spec.rb
348
379
  - spec/datastax_rails/scoping/default_spec.rb
349
380
  - spec/datastax_rails/associations_spec.rb
@@ -355,6 +386,7 @@ test_files:
355
386
  - spec/datastax_rails/schema/migrator_spec.rb
356
387
  - spec/datastax_rails/schema/solr_spec.rb
357
388
  - spec/datastax_rails/validations/uniqueness_spec.rb
389
+ - spec/datastax_rails/cql/delete_spec.rb
358
390
  - spec/datastax_rails/cql/update_spec.rb
359
391
  - spec/datastax_rails/cql/base_spec.rb
360
392
  - spec/datastax_rails/cql/select_spec.rb
@@ -412,7 +444,9 @@ test_files:
412
444
  - spec/dummy/app/helpers/application_helper.rb
413
445
  - spec/dummy/app/assets/stylesheets/application.css
414
446
  - spec/dummy/app/assets/javascripts/application.js
415
- - spec/dummy/ks/migrate/20111117224534_models.rb
416
447
  - spec/dummy/ks/schema.json
417
448
  - spec/dummy/db/test.sqlite3
449
+ - spec/factories/hobbies.rb
450
+ - spec/factories/people.rb
451
+ - spec/factories/audit_logs.rb
418
452
  has_rdoc:
@@ -1,71 +0,0 @@
1
- module DatastaxRails
2
- module AttributeMethods
3
- # = Datastax Rails Attribute Methods Before Type Cast
4
- #
5
- # <tt>Datastax Rails::AttributeMethods::BeforeTypeCast</tt> provides a way to
6
- # read the value of the attributes before typecasting and deserialization.
7
- #
8
- # class Task < DatastaxRails::Base
9
- # end
10
- #
11
- # task = Task.new(id: '1', completed_on: '2012-10-21')
12
- # task.id # => 1
13
- # task.completed_on # => Sun, 21 Oct 2012
14
- #
15
- # task.attributes_before_type_cast
16
- # # => {"id"=>"1", "completed_on"=>"2012-10-21", ... }
17
- # task.read_attribute_before_type_cast('id') # => "1"
18
- # task.read_attribute_before_type_cast('completed_on') # => "2012-10-21"
19
- #
20
- # In addition to #read_attribute_before_type_cast and #attributes_before_type_cast,
21
- # it declares a method for all attributes with the <tt>*_before_type_cast</tt>
22
- # suffix.
23
- #
24
- # task.id_before_type_cast # => "1"
25
- # task.completed_on_before_type_cast # => "2012-10-21"
26
- module BeforeTypeCast
27
- extend ActiveSupport::Concern
28
-
29
- included do
30
- attribute_method_suffix "_before_type_cast"
31
- end
32
-
33
- # Returns the value of the attribute identified by +attr_name+ before
34
- # typecasting and deserialization.
35
- #
36
- # class Task < DatastaxRails::Base
37
- # end
38
- #
39
- # task = Task.new(id: '1', completed_on: '2012-10-21')
40
- # task.read_attribute('id') # => 1
41
- # task.read_attribute_before_type_cast('id') # => '1'
42
- # task.read_attribute('completed_on') # => Sun, 21 Oct 2012
43
- # task.read_attribute_before_type_cast('completed_on') # => "2012-10-21"
44
- # task.read_attribute_before_type_cast(:completed_on) # => "2012-10-21"
45
- def read_attribute_before_type_cast(attr_name)
46
- @attributes[attr_name.to_s]
47
- end
48
-
49
- # Returns a hash of attributes before typecasting and deserialization.
50
- #
51
- # class Task < DatastaxRails::Base
52
- # end
53
- #
54
- # task = Task.new(title: nil, is_done: true, completed_on: '2012-10-21')
55
- # task.attributes
56
- # # => {"id"=>nil, "title"=>nil, "is_done"=>true, "completed_on"=>Sun, 21 Oct 2012, "created_at"=>nil, "updated_at"=>nil}
57
- # task.attributes_before_type_cast
58
- # # => {"id"=>nil, "title"=>nil, "is_done"=>true, "completed_on"=>"2012-10-21", "created_at"=>nil, "updated_at"=>nil}
59
- def attributes_before_type_cast
60
- @attributes
61
- end
62
-
63
- private
64
-
65
- # Handle *_before_type_cast for method_missing.
66
- def attribute_before_type_cast(attribute_name)
67
- read_attribute_before_type_cast(attribute_name)
68
- end
69
- end
70
- end
71
- end
File without changes
@@ -1,20 +0,0 @@
1
- class Models < CassandraObject::Schema::Migration
2
- MODELS = [:people, :cars, :jobs, :boats, :hobbies]
3
-
4
- def self.up
5
- MODELS.each do |m|
6
- create_column_family m do |cf|
7
- cf.comment = m.to_s.titleize
8
- cf.comparator_type = :string
9
- cf.column_type = 'Standard'
10
- end
11
- end
12
- end
13
-
14
- def self.down
15
- MODELS.each do |m|
16
- drop_column_family m
17
- end
18
- end
19
-
20
- end