datastax_rails 2.0.4 → 2.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06972ed110ef94f1e39ad303f9d83b3c012f2840
4
- data.tar.gz: 633ea7c7ff603672a07bc70ecb5b62059d12d18d
3
+ metadata.gz: 515e87cf850c3d9a87ae5b12b2a2ea125ae0af75
4
+ data.tar.gz: 145680d9780c211dd58172bd8df338df5b245571
5
5
  SHA512:
6
- metadata.gz: b826619dcf22f443352173c26accb3f994a8b229739aa6ab71e64013a05fed9df1d59af3478f05bbcb21dc19637699ad009dc5c577abf1c87fe2984d29ee05db
7
- data.tar.gz: f86a2dec43ce66e55c270b494554b15d4a33ace9e84481d459e5200f32a71c5045575befe6549a4147f04288ac6a28ff8c36ccf4fc256e4046a5bd70997ff180
6
+ metadata.gz: 0eb3d48eda726e2ae6607df2e5ceb0448ecd7e2181716eba42875e456dc2fd33036492ee1fbccd1f0abb914b03ed3fcf932ca6d42a2caf82e0a70e910445bfd4
7
+ data.tar.gz: 3108393c7d9fd432f52b45b321fa662e31f777a275721f17cbcb43272464c4da73eba59de3f0ee43c4ea44ee9a79b2dad4ce43217185d605ce1d930a564e8783
@@ -357,8 +357,8 @@ module DatastaxRails #:nodoc:
357
357
  include Batches
358
358
  include AttributeAssignment
359
359
  include AttributeMethods
360
- include Callbacks
361
360
  include Validations
361
+ include Callbacks
362
362
  include Reflection
363
363
  include Associations
364
364
  include Scoping
@@ -376,7 +376,7 @@ module DatastaxRails #:nodoc:
376
376
  class_attribute :default_timezone, :instance_writer => false
377
377
  self.default_timezone = :utc
378
378
 
379
- # Stores the default consistency level (QUORUM by default)
379
+ # Stores the default consistency level (QUORUM by default)
380
380
  class_attribute :default_consistency
381
381
  self.default_consistency = :quorum
382
382
 
@@ -441,7 +441,6 @@ module DatastaxRails #:nodoc:
441
441
  init_internals
442
442
 
443
443
  @new_record = false
444
-
445
444
  run_callbacks :find
446
445
  run_callbacks :initialize
447
446
  end
@@ -258,7 +258,7 @@ module DatastaxRails
258
258
  :after_initialize, :after_find, :after_touch, :before_validation, :after_validation,
259
259
  :before_save, :around_save, :after_save, :before_create, :around_create,
260
260
  :after_create, :before_update, :around_update, :after_update,
261
- :before_destroy, :around_destroy, :after_destroy, :after_commit, :after_rollback
261
+ :before_destroy, :around_destroy, :after_destroy, :after_commit
262
262
  ]
263
263
 
264
264
  module ClassMethods
@@ -276,9 +276,9 @@ module DatastaxRails
276
276
  run_callbacks(:destroy) { super }
277
277
  end
278
278
 
279
- def touch(*) #:nodoc:
280
- run_callbacks(:touch) { super }
281
- end
279
+ # def touch(*) #:nodoc:
280
+ # run_callbacks(:touch) { super }
281
+ # end
282
282
 
283
283
  private
284
284
 
@@ -147,6 +147,30 @@ module DatastaxRails
147
147
  @destroyed = true
148
148
  freeze
149
149
  end
150
+
151
+ # TODO: Make this work
152
+ # def touch(name = nil)
153
+ # raise ActiveRecordError, "can not touch on a new record object" unless persisted?
154
+ #
155
+ # attributes = timestamp_attributes_for_update_in_model
156
+ # attributes << name if name
157
+ #
158
+ # unless attributes.empty?
159
+ # current_time = current_time_from_proper_timezone
160
+ # changes = {}
161
+ #
162
+ # attributes.each do |column|
163
+ # column = column.to_s
164
+ # changes[column] = write_attribute(column, current_time)
165
+ # end
166
+ #
167
+ # @changed_attributes.except!(*changes.keys)
168
+ # primary_key = self.class.primary_key
169
+ # self.class.unscoped.where(primary_key => self[primary_key]).update_all(changes) == 1
170
+ # else
171
+ # true
172
+ # end
173
+ # end
150
174
 
151
175
  # Updates a single attribute and saves the record.
152
176
  # This is especially useful for boolean flags on existing records. Also note that
@@ -20,6 +20,13 @@ module DatastaxRails
20
20
  raise "ERROR: datastax.yml does not define a configuration for #{Rails.env} environment"
21
21
  end
22
22
  DatastaxRails::Base.establish_connection(config[Rails.env].with_indifferent_access)
23
+ if defined?(PhusionPassenger)
24
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
25
+ if forked
26
+ DatastaxRails::Base.establish_connection(config[Rails.env].with_indifferent_access)
27
+ end
28
+ end
29
+ end
23
30
  end
24
31
 
25
32
  rake_tasks do
@@ -24,6 +24,9 @@ module DatastaxRails
24
24
  if Rails.root.join('config','solr',"#{model.column_family}-schema.xml.erb").exist?
25
25
  say "Using custom schema for #{model.name}", :subitem
26
26
  ERB.new(Rails.root.join('config','solr',"#{model.column_family}-schema.xml.erb").read, 0, '>').result(binding)
27
+ elsif Rails.root.join('config','solr','application-schema.xml.erb').exist?
28
+ say 'Using application default schema', :subitem
29
+ ERB.new(Rails.root.join('config','solr','application-schema.xml.erb').read, 0, '>').result(binding)
27
30
  else
28
31
  ERB.new(File.read(File.join(File.dirname(__FILE__),"..","..","..","config","schema.xml.erb")), 0, '>').result(binding)
29
32
  end
@@ -1,3 +1,3 @@
1
1
  module DatastaxRails
2
- VERSION = "2.0.4"
2
+ VERSION = "2.0.7"
3
3
  end
@@ -1,25 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe DatastaxRails::Base do
4
- it "should run before_save" do
5
- p = Person.new(:name => "Jason")
6
- p.save
7
- p.nickname.should == "Jason"
8
- end
9
-
10
- it "should run after_save" do
11
- p = Person.new(:name => "Steve")
12
- p.save
13
- p.instance_variable_get(:@after_save_ran).should == "yup"
14
- end
15
-
16
- it "should run after_create" do
17
- p = Person.new(:name => "Tommy")
18
- p.save
19
- p.instance_variable_get(:@after_create_ran).should == "yup"
20
- end
21
-
22
-
23
4
  it "should raise RecordNotFound when finding a bogus ID" do
24
5
  lambda { Person.find("xyzzy") }.should raise_exception(DatastaxRails::RecordNotFound)
25
6
  end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ class CallbackTester < Hobby
4
+ self.column_family = "hobbies"
5
+ attr_accessor :after_find_called, :after_initialize_called
6
+
7
+ after_find { self.after_find_called = true }
8
+ after_initialize { self.after_initialize_called = true }
9
+
10
+ %w[before_save before_create after_save after_create before_validation after_validation
11
+ after_touch before_destroy after_destroy].each do |callback|
12
+ self.send(callback, callback + "_callback") # after_save 'after_save_callback'
13
+ define_method(callback+"_callback") do
14
+ true
15
+ end
16
+ end
17
+ end
18
+
19
+ describe DatastaxRails::Base do
20
+ describe "callbacks" do
21
+ subject { CallbackTester.new }
22
+
23
+ %w[before_save before_create after_save after_create before_validation after_validation].each do |callback|
24
+ it "runs #{callback}" do
25
+ expect(subject).to receive(callback+"_callback")
26
+ subject.save
27
+ end
28
+ end
29
+
30
+ %w[after_destroy before_destroy].each do |callback|
31
+ it "runs #{callback}" do
32
+ subject.save
33
+ expect(subject).to receive(callback+"_callback")
34
+ subject.destroy
35
+ end
36
+ end
37
+
38
+ it "runs after_find" do
39
+ subject.save
40
+ ct=CallbackTester.find(subject.id)
41
+ expect(ct.after_find_called).to be_true
42
+ end
43
+
44
+ it "runs after_initialize" do
45
+ expect(subject.after_initialize_called).to be_true
46
+ end
47
+ end
48
+ end
@@ -13,28 +13,7 @@ class Person < DatastaxRails::Base
13
13
  map :str_
14
14
  timestamps
15
15
 
16
- before_create :set_variable2
17
- before_save :set_nickname
18
- after_save :set_variable
19
- after_create :set_variable3
20
-
21
16
  validates :name, :presence => true, :uniqueness => :true
22
-
23
- def set_nickname
24
- self.nickname ||= self.name
25
- end
26
-
27
- def set_variable
28
- @after_save_ran = "yup"
29
- end
30
-
31
- def set_variable2
32
- @before_create_ran = "yup"
33
- end
34
-
35
- def set_variable3
36
- @after_create_ran = 'yup'
37
- end
38
17
  end
39
18
 
40
19
  class Car < DatastaxRails::Base
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.4
4
+ version: 2.0.7
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-05-26 00:00:00.000000000 Z
11
+ date: 2014-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -243,6 +243,7 @@ files:
243
243
  - spec/datastax_rails/associations_spec.rb
244
244
  - spec/datastax_rails/attribute_methods_spec.rb
245
245
  - spec/datastax_rails/base_spec.rb
246
+ - spec/datastax_rails/callbacks_spec.rb
246
247
  - spec/datastax_rails/column_spec.rb
247
248
  - spec/datastax_rails/cql/select_spec.rb
248
249
  - spec/datastax_rails/cql/update_spec.rb
@@ -362,6 +363,7 @@ test_files:
362
363
  - spec/datastax_rails/inheritance_spec.rb
363
364
  - spec/datastax_rails/associations/has_many_association_spec.rb
364
365
  - spec/datastax_rails/associations/belongs_to_association_spec.rb
366
+ - spec/datastax_rails/callbacks_spec.rb
365
367
  - spec/feature/dynamic_fields_spec.rb
366
368
  - spec/feature/overloaded_tables_spec.rb
367
369
  - spec/spec.opts